-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstringify_test.ts
72 lines (63 loc) · 1.59 KB
/
stringify_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
68
69
70
71
72
import { stringifyAcceptRanges } from "./stringify.ts";
import {
assertEquals,
assertIsError,
assertThrows,
describe,
it,
} from "./_dev_deps.ts";
describe("stringifyAcceptRanges", () => {
it("should return string if the input is valid string", () => {
const table: string[] = ["bytes", "none"];
table.forEach((input) => {
assertEquals(stringifyAcceptRanges(input), input);
});
});
it("should return string if the input is valid string of array", () => {
const table: [[string, ...string[]], string][] = [
[["bytes"], "bytes"],
[["bytes", "unknown"], "bytes, unknown"],
];
table.forEach(([input, expected]) => {
assertEquals(stringifyAcceptRanges(input), expected);
});
});
it("should throw error if the input is invalid string", () => {
const table: string[] = [
"",
" ",
"bytes, none",
"a ",
" a",
",",
" ,",
`"a"`,
`"a, b"`,
];
table.forEach((input) => {
assertThrows(() => stringifyAcceptRanges(input));
});
});
it("should throw error if the array input has is invalid string", () => {
const table: [string, ...string[]][] = [
[""],
["", ""],
["", "", "", ""],
["", "ok"],
["ng", ","],
];
table.forEach((input) => {
assertThrows(() => stringifyAcceptRanges(input));
});
});
it("should be error message", () => {
let err;
try {
stringifyAcceptRanges("");
} catch (e) {
err = e;
} finally {
assertIsError(err, TypeError, `invalid <range-unit> syntax. ""`);
}
});
});