{"version":3,"names":["React","TestRenderer","act","afterEach","beforeEach","describe","expect","it","getQualifiedRouteComponent","jsx","jsxs","pendingRoute","Promise","previousTarget","previousSuspendRoutesNative","process","env","ONE_SUSPEND_ROUTES_NATIVE","previousDisableSuspense","globalThis","__ONE_DISABLE_SUSPENSE_ROUTES__","createRouteNode","type","route","contextKey","loadRoute","children","dynamic","SuspendingRoute","TAMAGUI_TARGET","ChildRoute","LayoutRoute","default","params","id","SuspenseFallback","renderer","create","root","findByProps","toEqual","NestedLayoutRoute","RootLayoutRoute","findAllByProps","toHaveLength","toJSON","toBeNull","mounts","Page","count","setCount","useState","useEffect","onClick","value","ErrorBoundary","Route","Harness","tick","button","findByType","props","toBe","update","Error","error","message","toBeTruthy"],"sources":["useScreens.test.mjs"],"sourcesContent":["import React from \"react\";\nimport TestRenderer, { act } from \"react-test-renderer\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport { getQualifiedRouteComponent } from \"./useScreens\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nconst pendingRoute = new Promise(() => {});\nconst previousTarget = \"web\";\nconst previousSuspendRoutesNative = process.env.ONE_SUSPEND_ROUTES_NATIVE;\nconst previousDisableSuspense = globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\nfunction createRouteNode(type, route, contextKey, loadRoute) {\n\treturn {\n\t\ttype,\n\t\troute,\n\t\tcontextKey,\n\t\tloadRoute,\n\t\tchildren: [],\n\t\tdynamic: null\n\t};\n}\nfunction SuspendingRoute() {\n\tthrow pendingRoute;\n}\nbeforeEach(() => {\n\tprocess.env.TAMAGUI_TARGET = \"native\";\n\tdelete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\tdelete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n});\nafterEach(() => {\n\tprocess.env.TAMAGUI_TARGET = previousTarget;\n\tif (previousSuspendRoutesNative === void 0) delete process.env.ONE_SUSPEND_ROUTES_NATIVE;\n\telse process.env.ONE_SUSPEND_ROUTES_NATIVE = previousSuspendRoutesNative;\n\tif (previousDisableSuspense === void 0) delete globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__;\n\telse globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ = previousDisableSuspense;\n});\ndescribe(\"route SuspenseFallback\", () => {\n\tit(\"inherits the layout fallback and passes the suspended route details\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile/[id]\", \"./(app)/profile/[id].tsx\", () => {\n\t\t\tthrow pendingRoute;\n\t\t}));\n\t\tconst LayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(ChildRoute, { route: { params: { id: \"123\" } } }),\n\t\t\tSuspenseFallback: ({ route, params }) => /* @__PURE__ */ jsxs(\"div\", {\n\t\t\t\t\"data-fallback\": \"layout\",\n\t\t\t\tchildren: [\n\t\t\t\t\troute,\n\t\t\t\t\t\":\",\n\t\t\t\t\tparams.id\n\t\t\t\t]\n\t\t\t})\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(LayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findByProps({ \"data-fallback\": \"layout\" }).children).toEqual([\n\t\t\t\"./(app)/profile/[id].tsx\",\n\t\t\t\":\",\n\t\t\t\"123\"\n\t\t]);\n\t});\n\tit(\"uses the nearest layout fallback\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./(app)/profile.tsx\", () => ({ default: SuspendingRoute })));\n\t\tconst NestedLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"(app)\", \"./(app)/_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(ChildRoute, {}),\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"nested\" })\n\t\t})));\n\t\tconst RootLayoutRoute = getQualifiedRouteComponent(createRouteNode(\"layout\", \"\", \"./_layout.tsx\", () => ({\n\t\t\tdefault: () => /* @__PURE__ */ jsx(NestedLayoutRoute, {}),\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"root\" })\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(RootLayoutRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"nested\" })).toHaveLength(1);\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"root\" })).toHaveLength(0);\n\t});\n\tit(\"ignores a SuspenseFallback exported from a leaf route\", async () => {\n\t\tconst ChildRoute = getQualifiedRouteComponent(createRouteNode(\"spa\", \"profile\", \"./profile.tsx\", () => ({\n\t\t\tdefault: SuspendingRoute,\n\t\t\tSuspenseFallback: () => /* @__PURE__ */ jsx(\"div\", { \"data-fallback\": \"leaf\" })\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(ChildRoute, {}));\n\t\t});\n\t\texpect(renderer.root.findAllByProps({ \"data-fallback\": \"leaf\" })).toHaveLength(0);\n\t\texpect(renderer.toJSON()).toBeNull();\n\t});\n});\ndescribe(\"ErrorBoundary route identity\", () => {\n\tit(\"preserves page state across a re-render when the route exports ErrorBoundary\", async () => {\n\t\tlet mounts = 0;\n\t\tfunction Page() {\n\t\t\tconst [count, setCount] = React.useState(0);\n\t\t\tReact.useEffect(() => {\n\t\t\t\tmounts += 1;\n\t\t\t}, []);\n\t\t\treturn /* @__PURE__ */ jsx(\"button\", {\n\t\t\t\t\"data-count\": count,\n\t\t\t\tonClick: () => setCount((value) => value + 1),\n\t\t\t\tchildren: count\n\t\t\t});\n\t\t}\n\t\tfunction ErrorBoundary() {\n\t\t\treturn /* @__PURE__ */ jsx(\"div\", { \"data-error\": \"1\" });\n\t\t}\n\t\tconst Route = getQualifiedRouteComponent(createRouteNode(\"spa\", \"onboarding\", \"./auth/onboarding.tsx\", () => ({\n\t\t\tdefault: Page,\n\t\t\tErrorBoundary\n\t\t})));\n\t\tfunction Harness({ tick }) {\n\t\t\treturn /* @__PURE__ */ jsx(Route, { tick });\n\t\t}\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(Harness, { tick: 0 }));\n\t\t});\n\t\tconst button = renderer.root.findByType(\"button\");\n\t\texpect(button.props[\"data-count\"]).toBe(0);\n\t\tawait act(async () => {\n\t\t\tbutton.props.onClick();\n\t\t});\n\t\texpect(renderer.root.findByType(\"button\").props[\"data-count\"]).toBe(1);\n\t\texpect(mounts).toBe(1);\n\t\tawait act(async () => {\n\t\t\trenderer.update(/* @__PURE__ */ jsx(Harness, { tick: 1 }));\n\t\t});\n\t\texpect(renderer.root.findByType(\"button\").props[\"data-count\"]).toBe(1);\n\t\texpect(mounts).toBe(1);\n\t});\n\tit(\"still renders the exported ErrorBoundary when the page throws\", async () => {\n\t\tfunction Page() {\n\t\t\tthrow new Error(\"boom\");\n\t\t}\n\t\tfunction ErrorBoundary({ error }) {\n\t\t\treturn /* @__PURE__ */ jsx(\"div\", { \"data-caught\": error.message });\n\t\t}\n\t\tconst Route = getQualifiedRouteComponent(createRouteNode(\"spa\", \"broken\", \"./broken.tsx\", () => ({\n\t\t\tdefault: Page,\n\t\t\tErrorBoundary\n\t\t})));\n\t\tlet renderer;\n\t\tawait act(async () => {\n\t\t\trenderer = TestRenderer.create(/* @__PURE__ */ jsx(Route, {}));\n\t\t});\n\t\texpect(renderer.root.findByProps({ \"data-caught\": \"boom\" })).toBeTruthy();\n\t});\n});\n\n"],"mappings":"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","ignoreList":[]}