forked from postcss/postcss
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroot.test.js
62 lines (50 loc) · 1.79 KB
/
root.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
let Result = require('../lib/result')
let parse = require('../lib/parse')
it('prepend() fixes spaces on insert before first', () => {
let css = parse('a {} b {}')
css.prepend({ selector: 'em' })
expect(css.toString()).toEqual('em {} a {} b {}')
})
it('prepend() fixes spaces on multiple inserts before first', () => {
let css = parse('a {} b {}')
css.prepend({ selector: 'em' }, { selector: 'strong' })
expect(css.toString()).toEqual('em {} strong {} a {} b {}')
})
it('prepend() uses default spaces on only first', () => {
let css = parse('a {}')
css.prepend({ selector: 'em' })
expect(css.toString()).toEqual('em {}\na {}')
})
it('append() sets new line between rules in multiline files', () => {
let a = parse('a {}\n\na {}\n')
let b = parse('b {}\n')
expect(a.append(b).toString()).toEqual('a {}\n\na {}\n\nb {}\n')
})
it('insertAfter() does not use before of first rule', () => {
let css = parse('a{} b{}')
css.insertAfter(0, { selector: '.a' })
css.insertAfter(2, { selector: '.b' })
expect(css.nodes[1].raws.before).not.toBeDefined()
expect(css.nodes[3].raws.before).toEqual(' ')
expect(css.toString()).toEqual('a{} .a{} b{} .b{}')
})
it('fixes spaces on removing first rule', () => {
let css = parse('a{}\nb{}\n')
css.first.remove()
expect(css.toString()).toEqual('b{}\n')
})
it('keeps spaces on moving root', () => {
let css1 = parse('a{}\nb{}\n')
let css2 = parse('')
css2.append(css1)
expect(css2.toString()).toEqual('a{}\nb{}')
let css3 = parse('\n')
css3.append(css2.nodes)
expect(css3.toString()).toEqual('a{}\nb{}\n')
})
it('generates result with map', () => {
let root = parse('a {}')
let result = root.toResult({ map: true })
expect(result instanceof Result).toBeTruthy()
expect(result.css).toMatch(/a \{\}\n\/\*# sourceMappingURL=/)
})