Spaces:
Paused
Paused
File size: 1,745 Bytes
4fc5db8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | const fs = require('fs');
const html = fs.readFileSync('hermes_overlay/tools/templates/hermes_futures_desk_luxury.html', 'utf8');
const script = html.match(/<script>([\s\S]*?)<\/script>/)[1];
// Extract just the router bits we need, with a fake `window`/`history`/`document`.
const ROUTER_PAGES_MATCH = script.match(/const ROUTER_PAGES=(\[[^\]]*\]);/)[1];
const ROUTER_LEGACY_MATCH = script.match(/const ROUTER_LEGACY_MAP=(\{[^}]*\});/)[1];
const resolveFnMatch = script.match(/function resolvePageFromHash\(\)\{[\s\S]*?\}\n/)[0];
let hash = '';
const window_ = { location: { get hash(){return hash}, set hash(v){hash=v} } };
const fn = new Function('window', ROUTER_PAGES_MATCH.startsWith('[') ?
`const ROUTER_PAGES=${ROUTER_PAGES_MATCH}; const ROUTER_LEGACY_MAP=${ROUTER_LEGACY_MATCH}; ${resolveFnMatch}; return resolvePageFromHash;` : '');
const resolvePageFromHash = fn(window_);
const cases = [
['#market','market'], ['#trade-plan','trade-plan'], ['#signals','signals'],
['#advisory','advisory'], ['#account','account'], ['#diagnostics','diagnostics'],
['#activity','activity'], ['#data-sources','data-sources'],
['#activityCard','activity'], ['#marketCard','market'], ['#planCard','trade-plan'],
['#signalsCard','signals'], ['#advisoryCard','advisory'], ['#accountCard','account'],
['#insightsCard','diagnostics'], ['#sourcesCard','data-sources'],
['', 'market'], ['#nonsense','market']
];
let ok = true;
for (const [h, expected] of cases) {
window_.location.hash = h;
const got = resolvePageFromHash();
const pass = got === expected;
if (!pass) ok = false;
console.log((pass?'OK ':'FAIL'), JSON.stringify(h), '->', got, pass?'':' expected '+expected);
}
console.log(ok ? 'ALL_ROUTES_OK' : 'ROUTE_FAILURES');
|