/
browser.test.ts
70 lines (61 loc) · 1.62 KB
/
browser.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
/* eslint-disable @typescript-eslint/no-var-requires */
import { bold, red, gray, yellow } from 'nanocolors'
beforeEach(() => {
jest.resetModules()
jest.doMock('fs', () => ({}))
jest.doMock('nanocolors', () => ({ bold, red, gray, yellow }))
})
it('shows code with colors', () => {
let postcss = require('../lib/postcss.js')
let error
try {
postcss.parse('a{')
} catch (e) {
if (e.name === 'CssSyntaxError') {
error = e
} else {
throw e
}
}
expect(error.showSourceCode(true)).toEqual(
bold(red('>')) +
gray(' 1 | ') +
'a' +
yellow('{') +
'\n ' +
gray(' | ') +
bold(red('^'))
)
})
it('shows code without colors', () => {
let postcss = require('../lib/postcss.js')
let error
try {
postcss.parse('a{')
} catch (e) {
if (e.name === 'CssSyntaxError') {
error = e
} else {
throw e
}
}
expect(error.showSourceCode(false)).toEqual('> 1 | a{\n' + ' | ^')
})
it('generates source map without fs', () => {
let postcss = require('../lib/postcss.js')
expect(
postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css
).toEqual(
'a{}\n/*# sourceMappingURL=data:application/json;base64,' +
'eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImEuY3NzIl0sIm5hbWVzIjpbXSw' +
'ibWFwcGluZ3MiOiJBQUFBLEVBQUUiLCJmaWxlIjoiYS5jc3MiLCJzb3VyY2' +
'VzQ29udGVudCI6WyJhe30iXX0= */'
)
})
it(`doesn't throw error without path`, () => {
jest.doMock('path', () => ({}))
let postcss = require('../lib/postcss.js')
expect(
postcss([() => {}]).process('a{}', { from: 'a.css', map: true }).css
).toEqual('a{}')
})