Skip to content

Commit 99c95a4

Browse files
committed
chore(test): add generate test
Add `.dist` folder to gitignore Add `koa` and `koa-static` devDependencies
1 parent dd4b970 commit 99c95a4

File tree

6 files changed

+221
-20
lines changed

6 files changed

+221
-20
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ typings/
5959

6060
# nuxt transient files
6161
.nuxt
62+
.dist
6263

6364
# build dir
6465
dist/

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
"git-exec-and-restage": "^1.0.1",
4848
"husky": "^0.14.3",
4949
"jest": "^21.1.0",
50+
"koa": "^2.3.0",
51+
"koa-static": "^4.0.1",
5052
"lint-staged": "^4.2.1",
5153
"netlify-cms": "0.5.0-beta.10",
5254
"nuxt": "^1.0.0-rc11",

test/fixture/nuxt.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import module from "../../src/module";
22

33
export default {
44
srcDir: __dirname,
5+
buildDir: ".nuxt",
6+
generate: {
7+
dir: ".dist"
8+
},
59
dev: false,
610
render: {
711
resourceHints: false

test/generate.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { get, generate, generateAfter } from "./nuxt";
2+
3+
describe("module dev mode", () => {
4+
beforeAll(generate());
5+
6+
afterAll(generateAfter);
7+
8+
test("admin", async () => {
9+
const html = await get("/admin/");
10+
expect(html).toMatch(/.*<script[\s\S]*?>[\s\S]*?<\/script><\/body>/);
11+
});
12+
});

test/nuxt.js

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
import { Nuxt, Builder } from "nuxt";
1+
import { join } from "path";
2+
3+
import { Nuxt, Builder, Generator } from "nuxt";
24
import request from "request-promise-native";
5+
import Koa from "koa";
6+
import serveStatic from "koa-static";
37

48
import baseConfig from "./fixture/nuxt.config";
59

@@ -11,6 +15,18 @@ const url = path => `http://localhost:${process.env.PORT}${path}`;
1115
const get = path => request(url(path));
1216

1317
let nuxt;
18+
let server;
19+
20+
const serve = () => {
21+
const app = new Koa();
22+
23+
app.use(serveStatic(join(nuxt.options.buildDir, "dist")));
24+
server = app.listen(process.env.PORT);
25+
};
26+
27+
const stopServe = () => {
28+
server.close();
29+
};
1430

1531
const commonBefore = (config = {}) => async () => {
1632
const mergedConfig = {
@@ -29,4 +45,23 @@ const commonAfter = async () => {
2945
await nuxt.close();
3046
};
3147

32-
export { get, commonBefore, commonAfter };
48+
const generate = (config = {}) => async () => {
49+
const mergedConfig = {
50+
...baseConfig,
51+
...config
52+
};
53+
54+
// Build a fresh nuxt
55+
nuxt = new Nuxt(mergedConfig);
56+
const builder = new Builder(nuxt);
57+
const generator = new Generator(nuxt, builder);
58+
await generator.generate();
59+
serve();
60+
};
61+
62+
const generateAfter = async () => {
63+
await commonAfter();
64+
stopServe();
65+
};
66+
67+
export { get, commonBefore, commonAfter, generate, generateAfter };

0 commit comments

Comments
 (0)