From c1388805936534af4b465b3911c7f8c06f76e68e Mon Sep 17 00:00:00 2001 From: abhisek Date: Thu, 15 May 2025 10:58:23 +0530 Subject: [PATCH] fix: npm resolver bug --- packagemanager/dependency_resolver.go | 2 +- packagemanager/npm_resolver_test.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packagemanager/dependency_resolver.go b/packagemanager/dependency_resolver.go index cbbc7a0..7378e1c 100644 --- a/packagemanager/dependency_resolver.go +++ b/packagemanager/dependency_resolver.go @@ -82,7 +82,7 @@ func (r *dependencyResolver) resolvePackageDependenciesRecursive( // Skip if already visited packageKey := r.packageKey(packageVersion) - if visitedPackages[packageKey] { + if _, ok := visitedPackages[packageKey]; ok { return nil } diff --git a/packagemanager/npm_resolver_test.go b/packagemanager/npm_resolver_test.go index da5bab3..7af7414 100644 --- a/packagemanager/npm_resolver_test.go +++ b/packagemanager/npm_resolver_test.go @@ -77,6 +77,24 @@ func TestNpmDependencyResolver_ResolveDependencies(t *testing.T) { require.Equal(t, "1.1.0", dependencies[0].Version) }, }, + { + name: "should resolve dependencies for a package up to a given depth", + pkg: &packagev1.PackageVersion{ + Package: &packagev1.Package{ + Name: "react", + Ecosystem: packagev1.Ecosystem_ECOSYSTEM_NPM, + }, + Version: "18.2.0", + }, + includeTransitiveDependencies: true, + transitiveDepth: 2, + assertFn: func(t *testing.T, dependencies []*packagev1.PackageVersion, err error) { + require.NoError(t, err) + require.Equal(t, 2, len(dependencies)) + require.Equal(t, "loose-envify", dependencies[0].Package.Name) + require.Equal(t, "react-dom", dependencies[1].Package.Name) + }, + }, { name: "should resolve all dependencies for a package when transitive dependencies are included", pkg: &packagev1.PackageVersion{