fix(anki): snapshot mining media clip timing (#197)

This commit is contained in:
2026-08-14 21:50:32 -07:00
committed by GitHub
parent 8ddc151435
commit c5a77ac067
9 changed files with 157 additions and 6 deletions
+44
View File
@@ -1,6 +1,7 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import {
captureLiveSubtitleMiningContext,
copyCurrentSubtitle,
handleMineSentenceDigit,
handleMultiCopyDigit,
@@ -345,3 +346,46 @@ test('handleMineSentenceDigit joins per-entry secondary subtitles when available
tracker.destroy();
}
});
test('captureLiveSubtitleMiningContext snapshots the current line and timings', () => {
const context = captureLiveSubtitleMiningContext(
{ currentSubText: ' 食べる ', currentSubStart: 12.5, currentSubEnd: 15.25 },
() => 1234,
);
assert.deepEqual(context, {
source: 'overlay',
text: '食べる',
startTime: 12.5,
endTime: 15.25,
capturedAtMs: 1234,
});
});
test('captureLiveSubtitleMiningContext rejects missing client, empty text and bad timings', () => {
assert.equal(captureLiveSubtitleMiningContext(null), null);
assert.equal(
captureLiveSubtitleMiningContext({
currentSubText: ' ',
currentSubStart: 1,
currentSubEnd: 2,
}),
null,
);
assert.equal(
captureLiveSubtitleMiningContext({
currentSubText: 'line',
currentSubStart: 5,
currentSubEnd: 5,
}),
null,
);
assert.equal(
captureLiveSubtitleMiningContext({
currentSubText: 'line',
currentSubStart: NaN,
currentSubEnd: 2,
}),
null,
);
});