@@ -10,49 +10,105 @@ test('it responds with the correct structure', t => {
1010 total : 0
1111 } ,
1212 selectors : {
13- min : 0 ,
14- max : 0 ,
13+ min : 0 /** @deprecated */ ,
14+ minimum : {
15+ count : 0 ,
16+ value : [ ]
17+ } ,
18+ max : 0 /** @deprecated */ ,
19+ maximum : {
20+ count : 0 ,
21+ value : [ ]
22+ } ,
1523 average : 0
1624 }
1725 } )
1826} )
1927
2028test ( 'it counts basic rules' , t => {
21- const { total} = analyze ( [ { declarationsCount : 1 } , { declarationsCount : 8 } ] )
29+ const { total} = analyze ( [
30+ { declarations : [ ] , selectors : [ 'a' ] } ,
31+ { declarations : [ ] , selectors : [ 'b' ] }
32+ ] )
2233 t . is ( total , 2 )
2334} )
2435
2536test ( 'it counts empty rules' , t => {
26- const {
27- empty : { total}
28- } = analyze ( [ { declarationsCount : 1 } , { declarationsCount : 0 } ] )
37+ const actual = analyze ( [
38+ {
39+ declarations : [ { property : 'a' , value : 'a' , important : false } ] ,
40+ selectors : [ 'a' ]
41+ } ,
42+ { declarations : [ ] , selectors : [ 'a' ] }
43+ ] )
2944 const expected = 1
30- t . is ( total , expected )
45+ t . is ( actual . empty . total , expected )
3146} )
3247
3348test ( 'it counts the average selectors per rule' , t => {
34- const {
35- selectors : { average}
36- } = analyze ( [ { selectorsCount : 1 } , { selectorsCount : 4 } ] )
49+ const actual = analyze ( [
50+ { selectors : [ 'a' , 'b' , 'c' , 'd' ] , declarations : [ ] } ,
51+ { selectors : [ 'a' ] , declarations : [ ] }
52+ ] )
3753 const expected = 2.5
3854
39- t . is ( average , expected )
55+ t . is ( actual . selectors . average , expected )
56+ } )
57+
58+ test ( 'it counts the minimum selectors per rule' , t => {
59+ const actual = analyze ( [
60+ { selectors : [ 'a' , 'b' , 'c' , 'd' ] , declarations : [ ] } ,
61+ { selectors : [ 'a' ] , declarations : [ ] }
62+ ] )
63+
64+ t . is ( actual . selectors . minimum . count , 1 )
65+ t . deepEqual ( actual . selectors . minimum . value , [ 'a' ] )
66+ } )
67+
68+ test ( 'it counts the maximum selectors per rule' , t => {
69+ const actual = analyze ( [
70+ { selectors : [ 'a' , 'b' , 'c' , 'd' ] , declarations : [ ] } ,
71+ { selectors : [ 'a' ] , declarations : [ ] }
72+ ] )
73+
74+ t . is ( actual . selectors . maximum . count , 4 )
75+ t . deepEqual ( actual . selectors . maximum . value , [ 'a' , 'b' , 'c' , 'd' ] )
76+ } )
77+
78+ test ( 'it sorts the minimum selectors per rule by string length and alphabetically' , t => {
79+ const actual = analyze ( [
80+ { selectors : [ 'aa' ] , declarations : [ ] } ,
81+ { selectors : [ 'A' ] , declarations : [ ] } ,
82+ { selectors : [ 'b' ] , declarations : [ ] } ,
83+ { selectors : [ 'bb' ] , declarations : [ ] }
84+ ] )
85+
86+ t . is ( actual . selectors . minimum . count , 1 )
87+ t . deepEqual ( actual . selectors . minimum . value , [ 'A' ] )
4088} )
4189
90+ /**
91+ * @deprecated in v3.0.0
92+ */
4293test ( 'it counts the min selectors per rule' , t => {
43- const {
44- selectors : { min}
45- } = analyze ( [ { selectorsCount : 1 } , { selectorsCount : 4 } ] )
94+ const actual = analyze ( [
95+ { selectors : [ 'a' , 'b' , 'c' , 'd' ] , declarations : [ ] } ,
96+ { selectors : [ 'a' ] , declarations : [ ] }
97+ ] )
4698 const expected = 1
4799
48- t . is ( min , expected )
100+ t . is ( actual . selectors . min , expected )
49101} )
50102
103+ /**
104+ * @deprecated v3.0.0
105+ */
51106test ( 'it counts the max selectors per rule' , t => {
52- const {
53- selectors : { max}
54- } = analyze ( [ { selectorsCount : 1 } , { selectorsCount : 4 } ] )
107+ const actual = analyze ( [
108+ { selectors : [ 'a' , 'b' , 'c' , 'd' ] , declarations : [ ] } ,
109+ { selectors : [ 'a' ] , declarations : [ ] }
110+ ] )
55111 const expected = 4
56112
57- t . is ( max , expected )
113+ t . is ( actual . selectors . max , expected )
58114} )
0 commit comments