-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
index.test.js
103 lines (85 loc) · 2.27 KB
/
index.test.js
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
'use strict'
const path = require('path')
const getSize = require('../')
function fixture (name) {
return path.join(__dirname, 'fixtures', `${ name }.js`)
}
function trim (num) {
return Math.floor(num / 10) * 10
}
it('returns 0 for empty project', () => {
return getSize(fixture('unlimit/empty')).then(size => {
expect(size).toEqual(0)
})
})
it('shows project size', () => {
return getSize(fixture('bad/index')).then(size => {
expect(size).toEqual(2252)
})
})
it('accepts array', () => {
return getSize([fixture('bad/index'), fixture('good/index')]).then(size => {
expect(size).toEqual(2267)
})
})
it('returns error', () => {
return getSize(fixture('unknown')).catch(e => {
expect(e.message).toContain('Can\'t resolve')
})
})
it('supports ES2016', () => {
return getSize(fixture('es2016/index')).then(size => {
expect(size).toEqual(34)
})
})
it('support images', () => {
return getSize(fixture('img/index')).then(size => {
expect(size).toEqual(53)
})
})
it('supports CSS', () => {
return getSize(fixture('css/index')).then(size => {
expect(trim(size)).toEqual(2320)
})
})
it('supports CSS modules', () => {
return getSize(fixture('cssmodules/index')).then(size => {
expect(trim(size)).toEqual(2360)
})
})
it('removes non-production code', () => {
return getSize(fixture('multiple/production')).then(size => {
expect(size).toEqual(8)
})
})
it('ignores dependencies on request', () => {
return getSize(fixture('peer/index'), { ignore: ['redux'] }).then(size => {
expect(size).toEqual(97)
})
})
it('disables webpack on request', () => {
return getSize([
fixture('bad/index'), fixture('es2016/index')
], { webpack: false }).then(size => {
expect(size).toEqual(122)
})
})
it('disables gzip on request', () => {
return getSize([fixture('bad/index')], { gzip: false }).then(size => {
expect(size).toEqual(6674)
})
})
it('disables gzip and webpack on request', () => {
return getSize([
fixture('bad/index')
], { webpack: false, gzip: false }).then(size => {
expect(size).toEqual(31)
})
})
it('uses custom webpack config', () => {
return getSize(fixture('webpack-config/index'), {
config: fixture('webpack-config/webpack.config')
}).then(size => {
expect(size).toEqual(2790)
})
})