import { render as rtlRender, type RenderOptions } from "@testing-library/react";
import type { AppRouter } from "@thorium/.server/init/router";
import type { inferRouterOutputs } from "@thorium/utils/live-query/.server/types";
import { LiveQueryProvider } from "@thorium/utils/live-query/client/liveQueryContext";
import { MockNetRequestContext } from "@thorium/utils/live-query/client/mockContext";
import React, { type ReactNode, Suspense } from "react";
import { MemoryRouter as Router } from "react-router";
import { vi } from "vitest";
// @ts-expect-error
global.IS_REACT_ACT_ENVIRONMENT = true;
let netSendResponse: { response: any } = { response: "" };
const netSendSpy = vi.fn((_, __) => _ && __ && netSendResponse);
function setNetSendResponse(response: any) {
netSendResponse = { response };
}
global.fetch = vi.fn((url: URL, { body }: { body: FormData }) => {
if (url.pathname.toLowerCase() === "/netsend") {
const bodyObj: any = {};
body.forEach((value, key) => {
bodyObj[key] = value;
});
const params = JSON.parse(bodyObj.params);
netSendSpy(bodyObj.input, { ...params });
return Promise.resolve({
json: () => Promise.resolve(netSendResponse.response),
text: () => Promise.resolve(netSendResponse.response),
ok: true,
});
}
return Promise.resolve({
json: () => Promise.resolve({}),
text: () => Promise.resolve({}),
});
}) as any;
type DeepPartial