github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/syft/pkg/cataloger/javascript/parse_pnpm_lock_test.go (about) 1 package javascript 2 3 import ( 4 "testing" 5 6 "github.com/anchore/syft/syft/artifact" 7 "github.com/anchore/syft/syft/file" 8 "github.com/anchore/syft/syft/pkg" 9 "github.com/lineaje-labs/syft/syft/pkg/cataloger/internal/pkgtest" 10 ) 11 12 func TestParsePnpmLock(t *testing.T) { 13 var expectedRelationships []artifact.Relationship 14 fixture := "test-fixtures/pnpm/pnpm-lock.yaml" 15 16 locationSet := file.NewLocationSet(file.NewLocation(fixture)) 17 18 expectedPkgs := []pkg.Package{ 19 { 20 Name: "nanoid", 21 Version: "3.3.4", 22 PURL: "pkg:npm/nanoid@3.3.4", 23 Locations: locationSet, 24 Language: pkg.JavaScript, 25 Type: pkg.NpmPkg, 26 }, 27 { 28 Name: "picocolors", 29 Version: "1.0.0", 30 PURL: "pkg:npm/picocolors@1.0.0", 31 Locations: locationSet, 32 Language: pkg.JavaScript, 33 Type: pkg.NpmPkg, 34 }, 35 { 36 Name: "source-map-js", 37 Version: "1.0.2", 38 PURL: "pkg:npm/source-map-js@1.0.2", 39 Locations: locationSet, 40 Language: pkg.JavaScript, 41 Type: pkg.NpmPkg, 42 }, 43 { 44 Name: "@bcoe/v8-coverage", 45 Version: "0.2.3", 46 PURL: "pkg:npm/%40bcoe/v8-coverage@0.2.3", 47 Locations: locationSet, 48 Language: pkg.JavaScript, 49 Type: pkg.NpmPkg, 50 }, 51 } 52 53 pkgtest.TestFileParser(t, fixture, parsePnpmLock, expectedPkgs, expectedRelationships) 54 } 55 56 func TestParsePnpmV6Lock(t *testing.T) { 57 var expectedRelationships []artifact.Relationship 58 fixture := "test-fixtures/pnpm-v6/pnpm-lock.yaml" 59 60 locationSet := file.NewLocationSet(file.NewLocation(fixture)) 61 62 expectedPkgs := []pkg.Package{ 63 { 64 Name: "@testing-library/jest-dom", 65 Version: "5.16.5", 66 PURL: "pkg:npm/%40testing-library/jest-dom@5.16.5", 67 Locations: locationSet, 68 Language: pkg.JavaScript, 69 Type: pkg.NpmPkg, 70 }, 71 { 72 Name: "@testing-library/react", 73 Version: "13.4.0", 74 PURL: "pkg:npm/%40testing-library/react@13.4.0", 75 Locations: locationSet, 76 Language: pkg.JavaScript, 77 Type: pkg.NpmPkg, 78 }, 79 { 80 Name: "@testing-library/user-event", 81 Version: "13.5.0", 82 PURL: "pkg:npm/%40testing-library/user-event@13.5.0", 83 Locations: locationSet, 84 Language: pkg.JavaScript, 85 Type: pkg.NpmPkg, 86 }, 87 { 88 Name: "react", 89 Version: "18.2.0", 90 PURL: "pkg:npm/react@18.2.0", 91 Locations: locationSet, 92 Language: pkg.JavaScript, 93 Type: pkg.NpmPkg, 94 }, 95 { 96 Name: "react-dom", 97 Version: "18.2.0", 98 PURL: "pkg:npm/react-dom@18.2.0", 99 Locations: locationSet, 100 Language: pkg.JavaScript, 101 Type: pkg.NpmPkg, 102 }, 103 { 104 Name: "web-vitals", 105 Version: "2.1.4", 106 PURL: "pkg:npm/web-vitals@2.1.4", 107 Locations: locationSet, 108 Language: pkg.JavaScript, 109 Type: pkg.NpmPkg, 110 }, 111 { 112 Name: "@babel/core", 113 Version: "7.21.4", 114 PURL: "pkg:npm/%40babel/core@7.21.4", 115 Locations: locationSet, 116 Language: pkg.JavaScript, 117 Type: pkg.NpmPkg, 118 }, 119 { 120 Name: "@types/eslint", 121 Version: "8.37.0", 122 PURL: "pkg:npm/%40types/eslint@8.37.0", 123 Locations: locationSet, 124 Language: pkg.JavaScript, 125 Type: pkg.NpmPkg, 126 }, 127 { 128 Name: "read-cache", 129 Version: "1.0.0", 130 PURL: "pkg:npm/read-cache@1.0.0", 131 Locations: locationSet, 132 Language: pkg.JavaScript, 133 Type: pkg.NpmPkg, 134 }, 135 { 136 Name: "schema-utils", 137 Version: "3.1.2", 138 PURL: "pkg:npm/schema-utils@3.1.2", 139 Locations: locationSet, 140 Language: pkg.JavaScript, 141 Type: pkg.NpmPkg, 142 }, 143 } 144 145 pkgtest.TestFileParser(t, fixture, parsePnpmLock, expectedPkgs, expectedRelationships) 146 }