diff --git a/src/artifacts/ReleaseExposureReader.test.ts b/src/artifacts/ReleaseExposureReader.test.ts index 26b5ca7411..470c495b0d 100644 --- a/src/artifacts/ReleaseExposureReader.test.ts +++ b/src/artifacts/ReleaseExposureReader.test.ts @@ -1798,7 +1798,7 @@ describe("ReleaseExposureReader packaged probe allowance", () => { } }; - it("keeps probing later packaged images after an unread zero-byte probe", async () => { + it("keeps probing after a zero-byte unread packaged image", async () => { const root = await createTestTempDirectory("rea-release-unread-probe-"); const broken = Buffer.alloc(8192); broken.set([0x7f, 0x45, 0x4c, 0x46], 0); @@ -1816,15 +1816,19 @@ describe("ReleaseExposureReader packaged probe allowance", () => { (reader) => { const open = reader.open.bind(reader); reader.open = (entry, signal) => { - if (!entry.path.endsWith("01-broken.node")) return open(entry, signal); + if (!entry.path.endsWith("01-broken.node")) { + return open(entry, signal); + } brokenOpens += 1; - return Promise.reject(new Error("member read failed")); + return brokenOpens === 1 + ? open(entry, signal) + : Promise.reject(new Error("member read failed")); }; return reader; }, () => inspect(root), ); - expect(brokenOpens).toBe(1); + expect(brokenOpens).toBe(2); expect(scanned.coverage).toBe("unknown"); expect(scanned.limitations).toContainEqual( expect.stringMatching( @@ -1838,14 +1842,11 @@ describe("ReleaseExposureReader packaged probe allowance", () => { ); expect(scanned.limitations.join("\n")).toContain("was not expanded"); expect(scanned.omitted).toContainEqual( - expect.objectContaining({ - subject: "embedded package probes", - count: 1, - }), + expect.objectContaining({ subject: "embedded package probes", count: 1 }), ); }); - it("charges partial bytes of an unread probe to the packaged allowance", async () => { + it("charges partial unread bytes to the packaged allowance", async () => { const root = await createTestTempDirectory("rea-release-partial-probe-"); const elf = (size: number): Buffer => { const bytes = Buffer.alloc(size); @@ -1871,14 +1872,16 @@ describe("ReleaseExposureReader packaged probe allowance", () => { source.open = (entry, signal) => { if (entry.path.endsWith("01-first.node")) { firstOpens += 1; - return Promise.resolve( - Readable.from( - (function* (): Generator { - yield Buffer.alloc(4096); - throw new Error("damaged image"); - })(), - ), - ); + if (firstOpens > 1) { + return Promise.resolve( + Readable.from( + (function* (): Generator { + yield Buffer.alloc(4096); + throw new Error("damaged image"); + })(), + ), + ); + } } if (entry.path.endsWith("02-second.node")) secondOpens += 1; return open(entry, signal); @@ -1893,8 +1896,8 @@ describe("ReleaseExposureReader packaged probe allowance", () => { ), ); if (!result.ok) throw result.error; - expect(firstOpens).toBe(1); - expect(secondOpens).toBe(0); + expect(firstOpens).toBe(2); + expect(secondOpens).toBe(2); expect(result.value.limitations).toContainEqual( expect.stringMatching( /^Did not probe .*01-first\.node for an embedded package\.$/u,