@@ -39,17 +39,33 @@ describe('Parser → Number', () => {
3939 test : '5+ 5' ,
4040 expected : { throw : true }
4141 } ,
42+ {
43+ test : 'calc(5+ 5)' ,
44+ expected : { throw : true }
45+ } ,
4246 {
4347 test : '5 +5' ,
48+ expected : { value : '+5' , unit : '' , length : 2 }
49+ } ,
50+ {
51+ test : 'calc(5 +5)' ,
4452 expected : { throw : true }
4553 } ,
4654 {
47- test : '5+5' ,
55+ test : '5px+5px' ,
56+ expected : { value : '+5' , unit : 'px' , length : 2 }
57+ } ,
58+ {
59+ test : 'calc(5+5)' ,
4860 expected : { throw : true }
4961 } ,
5062 {
5163 test : '5 + 5' ,
52- expected : { value : '5' , unit : '' , length : 3 }
64+ expected : { throw : true }
65+ } ,
66+ {
67+ test : 'calc(5 + 5)' ,
68+ expected : { value : ')' , length : 5 }
5369 } ,
5470 {
5571 test : '.' ,
@@ -58,6 +74,18 @@ describe('Parser → Number', () => {
5874 {
5975 test : '.rem' ,
6076 expected : { fail : true , length : 1 }
77+ } ,
78+ {
79+ test : '-2px' ,
80+ expected : { value : '-2' , unit : 'px' , length : 1 }
81+ } ,
82+ {
83+ test : '-16px' ,
84+ expected : { value : '-16' , unit : 'px' , length : 1 }
85+ } ,
86+ {
87+ test : '-16px -1px -1px -16px' ,
88+ expected : { value : '-16' , unit : 'px' , length : 4 }
6189 }
6290 ] ;
6391
@@ -77,7 +105,15 @@ describe('Parser → Number', () => {
77105 else {
78106 parse ( ) ;
79107
80- expect ( ast . first . nodes . length ) . to . equal ( fixture . expected . length ) ;
108+ let targetNode = ast . first ;
109+
110+ // support testing calc
111+ if ( targetNode . first . nodes && targetNode . first . nodes . length ) {
112+ targetNode = targetNode . first ;
113+ node = targetNode . last ;
114+ }
115+
116+ expect ( targetNode . nodes . length ) . to . equal ( fixture . expected . length ) ;
81117
82118 if ( fixture . expected . fail ) {
83119 expect ( node . value ) . to . equal ( fixture . test ) ;
@@ -117,11 +153,15 @@ describe('Parser → Number : Loose', () => {
117153 } ,
118154 {
119155 test : '5+5' ,
120- expected : { value : '5' , unit : '' , length : 3 }
156+ expected : { value : '+ 5' , unit : '' , length : 2 }
121157 } ,
122158 {
123159 test : '5+-+-+-+5' ,
124160 expected : { value : '+5' , unit : '' , length : 8 }
161+ } ,
162+ {
163+ test : '-16px -1px -1px -16px' ,
164+ expected : { value : '-16' , unit : 'px' , length : 4 }
125165 }
126166 ] ;
127167
0 commit comments