import { GeneratedFolder, ProjectUIDL } from '@teleporthq/teleport-types'
import uidlSample from '../../../examples/test-samples/project-sample.json'
import { createNextProjectGenerator } from '../src'
import NextTemplate from '../src/project-template'
import {
BODY_CODE_TEMPLATE_ATTR,
splitBodyCustomCode,
wrapBodyCustomCode,
} from '../src/body-code/body-code-component'
const template = JSON.parse(JSON.stringify(NextTemplate)) as GeneratedFolder
const BODY_CODE = [
'',
'',
'',
].join('\n')
const buildUidlWithBodyCode = (body: string | undefined): ProjectUIDL => {
const uidl = JSON.parse(JSON.stringify(uidlSample)) as ProjectUIDL
uidl.globals.customCode = body === undefined ? undefined : { body }
return uidl
}
const findFile = (folder: GeneratedFolder, folderName: string, fileName: string) =>
folder.subFolders
.find((sub) => sub.name === folderName)
?.files.find((file) => file.name === fileName)
describe('body custom code runs after hydration', () => {
it('keeps noscript live and makes everything else inert', () => {
const { noscript, deferred } = splitBodyCustomCode(BODY_CODE)
expect(noscript).toBe('')
expect(deferred).not.toContain('