import { HttpResponse, http } from "msw"; import type { FcmMessagePayload } from "~/libs/gcloud/sendFcmMessage"; export function mockFcmMessageResponse() { return http.post<{}, { message: FcmMessagePayload; validate_only: boolean }>( "https://fcm.googleapis.com/v1/projects/test-26g38/messages:send", async ({ request }) => { const { message } = await request.json(); const { name, token } = message; if (name === "token_verification") { if (token?.length === 163) { return HttpResponse.json({ name }); } return HttpResponse.json({ error: { code: 400, message: "The registration token is not a valid FCM registration token", status: "INVALID_ARGUMENT", details: [ { "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError", errorCode: "INVALID_ARGUMENT", }, ], }, }); } return HttpResponse.json(message); }, ); } export function mockCreateGcloudTask() { return http.post<{}, { task: { name: string } }>( "https://content-cloudtasks.googleapis.com/v2/projects/test-26g38/locations/northamerica-northeast1/queues/new-episode/tasks", async ({ request }) => { const { task: { name }, } = await request.json(); return HttpResponse.json({ name }); }, ); } export function mockDeleteGcloudTask() { return http.delete<{ taskId: string }>( "https://content-cloudtasks.googleapis.com/v2/projects/test-26g38/locations/northamerica-northeast1/queues/new-episode/tasks/:taskId", async ({ params }) => { const { taskId } = params; if (taskId === "123") { return HttpResponse.json({ error: { code: 404, message: "Task not found", status: "NOT_FOUND", details: [ { "@type": "type.googleapis.com/google.rpc.Status", code: 5, message: "Task not found", }, ], }, }); } return HttpResponse.json({ messageId: "123" }); }, ); }