diff options
Diffstat (limited to 'deps/npm/node_modules/qs/test/stringify.js')
-rw-r--r-- | deps/npm/node_modules/qs/test/stringify.js | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/deps/npm/node_modules/qs/test/stringify.js b/deps/npm/node_modules/qs/test/stringify.js index 711dae507d..165ac621fe 100644 --- a/deps/npm/node_modules/qs/test/stringify.js +++ b/deps/npm/node_modules/qs/test/stringify.js @@ -2,7 +2,9 @@ var test = require('tape'); var qs = require('../'); +var utils = require('../lib/utils'); var iconv = require('iconv-lite'); +var SaferBuffer = require('safer-buffer').Buffer; test('stringify()', function (t) { t.test('stringifies a querystring object', function (st) { @@ -17,6 +19,16 @@ test('stringify()', function (t) { st.end(); }); + t.test('adds query prefix', function (st) { + st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); + st.end(); + }); + + t.test('with query prefix, outputs blank string given an empty object', function (st) { + st.equal(qs.stringify({}, { addQueryPrefix: true }), ''); + st.end(); + }); + t.test('stringifies a nested object', function (st) { st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); @@ -325,8 +337,8 @@ test('stringify()', function (t) { }); t.test('stringifies buffer values', function (st) { - st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test'); - st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test'); + st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test'); + st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test'); st.end(); }); @@ -452,15 +464,25 @@ test('stringify()', function (t) { st.end(); }); + t.test('receives the default encoder as a second argument', function (st) { + st.plan(2); + qs.stringify({ a: 1 }, { + encoder: function (str, defaultEncoder) { + st.equal(defaultEncoder, utils.encode); + } + }); + st.end(); + }); + t.test('throws error with wrong encoder', function (st) { - st.throws(function () { + st['throws'](function () { qs.stringify({}, { encoder: 'string' }); }, new TypeError('Encoder has to be a function.')); st.end(); }); t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { - st.equal(qs.stringify({ a: new Buffer([1]) }, { + st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, { encoder: function (buffer) { if (typeof buffer === 'string') { return buffer; @@ -483,7 +505,7 @@ test('stringify()', function (t) { mutatedDate.toISOString = function () { throw new SyntaxError(); }; - st.throws(function () { + st['throws'](function () { mutatedDate.toISOString(); }, SyntaxError); st.equal( @@ -525,7 +547,7 @@ test('stringify()', function (t) { t.test('Edge cases and unknown formats', function (st) { ['UFO1234', false, 1234, null, {}, []].forEach( function (format) { - st.throws( + st['throws']( function () { qs.stringify({ a: 'b c' }, { format: format }); }, @@ -564,4 +586,12 @@ test('stringify()', function (t) { st.end(); }); + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.stringify({}, options); + st.deepEqual(options, {}); + st.end(); + }); + + t.end(); }); |