Overlay 2.0 (#12)

This commit is contained in:
2026-03-01 02:36:51 -08:00
committed by GitHub
parent 45df3c466b
commit 44c7761c7c
397 changed files with 15139 additions and 7127 deletions

View File

@@ -209,6 +209,24 @@ test('AnkiIntegration.refreshKnownWordCache deduplicates concurrent refreshes',
}
});
test('AnkiIntegration does not allocate proxy server when proxy transport is disabled', () => {
const integration = new AnkiIntegration(
{
enabled: true,
proxy: {
enabled: false,
},
} as never,
{} as never,
{} as never,
);
const privateState = integration as unknown as {
proxyServer: unknown | null;
};
assert.equal(privateState.proxyServer, null);
});
test('FieldGroupingMergeCollaborator synchronizes ExpressionAudio from merged SentenceAudio', async () => {
const collaborator = createFieldGroupingMergeCollaborator();
@@ -266,3 +284,35 @@ test('FieldGroupingMergeCollaborator uses generated media fallback when source l
assert.equal(merged.SentenceAudio, '<span data-group-id="22">[sound:generated.mp3]</span>');
});
test('FieldGroupingMergeCollaborator deduplicates identical sentence, audio, and image values when merging into a new duplicate card', async () => {
const collaborator = createFieldGroupingMergeCollaborator();
const merged = await collaborator.computeFieldGroupingMergedFields(
202,
101,
{
noteId: 202,
fields: {
Sentence: { value: 'same sentence' },
SentenceAudio: { value: '[sound:same.mp3]' },
Picture: { value: '<img src="same.png">' },
ExpressionAudio: { value: '[sound:same.mp3]' },
},
},
{
noteId: 101,
fields: {
Sentence: { value: 'same sentence' },
SentenceAudio: { value: '[sound:same.mp3]' },
Picture: { value: '<img src="same.png">' },
},
},
false,
);
assert.equal(merged.Sentence, '<span data-group-id="202">same sentence</span>');
assert.equal(merged.SentenceAudio, '<span data-group-id="202">[sound:same.mp3]</span>');
assert.equal(merged.Picture, '<img data-group-id="202" src="same.png">');
assert.equal(merged.ExpressionAudio, merged.SentenceAudio);
});