fix(server,web): forward-fix CI lint + vitest failures
- gofmt -s on system.go, system_cron.go, api.go - rename unused r → _ in 3 fetcher_test.go HTTP handlers - TrackRow +queue test uses /add .* to queue/i (track-aware aria-label from #377) - /library/artists page test mocks likes + tanstack-query (ArtistCard now embeds LikeButton) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+8
-8
@@ -29,15 +29,15 @@ func Mount(r chi.Router, pool *pgxpool.Pool, logger *slog.Logger, events *playev
|
||||
rng := rand.New(rand.NewSource(rand.Int63()))
|
||||
h := &handlers{
|
||||
pool: pool, logger: logger, events: events, recCfg: recCfg,
|
||||
rng: rng.Float64,
|
||||
lidarrCfg: lidarrCfg,
|
||||
lidarrRequests: lidarrReqs,
|
||||
lidarrQuarantine: lidarrQuar,
|
||||
tracks: tracksSvc,
|
||||
playlists: playlistsSvc,
|
||||
coverart: coverEnricher,
|
||||
rng: rng.Float64,
|
||||
lidarrCfg: lidarrCfg,
|
||||
lidarrRequests: lidarrReqs,
|
||||
lidarrQuarantine: lidarrQuar,
|
||||
tracks: tracksSvc,
|
||||
playlists: playlistsSvc,
|
||||
coverart: coverEnricher,
|
||||
coverArtBackfillCap: coverBackfillCap,
|
||||
dataDir: dataDir,
|
||||
dataDir: dataDir,
|
||||
}
|
||||
|
||||
r.Route("/api", func(api chi.Router) {
|
||||
|
||||
@@ -38,7 +38,7 @@ func TestFetcher_Success(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFetcher_NotFound(t *testing.T) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
||||
http.Error(w, "not found", http.StatusNotFound)
|
||||
}))
|
||||
defer srv.Close()
|
||||
@@ -50,7 +50,7 @@ func TestFetcher_NotFound(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFetcher_5xxIsTransient(t *testing.T) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
||||
http.Error(w, "boom", http.StatusInternalServerError)
|
||||
}))
|
||||
defer srv.Close()
|
||||
@@ -81,7 +81,7 @@ func TestFetcher_SendsUserAgent(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFetcher_RateLimitSpacesCalls(t *testing.T) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
||||
_, _ = w.Write([]byte("ok"))
|
||||
}))
|
||||
defer srv.Close()
|
||||
|
||||
@@ -82,12 +82,12 @@ const systemMixLength = 25
|
||||
// JitterMagnitude is 0 because daily determinism comes from tieBreakHash;
|
||||
// any randomness would defeat the within-day stability invariant.
|
||||
var systemMixWeights = recommendation.ScoringWeights{
|
||||
BaseWeight: 1.0,
|
||||
LikeBoost: 2.0,
|
||||
RecencyWeight: 1.0,
|
||||
SkipPenalty: 2.0,
|
||||
JitterMagnitude: 0.0,
|
||||
ContextWeight: 0.5,
|
||||
BaseWeight: 1.0,
|
||||
LikeBoost: 2.0,
|
||||
RecencyWeight: 1.0,
|
||||
SkipPenalty: 2.0,
|
||||
JitterMagnitude: 0.0,
|
||||
ContextWeight: 0.5,
|
||||
SimilarityWeight: 1.5,
|
||||
}
|
||||
|
||||
|
||||
@@ -14,12 +14,12 @@ import (
|
||||
// goroutine. Caller passes a context that's cancelled on graceful shutdown.
|
||||
//
|
||||
// Lifecycle:
|
||||
// 1. Clear any stale in_flight=true rows from a previously crashed process
|
||||
// (safe at startup: by definition, nothing is running yet).
|
||||
// 2. Run once at startup so users catch up after a server restart without
|
||||
// waiting up to 24h.
|
||||
// 3. Tick every 24h; runOnce on each tick.
|
||||
// 4. Exit on context cancellation.
|
||||
// 1. Clear any stale in_flight=true rows from a previously crashed process
|
||||
// (safe at startup: by definition, nothing is running yet).
|
||||
// 2. Run once at startup so users catch up after a server restart without
|
||||
// waiting up to 24h.
|
||||
// 3. Tick every 24h; runOnce on each tick.
|
||||
// 4. Exit on context cancellation.
|
||||
//
|
||||
// Per-user errors are logged but don't halt the loop. Per-cycle errors (e.g.,
|
||||
// "list active users" failed) are logged but the next tick still fires.
|
||||
|
||||
Reference in New Issue
Block a user