go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/npm/packagejson_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package npm_test 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "go.mondoo.com/cnquery/providers-sdk/v1/upstream/mvd" 12 "go.mondoo.com/cnquery/providers/os/resources/npm" 13 ) 14 15 func TestPackageJsonParser(t *testing.T) { 16 data, err := os.Open("./testdata/express-package.json") 17 if err != nil { 18 t.Fatal(err) 19 } 20 21 pkgs, err := npm.ParsePackageJson(data) 22 assert.Nil(t, err) 23 assert.Equal(t, 31, len(pkgs)) 24 25 assert.Contains(t, pkgs, &mvd.Package{ 26 Name: "path-to-regexp", 27 Version: "0.1.7", 28 Format: "npm", 29 Namespace: "nodejs", 30 }) 31 32 // "range-parser": "~1.2.0", 33 // TODO: we need to be better at version ranges 34 assert.Contains(t, pkgs, &mvd.Package{ 35 Name: "range-parser", 36 Version: "~1.2.0", 37 Format: "npm", 38 Namespace: "nodejs", 39 }) 40 } 41 42 func TestPackageJsonLockParser(t *testing.T) { 43 data, err := os.Open("./testdata/workbox-package-lock.json") 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 pkgs, err := npm.ParsePackageJsonLock(data) 49 assert.Nil(t, err) 50 assert.Equal(t, 1300, len(pkgs)) 51 52 assert.Contains(t, pkgs, &mvd.Package{ 53 Name: "@babel/generator", 54 Version: "7.0.0", 55 Format: "npm", 56 Namespace: "nodejs", 57 }) 58 59 assert.Contains(t, pkgs, &mvd.Package{ 60 Name: "@lerna/changed", 61 Version: "3.3.2", 62 Format: "npm", 63 Namespace: "nodejs", 64 }) 65 }