forked from css-modules/css-modules-require-hook
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevMode.js
More file actions
105 lines (88 loc) · 2.81 KB
/
Copy pathdevMode.js
File metadata and controls
105 lines (88 loc) · 2.81 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
const detachHook = require('../sugar').detachHook;
const dropCache = require('../sugar').dropCache;
const resolve = require('path').resolve;
const writeFileSync = require('fs').writeFileSync;
const destination = resolve(__dirname, './fixture/oceanic.css');
const source1 = `.color\n{\n background: #1e2a35;\n}\n`;
const source2 = `.awesome-color\n{\n background: #1e2a35;\n}\n`;
suite('api/devMode', () => {
suite('shouldn`t calls cache in development mode', () => {
suite('devMode:false options should override NODE_ENV="development"', () => {
test('should retrive data from cache', () => {
const tokens = require('./fixture/oceanic.css');
assert.deepEqual(tokens, {
color: '_test_api_fixture_oceanic__color',
});
});
setup(() => {
process.env.NODE_ENV = 'development';
hook({devMode: false});
writeFile(source1);
require('./fixture/oceanic.css');
writeFile(source2);
});
teardown(() => {
process.env.NODE_ENV = '';
});
});
suite('should cache calls without any options', () => {
test('should retrive data from cache', () => {
const tokens = require('./fixture/oceanic.css');
assert.deepEqual(tokens, {
color: '_test_api_fixture_oceanic__color',
});
});
setup(() => {
hook({});
writeFile(source1);
require('./fixture/oceanic.css');
writeFile(source2);
});
});
});
suite('should clear cache in development mode', () => {
suite('devMode:true option should works without NODE_ENV="development"', () => {
test('should retrive data from fs', () => {
const tokens = require('./fixture/oceanic.css');
assert.deepEqual(tokens, {
'awesome-color': '_test_api_fixture_oceanic__awesome-color',
});
});
setup(() => {
hook({devMode: true});
writeFile(source1);
require('./fixture/oceanic.css');
writeFile(source2);
});
});
suite('NODE_ENV="development" should works without debug:true option', () => {
test('should retrive data from fs', () => {
const tokens = require('./fixture/oceanic.css');
assert.deepEqual(tokens, {
'awesome-color': '_test_api_fixture_oceanic__awesome-color',
});
});
setup(() => {
process.env.NODE_ENV = 'development';
hook({});
writeFile(source1);
require('./fixture/oceanic.css');
writeFile(source2);
});
teardown(() => {
process.env.NODE_ENV = '';
});
});
});
teardown(() => {
writeFile(source1);
detachHook('.css');
dropCache('./api/fixture/oceanic.css');
});
});
/**
* @param {string} data
*/
function writeFile(data) {
writeFileSync(destination, data, 'utf8');
}