Skip to content

Commit c2a222d

Browse files
fix(test): stop hardcoding the declared @loopover/engine dependency range
buildEngineVersionDisplay's regression test hardcoded its expected fallback as the literal string "^3.0.0" -- read live from packages/loopover-miner/package.json instead, so a real release bump (confirmed live: the linked-versions release group, #7123, bumped it to ^3.2.1 and broke this) can never silently make the test assert the wrong value again.
1 parent ec15d24 commit c2a222d

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

test/unit/miner-status.test.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { chmodSync, mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
1+
import { chmodSync, mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
22
import { tmpdir } from "node:os";
33
import { dirname, join } from "node:path";
44
import { resolveEventLedgerDbPath } from "../../packages/loopover-miner/lib/event-ledger.js";
@@ -20,6 +20,14 @@ import {
2020
} from "../../packages/loopover-miner/lib/status.js";
2121
import { initLaptopState } from "../../packages/loopover-miner/lib/laptop-init.js";
2222

23+
// Read live, never hardcode: a hardcoded snapshot of this range (e.g. "^3.0.0") goes stale the moment
24+
// packages/loopover-miner/package.json's @loopover/engine dependency is bumped by a real release, and
25+
// silently starts asserting the WRONG expected value instead of failing loudly (confirmed live: the
26+
// linked-versions release group, #7123, bumped it to ^3.2.1 and broke a hardcoded "^3.0.0" here).
27+
const DECLARED_ENGINE_DEPENDENCY_RANGE: string = JSON.parse(
28+
readFileSync("packages/loopover-miner/package.json", "utf8"),
29+
).dependencies["@loopover/engine"];
30+
2331
const roots: string[] = [];
2432

2533
function tempRoot() {
@@ -66,15 +74,15 @@ describe("loopover-miner status/doctor (#2288)", () => {
6674
// A self-hoster asking "what's installed" needs the real resolved semver (matching what doctor's own
6775
// engine-version-skew check already shows), not the declared dependency range.
6876
expect(status.engine.version).toBe(readInstalledEnginePackageVersion());
69-
expect(status.engine.version).not.toBe("^3.0.0");
77+
expect(status.engine.version).not.toBe(DECLARED_ENGINE_DEPENDENCY_RANGE);
7078
});
7179

7280
it("buildEngineVersionDisplay prefers a real resolved version when available", () => {
7381
expect(buildEngineVersionDisplay(() => "9.9.9")).toBe("9.9.9");
7482
});
7583

7684
it("REGRESSION: buildEngineVersionDisplay falls back to the declared dependency range when real resolution comes up empty", () => {
77-
expect(buildEngineVersionDisplay(() => null)).toBe("^3.0.0");
85+
expect(buildEngineVersionDisplay(() => null)).toBe(DECLARED_ENGINE_DEPENDENCY_RANGE);
7886
});
7987

8088
it("collectStatus prefers LOOPOVER_MINER_VERSION over package.json (#4310)", () => {

0 commit comments

Comments
 (0)