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{