test(coverart): DrainsNullSourceOnly — stamp id2 'none' at current version
The test marked id2 'none' via SetAlbumCover, which (covers.sql:42)
does NOT set cover_art_sources_version. ListAlbumsMissingCover treats
'none' AND version != current as eligible, so id2 (version 0, current
1) was wrongly drained → processed=2. The comment's intent ("'none'
with current version → not drained") requires SetAlbumCoverWithVersion
(albums.sql) stamped with the live GetCurrentSourcesVersion — the same
value EnrichBatch compares against. Test-only.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -262,18 +262,27 @@ func TestEnrichBatch_DrainsNullSourceOnly(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
id2, _ := seedAlbumWithTrack(t, pool, "Drain2", "B", "")
|
id2, _ := seedAlbumWithTrack(t, pool, "Drain2", "B", "")
|
||||||
// Pre-mark id2 as 'none' with current version — should NOT be drained by EnrichBatch
|
|
||||||
// (ListAlbumsMissingCover only returns stale-version 'none').
|
|
||||||
src := "none"
|
|
||||||
if err := dbq.New(pool).SetAlbumCover(context.Background(), dbq.SetAlbumCoverParams{
|
|
||||||
ID: id2, Column2: "", CoverArtSource: &src,
|
|
||||||
}); err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
resetRegistryForTests() // deterministic empty registry
|
resetRegistryForTests() // deterministic empty registry
|
||||||
t.Cleanup(resetRegistryForTests)
|
t.Cleanup(resetRegistryForTests)
|
||||||
e := newTestEnricher(t, pool)
|
e := newTestEnricher(t, pool)
|
||||||
|
|
||||||
|
// Pre-mark id2 as 'none' AT the current sources version so
|
||||||
|
// ListAlbumsMissingCover excludes it (it only returns NULL or
|
||||||
|
// stale-version 'none'). SetAlbumCover does NOT stamp the version;
|
||||||
|
// SetAlbumCoverWithVersion does — use the live current version, the
|
||||||
|
// same value EnrichBatch compares against.
|
||||||
|
curVer, err := dbq.New(pool).GetCurrentSourcesVersion(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("current version: %v", err)
|
||||||
|
}
|
||||||
|
src := "none"
|
||||||
|
if err := dbq.New(pool).SetAlbumCoverWithVersion(context.Background(), dbq.SetAlbumCoverWithVersionParams{
|
||||||
|
ID: id2, CoverArtPath: nil, CoverArtSource: &src, CoverArtSourcesVersion: curVer,
|
||||||
|
}); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
processed, _, _, err := e.EnrichBatch(context.Background(), 100, nil)
|
processed, _, _, err := e.EnrichBatch(context.Background(), 100, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("batch: %v", err)
|
t.Fatalf("batch: %v", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user