import { nextTestSetup } from 'e2e-utils'
import { retry } from 'next-test-utils'
const isoDateRegExp = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/
const randomRegExp = /^\d+\.\d+$/
describe('use-cache-with-server-function-props', () => {
const { next } = nextTestSetup({
files: __dirname,
})
it('should be able to use inline server actions as props', async () => {
const browser = await next.browser('/server-action')
await browser.elementById('submit-button-hi').click()
await retry(async () => {
expect(await browser.elementById('hi').text()).toMatch('Hi, World!')
})
await browser.elementById('submit-button-hello').click()
await retry(async () => {
expect(await browser.elementById('hello').text()).toMatch('Hello, World!')
})
})
it('should be able to use nested cache functions as props', async () => {
const browser = await next.browser('/nested-cache')
await browser.elementById('submit-button-date').click()
await retry(async () => {
expect(await browser.elementById('date').text()).toMatch(isoDateRegExp)
})
await browser.elementById('submit-button-random').click()
await retry(async () => {
expect(await browser.elementById('random').text()).toMatch(randomRegExp)
})
})
})