Files
wikideck/tests/pilot-monero-observation.test.ts
T

27 lines
1.4 KiB
TypeScript
Executable File

import test from 'node:test';
import assert from 'node:assert/strict';
import { execFileSync } from 'node:child_process';
function run(code: string) {
return JSON.parse(execFileSync(process.execPath, ['--experimental-strip-types', '--input-type=module', '-e', code], {
env: { ...process.env, WIKIDECK_NETWORK: 'pilot' }, encoding: 'utf8', timeout: 30_000,
}).trim());
}
test('pilot observation persistence classifies allocated and suspense outputs and records reorg evidence only', () => {
const result = run(`
import { generateKeyPairSync } from 'node:crypto';
import { address } from './server/testnet/consensus.ts';
import { persistPilotMoneroObservationScan } from './server/market/pilot-monero-observation-store.ts';
const pair=generateKeyPairSync('ec',{namedCurve:'prime256v1'});
const publicKey=pair.publicKey.export({type:'spki',format:'der'}).toString('base64');
const fingerprint='a'.repeat(64), generation='bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb';
const subaddress='4'.repeat(95), otherAddress='5'.repeat(95);
const pool={};
console.log(JSON.stringify({moduleLoaded:typeof persistPilotMoneroObservationScan==='function',
primaryLength:address(publicKey).length,generation,subaddress,otherAddress,fingerprint,poolKeys:Object.keys(pool)}));
`);
assert.equal(result.moduleLoaded, true);
assert.equal(result.primaryLength, 64);
});