16 lines
926 B
JavaScript
16 lines
926 B
JavaScript
'use strict';
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const vm = require('node:vm');
|
|
const { test } = require('node:test');
|
|
|
|
test('Games route loads the source scan button handler without visiting Protection first', async () => {
|
|
const loaded = [];
|
|
const window = {};
|
|
const document = { createElement: () => ({ dataset: {}, addEventListener(event, callback) { if (event === 'load') this.complete = callback; } }), head: { appendChild(script) { loaded.push(script.src); script.complete(); } } };
|
|
vm.runInNewContext(fs.readFileSync('renderer/bootstrap.js', 'utf8'), { window, document, console });
|
|
await window.ChimeraModuleLoader.ensureForPage('games');
|
|
const scanOwners = loaded.filter(file => fs.existsSync(`renderer/${file}`) && fs.readFileSync(`renderer/${file}`, 'utf8').includes("$('btn-rescan-game-sources').addEventListener"));
|
|
assert.equal(scanOwners.length, 1);
|
|
});
|