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

import { Suspense } from 'react'

export const unstable_instant: Instant = {
  samples: [
    {
      cookies: [
        { name: 'testCookie', value: 'testValue' },
        { name: 'missingCookie', value: null },
      ],
    },
  ],
}
export const unstable_prefetch = 'force-runtime'

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

async function TestCookies() {
  const cookieStore = await cookies()

  const testCookie = cookieStore.get('testCookie')
  assert.deepStrictEqual(testCookie, {
    name: 'testCookie',
    value: 'testValue',
  })

  const missingCookie = cookieStore.get('missingCookie')
  assert.equal(missingCookie, undefined)
  assert.equal(cookieStore.has('missingCookie'), false)

  assert.deepStrictEqual(cookieStore.getAll(), [
    { name: 'testCookie', value: 'testValue' },
  ])

  return null
}
Quest for Codev2.0.0
/
SIGN IN