fix(tokenizer): avoid repeated yomitan anki sync checks on no-change

This commit is contained in:
2026-03-02 01:36:22 -08:00
parent 7161fc3513
commit cde231b1ff
4 changed files with 18 additions and 9 deletions

View File

@@ -44,15 +44,19 @@ test('syncYomitanDefaultAnkiServer updates default profile server when script re
assert.equal(infoLogs.length, 1);
});
test('syncYomitanDefaultAnkiServer returns false when script reports no change', async () => {
test('syncYomitanDefaultAnkiServer returns true when script reports no change', async () => {
const deps = createDeps(async () => ({ updated: false }));
let infoLogCount = 0;
const updated = await syncYomitanDefaultAnkiServer('http://127.0.0.1:8766', deps, {
const synced = await syncYomitanDefaultAnkiServer('http://127.0.0.1:8766', deps, {
error: () => undefined,
info: () => undefined,
info: () => {
infoLogCount += 1;
},
});
assert.equal(updated, false);
assert.equal(synced, true);
assert.equal(infoLogCount, 0);
});
test('syncYomitanDefaultAnkiServer logs and returns false on script failure', async () => {

View File

@@ -846,7 +846,11 @@ export async function syncYomitanDefaultAnkiServer(
logger.info?.(`Updated Yomitan default profile Anki server to ${normalizedTargetServer}`);
return true;
}
return false;
const checkedWithoutUpdate =
typeof result === 'object' &&
result !== null &&
(result as { updated?: unknown }).updated === false;
return checkedWithoutUpdate;
} catch (err) {
logger.error('Failed to sync Yomitan default profile Anki server:', (err as Error).message);
return false;