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:
2026-05-04 17:39:06 -04:00
parent 93f54e00a4
commit 0dbe326d8b
6 changed files with 41 additions and 25 deletions
+3 -3
View File
@@ -38,7 +38,7 @@ func TestFetcher_Success(t *testing.T) {
} }
func TestFetcher_NotFound(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) http.Error(w, "not found", http.StatusNotFound)
})) }))
defer srv.Close() defer srv.Close()
@@ -50,7 +50,7 @@ func TestFetcher_NotFound(t *testing.T) {
} }
func TestFetcher_5xxIsTransient(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) http.Error(w, "boom", http.StatusInternalServerError)
})) }))
defer srv.Close() defer srv.Close()
@@ -81,7 +81,7 @@ func TestFetcher_SendsUserAgent(t *testing.T) {
} }
func TestFetcher_RateLimitSpacesCalls(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")) _, _ = w.Write([]byte("ok"))
})) }))
defer srv.Close() defer srv.Close()
+1 -1
View File
@@ -95,7 +95,7 @@ describe('TrackRow', () => {
test('+ queue button calls enqueueTrack and does NOT trigger row play', async () => { test('+ queue button calls enqueueTrack and does NOT trigger row play', async () => {
render(TrackRow, { props: { tracks, index: 0 } }); render(TrackRow, { props: { tracks, index: 0 } });
await fireEvent.click(screen.getByRole('button', { name: /add to queue/i })); await fireEvent.click(screen.getByRole('button', { name: /add .* to queue/i }));
expect(enqueueTrack).toHaveBeenCalledWith(tracks[0]); expect(enqueueTrack).toHaveBeenCalledWith(tracks[0]);
expect(playQueue).not.toHaveBeenCalled(); expect(playQueue).not.toHaveBeenCalled();
}); });
+17 -1
View File
@@ -20,7 +20,23 @@ vi.mock('$lib/api/queries', () => ({
}) })
})); }));
vi.mock('$lib/api/client', () => ({ api: { get: vi.fn() } })); vi.mock('$lib/api/client', () => ({ api: { get: vi.fn() } }));
vi.mock('$lib/player/store.svelte', () => ({ playQueue: vi.fn() })); vi.mock('$lib/player/store.svelte', () => ({
playQueue: vi.fn(),
enqueueTracks: vi.fn()
}));
vi.mock('$lib/api/artists', () => ({
listArtistTracks: vi.fn().mockResolvedValue([])
}));
vi.mock('$lib/api/likes', () => ({
createLikedIdsQuery: () =>
readable({ data: { track_ids: [], album_ids: [], artist_ids: [] }, isPending: false, isError: false }),
likeEntity: vi.fn().mockResolvedValue(undefined),
unlikeEntity: vi.fn().mockResolvedValue(undefined)
}));
vi.mock('@tanstack/svelte-query', async (orig) => {
const actual = (await orig()) as Record<string, unknown>;
return { ...actual, useQueryClient: () => ({ invalidateQueries: vi.fn() }) };
});
import Page from './+page.svelte'; import Page from './+page.svelte';