/
styleSupport.test.ts
89 lines (79 loc) · 3.75 KB
/
styleSupport.test.ts
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
// eslint-disable-next-line node/no-missing-import
import style, { StylingType } from '../../lib/utils/styleSupport';
// eslint-disable-next-line node/no-missing-import
import { CustomGenerator } from '../../lib/types';
// TODO: enable after jest release
describe.skip('styleSupport', () => {
const getMockGenerator = (): CustomGenerator => {
const gen = new CustomGenerator(null, null);
gen.dependencies = [];
gen.configuration = {
config: {
topScope: [],
},
};
gen.isProd = false;
return gen;
};
it('generates CSS configuration', () => {
const gen = getMockGenerator();
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.CSS);
expect(gen.dependencies).toEqual(['css-loader', 'style-loader']);
expect(regExpForStyles).toEqual('/.css$/');
expect(ExtractUseProps.length).toEqual(2);
});
it('generates production CSS configuration', () => {
const gen = getMockGenerator();
gen.isProd = true;
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.CSS);
expect(gen.dependencies).toEqual(['css-loader']);
expect(regExpForStyles).toEqual('/.css$/');
expect(ExtractUseProps.length).toEqual(1);
});
it('generates SASS configuration', () => {
const gen = getMockGenerator();
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.SASS);
expect(regExpForStyles).toEqual('/.(scss|css)$/');
expect(gen.dependencies).toEqual(['node-sass', 'sass-loader', 'css-loader', 'style-loader']);
expect(ExtractUseProps.length).toEqual(3);
});
it('generates production SASS configuration', () => {
const gen = getMockGenerator();
gen.isProd = true;
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.SASS);
expect(regExpForStyles).toEqual('/.(scss|css)$/');
expect(gen.dependencies).toEqual(['node-sass', 'sass-loader', 'css-loader']);
expect(ExtractUseProps.length).toEqual(2);
});
it('generates LESS configuration', () => {
const gen = getMockGenerator();
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.LESS);
expect(gen.dependencies).toEqual(['less', 'less-loader', 'css-loader', 'style-loader']);
expect(regExpForStyles).toEqual('/.(less|css)$/');
expect(ExtractUseProps.length).toEqual(3);
});
it('generates production LESS configuration', () => {
const gen = getMockGenerator();
gen.isProd = true;
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.LESS);
expect(regExpForStyles).toEqual('/.(less|css)$/');
expect(gen.dependencies).toEqual(['less', 'less-loader', 'css-loader']);
expect(ExtractUseProps.length).toEqual(2);
});
it('generates PostCSS configuration', () => {
const gen = getMockGenerator();
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.PostCSS);
expect(gen.dependencies).toEqual(['precss', 'autoprefixer', 'css-loader', 'postcss-loader', 'style-loader']);
expect(regExpForStyles).toEqual('/.css$/');
expect(ExtractUseProps.length).toEqual(3);
expect(gen.configuration.config.topScope.length).not.toEqual(0);
});
it('generates production PostCSS configuration', () => {
const gen = getMockGenerator();
gen.isProd = true;
const { ExtractUseProps, regExpForStyles } = style(gen, StylingType.PostCSS);
expect(gen.dependencies).toEqual(['precss', 'autoprefixer', 'css-loader', 'postcss-loader']);
expect(regExpForStyles).toEqual('/.css$/');
expect(ExtractUseProps.length).toEqual(2);
});
});