mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-19 04:53:30 +01:00
feat: add makeURLSearchParams utility function (#7744)
This commit is contained in:
60
packages/rest/__tests__/utils.test.ts
Normal file
60
packages/rest/__tests__/utils.test.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { makeURLSearchParams } from '../src';
|
||||
|
||||
describe('makeURLSearchParams', () => {
|
||||
test('GIVEN undefined THEN returns empty URLSearchParams', () => {
|
||||
const params = makeURLSearchParams();
|
||||
|
||||
expect([...params.entries()]).toEqual([]);
|
||||
});
|
||||
|
||||
test('GIVEN empty object THEN returns empty URLSearchParams', () => {
|
||||
const params = makeURLSearchParams({});
|
||||
|
||||
expect([...params.entries()]).toEqual([]);
|
||||
});
|
||||
|
||||
test('GIVEN a record of strings THEN returns URLSearchParams with strings', () => {
|
||||
const params = makeURLSearchParams({ foo: 'bar', hello: 'world' });
|
||||
|
||||
expect([...params.entries()]).toEqual([
|
||||
['foo', 'bar'],
|
||||
['hello', 'world'],
|
||||
]);
|
||||
});
|
||||
|
||||
test('GIVEN a record of strings with nullish values THEN returns URLSearchParams without nullish values', () => {
|
||||
const params = makeURLSearchParams({ foo: 'bar', hello: null, one: undefined });
|
||||
|
||||
expect([...params.entries()]).toEqual([['foo', 'bar']]);
|
||||
});
|
||||
|
||||
test('GIVEN a record of non-string values THEN returns URLSearchParams with string values', () => {
|
||||
const params = makeURLSearchParams({ life: 42, big: 100n, bool: true });
|
||||
|
||||
expect([...params.entries()]).toEqual([
|
||||
['life', '42'],
|
||||
['big', '100'],
|
||||
['bool', 'true'],
|
||||
]);
|
||||
});
|
||||
|
||||
describe('objects', () => {
|
||||
test('GIVEN a record of date values THEN URLSearchParams with ISO string values', () => {
|
||||
const params = makeURLSearchParams({ before: new Date('2022-04-04T15:43:05.108Z'), after: new Date(NaN) });
|
||||
|
||||
expect([...params.entries()]).toEqual([['before', '2022-04-04T15:43:05.108Z']]);
|
||||
});
|
||||
|
||||
test('GIVEN a record of plain object values THEN returns empty URLSearchParams', () => {
|
||||
const params = makeURLSearchParams({ foo: {}, hello: { happy: true } });
|
||||
|
||||
expect([...params.entries()]).toEqual([]);
|
||||
});
|
||||
|
||||
test('GIVEN a record of objects with overridden toString THEN returns non-empty URLSearchParams', () => {
|
||||
const params = makeURLSearchParams({ foo: { toString: () => 'bar' } });
|
||||
|
||||
expect([...params.entries()]).toEqual([['foo', 'bar']]);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user