scripts/publish-package.test.mjs
Rama main · réplica de lectura del repositorio original.
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { packageIsPublished } from './publish-package.mjs';
test('publication gate waits for npm and rejects different package bytes', async () => {
const version = '1.0.0', integrity = 'sha512-tested';
const lookup = response => packageIsPublished({ version, integrity, request: async () => response });
assert.equal(await lookup(new Response(null, { status: 404 })), false);
assert.equal(await lookup(Response.json({ name: 'devpush', version, dist: { integrity } })), true);
for (const pkg of [
{ name: 'other', version, dist: { integrity } },
{ name: 'devpush', version: '0.9.0', dist: { integrity } },
{ name: 'devpush', version, dist: { integrity: 'sha512-different' } },
]) await assert.rejects(lookup(Response.json(pkg)), /differs from the CI-tested archive/);
await assert.rejects(lookup(new Response(null, { status: 503 })), /npm lookup failed/);
});