hein 1.3.5 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/DIFFERENCES_WITH_CHAI.md +49 -0
  3. package/README.md +9 -0
  4. package/dist/assert/has-keys.d.ts +13 -0
  5. package/dist/assert/has-keys.d.ts.map +1 -0
  6. package/dist/assert/has-keys.js +29 -0
  7. package/dist/assert/has-keys.js.map +1 -0
  8. package/dist/assert.d.ts +1 -0
  9. package/dist/assert.d.ts.map +1 -1
  10. package/dist/assert.js +5 -1
  11. package/dist/assert.js.map +1 -1
  12. package/dist/expect/keys.d.ts +10 -0
  13. package/dist/expect/keys.d.ts.map +1 -0
  14. package/dist/expect/keys.js +18 -0
  15. package/dist/expect/keys.js.map +1 -0
  16. package/dist/expect.d.ts +1 -0
  17. package/dist/expect.d.ts.map +1 -1
  18. package/dist/expect.js +1 -0
  19. package/dist/expect.js.map +1 -1
  20. package/dist/utils/cast-array.d.ts +2 -0
  21. package/dist/utils/cast-array.d.ts.map +1 -0
  22. package/dist/utils/cast-array.js +14 -0
  23. package/dist/utils/cast-array.js.map +1 -0
  24. package/dist/utils/fail.d.ts +1 -1
  25. package/dist/utils/fail.d.ts.map +1 -1
  26. package/dist/utils/fail.js +2 -2
  27. package/dist/utils/fail.js.map +1 -1
  28. package/package.json +5 -8
  29. package/dist/.tsbuildinfo +0 -1
  30. package/dist/assert/deep-equal.test.d.ts +0 -2
  31. package/dist/assert/deep-equal.test.d.ts.map +0 -1
  32. package/dist/assert/deep-equal.test.js +0 -128
  33. package/dist/assert/deep-equal.test.js.map +0 -1
  34. package/dist/assert/deep-has-property.test.d.ts +0 -2
  35. package/dist/assert/deep-has-property.test.d.ts.map +0 -1
  36. package/dist/assert/deep-has-property.test.js +0 -40
  37. package/dist/assert/deep-has-property.test.js.map +0 -1
  38. package/dist/assert/ends-with.test.d.ts +0 -2
  39. package/dist/assert/ends-with.test.d.ts.map +0 -1
  40. package/dist/assert/ends-with.test.js +0 -24
  41. package/dist/assert/ends-with.test.js.map +0 -1
  42. package/dist/assert/equal.test.d.ts +0 -2
  43. package/dist/assert/equal.test.d.ts.map +0 -1
  44. package/dist/assert/equal.test.js +0 -57
  45. package/dist/assert/equal.test.js.map +0 -1
  46. package/dist/assert/greater-than-equal.test.d.ts +0 -2
  47. package/dist/assert/greater-than-equal.test.d.ts.map +0 -1
  48. package/dist/assert/greater-than-equal.test.js +0 -17
  49. package/dist/assert/greater-than-equal.test.js.map +0 -1
  50. package/dist/assert/greater-than.test.d.ts +0 -2
  51. package/dist/assert/greater-than.test.d.ts.map +0 -1
  52. package/dist/assert/greater-than.test.js +0 -31
  53. package/dist/assert/greater-than.test.js.map +0 -1
  54. package/dist/assert/has-members.test.d.ts +0 -2
  55. package/dist/assert/has-members.test.d.ts.map +0 -1
  56. package/dist/assert/has-members.test.js +0 -85
  57. package/dist/assert/has-members.test.js.map +0 -1
  58. package/dist/assert/has-property.test.d.ts +0 -2
  59. package/dist/assert/has-property.test.d.ts.map +0 -1
  60. package/dist/assert/has-property.test.js +0 -40
  61. package/dist/assert/has-property.test.js.map +0 -1
  62. package/dist/assert/has-size.test.d.ts +0 -2
  63. package/dist/assert/has-size.test.d.ts.map +0 -1
  64. package/dist/assert/has-size.test.js +0 -171
  65. package/dist/assert/has-size.test.js.map +0 -1
  66. package/dist/assert/in-ballpark.test.d.ts +0 -2
  67. package/dist/assert/in-ballpark.test.d.ts.map +0 -1
  68. package/dist/assert/in-ballpark.test.js +0 -36
  69. package/dist/assert/in-ballpark.test.js.map +0 -1
  70. package/dist/assert/includes.test.d.ts +0 -2
  71. package/dist/assert/includes.test.d.ts.map +0 -1
  72. package/dist/assert/includes.test.js +0 -45
  73. package/dist/assert/includes.test.js.map +0 -1
  74. package/dist/assert/instance-of.test.d.ts +0 -2
  75. package/dist/assert/instance-of.test.d.ts.map +0 -1
  76. package/dist/assert/instance-of.test.js +0 -24
  77. package/dist/assert/instance-of.test.js.map +0 -1
  78. package/dist/assert/is-after.test.d.ts +0 -2
  79. package/dist/assert/is-after.test.d.ts.map +0 -1
  80. package/dist/assert/is-after.test.js +0 -32
  81. package/dist/assert/is-after.test.js.map +0 -1
  82. package/dist/assert/is-before.test.d.ts +0 -2
  83. package/dist/assert/is-before.test.d.ts.map +0 -1
  84. package/dist/assert/is-before.test.js +0 -32
  85. package/dist/assert/is-before.test.js.map +0 -1
  86. package/dist/assert/is-between.test.d.ts +0 -2
  87. package/dist/assert/is-between.test.d.ts.map +0 -1
  88. package/dist/assert/is-between.test.js +0 -47
  89. package/dist/assert/is-between.test.js.map +0 -1
  90. package/dist/assert/is-empty.test.d.ts +0 -2
  91. package/dist/assert/is-empty.test.d.ts.map +0 -1
  92. package/dist/assert/is-empty.test.js +0 -80
  93. package/dist/assert/is-empty.test.js.map +0 -1
  94. package/dist/assert/is-type.test.d.ts +0 -2
  95. package/dist/assert/is-type.test.d.ts.map +0 -1
  96. package/dist/assert/is-type.test.js +0 -36
  97. package/dist/assert/is-type.test.js.map +0 -1
  98. package/dist/assert/less-than-equal.test.d.ts +0 -2
  99. package/dist/assert/less-than-equal.test.d.ts.map +0 -1
  100. package/dist/assert/less-than-equal.test.js +0 -51
  101. package/dist/assert/less-than-equal.test.js.map +0 -1
  102. package/dist/assert/less-than.test.d.ts +0 -2
  103. package/dist/assert/less-than.test.d.ts.map +0 -1
  104. package/dist/assert/less-than.test.js +0 -28
  105. package/dist/assert/less-than.test.js.map +0 -1
  106. package/dist/assert/match.test.d.ts +0 -2
  107. package/dist/assert/match.test.d.ts.map +0 -1
  108. package/dist/assert/match.test.js +0 -24
  109. package/dist/assert/match.test.js.map +0 -1
  110. package/dist/assert/rejects.test.d.ts +0 -2
  111. package/dist/assert/rejects.test.d.ts.map +0 -1
  112. package/dist/assert/rejects.test.js +0 -101
  113. package/dist/assert/rejects.test.js.map +0 -1
  114. package/dist/assert/round-to.test.d.ts +0 -2
  115. package/dist/assert/round-to.test.d.ts.map +0 -1
  116. package/dist/assert/round-to.test.js +0 -33
  117. package/dist/assert/round-to.test.js.map +0 -1
  118. package/dist/assert/starts-with.test.d.ts +0 -2
  119. package/dist/assert/starts-with.test.d.ts.map +0 -1
  120. package/dist/assert/starts-with.test.js +0 -24
  121. package/dist/assert/starts-with.test.js.map +0 -1
  122. package/dist/assert/throws.test.d.ts +0 -2
  123. package/dist/assert/throws.test.d.ts.map +0 -1
  124. package/dist/assert/throws.test.js +0 -174
  125. package/dist/assert/throws.test.js.map +0 -1
  126. package/dist/expect/after.test.d.ts +0 -2
  127. package/dist/expect/after.test.d.ts.map +0 -1
  128. package/dist/expect/after.test.js +0 -26
  129. package/dist/expect/after.test.js.map +0 -1
  130. package/dist/expect/ballpark.test.d.ts +0 -2
  131. package/dist/expect/ballpark.test.d.ts.map +0 -1
  132. package/dist/expect/ballpark.test.js +0 -26
  133. package/dist/expect/ballpark.test.js.map +0 -1
  134. package/dist/expect/before.test.d.ts +0 -2
  135. package/dist/expect/before.test.d.ts.map +0 -1
  136. package/dist/expect/before.test.js +0 -26
  137. package/dist/expect/before.test.js.map +0 -1
  138. package/dist/expect/between.test.d.ts +0 -2
  139. package/dist/expect/between.test.d.ts.map +0 -1
  140. package/dist/expect/between.test.js +0 -34
  141. package/dist/expect/between.test.js.map +0 -1
  142. package/dist/expect/empty.test.d.ts +0 -2
  143. package/dist/expect/empty.test.d.ts.map +0 -1
  144. package/dist/expect/empty.test.js +0 -24
  145. package/dist/expect/empty.test.js.map +0 -1
  146. package/dist/expect/end-with.test.d.ts +0 -2
  147. package/dist/expect/end-with.test.d.ts.map +0 -1
  148. package/dist/expect/end-with.test.js +0 -15
  149. package/dist/expect/end-with.test.js.map +0 -1
  150. package/dist/expect/eql.test.d.ts +0 -2
  151. package/dist/expect/eql.test.d.ts.map +0 -1
  152. package/dist/expect/eql.test.js +0 -42
  153. package/dist/expect/eql.test.js.map +0 -1
  154. package/dist/expect/equal-shorthand.test.d.ts +0 -2
  155. package/dist/expect/equal-shorthand.test.d.ts.map +0 -1
  156. package/dist/expect/equal-shorthand.test.js +0 -34
  157. package/dist/expect/equal-shorthand.test.js.map +0 -1
  158. package/dist/expect/equal.test.d.ts +0 -2
  159. package/dist/expect/equal.test.d.ts.map +0 -1
  160. package/dist/expect/equal.test.js +0 -30
  161. package/dist/expect/equal.test.js.map +0 -1
  162. package/dist/expect/excluding.test.d.ts +0 -2
  163. package/dist/expect/excluding.test.d.ts.map +0 -1
  164. package/dist/expect/excluding.test.js +0 -12
  165. package/dist/expect/excluding.test.js.map +0 -1
  166. package/dist/expect/greater-than-equal.test.d.ts +0 -2
  167. package/dist/expect/greater-than-equal.test.d.ts.map +0 -1
  168. package/dist/expect/greater-than-equal.test.js +0 -24
  169. package/dist/expect/greater-than-equal.test.js.map +0 -1
  170. package/dist/expect/greater-than.test.d.ts +0 -2
  171. package/dist/expect/greater-than.test.d.ts.map +0 -1
  172. package/dist/expect/greater-than.test.js +0 -24
  173. package/dist/expect/greater-than.test.js.map +0 -1
  174. package/dist/expect/has-property.test.d.ts +0 -2
  175. package/dist/expect/has-property.test.d.ts.map +0 -1
  176. package/dist/expect/has-property.test.js +0 -39
  177. package/dist/expect/has-property.test.js.map +0 -1
  178. package/dist/expect/include.test.d.ts +0 -2
  179. package/dist/expect/include.test.d.ts.map +0 -1
  180. package/dist/expect/include.test.js +0 -33
  181. package/dist/expect/include.test.js.map +0 -1
  182. package/dist/expect/instance-of-shorthand.test.d.ts +0 -2
  183. package/dist/expect/instance-of-shorthand.test.d.ts.map +0 -1
  184. package/dist/expect/instance-of-shorthand.test.js +0 -42
  185. package/dist/expect/instance-of-shorthand.test.js.map +0 -1
  186. package/dist/expect/instance-of.test.d.ts +0 -2
  187. package/dist/expect/instance-of.test.d.ts.map +0 -1
  188. package/dist/expect/instance-of.test.js +0 -24
  189. package/dist/expect/instance-of.test.js.map +0 -1
  190. package/dist/expect/length.test.d.ts +0 -2
  191. package/dist/expect/length.test.d.ts.map +0 -1
  192. package/dist/expect/length.test.js +0 -24
  193. package/dist/expect/length.test.js.map +0 -1
  194. package/dist/expect/less-than-equal.test.d.ts +0 -2
  195. package/dist/expect/less-than-equal.test.d.ts.map +0 -1
  196. package/dist/expect/less-than-equal.test.js +0 -26
  197. package/dist/expect/less-than-equal.test.js.map +0 -1
  198. package/dist/expect/less-than.test.d.ts +0 -2
  199. package/dist/expect/less-than.test.d.ts.map +0 -1
  200. package/dist/expect/less-than.test.js +0 -26
  201. package/dist/expect/less-than.test.js.map +0 -1
  202. package/dist/expect/match.test.d.ts +0 -2
  203. package/dist/expect/match.test.d.ts.map +0 -1
  204. package/dist/expect/match.test.js +0 -24
  205. package/dist/expect/match.test.js.map +0 -1
  206. package/dist/expect/members.test.d.ts +0 -2
  207. package/dist/expect/members.test.d.ts.map +0 -1
  208. package/dist/expect/members.test.js +0 -59
  209. package/dist/expect/members.test.js.map +0 -1
  210. package/dist/expect/reject.test.d.ts +0 -2
  211. package/dist/expect/reject.test.d.ts.map +0 -1
  212. package/dist/expect/reject.test.js +0 -26
  213. package/dist/expect/reject.test.js.map +0 -1
  214. package/dist/expect/round-to.test.d.ts +0 -2
  215. package/dist/expect/round-to.test.d.ts.map +0 -1
  216. package/dist/expect/round-to.test.js +0 -20
  217. package/dist/expect/round-to.test.js.map +0 -1
  218. package/dist/expect/start-with.test.d.ts +0 -2
  219. package/dist/expect/start-with.test.d.ts.map +0 -1
  220. package/dist/expect/start-with.test.js +0 -15
  221. package/dist/expect/start-with.test.js.map +0 -1
  222. package/dist/expect/throw.test.d.ts +0 -2
  223. package/dist/expect/throw.test.d.ts.map +0 -1
  224. package/dist/expect/throw.test.js +0 -33
  225. package/dist/expect/throw.test.js.map +0 -1
  226. package/dist/expect/type-shorthand.test.d.ts +0 -2
  227. package/dist/expect/type-shorthand.test.d.ts.map +0 -1
  228. package/dist/expect/type-shorthand.test.js +0 -55
  229. package/dist/expect/type-shorthand.test.js.map +0 -1
  230. package/dist/expect/type.test.d.ts +0 -2
  231. package/dist/expect/type.test.d.ts.map +0 -1
  232. package/dist/expect/type.test.js +0 -24
  233. package/dist/expect/type.test.js.map +0 -1
  234. package/dist/expect.test.d.ts +0 -2
  235. package/dist/expect.test.d.ts.map +0 -1
  236. package/dist/expect.test.js +0 -22
  237. package/dist/expect.test.js.map +0 -1
  238. package/dist/utils/fail.test.d.ts +0 -2
  239. package/dist/utils/fail.test.d.ts.map +0 -1
  240. package/dist/utils/fail.test.js +0 -12
  241. package/dist/utils/fail.test.js.map +0 -1
  242. package/dist/utils/get-size.test.d.ts +0 -2
  243. package/dist/utils/get-size.test.d.ts.map +0 -1
  244. package/dist/utils/get-size.test.js +0 -28
  245. package/dist/utils/get-size.test.js.map +0 -1
  246. package/dist/utils/match.test.d.ts +0 -2
  247. package/dist/utils/match.test.d.ts.map +0 -1
  248. package/dist/utils/match.test.js +0 -333
  249. package/dist/utils/match.test.js.map +0 -1
@@ -1,333 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const assert_1 = require("../assert");
4
- const match_1 = require("./match");
5
- describe('utils/match', () => {
6
- describe('number', () => {
7
- it('should return true if numbers are equal', () => {
8
- (0, assert_1.equal)((0, match_1.match)(1, 1), true);
9
- });
10
- it('should return false if numbers are not equal', () => {
11
- (0, assert_1.equal)((0, match_1.match)(1, 2), false);
12
- });
13
- it('should return true if both values are NaN', () => {
14
- (0, assert_1.equal)((0, match_1.match)(Number.NaN, Number.NaN), true);
15
- });
16
- it('should return false if one value is NaN', () => {
17
- (0, assert_1.equal)((0, match_1.match)(Number.NaN, 1), false);
18
- });
19
- });
20
- describe('string', () => {
21
- it('should return true if strings are equal', () => {
22
- (0, assert_1.equal)((0, match_1.match)('a', 'a'), true);
23
- });
24
- it('should return false if strings are not equal', () => {
25
- (0, assert_1.equal)((0, match_1.match)('a', ''), false);
26
- });
27
- });
28
- describe('boolean', () => {
29
- it('should return true if booleans are equal', () => {
30
- (0, assert_1.equal)((0, match_1.match)(true, true), true);
31
- });
32
- it('should return false if booleans are not equal', () => {
33
- (0, assert_1.equal)((0, match_1.match)(true, false), false);
34
- });
35
- });
36
- describe('null', () => {
37
- it('should return true if both values are null', () => {
38
- (0, assert_1.equal)((0, match_1.match)(null, null), true);
39
- });
40
- it('should return false if one value is undefined', () => {
41
- (0, assert_1.equal)((0, match_1.match)(undefined, null), false);
42
- });
43
- });
44
- describe('undefined', () => {
45
- it('should return true if both values are undefined', () => {
46
- // eslint-disable-next-line unicorn/no-useless-undefined
47
- (0, assert_1.equal)((0, match_1.match)(undefined, undefined), true);
48
- });
49
- it('should return false if one value is undefined', () => {
50
- (0, assert_1.equal)((0, match_1.match)(undefined, null), false);
51
- });
52
- });
53
- describe('Map', () => {
54
- it('should return true if maps are equal', () => {
55
- const key = {};
56
- (0, assert_1.equal)((0, match_1.match)(new Map([[key, 1]]), new Map([[key, 1]])), true);
57
- });
58
- it('should return false if maps are not equal', () => {
59
- (0, assert_1.equal)((0, match_1.match)(new Map([['a', 1]]), new Map([['a', 2]])), false);
60
- });
61
- it('should return false if one map is empty', () => {
62
- (0, assert_1.equal)((0, match_1.match)(new Map(), new Map([['a', 1]])), false);
63
- (0, assert_1.equal)((0, match_1.match)(new Map([['a', 1]]), new Map()), false);
64
- });
65
- it('should return false if keys are different objects', () => {
66
- (0, assert_1.equal)((0, match_1.match)(new Map([[{}, 1]]), new Map([[{}, 2]])), false);
67
- });
68
- it(`should return false if one value matches and the other doesn't`, () => {
69
- const key1 = {};
70
- const key2 = {};
71
- const map = new Map([
72
- [key1, 1],
73
- [key2, 2]
74
- ]);
75
- const map2 = new Map([
76
- [key1, 1],
77
- [key2, 3]
78
- ]);
79
- (0, assert_1.equal)((0, match_1.match)(map, map2), false);
80
- });
81
- });
82
- describe('WeakMap', () => {
83
- it('should return true if both values are the same instance', () => {
84
- const map = new WeakMap();
85
- (0, assert_1.equal)((0, match_1.match)(map, map), true);
86
- });
87
- it('should return false if both values are different instances', () => {
88
- const map = new WeakMap();
89
- const map2 = new WeakMap();
90
- (0, assert_1.equal)((0, match_1.match)(map, map2), false);
91
- });
92
- it('should return false if one value is a WeakMap and the other a plain object', () => {
93
- const map = new WeakMap();
94
- (0, assert_1.equal)((0, match_1.match)(map, {}), false);
95
- (0, assert_1.equal)((0, match_1.match)({}, map), false);
96
- });
97
- });
98
- describe('Set', () => {
99
- it('should return true if both sets are empty', () => {
100
- (0, assert_1.equal)((0, match_1.match)(new Set(), new Set()), true);
101
- });
102
- it('should return false if one set is empty', () => {
103
- (0, assert_1.equal)((0, match_1.match)(new Set(), new Set([1])), false);
104
- (0, assert_1.equal)((0, match_1.match)(new Set([1]), new Set()), false);
105
- });
106
- it('should return true if sets are equal', () => {
107
- (0, assert_1.equal)((0, match_1.match)(new Set([1]), new Set([1])), true);
108
- });
109
- });
110
- describe('WeakSet', () => {
111
- it('should return true if both values are the same instance', () => {
112
- const set = new WeakSet();
113
- (0, assert_1.equal)((0, match_1.match)(set, set), true);
114
- });
115
- it('should return false if both values are different instances', () => {
116
- const set = new WeakSet();
117
- const set2 = new WeakSet();
118
- (0, assert_1.equal)((0, match_1.match)(set, set2), false);
119
- });
120
- });
121
- describe('array', () => {
122
- it('should return false if one value is an array and the other a plain object', () => {
123
- (0, assert_1.equal)((0, match_1.match)([], {}), false);
124
- (0, assert_1.equal)((0, match_1.match)({}, []), false);
125
- });
126
- it('should return false if values have different amounts of memmbers', () => {
127
- (0, assert_1.equal)((0, match_1.match)([1, 2], [1, 2, 3]), false);
128
- (0, assert_1.equal)((0, match_1.match)([1, 2, 3], [1, 2]), false);
129
- });
130
- it('should return true if both arrays have the same values', () => {
131
- (0, assert_1.equal)((0, match_1.match)([1, 2, 3], [1, 2, 3]), true);
132
- });
133
- });
134
- describe('Date', () => {
135
- it('should return true if both values are the same instance', () => {
136
- const date = new Date();
137
- (0, assert_1.equal)((0, match_1.match)(date, date), true);
138
- });
139
- it('should return true if both values refer to the same time', () => {
140
- (0, assert_1.equal)((0, match_1.match)(new Date(0), new Date(0)), true);
141
- });
142
- it('should return false if one value is a Date and the other a plain object', () => {
143
- (0, assert_1.equal)((0, match_1.match)(new Date(), {}), false);
144
- (0, assert_1.equal)((0, match_1.match)({}, new Date()), false);
145
- });
146
- it('should return true if one value is a Date and the other a representation of that date', () => {
147
- (0, assert_1.equal)((0, match_1.match)(new Date(0), new Date(0).getMilliseconds()), true);
148
- });
149
- });
150
- describe('object', () => {
151
- it(`should return false if one object is empty and the other isn't`, () => {
152
- (0, assert_1.equal)((0, match_1.match)({}, { a: 1 }), false);
153
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, {}), false);
154
- });
155
- it('should return true if both values are the same instance', () => {
156
- const object = {};
157
- (0, assert_1.equal)((0, match_1.match)(object, object), true);
158
- });
159
- it('should return true if both have same keys and values', () => {
160
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, { a: 1 }), true);
161
- });
162
- it('should return false if values for the same key are different', () => {
163
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, { a: 2 }), false);
164
- });
165
- it('should return false if one value is an object and the other a number', () => {
166
- (0, assert_1.equal)((0, match_1.match)({}, 1), false);
167
- (0, assert_1.equal)((0, match_1.match)(1, {}), false);
168
- });
169
- });
170
- describe('function', () => {
171
- it('should return true if both functions are the same instance', () => {
172
- const callback = () => { };
173
- (0, assert_1.equal)((0, match_1.match)(callback, callback), true);
174
- });
175
- it('should return false if functions are different', () => {
176
- (0, assert_1.equal)((0, match_1.match)(() => 5, () => 4), false);
177
- });
178
- });
179
- describe('any', () => {
180
- it('should return true if one value is a primitive and the other any', () => {
181
- (0, assert_1.equal)((0, match_1.match)(5, match_1.any), true);
182
- });
183
- it('should mutate expectation if a value is any and mutate is true', () => {
184
- const expect = { a: match_1.any };
185
- (0, assert_1.equal)((0, match_1.match)({ a: 5 }, expect, { mutate: true }), true);
186
- (0, assert_1.equal)(expect.a, 5);
187
- });
188
- it('should not mutate if mutate is set to false', () => {
189
- const anyInstance = match_1.any;
190
- const expect = { a: anyInstance };
191
- (0, assert_1.equal)((0, match_1.match)({ a: 5 }, expect), true);
192
- (0, assert_1.equal)(expect.a, anyInstance);
193
- });
194
- it('should mutate array elements', () => {
195
- const expectation = [match_1.any];
196
- (0, assert_1.equal)((0, match_1.match)([5], expectation, { mutate: true }), true);
197
- (0, assert_1.equal)(expectation[0], 5);
198
- });
199
- it('should mutate map values', () => {
200
- const key = {};
201
- const expectation = new Map([[key, match_1.any]]);
202
- (0, assert_1.equal)((0, match_1.match)(new Map([[key, 5]]), expectation, { mutate: true }), true);
203
- (0, assert_1.equal)(expectation.get(key), 5);
204
- });
205
- it('should traverse the whole object even if something is not a match', () => {
206
- const expected = {
207
- a: [1, match_1.any],
208
- b: [2, match_1.any]
209
- };
210
- const actual = {
211
- a: [3, 5],
212
- b: [4, 6]
213
- };
214
- (0, match_1.match)(actual, expected, { mutate: true });
215
- (0, assert_1.equal)(expected.a[1], 5);
216
- (0, assert_1.equal)(expected.b[1], 6);
217
- });
218
- it(`should mutate the whole array even if arrays aren't equal length`, () => {
219
- const expected = [match_1.any, match_1.any];
220
- const actual = [1, 2, 3];
221
- (0, match_1.match)(actual, expected, { mutate: true });
222
- (0, assert_1.equal)(expected[0], 1);
223
- (0, assert_1.equal)(expected[1], 2);
224
- (0, assert_1.hasSize)(expected, 2);
225
- });
226
- it(`should mutate the whole object even if objects have different amount of keys`, () => {
227
- const expected = {
228
- a: match_1.any,
229
- b: match_1.any
230
- };
231
- const actual = {
232
- a: 1,
233
- b: 2,
234
- c: 3
235
- };
236
- (0, match_1.match)(actual, expected, { mutate: true });
237
- (0, assert_1.equal)(expected.a, 1);
238
- (0, assert_1.equal)(expected.b, 2);
239
- (0, assert_1.hasSize)(expected, 2);
240
- });
241
- it('should mutate the whole Map even if Maps have different amount of keys', () => {
242
- const key = {};
243
- const key2 = {};
244
- const expected = new Map([[key, match_1.any]]);
245
- const actual = new Map([
246
- [key, 2],
247
- [key2, 4]
248
- ]);
249
- (0, match_1.match)(actual, expected, { mutate: true });
250
- (0, assert_1.equal)(expected.get(key), 2);
251
- (0, assert_1.hasSize)(expected, 1);
252
- });
253
- it('should traverse the whole Map even if something is not a match', () => {
254
- const key1 = {};
255
- const key2 = {};
256
- const expected = new Map([
257
- [key1, [1, match_1.any]],
258
- [key2, [2, match_1.any]]
259
- ]);
260
- const actual = new Map([
261
- [key1, [3, 5]],
262
- [key2, [4, 6]]
263
- ]);
264
- (0, match_1.match)(actual, expected, { mutate: true });
265
- (0, assert_1.equal)(expected.get(key1)[1], 5);
266
- (0, assert_1.equal)(expected.get(key2)[1], 6);
267
- });
268
- });
269
- describe('partial', () => {
270
- it('should match partial objects', () => {
271
- (0, assert_1.equal)((0, match_1.match)({ a: 1, b: 2 }, { a: 1 }, { partial: true }), true);
272
- });
273
- it('should match partial arrays', () => {
274
- (0, assert_1.equal)((0, match_1.match)([1, 2], [1], { partial: true }), true);
275
- });
276
- it('should match partial Maps', () => {
277
- const object = [{}, {}];
278
- const map1 = new Map([
279
- [object[0], 1],
280
- [object[1], 2]
281
- ]);
282
- const map2 = new Map([[object[0], 1]]);
283
- (0, assert_1.equal)((0, match_1.match)(map1, map2, { partial: true }), true);
284
- });
285
- it('should return false for partial Maps if expected has more keys', () => {
286
- const key1 = {};
287
- const key2 = {};
288
- const map = new Map([[key1, 1]]);
289
- const map2 = new Map([
290
- [key1, 1],
291
- [key2, 3]
292
- ]);
293
- (0, assert_1.equal)((0, match_1.match)(map, map2, { partial: true }), false);
294
- });
295
- it('should match partial Sets', () => {
296
- const set1 = new Set([1, 2]);
297
- const set2 = new Set([1]);
298
- (0, assert_1.equal)((0, match_1.match)(set1, set2, { partial: true }), true);
299
- });
300
- });
301
- describe('evaluation', () => {
302
- // eslint-disable-next-line mocha/no-setup-in-describe
303
- const trueEvaluation = (0, match_1.createEvaluation)(() => true);
304
- // eslint-disable-next-line mocha/no-setup-in-describe
305
- const falseEvaluation = (0, match_1.createEvaluation)(() => false);
306
- it('should evaluate evaluation', () => {
307
- (0, assert_1.equal)((0, match_1.match)(1, trueEvaluation), true);
308
- (0, assert_1.equal)((0, match_1.match)(1, falseEvaluation), false);
309
- });
310
- it('should test properties', () => {
311
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, { a: trueEvaluation }), true);
312
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, { a: falseEvaluation }), false);
313
- });
314
- it('should mutate expected properties', () => {
315
- const expect = { a: trueEvaluation };
316
- (0, assert_1.equal)((0, match_1.match)({ a: 1 }, expect, { mutate: true }), true);
317
- (0, assert_1.equal)(expect.a, 1);
318
- });
319
- it('should mutate arrays', () => {
320
- const expect = [trueEvaluation];
321
- (0, assert_1.equal)((0, match_1.match)([1], expect, { mutate: true }), true);
322
- (0, assert_1.equal)(expect[0], 1);
323
- });
324
- it('should mutate Maps', () => {
325
- const key = {};
326
- const actual = new Map([[key, 1]]);
327
- const expect = new Map([[key, trueEvaluation]]);
328
- (0, assert_1.equal)((0, match_1.match)(actual, expect, { mutate: true }), true);
329
- (0, assert_1.equal)(expect.get(key), 1);
330
- });
331
- });
332
- });
333
- //# sourceMappingURL=match.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match.test.js","sourceRoot":"","sources":["../../src/utils/match.test.ts"],"names":[],"mappings":"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"}