| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | var should    = require('should'),	  stringify = require('../lib/querystring').build;describe('stringify', function() {	describe('with null', function() {		it('throws', function() {			(function() {				var res = stringify(null);			}).should.throw();		})	})	describe('with a number', function() {		it('throws', function() {			(function() {				var res = stringify(100);			}).should.throw();		})	})	describe('with a string', function() {		describe('that is empty', function() {			it('throws', function() {				(function() {					var res = stringify('');				}).should.throw();			})		})		describe('that doesnt contain an equal sign', function() {			it('throws', function() {				(function() {					var res = stringify('boomshagalaga');				}).should.throw();			})		})		describe('that contains an equal sign', function() {			it('works', function() {				var res = stringify('hello=123');				res.should.eql('hello=123');			})		})	})	describe('with an array', function() {		describe('with key val objects', function() {			it('works', function() {				var res = stringify([ {foo: 'bar'} ]);				res.should.eql('foo=bar');			})		})		describe('where all elements are strings with an equal sign', function() {			it('works', function() {				var res = stringify([ 'bar=123', 'quux=' ]);				res.should.eql('bar=123&quux=');			})		})		describe('with random words', function() {			it('throws', function() {				(function() {					var res = stringify(['hello', 'there']);				}).should.throw();			})		})		describe('with integers', function() {			it('throws', function() {				(function() {					var res = stringify([123, 432]);				}).should.throw();			})		})	})	describe('with an object', function() {			it('works', function() {				var res = stringify({ test: 100 });				res.should.eql('test=100');			})			describe('with object where val is an array', function() {				it('works', function() {					var res = stringify({ foo: ['bar', 'baz'] });					res.should.eql('foo[]=bar&foo[]=baz');				})			})			describe('with object where val is an array of key val objects', function() {				it('works', function() {					var res = stringify({ foo: [{'1': 'bar'}, {'2': 'baz'}] });					res.should.eql('foo[][1]=bar&foo[][2]=baz');				})			})	})})
 |