-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.test.js
50 lines (42 loc) · 1.82 KB
/
index.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const { remove, existsSync, readFileSync } = require('fs-extra');
const { AddPlugin } = require('../lib/index');
const { join } = require('path');
const testProject = join(__dirname, 'test-project');
describe('test/index.test.js', () => {
beforeAll(async () => {
if (existsSync(testProject)) {
await remove(testProject);
}
});
beforeEach(async () => {
// mock cwd
const spy = jest.spyOn(process, 'cwd');
spy.mockReturnValue(__dirname);
});
afterEach(async () => {
jest.restoreAllMocks();
if (existsSync(testProject)) {
await remove(testProject);
}
})
it('test create with target dir', async () => {
jest.replaceProperty(process, 'argv', ['node', 'create-midway-dev', '--type=koa-v3', testProject]);
await new AddPlugin().run();
expect(existsSync(join(testProject, 'package.json'))).toBeTruthy();
expect(existsSync(join(testProject, 'src'))).toBeTruthy();
})
it('test create with target dir and type', async () => {
jest.replaceProperty(process, 'argv', ['node', 'create-midway-dev', '--template=./tpl', `--target=${testProject}`]);
await new AddPlugin().run();
expect(existsSync(join(testProject, 'package.json'))).toBeTruthy();
expect(existsSync(join(testProject, 'test.js'))).toBeTruthy();
})
it('test create with target dir and absolute template', async () => {
jest.replaceProperty(process, 'argv', ['node', 'create-midway-dev', `-t=${join(__dirname, './tpl')}`, '--bbb=cc', '--t_template=dd', testProject]);
await new AddPlugin().run();
expect(existsSync(join(testProject, 'package.json'))).toBeTruthy();
expect(existsSync(join(testProject, 'test.js'))).toBeTruthy();
expect(readFileSync(join(testProject, 'test.js'), 'utf8')).toMatch('cc');
expect(readFileSync(join(testProject, 'test.js'), 'utf8')).toMatch('dd');
})
});