Skip to content

Commit

Permalink
test: increase querystring coverage
Browse files Browse the repository at this point in the history
PR-URL: #12163
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Yuta Hiroto <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
  • Loading branch information
DavidCai1111 authored and jasnell committed Apr 4, 2017
1 parent b2ac3b6 commit dc7d9eb
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 9 additions & 2 deletions test/parallel/test-querystring-escape.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ assert.deepStrictEqual(qs.escape('test'), 'test');
assert.deepStrictEqual(qs.escape({}), '%5Bobject%20Object%5D');
assert.deepStrictEqual(qs.escape([5, 10]), '5%2C10');
assert.deepStrictEqual(qs.escape('Ŋōđĕ'), '%C5%8A%C5%8D%C4%91%C4%95');
assert.deepStrictEqual(qs.escape('testŊōđĕ'), 'test%C5%8A%C5%8D%C4%91%C4%95');
assert.deepStrictEqual(qs.escape(`${String.fromCharCode(0xD800 + 1)}test`),
'%F0%90%91%B4est');
assert.throws(() => qs.escape(String.fromCharCode(0xD800 + 1)),
/^URIError: URI malformed$/);

// using toString for objects
assert.strictEqual(
Expand All @@ -17,9 +22,11 @@ assert.strictEqual(
);

// toString is not callable, must throw an error
assert.throws(() => qs.escape({toString: 5}));
assert.throws(() => qs.escape({toString: 5}),
/^TypeError: Cannot convert object to primitive value$/);

// should use valueOf instead of non-callable toString
assert.strictEqual(qs.escape({toString: 5, valueOf: () => 'test'}), 'test');

assert.throws(() => qs.escape(Symbol('test')));
assert.throws(() => qs.escape(Symbol('test')),
/^TypeError: Cannot convert a Symbol value to a string$/);
2 changes: 2 additions & 0 deletions test/parallel/test-querystring.js
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,8 @@ function demoDecode(str) {
}
check(qs.parse('a=a&b=b&c=c', null, null, { decodeURIComponent: demoDecode }),
{ aa: 'aa', bb: 'bb', cc: 'cc' });
check(qs.parse('a=a&b=b&c=c', null, '==', { decodeURIComponent: (str) => str }),
{ 'a=a': '', 'b=b': '', 'c=c': '' });

// Test QueryString.unescape
function errDecode(str) {
Expand Down

0 comments on commit dc7d9eb

Please sign in to comment.