1 | const test = require('tape');
|
2 | const tapDifflet = require('tap-difflet');
|
3 | const requireText = require('require-text');
|
4 |
|
5 |
|
6 | const assembleIndex = require('../src/assembler/index');
|
7 | const assembleApp = require('../src/assembler/app');
|
8 | const assembleAppState = require('../src/assembler/app-state');
|
9 | const assembleAppSpec = require('../src/assembler/app-spec');
|
10 | const assembleDependencies = require('../src/assembler/dependencies');
|
11 | const assembleDevDependencies = require('../src/assembler/dev-dependencies');
|
12 | const assembleNpmScripts = require('../src/assembler/npm-scripts');
|
13 |
|
14 | test.createStream().pipe(tapDifflet()).pipe(process.stdout);
|
15 |
|
16 | const devMobxArgs = { flow: true, lint: true, test: true, mobx: true };
|
17 | const devReduxArgs = { flow: true, lint: true, test: true, redux: true };
|
18 | const devReduxStyledArgs = Object.assign({}, devReduxArgs, { styled: true });
|
19 | const devReduxSassArgs = Object.assign({}, devReduxArgs, { sass: true });
|
20 |
|
21 | const assembleTest = (msg, func, file, args) => {
|
22 | let actual = '-';
|
23 | let expected = '+';
|
24 | Promise.all([
|
25 | (() => {
|
26 | actual = func(args).trim();
|
27 | })(),
|
28 | (() => {
|
29 | expected = requireText('./templates/' + file, require).trim();
|
30 | if (file.split('.').pop() === 'txt') {
|
31 | expected = expected.replace(/\s+/g, ' ');
|
32 | }
|
33 | })()
|
34 | ]).then(() => {
|
35 | test(msg, (t) => { t.plan(1); t.equal(actual, expected); });
|
36 | }, err => console.log(err));
|
37 | };
|
38 |
|
39 | assembleTest('[dev, redux] INDEX && index.redux template',
|
40 | assembleIndex, 'index.redux.js', devReduxArgs
|
41 | );
|
42 |
|
43 | assembleTest('[dev, mobx] INDEX && index.mobx template',
|
44 | assembleIndex, 'index.mobx.js', devMobxArgs
|
45 | );
|
46 |
|
47 | assembleTest('[dev, mobx] APP && app.mobx template',
|
48 | assembleApp, 'app.mobx.js', devMobxArgs
|
49 | );
|
50 |
|
51 | assembleTest('[dev, redux, sass] APP && app.sass template',
|
52 | assembleApp, 'app.sass.js', devReduxSassArgs
|
53 | );
|
54 |
|
55 | assembleTest('[dev, redux, styled] APP && app.redux.styled template',
|
56 | assembleApp, 'app.redux.styled.js', devReduxStyledArgs
|
57 | );
|
58 |
|
59 | assembleTest('[dev, redux] SPEC && spec.redux template',
|
60 | assembleAppSpec, 'spec.redux.js', devReduxArgs
|
61 | );
|
62 |
|
63 | assembleTest('[dev, mobx] SPEC && spec.mobx template',
|
64 | assembleAppSpec, 'spec.mobx.js', devMobxArgs
|
65 | );
|
66 |
|
67 | assembleTest('[dev, redux] STATE && state.redux template',
|
68 | assembleAppState, 'state.redux.js', devReduxArgs
|
69 | );
|
70 |
|
71 | assembleTest('[dev, mobx] STATE && state.mobx template',
|
72 | assembleAppState, 'state.mobx.js', devMobxArgs
|
73 | );
|
74 |
|
75 | assembleTest('[dev, redux, styled] DEPENDENCIES && dependencies.styled template',
|
76 | args => assembleDependencies(args), 'dependencies.styled.txt', devReduxStyledArgs
|
77 | );
|
78 |
|
79 | assembleTest('[dev, redux, styled] DEV DEPENDENCIES && dev-dependencies.styled template',
|
80 | args => assembleDevDependencies(args), 'dev-dependencies.styled.txt', devReduxStyledArgs
|
81 | );
|
82 |
|
83 | assembleTest('[dev, redux, sass] DEV DEPENDENCIES && dev-dependencies.sass template',
|
84 | args => assembleDevDependencies(args), 'dev-dependencies.sass.txt', devReduxSassArgs
|
85 | );
|
86 |
|
87 | assembleTest('[dev, redux] NPM SCRIPTS && npm-scripts template',
|
88 | assembleNpmScripts, 'npm-scripts.json', devMobxArgs
|
89 | );
|
90 |
|
91 | assembleTest('[dev, modx] NPM SCRIPTS && npm-scripts template',
|
92 | assembleNpmScripts, 'npm-scripts.json', devReduxArgs
|
93 | );
|