Skip to content

Commit 07f4610

Browse files
authored
Add rules tests (#108)
refs #81
1 parent 3d44318 commit 07f4610

File tree

4 files changed

+41
-45
lines changed

4 files changed

+41
-45
lines changed

test/analyzer/rules/index.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
const test = require('ava')
2-
const testScope = require('../../utils/scope-tester.js')
2+
const analyze = require('../../../src/analyzer/rules')
33

4-
const SCOPE = 'rules'
4+
test('it responds with the correct structure', t => {
5+
const actual = analyze([])
56

6-
test(SCOPE, async t => {
7-
const {actual, expected} = await testScope(SCOPE)
8-
t.deepEqual(actual[SCOPE], expected)
7+
t.deepEqual(actual, {
8+
total: 0,
9+
empty: {
10+
total: 0
11+
}
12+
})
13+
})
14+
15+
test('it counts basic rules', t => {
16+
const {total} = analyze([{declarationsCount: 1}, {declarationsCount: 8}])
17+
t.is(total, 2)
18+
})
19+
20+
test('it counts empty rules', t => {
21+
const actual = analyze([{declarationsCount: 1}, {declarationsCount: 0}])
22+
t.is(actual.empty.total, 1)
923
})

test/analyzer/rules/input.css

Lines changed: 0 additions & 27 deletions
This file was deleted.

test/analyzer/rules/output.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

test/parser/rules.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,33 @@ const test = require('ava')
22
const parser = require('../../src/parser')
33

44
test('basic rules are parsed', async t => {
5-
const fixture = 'html {} @media screen { html {} }'
5+
const fixture = 'html {color:red} @media screen { html {} }'
66
const actual = await parser(fixture)
7-
const expected = 2
7+
const expected = [{declarationsCount: 1}, {declarationsCount: 0}]
88

9-
t.is(actual.rules.length, expected)
9+
t.deepEqual(actual.rules, expected)
1010
})
1111

1212
test('declarations per rule are counted', async t => {
13-
const fixture = ('html, body {color:red; font-size : 12px} .foo {color: red;}')
13+
const fixture = 'html, body {color:red; font-size : 12px} .foo {color: red;}'
14+
const actual = await parser(fixture)
15+
const expected = [2, 1].map(num => ({declarationsCount: num}))
16+
t.deepEqual(actual.rules, expected)
17+
})
18+
19+
test('heavily nested rules are parsed', async t => {
20+
const fixture = `
21+
@media screen {
22+
@media print {
23+
@media (min-width: 1px) {
24+
.rule2 {
25+
color: red;
26+
}
27+
}
28+
}
29+
}
30+
`
1431
const actual = await parser(fixture)
15-
const expected = [2, 1].map(num => {
16-
return {declarationsCount: num}
17-
})
32+
const expected = [{declarationsCount: 1}]
1833
t.deepEqual(actual.rules, expected)
1934
})

0 commit comments

Comments
 (0)