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;

View File

@@ -2627,7 +2627,7 @@ async function syncYomitanDefaultProfileAnkiServer(): Promise<void> {
return;
}
const updated = await syncYomitanDefaultAnkiServerCore(
const synced = await syncYomitanDefaultAnkiServerCore(
targetUrl,
{
getYomitanExt: () => appState.yomitanExt,
@@ -2654,8 +2654,7 @@ async function syncYomitanDefaultProfileAnkiServer(): Promise<void> {
},
);
if (updated) {
logger.info(`Yomitan default profile Anki server set to ${targetUrl}`);
if (synced) {
lastSyncedYomitanAnkiServer = targetUrl;
}
}