Files
PaperClipAI/scripts/ci/pi-intel/test-profile13-pack.mjs
2026-10-02 03:28:42 -05:00

23 lines
1.5 KiB
JavaScript

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { verifyProfile13Selection as verifyNormalPiSelection } from './verify-pack-profile13.mjs';
const valid = () => ({ candidateProviders: { pi: {
qualification: 'qualified',
profileDigest: 'sha256:fe1e6da01b2a9e4c691ca27cf689d2d6de846a93be6b23fc1e103c9addd7b177',
path: 'provider-assets/pi/darwin-x64',
closureDigest: 'sha256:4728e5a4e7fc1ba602c3e219824fb84884b05a06cdd19dd3e521ee312e1b373a',
} } });
test('admits exact default qualified Pi13 only', () => {
const payload = valid(); assert.equal(verifyNormalPiSelection(payload, 'darwin', 'x64'), payload.candidateProviders.pi);
});
for (const [name, change] of [
['old pending qualification', p => p.candidateProviders.pi.qualification = 'pending'],
['stale profile digest', p => p.candidateProviders.pi.profileDigest = 'sha256:' + '0'.repeat(64)],
['stale native closure', p => p.candidateProviders.pi.closureDigest = 'sha256:' + '0'.repeat(64)],
['extra pending provider', p => p.candidateProviders.cursor = { qualification: 'pending' }],
['missing Pi', p => delete p.candidateProviders.pi],
['missing provider map', p => delete p.candidateProviders],
['escaped assets path', p => p.candidateProviders.pi.path = '../provider-assets/pi/darwin-x64'],
['wrong architecture path', p => p.candidateProviders.pi.path = 'provider-assets/pi/darwin-arm64'],
]) test(`rejects ${name}`, () => { const payload = valid(); change(payload); assert.throws(() => verifyNormalPiSelection(payload, 'darwin', 'x64')); });