Files
wikideck/tests/project-copy.test.ts
T
2026-10-20 10:40:18 -04:00

26 lines
1.5 KiB
TypeScript
Executable File

import test from 'node:test';
import assert from 'node:assert/strict';
import { readFile } from 'node:fs/promises';
test('project overview distinguishes mining rewards, peer markets, planned TCGs and current payment status',async()=>{
const readme=await readFile(new URL('../README.md',import.meta.url),'utf8');
assert.match(readme,/mining a block rewards the miner with a collectible card based on a Wikipedia page/);
assert.match(readme,/algorithm also used by Monero/);
assert.match(readme,/consumer CPUs competitive/);
assert.match(readme,/custom games hosted by peers.*planned/);
assert.match(readme,/configurable hosting fee/);
assert.match(readme,/hardcoded \*\*1% author fee\*\*/);
assert.match(readme,/checkout is mock-only/);
assert.match(readme,/does not yet contain a project LICENSE file/);
assert.doesNotMatch(readme,/## Mine only by explicit choice/);
});
test('homepage explains the roadmap without opt-in marketing or implying live XMR checkout',async()=>{
const app=await readFile(new URL('../src/App.tsx',import.meta.url),'utf8');
assert.match(app,/Mine a block\. Earn a Wikipedia NFT card/);
assert.match(app,/ON THE ROADMAP · NOT PLAYABLE YET/);
assert.match(app,/peer-hosted custom TCGs are planned/);
assert.match(app,/today payments and fees are simulated/);
assert.doesNotMatch(app,/EXPLICIT OPT-IN|opt-in RandomX|No browser mining|Only by choice/);
assert.match(app,/--consent/); // Documentation-only change: runnable miner invocation keeps its existing required flag.
});