Fix garmin status showing stale connection state
All checks were successful
Deploy / deploy (push) Successful in 1m37s

Fetch fresh user data from database in status endpoint instead of
relying on auth store cookie, which may be stale after token save.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-12 21:45:35 +00:00
parent 6bd5eb663b
commit dbf0c32588
2 changed files with 27 additions and 10 deletions

View File

@@ -9,11 +9,26 @@ import type { User } from "@/types";
// Module-level variable to control mock user in tests
let currentMockUser: User | null = null;
// Create a mock PocketBase client that returns the current mock user
const createMockPb = () => ({
collection: vi.fn(() => ({
getOne: vi.fn(() =>
Promise.resolve(
currentMockUser
? {
...currentMockUser,
garminTokenExpiresAt:
currentMockUser.garminTokenExpiresAt?.toISOString(),
}
: null,
),
),
})),
});
// Mock PocketBase
vi.mock("@/lib/pocketbase", () => ({
createPocketBaseClient: vi.fn(() => ({
collection: vi.fn(),
})),
createPocketBaseClient: vi.fn(() => createMockPb()),
}));
// Mock the auth-middleware module
@@ -23,7 +38,8 @@ vi.mock("@/lib/auth-middleware", () => ({
if (!currentMockUser) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
}
return handler(request, currentMockUser);
const mockPb = createMockPb();
return handler(request, currentMockUser, mockPb);
};
}),
}));