Files
makelore/tests/unit/pi-release-proof-wiring.test.ts

52 lines
2.9 KiB
TypeScript

import { readFile } from 'node:fs/promises';
import { resolve } from 'node:path';
import { describe, expect, it } from 'vitest';
describe('Pi packaged release proof wiring', () => {
it('keeps extension and proxy Provider scenarios assigned to their own proof entrypoints', async () => {
const source = await readFile(
resolve('electron/coding-runtime/pi/release-proof.ts'),
'utf8',
);
const extensionStart = source.indexOf('export async function runFinalAsarExtensionProof');
const proxyStart = source.indexOf('export async function startFinalAsarProxyCompositionProof');
const resilienceStart = source.indexOf('export async function startFinalAsarResilienceProof');
expect(extensionStart).toBeGreaterThan(-1);
expect(proxyStart).toBeGreaterThan(extensionStart);
expect(resilienceStart).toBeGreaterThan(proxyStart);
expect(source.slice(extensionStart, proxyStart))
.toContain("startLocalProofProvider('subagent')");
expect(source.slice(extensionStart, proxyStart))
.not.toContain("startLocalProofProvider('submit-rejection')");
expect(source.slice(proxyStart, resilienceStart))
.toContain("startLocalProofProvider('submit-rejection')");
expect(source.slice(proxyStart, resilienceStart))
.not.toContain("startLocalProofProvider('subagent')");
});
it('wires the packaged resilience proof through Main background and intentional-dispose seams', async () => {
const [mainSource, proofSource, scriptSource] = await Promise.all([
readFile(resolve('electron/main/index.ts'), 'utf8'),
readFile(resolve('electron/coding-runtime/pi/release-proof.ts'), 'utf8'),
readFile(resolve('scripts/run-pi-subagent-packaged-smoke.mjs'), 'utf8'),
]);
expect(mainSource).toContain("codingProducts?.sleep('background_sleep')");
expect(mainSource).toContain('acquireBackgroundLease: (lease) => backgroundLifecycle!');
expect(proofSource).toContain("runtime.dispose(run.targetConversationId, 'test_injection')");
expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.idle-status')");
expect(scriptSource).toContain('setMainWindowVisible(electronApplication, false)');
expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.dispose-target')");
expect(proofSource).toContain('const PROOF_MUTATION_CONFIRMATION_DELAY_MS = 12_000;');
expect(proofSource).toContain('delayNextTopLevelConfirmationForProof');
expect(mainSource).toContain("'resilience.arm-compact-delay'");
expect(mainSource).toContain("'resilience.arm-prompt-delay'");
expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.arm-compact-delay')");
expect(scriptSource).toContain("evaluateProof(electronApplication, 'resilience.arm-prompt-delay')");
expect(scriptSource).toContain("status?.target?.errorCode === 'CODING_REQUEST_UNCERTAIN'");
expect(scriptSource).toContain('status?.target?.completedCompactions >= 1');
});
});