Skip to content

Commit 3816896

Browse files
author
Alexey Litvinov
committed
devMode test
1 parent 5b08828 commit 3816896

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed

test/api/devMode.js

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
const detachHook = require('../sugar').detachHook;
2+
const dropCache = require('../sugar').dropCache;
3+
const resolve = require('path').resolve;
4+
const writeFileSync = require('fs').writeFileSync;
5+
6+
const destination = resolve(__dirname, './fixture/oceanic.css');
7+
const source1 = `.color\n{\n background: #1e2a35;\n}\n`;
8+
const source2 = `.awesome-color\n{\n background: #1e2a35;\n}\n`;
9+
10+
suite('api/devMode', () => {
11+
suite('shouldn`t calls cache in development mode', () => {
12+
suite('devMode:false options should override NODE_ENV="development"', () => {
13+
test('should retrive data from cache', () => {
14+
const tokens = require('./fixture/oceanic.css');
15+
16+
assert.deepEqual(tokens, {
17+
color: '_test_api_fixture_oceanic__color',
18+
});
19+
});
20+
21+
setup(() => {
22+
process.env.NODE_ENV = 'development';
23+
hook({devMode: false});
24+
writeFile(source1);
25+
require('./fixture/oceanic.css');
26+
writeFile(source2);
27+
});
28+
29+
teardown(() => {
30+
process.env.NODE_ENV = '';
31+
});
32+
});
33+
34+
suite('should cache calls without any options', () => {
35+
test('should retrive data from cache', () => {
36+
const tokens = require('./fixture/oceanic.css');
37+
38+
assert.deepEqual(tokens, {
39+
color: '_test_api_fixture_oceanic__color',
40+
});
41+
});
42+
43+
setup(() => {
44+
hook({});
45+
writeFile(source1);
46+
require('./fixture/oceanic.css');
47+
writeFile(source2);
48+
});
49+
});
50+
});
51+
52+
suite('should clear cache in development mode', () => {
53+
suite('devMode:true option should works without NODE_ENV="development"', () => {
54+
test('should retrive data from fs', () => {
55+
const tokens = require('./fixture/oceanic.css');
56+
57+
assert.deepEqual(tokens, {
58+
'awesome-color': '_test_api_fixture_oceanic__awesome-color',
59+
});
60+
});
61+
62+
setup(() => {
63+
hook({devMode: true});
64+
writeFile(source1);
65+
require('./fixture/oceanic.css');
66+
writeFile(source2);
67+
});
68+
});
69+
70+
suite('NODE_ENV="development" should works without debug:true option', () => {
71+
test('should retrive data from fs', () => {
72+
const tokens = require('./fixture/oceanic.css');
73+
74+
assert.deepEqual(tokens, {
75+
'awesome-color': '_test_api_fixture_oceanic__awesome-color',
76+
});
77+
});
78+
79+
setup(() => {
80+
process.env.NODE_ENV = 'development';
81+
hook({});
82+
writeFile(source1);
83+
require('./fixture/oceanic.css');
84+
writeFile(source2);
85+
});
86+
87+
teardown(() => {
88+
process.env.NODE_ENV = '';
89+
});
90+
});
91+
});
92+
93+
teardown(() => {
94+
writeFile(source1);
95+
detachHook('.css');
96+
dropCache('./api/fixture/oceanic.css');
97+
});
98+
});
99+
100+
/**
101+
* @param {string} data
102+
*/
103+
function writeFile(data) {
104+
writeFileSync(destination, data, 'utf8');
105+
}

0 commit comments

Comments
 (0)