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-cache/page.tsx
page.tsx46 lines928 B
import type { Instant } from 'next'
import assert from 'node:assert/strict'

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>
      <CachedChild searchParams={await searchParams} />
    </main>
  )
}

async function CachedChild({
  searchParams,
}: {
  searchParams: Record<string, string | string[]>
}) {
  'use cache'
  assert.equal(
    searchParams.single,
    'test',
    `Expected searchParams.single to be 'test', got '${searchParams.single}'`
  )
  assert.deepStrictEqual(
    searchParams.multiple,
    ['a', 'b'],
    `Unexpected value for 'multiple'`
  )
  return <div id="single">{searchParams.single}</div>
}