mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-24 00:11:27 -07:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { createOpenYomitanSettingsHandler } from './yomitan-settings-opener';
|
|
|
|
test('yomitan opener warns when extension cannot be loaded', async () => {
|
|
const logs: string[] = [];
|
|
const openSettings = createOpenYomitanSettingsHandler({
|
|
ensureYomitanExtensionLoaded: async () => null,
|
|
openYomitanSettingsWindow: () => {
|
|
throw new Error('should not open');
|
|
},
|
|
getExistingWindow: () => null,
|
|
setWindow: () => {},
|
|
logWarn: (message) => logs.push(message),
|
|
logError: () => logs.push('error'),
|
|
});
|
|
|
|
openSettings();
|
|
await Promise.resolve();
|
|
await Promise.resolve();
|
|
assert.ok(logs.includes('Unable to open Yomitan settings: extension failed to load.'));
|
|
});
|
|
|
|
test('yomitan opener opens settings window when extension is available', async () => {
|
|
let opened = false;
|
|
const openSettings = createOpenYomitanSettingsHandler({
|
|
ensureYomitanExtensionLoaded: async () => ({ id: 'ext' }),
|
|
openYomitanSettingsWindow: () => {
|
|
opened = true;
|
|
},
|
|
getExistingWindow: () => null,
|
|
setWindow: () => {},
|
|
logWarn: () => {},
|
|
logError: () => {},
|
|
});
|
|
|
|
openSettings();
|
|
await Promise.resolve();
|
|
await Promise.resolve();
|
|
assert.equal(opened, true);
|
|
});
|