testRegistryViewAsksAgain
The registry is asked again when it didn't answer, not when the package isn't there.
import { registryView } from "#codebase/tcmts/loader/packages"; import type { Viewed } from "#codebase/tcmts/loader/packages"; import assert from "node:assert/strict"; export const testRegistryViewAsksAgain = () => { const answers = (...rs: Viewed[]) => { const asked: string[][] = []; return { asked, view: (a: string[]) => (asked.push(a), rs[asked.length - 1] ?? rs.at(-1)!) }; }; const paused: number[] = []; const pause = (ms: number) => void paused.push(ms); const timeout = { status: 1, stdout: "", stderr: "npm error code ETIMEDOUT" }; const ok = { status: 0, stdout: '"0.75.0"', stderr: "" }; const flaky = answers(timeout, ok); assert.equal(registryView(["oxfmt@0.75", "version"], flaky.view, pause), ok); assert.equal(flaky.asked.length, 2); assert.deepEqual(paused, [500]); const missing = answers({ status: 1, stdout: "", stderr: "npm error code E404\nnpm error 404 Not Found", }); assert.equal(registryView(["nope"], missing.view, pause).status, 1); assert.equal(missing.asked.length, 1); const down = answers(timeout); assert.equal(registryView(["oxfmt"], down.view, pause), timeout); assert.equal(down.asked.length, 3); }