@@ -101,47 +101,142 @@ describe('customAfter()', function() {
101101} ) ;
102102
103103describe ( 'parseStringVal()' , function ( ) {
104- it ( 'returns boolean true for "true" string' , function ( ) {
105- assert . equal ( qs . parseStringVal ( 'true' ) , true ) ;
106- } ) ;
104+ describe ( 'true' , function ( ) {
105+ [
106+ 'true' ,
107+ 'TrUe' ,
108+ 'TRUE'
109+ ] . forEach ( function ( val ) {
110+ it ( 'returns true for "' + val + '" string' , function ( ) {
111+ assert . strictEqual ( qs . parseStringVal ( val ) , true ) ;
112+ } ) ;
107113
108- it ( 'returns string "true" when boolean parsing is disabled' , function ( ) {
109- qs . string . toBoolean = false ;
110- assert . equal ( qs . parseStringVal ( 'true' ) , 'true' ) ;
114+ it ( 'returns "' + val + '" for "' + val + '" when !toBoolean' , function ( ) {
115+ qs . string . toBoolean = false ;
116+ assert . strictEqual ( qs . parseStringVal ( val ) , val ) ;
117+ } ) ;
118+ } ) ;
111119 } ) ;
112120
113- it ( 'returns boolean false for "flase" string' , function ( ) {
114- assert . equal ( qs . parseStringVal ( 'false' ) , false ) ;
115- } ) ;
121+ describe ( 'false' , function ( ) {
122+ [
123+ 'false' ,
124+ 'FaLsE' ,
125+ 'FALSE'
126+ ] . forEach ( function ( val ) {
127+ it ( 'returns false for "' + val + '" string' , function ( ) {
128+ assert . strictEqual ( qs . parseStringVal ( val ) , false ) ;
129+ } ) ;
116130
117- it ( 'returns string "false" when boolean parsing is disabled' , function ( ) {
118- qs . string . toBoolean = false ;
119- assert . equal ( qs . parseStringVal ( 'false' ) , 'false' ) ;
131+ it ( 'returns "' + val + '" for "' + val + '" when !toBoolean' , function ( ) {
132+ qs . string . toBoolean = false ;
133+ assert . strictEqual ( qs . parseStringVal ( val ) , val ) ;
134+ } ) ;
135+ } ) ;
120136 } ) ;
121137
122- it ( 'returns number for parseable integer' , function ( ) {
123- assert . equal ( qs . parseStringVal ( '100' ) , 100 ) ;
124- } ) ;
138+ describe ( 'integers' , function ( ) {
139+ [
140+ '0' ,
141+ '1' ,
142+ '100' ,
143+ '000100' ,
125144
126- it ( 'returns string number when number parsing is disabled' , function ( ) {
127- qs . string . toNumber = false ;
128- assert . equal ( qs . parseStringVal ( '100' ) , ' 100') ;
129- } ) ;
145+ '+0' ,
146+ '+1' ,
147+ '+ 100',
148+ '+000100' ,
130149
131- it ( 'returns number for zero padded parseable integer' , function ( ) {
132- assert . equal ( qs . parseStringVal ( '000100' ) , 100 ) ;
133- } ) ;
150+ '-0' ,
151+ '-1' ,
152+ '-100' ,
153+ '-000100' ,
154+
155+ ' 0 ' ,
156+ ' 1 ' ,
157+ ' 100 ' ,
158+ ' 000100 ' ,
159+ ] . forEach ( function ( val ) {
160+ var ret = parseInt ( val , 10 ) ;
134161
135- it ( 'returns number for parseable float' , function ( ) {
136- assert . equal ( qs . parseStringVal ( '10.123' ) , 10.123 ) ;
162+ it ( 'returns ' + ret + ' for "' + val + '"' , function ( ) {
163+ assert . strictEqual ( qs . parseStringVal ( val ) , ret ) ;
164+ assert . notStrictEqual ( qs . parseStringVal ( val ) , NaN ) ;
165+ } ) ;
166+
167+ it ( 'returns "' + val + '" for "' + val + '" when !toNumber' , function ( ) {
168+ qs . string . toNumber = false ;
169+ assert . strictEqual ( qs . parseStringVal ( val ) , val ) ;
170+ } ) ;
171+ } ) ;
137172 } ) ;
138173
139- it ( 'returns number for zero padded parseable float' , function ( ) {
140- assert . equal ( qs . parseStringVal ( '00010.123' ) , 10.123 ) ;
174+ describe ( 'floats' , function ( ) {
175+ [
176+ '0.0' ,
177+ '1.1' ,
178+ '100.99' ,
179+ '000100.0099' ,
180+
181+ '+0.0' ,
182+ '+1.1' ,
183+ '+100.99' ,
184+ '+000100.0099' ,
185+
186+ '-0.0' ,
187+ '-1.1' ,
188+ '-100.99' ,
189+ '-000100.0099' ,
190+
191+ ' 0.0 ' ,
192+ ' 1.1 ' ,
193+ ' 100.99 ' ,
194+ ' 000100.0099 ' ,
195+ ] . forEach ( function ( val ) {
196+ var ret = parseFloat ( val , 10 ) ;
197+
198+ it ( 'returns ' + ret + ' for "' + val + '"' , function ( ) {
199+ assert . strictEqual ( qs . parseStringVal ( val ) , parseFloat ( val , 10 ) ) ;
200+ assert . notStrictEqual ( qs . parseStringVal ( val ) , NaN ) ;
201+ } ) ;
202+
203+ it ( 'returns "' + val + '" for "' + val + '" when !toNumber' , function ( ) {
204+ qs . string . toNumber = false ;
205+ assert . strictEqual ( qs . parseStringVal ( val ) , val ) ;
206+ } ) ;
207+ } ) ;
141208 } ) ;
142209
143- it ( 'returns string for empty string' , function ( ) {
144- assert . equal ( qs . parseStringVal ( '' ) , '' ) ;
210+ describe ( 'strings' , function ( ) {
211+ [
212+ '' ,
213+
214+ ' ' ,
215+ ' ' ,
216+ ' ' ,
217+
218+ '+' ,
219+ '-' ,
220+ ' + ' ,
221+ ' - ' ,
222+
223+ 'a' ,
224+ 'ab' ,
225+ 'abc' ,
226+
227+ ' a ' ,
228+ ' ab ' ,
229+ ' abc ' ,
230+
231+ 'abc123abc' ,
232+ 'abc123' ,
233+ '123abc' ,
234+ '123abc123' ,
235+ ] . forEach ( function ( val ) {
236+ it ( 'returns "' + val + '" for "' + val + '"' , function ( ) {
237+ assert . strictEqual ( qs . parseStringVal ( val ) , val ) ;
238+ } ) ;
239+ } ) ;
145240 } ) ;
146241} ) ;
147242
0 commit comments