fix: versions
Node.js CI / CI (push) Failing after 10s
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled

This commit is contained in:
2026-02-03 19:14:31 -08:00
parent d435b9da47
commit df608370a4
2 changed files with 26 additions and 1 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ const isValidSemverRange = (version: string): boolean => {
* @returns The cleaned version string. * @returns The cleaned version string.
*/ */
const cleanVersion = (version: string): string => { const cleanVersion = (version: string): string => {
return version.replace(/^[<=>^~]/, ""); return version.replace(/^[<=>^~]+/, "");
}; };
/** /**
@@ -6,6 +6,7 @@
/* eslint-disable vitest/valid-expect -- Test expectations don't need messages */ /* eslint-disable vitest/valid-expect -- Test expectations don't need messages */
/* eslint-disable max-lines-per-function -- Test suites require many test cases */ /* eslint-disable max-lines-per-function -- Test suites require many test cases */
/* eslint-disable max-lines -- Test suites require many test cases */
/* eslint-disable @typescript-eslint/naming-convention -- Test data uses npm package names and destructured imports */ /* eslint-disable @typescript-eslint/naming-convention -- Test data uses npm package names and destructured imports */
/* eslint-disable @typescript-eslint/consistent-type-assertions -- Required for mocking */ /* eslint-disable @typescript-eslint/consistent-type-assertions -- Required for mocking */
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
@@ -266,6 +267,30 @@ describe("dependencyAnalyzerService", () => {
expect(result[0]?.currentVersion).toBe("^1.0.0"); expect(result[0]?.currentVersion).toBe("^1.0.0");
}); });
it("should handle multi-character version prefixes like >=", async() => {
expect.assertions(2);
const mockNpmService = createMockNpmService();
const oldDate = getDaysAgoIso(15);
mockNpmService.getPackageInfo.mockResolvedValue({
"dist-tags": { latest: "2.0.0" },
"name": "test-package",
"time": { "2.0.0": oldDate },
"versions": { "2.0.0": { version: "2.0.0" } },
});
const { DependencyAnalyzerService }
= await import("../../src/services/dependencyAnalyzerService.js");
const analyzerService = new DependencyAnalyzerService(
mockNpmService as Parameters<typeof DependencyAnalyzerService>[0],
);
const result = await analyzerService.analyzePackageJson({
dependencies: {
"test-package": ">=1.0.0",
},
});
expect(result).toHaveLength(1);
expect(result[0]?.currentVersion).toBe(">=1.0.0");
});
it("should handle npm errors gracefully", async() => { it("should handle npm errors gracefully", async() => {
expect.assertions(1); expect.assertions(1);
const mockNpmService = createMockNpmService(); const mockNpmService = createMockNpmService();