next.js/test/e2e/app-dir/instant-validation-build/app/(default)/headers/valid-headers-in-samples/page.tsx
page.tsx47 lines1.0 KB
import type { Instant } from 'next'
import { headers } from 'next/headers'
import assert from 'node:assert'

import { Suspense } from 'react'

export const unstable_instant: Instant = {
  samples: [
    {
      headers: [
        ['testHeader', 'testValue'],
        ['missingHeader', null],
      ],
    },
  ],
}
export const unstable_prefetch = 'force-runtime'

export default async function Page() {
  return (
    <main>
      <p>
        When validated in build, the page should receive the headers specified
        in the sample.
      </p>
      <Suspense fallback={<div>Loading...</div>}>
        <TestHeaders />
      </Suspense>
    </main>
  )
}

async function TestHeaders() {
  const headerStore = await headers()

  const testHeader = headerStore.get('testHeader')
  assert.equal(testHeader, 'testValue')

  const missingHeader = headerStore.get('missingHeader')
  assert.equal(missingHeader, undefined)
  assert.equal(headerStore.has('missingHeader'), false)

  // TODO(instant-validation-build): test iteration

  return null
}
Quest for Codev2.0.0
/
SIGN IN