mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
/* eslint-env jest */
|
|
|
|
import { isNextStart, nextTestSetup } from 'e2e-utils'
|
|
import { waitForRedbox, getRedboxSource } from 'next-test-utils'
|
|
|
|
// Importing module CSS in _document is allowed in Turbopack
|
|
;(process.env.IS_TURBOPACK_TEST ? describe.skip : describe)(
|
|
'Invalid SCSS in _document',
|
|
() => {
|
|
const { next, skipped, isRspack } = nextTestSetup({
|
|
files: __dirname,
|
|
skipStart: isNextStart,
|
|
skipDeployment: true,
|
|
dependencies: { sass: '1.54.0' },
|
|
})
|
|
|
|
if (skipped) {
|
|
return
|
|
}
|
|
|
|
if (isNextStart) {
|
|
it('should fail to build', async () => {
|
|
const { exitCode, cliOutput } = await next.build()
|
|
expect(exitCode).not.toBe(0)
|
|
expect(cliOutput).toContain('Failed to compile')
|
|
expect(cliOutput).toContain('styles.module.scss')
|
|
expect(cliOutput).toMatch(
|
|
/CSS.*cannot.*be imported within.*pages[\\/]_document\.js/
|
|
)
|
|
// Skip: Rspack loaders cannot access module issuer info for location details
|
|
if (!process.env.NEXT_RSPACK) {
|
|
expect(cliOutput).toMatch(/Location:.*pages[\\/]_document\.js/)
|
|
}
|
|
})
|
|
} else {
|
|
it('should show a build error', async () => {
|
|
const browser = await next.browser('/')
|
|
|
|
await waitForRedbox(browser)
|
|
const errorSource = await getRedboxSource(browser)
|
|
|
|
if (isRspack) {
|
|
expect(errorSource).toMatchInlineSnapshot(`
|
|
"./styles.module.scss
|
|
│ CSS cannot be imported within pages/_document.js. Please move global styles to pages/_app.js."
|
|
`)
|
|
} else {
|
|
expect(errorSource).toMatchInlineSnapshot(`
|
|
"./styles.module.scss
|
|
CSS cannot be imported within pages/_document.js. Please move global styles to pages/_app.js.
|
|
Location: pages/_document.js"
|
|
`)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
)
|