From eb0ca057e5f5ad08d68474cf1099459df5ae7008 Mon Sep 17 00:00:00 2001 From: DmitriyLewen Date: Fri, 26 Jul 2024 20:39:16 +0600 Subject: [PATCH] test(fanal): add test to check latest version --- .../yarn/testdata/latest-version/package.json | 8 +++ .../yarn/testdata/latest-version/yarn.lock | 20 +++++++ .../language/nodejs/yarn/yarn_test.go | 55 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/package.json create mode 100644 pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/yarn.lock diff --git a/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/package.json b/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/package.json new file mode 100644 index 000000000000..211be0da7db9 --- /dev/null +++ b/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "debug": "latest" + }, + "devDependencies" : { + "js-tokens": "^9.0.0" + } +} \ No newline at end of file diff --git a/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/yarn.lock b/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/yarn.lock new file mode 100644 index 000000000000..9f7b3d06857c --- /dev/null +++ b/pkg/fanal/analyzer/language/nodejs/yarn/testdata/latest-version/yarn.lock @@ -0,0 +1,20 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +debug@latest: + version "4.3.5" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +js-tokens@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz" + integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== \ No newline at end of file diff --git a/pkg/fanal/analyzer/language/nodejs/yarn/yarn_test.go b/pkg/fanal/analyzer/language/nodejs/yarn/yarn_test.go index 201629335b7a..6684f0fa4740 100644 --- a/pkg/fanal/analyzer/language/nodejs/yarn/yarn_test.go +++ b/pkg/fanal/analyzer/language/nodejs/yarn/yarn_test.go @@ -354,6 +354,61 @@ func Test_yarnLibraryAnalyzer_Analyze(t *testing.T) { }, }, }, + { + name: "package uses `latest` version", + dir: "testdata/latest-version", + want: &analyzer.AnalysisResult{ + Applications: []types.Application{ + { + Type: types.Yarn, + FilePath: "yarn.lock", + Packages: types.Packages{ + { + ID: "debug@4.3.5", + Name: "debug", + Version: "4.3.5", + Relationship: types.RelationshipDirect, + Locations: []types.Location{ + { + StartLine: 5, + EndLine: 10, + }, + }, + DependsOn: []string{ + "ms@2.1.2", + }, + }, + { + ID: "js-tokens@9.0.0", + Name: "js-tokens", + Version: "9.0.0", + Relationship: types.RelationshipDirect, + Dev: true, + Locations: []types.Location{ + { + StartLine: 12, + EndLine: 15, + }, + }, + }, + { + ID: "ms@2.1.2", + Name: "ms", + Version: "2.1.2", + Indirect: true, + Relationship: types.RelationshipIndirect, + Locations: []types.Location{ + { + StartLine: 17, + EndLine: 20, + }, + }, + }, + }, + }, + }, + }, + }, { name: "happy path with alias rewrite", dir: "testdata/alias",