mirror of
https://github.com/nuxt/nuxt.git
synced 2024-12-04 19:37:18 +00:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
|
import { describe, expect, it } from 'vitest'
|
||
|
|
||
|
import { PrehydrateTransformPlugin } from '../src/core/plugins/prehydrate'
|
||
|
|
||
|
describe('prehydrate', () => {
|
||
|
const transformPlugin = PrehydrateTransformPlugin().raw({}, {} as any) as { transform: (code: string, id: string) => Promise<{ code: string } | null> }
|
||
|
|
||
|
it('should extract and minify code in onPrehydrate', async () => {
|
||
|
const snippet = `
|
||
|
onPrehydrate(() => {
|
||
|
console.log('hello world')
|
||
|
})
|
||
|
`
|
||
|
const snippet2 = `
|
||
|
export default {
|
||
|
async setup () {
|
||
|
onPrehydrate(() => {
|
||
|
console.log('hello world')
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
`
|
||
|
|
||
|
for (const item of [snippet, snippet2]) {
|
||
|
const { code } = await transformPlugin.transform(item, 'test.ts') ?? {}
|
||
|
expect(code).toContain(`onPrehydrate("(()=>{console.log(\\"hello world\\")})")`)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
it('should add hash if required', async () => {
|
||
|
const snippet = `
|
||
|
onPrehydrate((attr) => {
|
||
|
console.log('hello world')
|
||
|
})
|
||
|
`
|
||
|
|
||
|
const { code } = await transformPlugin.transform(snippet, 'test.ts') ?? {}
|
||
|
expect(code?.trim()).toMatchInlineSnapshot(`"onPrehydrate("(o=>{console.log(\\"hello world\\")})", "rifMBArY0d")"`)
|
||
|
})
|
||
|
})
|