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

Library.close() now returns a promise that resolves once an in-flight
refresh, including its cache write, has finished. A refresh changes RAM
before it writes the cache file, so the interval test could see the new
state, close, and remove the directory while the write was still running.
The library tests now await close().

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:26:12 +00:00
parent 28a2beeab8
commit 307f1713c8
5 changed files with 67 additions and 28 deletions
+5 -2
View File
@@ -73,7 +73,7 @@ if (photo) {
console.log(`original at ${path}`);
}
lib.close();
await lib.close();
```
The lower-level `Client` (login, session serialization, and the raw
@@ -563,7 +563,10 @@ and pass it. The three pools default to 10 / 5 / 25 (see Request pools below).
`lib.status()` returns a `LibraryStatus` (collection/file counts, last
refresh/ML times and errors, originals usage and effective limit, precache
progress, and `closed`). `lib.close()` stops the background timer; it is
idempotent, and an in-flight refresh is left to finish.
idempotent, and an in-flight refresh is left to finish. The promise it returns
resolves once that refresh, including its cache write, has finished, so the
cache directory can then be removed; precache fetches already running are not
waited for.
### Default reads vs. fresh reads