diff --git a/src/anki-integration/field-grouping-merge.test.ts b/src/anki-integration/field-grouping-merge.test.ts index 4e3fdb56..8a6c0d44 100644 --- a/src/anki-integration/field-grouping-merge.test.ts +++ b/src/anki-integration/field-grouping-merge.test.ts @@ -394,7 +394,7 @@ test('Senren merge closes unclosed group spans so later scenes stay siblings', a assert.equal(openTags, closeTags); }); -test('computeFieldGroupingMergedFields clears SentenceFurigana when either note lacks it', async () => { +test('Kiku merge clears SentenceFurigana when either note lacks it', async () => { const { collaborator } = createCollaborator(); const merged = await collaborator.computeFieldGroupingMergedFields( @@ -411,3 +411,21 @@ test('computeFieldGroupingMergedFields clears SentenceFurigana when either note assert.equal(merged.SentenceFurigana, ''); }); + +test('Senren merge keeps duplicate SentenceFurigana when the kept field is empty', async () => { + const { collaborator } = createCollaborator({ fieldGroupingProvider: 'senren' }); + + const merged = await collaborator.computeFieldGroupingMergedFields( + 300, + 200, + makeNote(300, { + SentenceFurigana: '', + }), + makeNote(200, { + SentenceFurigana: 'duplicate furigana', + }), + false, + ); + + assert.equal(merged.SentenceFurigana, 'duplicate furigana'); +}); diff --git a/src/anki-integration/field-grouping-merge.ts b/src/anki-integration/field-grouping-merge.ts index a79f3091..7c996757 100644 --- a/src/anki-integration/field-grouping-merge.ts +++ b/src/anki-integration/field-grouping-merge.ts @@ -162,8 +162,11 @@ export class FieldGroupingMergeCollaborator { if (!existingValue.trim() && !newValue.trim()) continue; if (keepFieldNormalized === 'sentencefurigana') { + const hasBothValues = existingValue.trim().length > 0 && newValue.trim().length > 0; + const usesSenrenGrouping = + this.deps.getEffectiveSentenceCardConfig().fieldGroupingProvider === 'senren'; mergedFields[keepFieldName] = - existingValue.trim() && newValue.trim() + hasBothValues || usesSenrenGrouping ? this.applyFieldGrouping( existingValue, newValue,