rsnext/test/production/enoent-during-require/index.test.ts
JJ Kasper 142bceb694
Ensure ENOENT error is not ignored when loading pages (#37486)
* Ensure ENOENT error is not ignored when loading pages

* Add a separate PageNotFoundError

* update tests
2022-06-06 14:35:26 -04:00

55 lines
1.4 KiB
TypeScript

import { createNext } from 'e2e-utils'
import { NextInstance } from 'test/lib/next-modes/base'
import { check, renderViaHTTP } from 'next-test-utils'
describe('ENOENT during require', () => {
let next: NextInstance
beforeAll(async () => {
next = await createNext({
files: {
'pages/_app.js': `
import App from 'next/app'
if (typeof window === 'undefined') {
if (process.env.NEXT_PHASE !== 'phase-production-build') {
require('fs').readdirSync('non-existent-folder')
}
}
export default App
`,
'pages/index.js': `
export function getStaticProps() {
console.log('revalidate /')
return {
props: {
now: Date.now()
},
revalidate: 1
}
}
export default function Page() {
return <p>hello world</p>
}
`,
},
dependencies: {},
})
})
afterAll(() => next.destroy())
it('should show ENOENT error correctly', async () => {
await check(async () => {
await renderViaHTTP(next.url, '/')
console.error(next.cliOutput)
return next.cliOutput.includes('non-existent-folder')
? 'success'
: next.cliOutput
}, 'success')
expect(next.cliOutput).not.toContain('Cannot destructure property')
})
})