1 | import tap from 'tap'
|
2 | import fs from 'fs-extra'
|
3 | import path from 'path'
|
4 |
|
5 | import { createConfig } from '../lib/config'
|
6 | import { build } from '../lib/build'
|
7 | import { Env } from '../lib/constants'
|
8 |
|
9 | tap.test('build - static files', async (t) => {
|
10 | t.testdir({
|
11 | 'static.js': `
|
12 | export const getStaticPaths = () => ([ 'foo' ])
|
13 | export const handler = () => 'page'
|
14 | `,
|
15 | })
|
16 |
|
17 | const filepath = path.join(t.testdirName, 'static.js')
|
18 | const config = await createConfig({
|
19 | cli: { files: filepath, output: t.testdirName },
|
20 | })
|
21 |
|
22 | await build(config)
|
23 |
|
24 | const contents = fs.readFileSync(path.join(config.staticOutputDir, 'foo/index.html'), 'utf8')
|
25 |
|
26 | t.equal(contents, 'page')
|
27 | })
|
28 |
|
29 | tap.test('build - dynamic files', async (t) => {
|
30 | t.testdir({
|
31 | 'dynamic.js': `
|
32 | export const route = '*'
|
33 | export const handler = () => 'page'
|
34 | `,
|
35 | })
|
36 |
|
37 | const config = await createConfig({
|
38 | cli: {
|
39 | files: path.join(t.testdirName, 'dynamic.js'),
|
40 | output: t.testdirName,
|
41 | },
|
42 | })
|
43 |
|
44 | let called = false
|
45 |
|
46 | const { build } = t.mock('../lib/build', {
|
47 | esbuild: {
|
48 | build() {
|
49 | called = true
|
50 | },
|
51 | },
|
52 | })
|
53 |
|
54 | await build(config)
|
55 |
|
56 | t.ok(called)
|
57 | })
|