Simplify test data and refactor

This commit is contained in:
Justin Holguín
2025-04-03 16:59:49 +00:00
committed by GitHub
parent 9e875aadac
commit 595d586c88
4 changed files with 65 additions and 26665 deletions
+4 -4
View File
@@ -116,15 +116,15 @@ describe('depgraph', () => {
}); });
}); });
describe('hadoop-tree', () => { describe('cycle-tree', () => {
let depGraph; let depGraph;
beforeAll(() => { beforeAll(() => {
depGraph = parseDependencyJson(getTestDataFile("hadoop-tree")); depGraph = parseDependencyJson(getTestDataFile("cycle-tree"));
}); });
it('should parse out the top level dependencies', () => { it('should parse out the top level dependencies', () => {
const mavenDependencies = new MavenDependencyGraph(depGraph); const mavenDependencies = new MavenDependencyGraph(depGraph);
expect(mavenDependencies.getPackageCount()).to.equal(678); expect(mavenDependencies.getPackageCount()).to.equal(3);
}); });
it('should be able to generate a manifest despite having a cycle', () => { it('should be able to generate a manifest despite having a cycle', () => {
@@ -132,7 +132,7 @@ describe('depgraph', () => {
const manifest = mavenDependencies.createManifest(); const manifest = mavenDependencies.createManifest();
expect(manifest.name).to.equal('hadoop-main'); expect(manifest.name).to.equal('hadoop-main');
expect(manifest.countDependencies()).to.equal(653); expect(manifest.countDependencies()).to.equal(2);
}) })
}); });
+4 -3
View File
@@ -88,14 +88,15 @@ export class MavenDependencyGraph {
function addTransitiveDeps(dependencies, seen: Set<string> = new Set()) { function addTransitiveDeps(dependencies, seen: Set<string> = new Set()) {
if (dependencies) { if (dependencies) {
dependencies.forEach(transitiveDep => { dependencies.forEach(transitiveDep => {
if (seen.has(transitiveDep.packageURL.toString())) { let purl = transitiveDep.packageURL.toString();
if (seen.has(purl)) {
// we're in a cycle! skip this one. // we're in a cycle! skip this one.
return; return;
} }
seen.add(transitiveDep.packageURL.toString()); const transitiveDepArtifact = packageUrlToArtifact[purl];
const transitiveDepArtifact = packageUrlToArtifact[transitiveDep.packageURL.toString()];
const transitiveDepScope = getDependencyScopeForMavenScope(transitiveDepArtifact.scopes); const transitiveDepScope = getDependencyScopeForMavenScope(transitiveDepArtifact.scopes);
manifest.addIndirectDependency(transitiveDep, transitiveDepScope); manifest.addIndirectDependency(transitiveDep, transitiveDepScope);
seen.add(purl);
addTransitiveDeps(transitiveDep.dependencies, seen); addTransitiveDeps(transitiveDep.dependencies, seen);
}); });
} }
@@ -0,0 +1,57 @@
{
"graphName" : "hadoop-main",
"artifacts" : [ {
"id" : "org.apache.hadoop:hadoop-annotations:jar:compile",
"numericId" : 1,
"groupId" : "org.apache.hadoop",
"artifactId" : "hadoop-annotations",
"version" : "3.5.0-SNAPSHOT",
"optional" : false,
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "jdiff:jdiff:jar:provided",
"numericId" : 2,
"groupId" : "jdiff",
"artifactId" : "jdiff",
"version" : "1.0.9",
"optional" : false,
"scopes" : [ "provided" ],
"types" : [ "jar" ]
}, {
"id" : "org.apache.hadoop:hadoop-project-dist:pom:compile",
"numericId" : 3,
"groupId" : "org.apache.hadoop",
"artifactId" : "hadoop-project-dist",
"version" : "3.5.0-SNAPSHOT",
"optional" : false,
"scopes" : [ "compile" ],
"types" : [ "pom" ]
} ],
"dependencies" : [ {
"from" : "org.apache.hadoop:hadoop-annotations:jar:compile",
"to" : "jdiff:jdiff:jar:provided",
"numericFrom" : 1,
"numericTo" : 2,
"resolution" : "INCLUDED"
}, {
"from" : "org.apache.hadoop:hadoop-annotations:jar:compile",
"to" : "jdiff:jdiff:jar:provided",
"numericFrom" : 1,
"numericTo" : 3,
"resolution" : "INCLUDED"
}, {
"from" : "jdiff:jdiff:jar:provided",
"to" : "org.apache.hadoop:hadoop-project-dist:pom:compile",
"numericFrom" : 2,
"numericTo" : 3,
"resolution" : "INCLUDED"
}, {
"from" : "org.apache.hadoop:hadoop-project-dist:pom:compile",
"to" : "jdiff:jdiff:jar:provided",
"numericFrom" : 3,
"numericTo" : 2,
"resolution" : "INCLUDED"
}
]
}
File diff suppressed because it is too large Load Diff