import { nextTestSetup } from 'e2e-utils' import { retry } from 'next-test-utils' const CASES = [ [ 'turbopackPersistentCaching', "Use 'experimental.turbopackFileSystemCacheForDev' instead.", ], [ 'turbopackPersistentCachingForDev', "Use 'experimental.turbopackFileSystemCacheForDev' instead.", ], [ 'turbopackPersistentCachingForBuild', "Use 'experimental.turbopackFileSystemCacheForBuild' instead.", ], ] describe('persistent-caching-migration', () => { for (const [option, error] of CASES) { describe(option, () => { const { skipped, next, isTurbopack, isNextStart } = nextTestSetup({ files: { 'next.config.js': `module.exports = { experimental: { ${option}: true, }, }`, }, skipDeployment: true, skipStart: true, }) if (skipped) { return } if (!isTurbopack) { it.skip('only for turbopack', () => {}) return } if (isNextStart) { it('error on old option on build', async () => { let { exitCode, cliOutput } = await next.build() expect(exitCode).toBe(1) expect(cliOutput).toContain(error) }) } else { it('error on old option in dev', async () => { await next.start() await retry(async () => { expect(next.cliOutput).toContain(error) }) }) } }) } })