rsnext/test/development/acceptance-app/ReactRefreshModule.test.ts
2023-01-17 13:14:43 -08:00

50 lines
1.3 KiB
TypeScript

import { createNext, FileRef } from 'e2e-utils'
import path from 'path'
import { NextInstance } from 'test/lib/next-modes/base'
import { sandbox } from './helpers'
describe('ReactRefreshModule app', () => {
let next: NextInstance
beforeAll(async () => {
next = await createNext({
files: new FileRef(path.join(__dirname, 'fixtures', 'default-template')),
dependencies: {
react: 'latest',
'react-dom': 'latest',
},
skipStart: true,
})
})
afterAll(() => next.destroy())
it('should allow any variable names', async () => {
const { session, cleanup } = await sandbox(next, new Map([]))
expect(await session.hasRedbox(false)).toBe(false)
const variables = [
'_a',
'_b',
'currentExports',
'prevExports',
'isNoLongerABoundary',
]
for await (const variable of variables) {
await session.patch(
'app/page.js',
`'use client'
import { default as ${variable} } from 'next/link'
export default function Page() {
return null
}`
)
expect(await session.hasRedbox(false)).toBe(false)
expect(next.cliOutput).not.toContain(
`'${variable}' has already been declared`
)
}
await cleanup()
})
})