test(shared): add mock supabase client helper for auth unit tests

This commit is contained in:
byGalax
2026-05-15 22:07:53 +02:00
parent 89eb8d97c6
commit b54fe0b56d
@@ -0,0 +1,30 @@
import { vi } from 'vitest';
import type { AppSupabaseClient } from '../../supabase/client';
export interface MockedRpcCall { name: string; params: unknown }
export interface MockClient {
client: AppSupabaseClient;
rpcCalls: MockedRpcCall[];
setRpcResponse: (name: string, response: { data?: unknown; error?: unknown }) => void;
}
export function makeMockClient(initialUserId = '11111111-1111-1111-1111-111111111111'): MockClient {
const rpcCalls: MockedRpcCall[] = [];
const rpcResponses = new Map<string, { data?: unknown; error?: unknown }>();
const client = {
auth: {
getUser: vi.fn().mockResolvedValue({ data: { user: { id: initialUserId } }, error: null }),
},
rpc: vi.fn().mockImplementation((name: string, params: unknown) => {
rpcCalls.push({ name, params });
const r = rpcResponses.get(name) ?? { data: null, error: null };
return Promise.resolve(r);
}),
} as unknown as AppSupabaseClient;
return {
client,
rpcCalls,
setRpcResponse: (name, response) => rpcResponses.set(name, response),
};
}