fix(public): distinguish unavailable data from empty results and missing pages
This commit is contained in:
1 parent
db4acbb46e
commit
445ef13846
16 files changed
+608
-169
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const state = vi.hoisted(() => ({
|
||||
fail: false,
|
||||
friends: [] as { id: number; username: string; online: string }[],
|
||||
}));
|
||||
vi.mock("@/lib/hotel-name", () => ({ resolveHotelName: async () => "Hotel" }));
|
||||
@@ -30,7 +31,8 @@ vi.mock("@/lib/db", async () => {
|
||||
innerJoin: () => chain,
|
||||
orderBy: () => chain,
|
||||
limit: () => chain,
|
||||
catch: () => Promise.resolve(rows),
|
||||
catch: (fallback: () => unknown) =>
|
||||
Promise.resolve(state.fail ? fallback() : rows),
|
||||
// biome-ignore lint/suspicious/noThenProperty: Drizzle query builders are intentionally awaitable.
|
||||
then: (resolve: (value: unknown[]) => unknown) =>
|
||||
Promise.resolve(rows).then(resolve),
|
||||
@@ -46,6 +48,17 @@ import { loadUserDashboard } from "./user-dashboard";
|
||||
describe("dashboard friendships", () => {
|
||||
beforeEach(() => {
|
||||
state.friends = [];
|
||||
state.fail = false;
|
||||
});
|
||||
it("marks unavailable sections instead of presenting them as empty data", async () => {
|
||||
state.fail = true;
|
||||
const data = await loadUserDashboard(1);
|
||||
expect(data).toMatchObject({
|
||||
friendsUnavailable: true,
|
||||
badgesUnavailable: true,
|
||||
userSettingsUnavailable: true,
|
||||
referralsRows: null,
|
||||
});
|
||||
});
|
||||
it("counts each friend once when both directional rows are returned", async () => {
|
||||
const wait = { id: 2, username: "wait", online: "1" };
|
||||
|
||||
Reference in new issue
Block a user