UNPKG

3.22 kBJavaScriptView Raw
1const test = require('tape');
2const tapDifflet = require('tap-difflet');
3const requireText = require('require-text');
4// const hasha = require('hasha');
5
6const assembleIndex = require('../src/assembler/index');
7const assembleApp = require('../src/assembler/app');
8const assembleAppState = require('../src/assembler/app-state');
9const assembleAppSpec = require('../src/assembler/app-spec');
10const assembleDependencies = require('../src/assembler/dependencies');
11const assembleDevDependencies = require('../src/assembler/dev-dependencies');
12const assembleNpmScripts = require('../src/assembler/npm-scripts');
13
14test.createStream().pipe(tapDifflet()).pipe(process.stdout);
15
16const devMobxArgs = { flow: true, lint: true, test: true, mobx: true };
17const devReduxArgs = { flow: true, lint: true, test: true, redux: true };
18const devReduxStyledArgs = Object.assign({}, devReduxArgs, { styled: true });
19const devReduxSassArgs = Object.assign({}, devReduxArgs, { sass: true });
20
21const 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
39assembleTest('[dev, redux] INDEX && index.redux template',
40 assembleIndex, 'index.redux.js', devReduxArgs
41);
42
43assembleTest('[dev, mobx] INDEX && index.mobx template',
44 assembleIndex, 'index.mobx.js', devMobxArgs
45);
46
47assembleTest('[dev, mobx] APP && app.mobx template',
48 assembleApp, 'app.mobx.js', devMobxArgs
49);
50
51assembleTest('[dev, redux, sass] APP && app.sass template',
52 assembleApp, 'app.sass.js', devReduxSassArgs
53);
54
55assembleTest('[dev, redux, styled] APP && app.redux.styled template',
56 assembleApp, 'app.redux.styled.js', devReduxStyledArgs
57);
58
59assembleTest('[dev, redux] SPEC && spec.redux template',
60 assembleAppSpec, 'spec.redux.js', devReduxArgs
61);
62
63assembleTest('[dev, mobx] SPEC && spec.mobx template',
64 assembleAppSpec, 'spec.mobx.js', devMobxArgs
65);
66
67assembleTest('[dev, redux] STATE && state.redux template',
68 assembleAppState, 'state.redux.js', devReduxArgs
69);
70
71assembleTest('[dev, mobx] STATE && state.mobx template',
72 assembleAppState, 'state.mobx.js', devMobxArgs
73);
74
75assembleTest('[dev, redux, styled] DEPENDENCIES && dependencies.styled template',
76 args => assembleDependencies(args), 'dependencies.styled.txt', devReduxStyledArgs
77);
78
79assembleTest('[dev, redux, styled] DEV DEPENDENCIES && dev-dependencies.styled template',
80 args => assembleDevDependencies(args), 'dev-dependencies.styled.txt', devReduxStyledArgs
81);
82
83assembleTest('[dev, redux, sass] DEV DEPENDENCIES && dev-dependencies.sass template',
84 args => assembleDevDependencies(args), 'dev-dependencies.sass.txt', devReduxSassArgs
85);
86
87assembleTest('[dev, redux] NPM SCRIPTS && npm-scripts template',
88 assembleNpmScripts, 'npm-scripts.json', devMobxArgs
89);
90
91assembleTest('[dev, modx] NPM SCRIPTS && npm-scripts template',
92 assembleNpmScripts, 'npm-scripts.json', devReduxArgs
93);