summaryrefslogtreecommitdiff
path: root/node_modules/needle/test/querystring_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/needle/test/querystring_spec.js')
-rw-r--r--node_modules/needle/test/querystring_spec.js128
1 files changed, 128 insertions, 0 deletions
diff --git a/node_modules/needle/test/querystring_spec.js b/node_modules/needle/test/querystring_spec.js
new file mode 100644
index 0000000..34c1748
--- /dev/null
+++ b/node_modules/needle/test/querystring_spec.js
@@ -0,0 +1,128 @@
+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');
+ })
+
+ })
+
+ })
+
+})