Skip to content

Commit

Permalink
Blitz: Add Suspense wrapper to resolve initial error 500
Browse files Browse the repository at this point in the history
  • Loading branch information
tordans committed Oct 15, 2024
1 parent ff5ee9f commit 12bb1e6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 16 deletions.
5 changes: 4 additions & 1 deletion app/src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Metadata, Viewport } from 'next'
import { Suspense } from 'react'
import SocialSharingImage from 'src/app/_components/layouts/assets/og-image-default.jpg'
import { BlitzProvider } from 'src/blitz-client'
import './_components/layouts/global.css'
Expand Down Expand Up @@ -43,7 +44,9 @@ export default function RootLayout({ children }: { children: React.ReactNode })
<html lang="de" className="h-full">
<body className="flex min-h-full w-full text-gray-800 antialiased">
<BlitzProvider>
<div className="relative flex-auto">{children}</div>
<Suspense>
<div className="relative flex-auto">{children}</div>
</Suspense>
</BlitzProvider>
<TailwindResponsiveHelper />
</body>
Expand Down
31 changes: 16 additions & 15 deletions app/test/utils.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { vi } from "vitest"
import { render as defaultRender } from "@testing-library/react"
import { renderHook as defaultRenderHook } from "@testing-library/react-hooks"
import { NextRouter } from "next/router"
import { BlitzProvider, RouterContext } from "@blitzjs/next"
import { QueryClient } from "@blitzjs/rpc"
import { BlitzProvider, RouterContext } from '@blitzjs/next'
import { QueryClient } from '@blitzjs/rpc'
import { render as defaultRender } from '@testing-library/react'
import { renderHook as defaultRenderHook } from '@testing-library/react-hooks'
import { NextRouter } from 'next/router'
import { Suspense } from 'react'
import { vi } from 'vitest'

export * from "@testing-library/react"
export * from '@testing-library/react'

// --------------------------------------------------------------------------------
// This file customizes the render() and renderHook() test functions provided
Expand All @@ -31,14 +32,14 @@ export * from "@testing-library/react"
const queryClient = new QueryClient()
export function render(
ui: RenderUI,
{ wrapper, router, dehydratedState, ...options }: RenderOptions = {}
{ wrapper, router, dehydratedState, ...options }: RenderOptions = {},
) {
if (!wrapper) {
// Add a default context wrapper if one isn't supplied from the test
wrapper = ({ children }: { children: React.ReactNode }) => (
<BlitzProvider dehydratedState={dehydratedState} client={queryClient}>
<RouterContext.Provider value={{ ...mockRouter, ...router }}>
{children}
<Suspense>{children}</Suspense>
</RouterContext.Provider>
</BlitzProvider>
)
Expand All @@ -59,14 +60,14 @@ export function render(
// --------------------------------------------------
export function renderHook(
hook: RenderHook,
{ wrapper, router, dehydratedState, ...options }: RenderOptions = {}
{ wrapper, router, dehydratedState, ...options }: RenderOptions = {},
) {
if (!wrapper) {
// Add a default context wrapper if one isn't supplied from the test
wrapper = ({ children }: { children: React.ReactNode }) => (
<BlitzProvider dehydratedState={dehydratedState} client={queryClient}>
<RouterContext.Provider value={{ ...mockRouter, ...router }}>
{children}
<Suspense>{children}</Suspense>
</RouterContext.Provider>
</BlitzProvider>
)
Expand All @@ -75,10 +76,10 @@ export function renderHook(
}

export const mockRouter: NextRouter = {
basePath: "",
pathname: "/",
route: "/",
asPath: "/",
basePath: '',
pathname: '/',
route: '/',
asPath: '/',
query: {},
isReady: true,
isLocaleDomain: false,
Expand Down

0 comments on commit 12bb1e6

Please sign in to comment.