Remove markets

This commit is contained in:
2026-10-28 18:33:52 -04:00
parent eea2deb1fb
commit b3a1179703
141 changed files with 554 additions and 17365 deletions
+8 -27
View File
@@ -4,16 +4,18 @@ import { readFile } from 'node:fs/promises';
test('project overview focuses on mining and player-to-player card trades',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,/Mine a block with the native RandomX CPU miner to earn a card/);
assert.match(readme,/algorithm also used by Monero/);
assert.match(readme,/consumer CPUs competitive/);
assert.match(readme,/trade cards directly with another player/);
assert.match(readme,/not part of the default card-trading experience/);
assert.match(readme,/WIKIDECK_MARKET_RUNTIME_ENABLED=1/);
assert.match(readme,/docs\/card-only-production-plan\.md/);
assert.doesNotMatch(readme,/## Peer ownership and customization/);
assert.match(readme,/does not yet contain a project LICENSE file/);
for(const name of ['../compose.yaml','../compose.testnet.yaml'])
assert.match(await readFile(new URL(name,import.meta.url),'utf8'),/WIKIDECK_MARKET_RUNTIME_ENABLED:.*:-0/);
const plan=await readFile(new URL('../docs/card-only-production-plan.md',import.meta.url),'utf8');
assert.match(plan,/Markets and real money/);
assert.match(plan,/Mainnet or valuable cards/);
for(const name of ['../compose.yaml','../compose.testnet.yaml','../compose.mainnet.yaml'])
assert.doesNotMatch(await readFile(new URL(name,import.meta.url),'utf8'),/MARKET|CUSTODY|PAYMENT_MODE/);
});
test('homepage presents mining, collections, and direct card trading without marketplace UI',async()=>{
const app=await readFile(new URL('../src/App.tsx',import.meta.url),'utf8');
@@ -22,28 +24,7 @@ test('homepage presents mining, collections, and direct card trading without mar
assert.match(app,/designed to resist specialized ASICs/);
assert.match(app,/ASIC resistance is a design goal, not a guarantee/);
assert.match(app,/Trade cards directly with another collector/);
assert.doesNotMatch(app,/Marketplace|Custody preview|fixed-price listings/);
assert.doesNotMatch(app,/marketplace|custody preview|fixed-price listings/i);
assert.match(app,/<details className="mining-details"><summary>Want to run a miner\? Setup &amp; safety details/);
assert.match(app,/--consent/); // Documentation-only change: runnable miner invocation keeps its existing required flag.
});
test('market transparency explains real controls without promising escrow, refunds or live payments',async()=>{
const guide=await readFile(new URL('../docs/market-transparency.md',import.meta.url),'utf8');
for(const required of [
/does not process real cryptocurrency payments/,
/Card delivery is real/,
/Listing is not escrow/,
/That would be custodial/,
/30 minutes after auction close/,
/48 hours after mock payment/,
/0\.096500000000 XMR/,
/cannot revoke a signed NFT transfer/,
/no built-in arbitration service/,
/the hosting operator and anyone with its database\/backups can read orders/,
/no live payment integration or supported setting/,
])assert.match(guide,required);
for(const name of ['../README.md','../docs/marketplace.md']){
assert.match(await readFile(new URL(name,import.meta.url),'utf8'),/market-transparency\.md/);
}
// Resolve every workspace-relative Markdown link in the new guide, catching missing documentation.
for(const match of guide.matchAll(/\]\(([^)]+\.md)(?:#[^)]*)?\)/g))await readFile(new URL(`../docs/${match[1]}`,import.meta.url),'utf8');
});