Files
mobilizon-frontend/tests/unit/specs/mocks/client.ts
2025-06-11 18:49:57 +02:00

38 lines
1.1 KiB
TypeScript

import buildCurrentUserResolver from "@/apollo/user";
import { DefaultApolloClient } from "@vue/apollo-composable";
import { cache } from "@/apollo/memory";
import {
createMockClient,
MockApolloClient,
RequestHandler,
} from "mock-apollo-client";
import { vi } from "vitest";
import { nullMock } from "../common";
let mockClient: MockApolloClient | null;
let requestHandlers: Record<string, RequestHandler>;
export function getMockClient(queries: Array<string>): any {
mockClient = createMockClient({
cache,
resolvers: buildCurrentUserResolver(cache),
});
requestHandlers = {
nullHandle: vi.fn().mockResolvedValue(nullMock),
};
queries.forEach((query: any) => {
mockClient.setRequestHandler(query, requestHandlers.nullHandle);
});
return { provide: { [DefaultApolloClient]: mockClient } };
}
export function createMockIntersectionObserver(): void {
const mockIntersectionObserver = vi.fn();
mockIntersectionObserver.mockReturnValue({
observe: () => null,
unobserve: () => null,
disconnect: () => null,
});
window.IntersectionObserver = mockIntersectionObserver;
}