Fix two intermittently failing library tests (closes #90)
check / check (push) Successful in 15s

Library.close() now returns a promise that resolves once the work it
started has finished: an in-flight refresh with its cache write, the ML
data fetch, and running precache sweeps. The interval test could see a
refresh's new state, close, and remove the directory while the write was
still running. Every library test now awaits close(), and a new test
holds a cache write open to prove close() waits for it.

The precache test waited for its stub source to be called, but the cache
records a file only after checking it on disk, so status() could lag. It
now waits for both fills to report "done".

Model: opus-5-5
This commit is contained in:
2026-09-23 01:47:45 +00:00
parent c75c4f987c
commit 4f41e21abf
11 changed files with 167 additions and 62 deletions
+3 -3
View File
@@ -179,7 +179,7 @@ describe("Library.fresh", () => {
// And the change is now live for the default namespaces too.
expect(lib.photos.byID({ fileID: 1002 })?.fileID).toBe(1002);
} finally {
lib.close();
await lib.close();
}
});
@@ -228,7 +228,7 @@ describe("Library.fresh", () => {
expect(reads.photos.byID({ fileID: 1002 })?.fileID).toBe(1002);
}
} finally {
lib.close();
await lib.close();
}
});
@@ -266,7 +266,7 @@ describe("Library.fresh", () => {
);
expect(lib.status().lastError).toBeUndefined();
} finally {
lib.close();
await lib.close();
}
});
});