-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathutils.test.ts
67 lines (64 loc) · 2.14 KB
/
utils.test.ts
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
63
64
65
66
67
import { createQueryString, checkParameters } from "../src/utils";
import { NeverRekt } from "../src/types";
function test_createQueryString(): void {
test("Build simple valid query string", (): void => {
const params: { argument: string } = {
argument: "response",
};
expect(createQueryString(params)).toBe(`?argument=response`);
});
test("Build complex valid query string", (): void => {
const params: {
argument: string;
list: (string | number)[];
lastParam: number;
} = {
argument: "response",
list: ["string", 516, "test", 23],
lastParam: 12,
};
expect(createQueryString(params)).toBe(
`?argument=response&list=string%2C516%2Ctest%2C23&lastParam=12`
);
});
test("Build null query string", (): void => {
const params: {} = {};
expect(createQueryString(params)).toBe("");
});
}
function test_checkParameters() {
test("Check parameters with empty query map", (): void => {
const params: {} = {};
const map: NeverRekt.ParametersMap = [];
expect(checkParameters(params, map)).toBeFalsy();
});
test("Check for missing non-required paramters", (): void => {
const params: {} = {};
const map: NeverRekt.ParametersMap = [{ key: "param" }];
expect(checkParameters(params, map)).toBeFalsy();
});
test("Check for missing required paramters", (): void => {
const params: {} = {};
const map: NeverRekt.ParametersMap = [{ key: "param", required: true }];
expect(checkParameters(params, map)).toBeTruthy();
});
test("Check for unused paramters", (): void => {
const params: { param: string } = { param: "test" };
const map: NeverRekt.ParametersMap = [];
expect(checkParameters(params, map)).toBeFalsy();
});
test("Check with valid paramters", (): void => {
const params: { param: string; object: object } = {
param: "test",
object: { prop: 2 },
};
const map: NeverRekt.ParametersMap = [
{ key: "param", required: true },
{ key: "object", required: true },
{ key: "non" },
];
expect(checkParameters(params, map)).toBeFalsy();
});
}
test_createQueryString();
test_checkParameters();