mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-30 19:21:32 -07:00
68 lines
1.8 KiB
TypeScript
68 lines
1.8 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { reloadOverlayWindowsForYomitanContentScripts } from './yomitan-extension-overlay-reload';
|
|
|
|
test('reloadOverlayWindowsForYomitanContentScripts reloads only live overlay windows', () => {
|
|
const calls: string[] = [];
|
|
const windows = [
|
|
{
|
|
isDestroyed: () => false,
|
|
webContents: {
|
|
isDestroyed: () => false,
|
|
reload: () => calls.push('live'),
|
|
},
|
|
},
|
|
{
|
|
isDestroyed: () => true,
|
|
webContents: {
|
|
isDestroyed: () => false,
|
|
reload: () => calls.push('destroyed-window'),
|
|
},
|
|
},
|
|
{
|
|
isDestroyed: () => false,
|
|
webContents: {
|
|
isDestroyed: () => true,
|
|
reload: () => calls.push('destroyed-webcontents'),
|
|
},
|
|
},
|
|
{
|
|
isDestroyed: () => false,
|
|
webContents: {
|
|
isDestroyed: () => false,
|
|
isLoading: () => true,
|
|
reload: () => calls.push('loading-webcontents'),
|
|
},
|
|
},
|
|
];
|
|
|
|
assert.equal(reloadOverlayWindowsForYomitanContentScripts(windows), 1);
|
|
assert.deepEqual(calls, ['live']);
|
|
});
|
|
|
|
test('reloadOverlayWindowsForYomitanContentScripts retries loading webContents after load', () => {
|
|
const calls: string[] = [];
|
|
let finishLoad: (() => void) | null = null;
|
|
const window = {
|
|
isDestroyed: () => false,
|
|
webContents: {
|
|
isDestroyed: () => false,
|
|
isLoading: () => true,
|
|
once: (event: 'did-finish-load', listener: () => void) => {
|
|
assert.equal(event, 'did-finish-load');
|
|
finishLoad = listener;
|
|
},
|
|
reload: () => calls.push('reloaded-after-load'),
|
|
},
|
|
};
|
|
|
|
assert.equal(reloadOverlayWindowsForYomitanContentScripts([window]), 0);
|
|
assert.deepEqual(calls, []);
|
|
|
|
assert.ok(finishLoad);
|
|
const finish = finishLoad as () => void;
|
|
finish();
|
|
|
|
assert.deepEqual(calls, ['reloaded-after-load']);
|
|
});
|