From 4f669c26e9927fec7338d5a8f2300661841e53f5 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 8 May 2026 13:21:45 -0400 Subject: [PATCH] fix(coverart/test): set MinInterval in rate-limit-serialization tests --- internal/coverart/provider_deezer_test.go | 15 ++++++++++++++- internal/coverart/provider_lastfm_test.go | 18 +++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/internal/coverart/provider_deezer_test.go b/internal/coverart/provider_deezer_test.go index 9717e262..56d8035a 100644 --- a/internal/coverart/provider_deezer_test.go +++ b/internal/coverart/provider_deezer_test.go @@ -173,7 +173,20 @@ func TestDeezer_RateLimit_Serializes(t *testing.T) { })) defer srv.Close() - p := newDeezerTestProvider(t, srv.URL) + old := deezerBaseURL + deezerBaseURL = srv.URL + t.Cleanup(func() { deezerBaseURL = old }) + + // Build a provider WITH the production MinInterval so this test can + // verify the rate-limit actually serializes. Other tests use + // newDeezerTestProvider which leaves MinInterval=0 for speed. + p := &deezerProvider{client: newHTTPClient(httpClientOptions{ + Name: "deezer", + HTTPClient: &http.Client{Timeout: 5 * time.Second}, + MinInterval: deezerMinPeriod, + BaseBackoff: time.Millisecond, + })} + p.enabled.Store(true) start := time.Now() _, _, _ = p.FetchArtistArt(context.Background(), ArtistRef{Name: "A"}) diff --git a/internal/coverart/provider_lastfm_test.go b/internal/coverart/provider_lastfm_test.go index 55783152..ad836546 100644 --- a/internal/coverart/provider_lastfm_test.go +++ b/internal/coverart/provider_lastfm_test.go @@ -353,7 +353,23 @@ func TestLastfm_RateLimit_Serializes(t *testing.T) { })) defer srv.Close() - p := newLastfmTestProvider(t, srv.URL+"/", "test-key") + prevBase := lastfmBaseURL + lastfmBaseURL = srv.URL + "/" + t.Cleanup(func() { lastfmBaseURL = prevBase }) + + // Build a provider WITH the production MinInterval so this test can + // verify the rate-limit actually serializes. Other tests use + // newLastfmTestProvider which leaves MinInterval=0 for speed. + p := &lastfmProvider{client: newHTTPClient(httpClientOptions{ + Name: "lastfm", + HTTPClient: &http.Client{Timeout: 5 * time.Second}, + MinInterval: lastfmMinPeriod, + TreatAuthAsTransient: true, + BaseBackoff: time.Millisecond, + })} + p.enabled.Store(true) + key := "test-key" + p.apiKey.Store(&key) start := time.Now() _, _, _ = p.FetchArtistArt(context.Background(), ArtistRef{Name: "A"})