testLockEntriesAreInTheirRanges
Lock entries from elsewhere: one whose version isn't in its range isn't taken, and a library's (keepLocks) don't
move a version this codebase has locked, as a collaborator's newer one does.
import { Codebase } from "#codebase/tcmts/cli/codebase"; import { tempDir } from "#codebase/tcmts/cli/test/e2e/harness"; import assert from "node:assert/strict"; export const testLockEntriesAreInTheirRanges = () => { const session = process.env.TCM_BRANCH; delete process.env.TCM_BRANCH; try { const cb = Codebase.init(tempDir("lock entries")); cb.store.lockVersion("left-pad", "^1.0.0", "1.1.0"); cb.adoptPackages([{ name: "evil", range: "^1.0.0", version: "9.9.9" }]); assert.equal(cb.store.lockedVersion("evil", "^1.0.0"), undefined); cb.adoptPackages([{ name: "left-pad", range: "^1.0.0", version: "1.3.0" }], { keepLocks: true, }); assert.equal(cb.store.lockedVersion("left-pad", "^1.0.0"), "1.1.0"); cb.adoptPackages([{ name: "left-pad", range: "^1.0.0", version: "1.3.0" }]); assert.equal(cb.store.lockedVersion("left-pad", "^1.0.0"), "1.3.0"); } finally { if (session !== undefined) process.env.TCM_BRANCH = session; } }