import test from 'node:test' import assert from 'node:assert/strict' import { mkdtempSync, writeFileSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { spawnSync } from 'node:child_process' test('mirror verification selects exactly one platform and refuses absent/ambiguous descriptors', () => { const directory = mkdtempSync(join(tmpdir(), 'evofw-manifest-')) const file = join(directory, 'index.json') const digest = `sha256:${'a'.repeat(64)}` const descriptor = { digest, platform: { os: 'linux', architecture: 'amd64' } } const run = (manifest) => { writeFileSync(file, JSON.stringify(manifest)) return spawnSync(process.execPath, ['scripts/ci/manifest-platform.mjs', file, digest, 'linux/amd64'], { encoding: 'utf8' }) } try { assert.equal(run({ manifests: [descriptor, { ...descriptor, platform: { os: 'linux', architecture: 'arm64' } }] }).stdout, digest) assert.notEqual(run({ manifests: [] }).status, 0) assert.notEqual(run({ manifests: [descriptor, descriptor] }).status, 0) assert.equal(run({ schemaVersion: 2 }).stdout, digest) assert.notEqual(run({ manifests: [{ ...descriptor, digest: 'invalid' }] }).status, 0) } finally { rmSync(directory, { recursive: true, force: true }) } })