feat(create-payload-app): functioning init next flow, no prompts

This commit is contained in:
Elliot DeNolf
2024-03-29 12:46:20 -04:00
parent 7f5ab96f81
commit 7d7b232fdb
8 changed files with 191 additions and 117 deletions

View File

@@ -1,4 +1,4 @@
import { parseAndInsertWithPayload, withPayloadImportStatement } from './wrap-next-config.js'
import { parseAndModifyConfigContent, withPayloadImportStatement } from './wrap-next-config.js'
const defaultNextConfig = `/** @type {import('next').NextConfig} */
const nextConfig = {};
@@ -30,25 +30,27 @@ export { wrapped as default }
describe('parseAndInsertWithPayload', () => {
it('should parse the default next config', () => {
const { modifiedConfigContent } = parseAndInsertWithPayload(defaultNextConfig)
const { modifiedConfigContent } = parseAndModifyConfigContent(defaultNextConfig)
expect(modifiedConfigContent).toContain(withPayloadImportStatement)
expect(modifiedConfigContent).toContain('withPayload(nextConfig)')
})
it('should parse the config with a function', () => {
const { modifiedConfigContent } = parseAndInsertWithPayload(nextConfigWithFunc)
const { modifiedConfigContent } = parseAndModifyConfigContent(nextConfigWithFunc)
expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))')
})
it('should parse the config with a function on a new line', () => {
const { modifiedConfigContent } = parseAndInsertWithPayload(nextConfigWithFuncMultiline)
const { modifiedConfigContent } = parseAndModifyConfigContent(nextConfigWithFuncMultiline)
expect(modifiedConfigContent).toContain(withPayloadImportStatement)
expect(modifiedConfigContent).toMatch(/withPayload\(someFunc\(\n nextConfig\n\)\)/)
})
// Unsupported: export { wrapped as default }
it('should give warning with a named export as default', () => {
const { modifiedConfigContent, error } = parseAndInsertWithPayload(nextConfigExportNamedDefault)
const { modifiedConfigContent, success } = parseAndModifyConfigContent(
nextConfigExportNamedDefault,
)
expect(modifiedConfigContent).toContain(withPayloadImportStatement)
expect(error).toBeTruthy()
expect(success).toBe(false)
})
})