test.js
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
describe('querystringify', function () {
'use strict';
var assume = require('assume')
, qs = require('./');
describe('#stringify', function () {
var obj = {
foo: 'bar',
bar: 'foo'
};
it('is exposed as method', function () {
assume(qs.stringify).is.a('function');
});
it('transforms an object', function () {
assume(qs.stringify(obj)).equals('foo=bar&bar=foo');
});
it('can optionally prefix', function () {
assume(qs.stringify(obj, true)).equals('?foo=bar&bar=foo');
});
it('can prefix with custom things', function () {
assume(qs.stringify(obj, '&')).equals('&foo=bar&bar=foo');
});
it('doesnt prefix empty query strings', function () {
assume(qs.stringify({}, true)).equals('');
assume(qs.stringify({})).equals('');
});
it('works with nulled objects', function () {
var obj = Object.create(null);
obj.foo='bar';
assume(qs.stringify(obj)).equals('foo=bar');
});
});
describe('#parse', function () {
it('is exposed as method', function () {
assume(qs.parse).is.a('function');
});
it('will parse a querystring to an object', function () {
var obj = qs.parse('foo=bar');
assume(obj).is.a('object');
assume(obj.foo).equals('bar');
});
it('will also work if querystring is prefixed with ?', function () {
var obj = qs.parse('?foo=bar&shizzle=mynizzle');
assume(obj).is.a('object');
assume(obj.foo).equals('bar');
assume(obj.shizzle).equals('mynizzle');
});
});
});