-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.ts
65 lines (57 loc) · 1.42 KB
/
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
import {of} from "most";
import streamSatisfies from "@unction/streamsatisfies";
import mapValuesWithValueKey from "./index";
test("Array", () => {
expect(
mapValuesWithValueKey((value) => (index) => `${value}:${index}`)(["a", "b", "c"])
).toEqual(["a:0", "b:1", "c:2"]);
});
test("Object", () => {
expect(mapValuesWithValueKey((value) => (index) => `${value}:${index}`)({
aaa: "a",
bbb: "b",
ccc: "c",
})).toEqual({
aaa: "a:aaa",
bbb: "b:bbb",
ccc: "c:ccc",
});
});
test("Set", () => {
expect(
mapValuesWithValueKey((value) => (index) => `${value}:${index}`)(new Set(["a", "b", "c"]))
).toEqual(new Set(["a:undefined", "b:undefined", "c:undefined"]));
});
test("Map", () => {
expect(
mapValuesWithValueKey((value) => (index) => `${value}:${index}`)(new Map([["0", "a"], ["1", "b"], ["2", "c"]]))
).toEqual(new Map([["0", "a:0"], ["1", "b:1"], ["2", "c:2"]]));
});
test("String", () => {
expect(mapValuesWithValueKey((value) => (index) => `${value}:${index}`)("abc")).toBe("a:0b:1c:2");
});
test("Stream", done => {
streamSatisfies(
[
["a", null],
]
)(
(given) => (expected) => expect(given).toEqual(expected)
)(
doesNotThrow
)(
({length}) =>
(position) => {
expect(length).toBe(position);
done();
}
)(
mapValuesWithValueKey(
(value) =>
(index) =>
[value, index]
)(
of("a")
),
);
});