fix: preserve user dictionary ordering

This commit is contained in:
2026-03-06 01:34:44 -08:00
parent 69fd69c0b2
commit 2f31227471
2 changed files with 17 additions and 5 deletions

View File

@@ -472,6 +472,11 @@ test('dictionary settings helpers upsert and remove dictionary entries', async (
{
options: {
dictionaries: [
{
name: 'Jitendex',
alias: 'Jitendex',
enabled: true,
},
{
name: 'SubMiner Character Dictionary (AniList 1)',
alias: 'SubMiner Character Dictionary (AniList 1)',
@@ -506,6 +511,18 @@ test('dictionary settings helpers upsert and remove dictionary entries', async (
assert.equal(removed, true);
const setCalls = scripts.filter((script) => script.includes('setAllSettings')).length;
assert.equal(setCalls, 2);
const upsertScript = scripts.find(
(script) =>
script.includes('setAllSettings') && script.includes('"SubMiner Character Dictionary (AniList 1)"'),
);
assert.ok(upsertScript);
const jitendexOffset = upsertScript?.indexOf('"Jitendex"') ?? -1;
const subMinerOffset = upsertScript?.indexOf('"SubMiner Character Dictionary (AniList 1)"') ?? -1;
assert.equal(jitendexOffset >= 0, true);
assert.equal(subMinerOffset >= 0, true);
assert.equal(jitendexOffset < subMinerOffset, true);
assert.match(upsertScript ?? '', /"enabled":true/);
});
test('importYomitanDictionaryFromZip uses settings automation bridge instead of custom backend action', async () => {

View File

@@ -1593,11 +1593,6 @@ export async function upsertYomitanDictionarySettings(
existing.alias = normalizedTitle;
changed = true;
}
if (existingIndex > 0) {
dictionaries.splice(existingIndex, 1);
dictionaries.unshift(existing);
changed = true;
}
continue;
}