Skip to content

Commit e498e16

Browse files
Fix flaky upgrade-dependency-version test (#7242)
* Fix flaky upgrade-dependency-version test The test asserted an exact resolved version (4.17.23) for lodash when using a ^4.17.20 constraint, but npm now resolves to 4.18.1. Use semver.satisfies() instead to check that the resolved version satisfies the constraint, making the test resilient to new lodash releases. * Fix flaky add-dependency test for lodash version check Same issue as the upgrade-dependency-version test: the lock file version assertion used startsWith("4.17.") which breaks now that lodash 4.18.1 exists. Use semver.satisfies() instead.
1 parent 300f097 commit e498e16

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

rewrite-javascript/rewrite/test/javascript/recipes/add-dependency.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {Json} from "../../../src/json";
2525
import {RecipeSpec} from "../../../src/test";
2626
import {withDir} from "tmp-promise";
2727
import {findMarker, MarkersKind} from "../../../src";
28+
import * as semver from "semver";
2829

2930
describe("AddDependency", () => {
3031

@@ -346,10 +347,10 @@ describe("AddDependency", () => {
346347
throw new Error(`Expected root dependency lodash to be ^4.17.21, got ${rootPkg?.dependencies?.["lodash"]}`);
347348
}
348349

349-
// lodash should be in node_modules
350+
// lodash should be in node_modules with a version satisfying ^4.17.21
350351
const lodashPkg = lockData.packages["node_modules/lodash"];
351-
if (!lodashPkg?.version?.startsWith("4.17.")) {
352-
throw new Error(`Expected lodash version to start with 4.17., got ${lodashPkg?.version}`);
352+
if (!lodashPkg?.version || !semver.satisfies(lodashPkg.version, "^4.17.21")) {
353+
throw new Error(`Expected lodash version satisfying ^4.17.21, got ${lodashPkg?.version}`);
353354
}
354355

355356
return actual;

rewrite-javascript/rewrite/test/javascript/recipes/upgrade-dependency-version.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {RecipeSpec} from "../../../src/test";
2626
import {withDir} from "tmp-promise";
2727
import * as fs from "fs";
2828
import * as path from "path";
29+
import * as semver from "semver";
2930

3031
describe("UpgradeDependencyVersion", () => {
3132

@@ -505,9 +506,11 @@ describe("UpgradeDependencyVersion", () => {
505506
const marker = findNodeResolutionResult(doc);
506507
expect(marker).toBeDefined();
507508
expect(marker!.dependencies[0].versionConstraint).toBe("^4.17.23");
508-
// The resolved version should still be 4.17.23 (unchanged)
509+
// The resolved version should still satisfy ^4.17.23 (unchanged)
509510
// This proves we didn't run npm install - just updated the constraint
510-
expect(marker!.resolvedDependencies?.[0]?.version).toBe("4.17.23");
511+
const resolvedVersion = marker!.resolvedDependencies?.[0]?.version;
512+
expect(resolvedVersion).toBeDefined();
513+
expect(semver.satisfies(resolvedVersion!, "^4.17.23")).toBe(true);
511514
}
512515
}
513516
)

0 commit comments

Comments
 (0)