Quest for Codev2.0.0
/
SIGN IN
next.js/test/e2e/app-dir/instant-validation-build/app/(default)/search-params/valid-search-params-passed-to-client/page.tsx
page.tsx48 lines947 B
import type { Instant } from 'next'
import assert from 'node:assert/strict'

import { ClientChild } from './client'

export const unstable_instant: Instant = {
  samples: [
    {
      searchParams: {
        single: 'test',
        multiple: ['a', 'b'],
      },
    },
  ],
}
export const unstable_prefetch = 'force-runtime'

export default async function Page({
  searchParams,
}: {
  searchParams: Promise<Record<string, string | string[]>>
}) {
  return (
    <main>
      <TestSearchParams searchParams={searchParams} />
    </main>
  )
}

async function TestSearchParams({
  searchParams,
}: {
  searchParams: Promise<Record<string, string | string[]>>
}) {
  const sp = await searchParams
  assert.equal(
    sp.single,
    'test',
    `Expected 'single' to be 'test', got '${sp.single}'`
  )
  assert.deepStrictEqual(
    sp.multiple,
    ['a', 'b'],
    `Unexpected value for 'multiple'`
  )
  return <ClientChild searchParams={sp} />
}