fix(library): first-pass enrich gate skips post-resolve skeletons
isActive() for book/game/comic only checked for a resolved id, so a note that had run resolve() but never a real sync() (no read_status/ play_status/status field yet) was treated as static and never enriched on subsequent runs. Now also requires the status-analog field canonical render always writes; missing it means sync() hasn't actually produced output yet.
This commit is contained in:
parent
6225231d67
commit
1d5537742f
6 changed files with 41 additions and 11 deletions
|
|
@ -194,6 +194,12 @@ describe('bookSpec.isActive', () => {
|
|||
test('olid set + Unread -> static', () => {
|
||||
expect(bookSpec.isActive({ olid: 'OL1168083W', read_status: 'Unread' })).toBe(false);
|
||||
});
|
||||
test('olid set, read_status missing (post-resolve skeleton) -> active (C1)', () => {
|
||||
expect(bookSpec.isActive({ olid: 'OL1168083W' })).toBe(true);
|
||||
});
|
||||
test('canonical enriched note (olid + read_status both present) -> static', () => {
|
||||
expect(bookSpec.isActive({ olid: 'OL1168083W', read_status: 'Unread' })).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
function ctxFor(fm: Record<string, string>, body = '## My Notes\n\n'): LibraryNoteCtx {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue