go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/npm/yarn_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 TestYarnParser(t *testing.T) { 16 data, err := os.Open("./testdata/d3-yarn.lock") 17 if err != nil { 18 t.Fatal(err) 19 } 20 21 pkgs, err := npm.ParseYarnLock(data) 22 assert.Nil(t, err) 23 assert.Equal(t, 99, len(pkgs)) 24 25 assert.Contains(t, pkgs, &mvd.Package{ 26 Name: "has", 27 Version: "1.0.3", 28 Format: "npm", 29 Namespace: "nodejs", 30 }) 31 32 assert.Contains(t, pkgs, &mvd.Package{ 33 Name: "iconv-lite", 34 Version: "0.4.24", 35 Format: "npm", 36 Namespace: "nodejs", 37 }) 38 } 39 40 func TestParsePackagename(t *testing.T) { 41 var name string 42 var version string 43 var err error 44 45 name, version, err = npm.ParseYarnPackageName("source-map-support@~0.5.10") 46 assert.Nil(t, err) 47 assert.Equal(t, "source-map-support", name) 48 assert.Equal(t, "~0.5.10", version) 49 50 name, version, err = npm.ParseYarnPackageName("@types/node@*") 51 assert.Nil(t, err) 52 assert.Equal(t, "@types/node", name) 53 assert.Equal(t, "*", version) 54 55 name, version, err = npm.ParseYarnPackageName("@babel/code-frame@^7.0.0-beta.47") 56 assert.Nil(t, err) 57 assert.Equal(t, "@babel/code-frame", name) 58 assert.Equal(t, "^7.0.0-beta.47", version) 59 60 name, version, err = npm.ParseYarnPackageName("has@^1.0.1, has@^1.0.3, has@~1.0.3") 61 assert.Nil(t, err) 62 assert.Equal(t, "has", name) 63 assert.Equal(t, "^1.0.1", version) 64 }