test: increase querystring coverage
PR-URL: https://github.com/nodejs/node/pull/12163 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
b2ac3b60b2
commit
dc7d9eb0a9
@ -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(
|
||||
@ -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$/);
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user