assertron 7.1.1 → 9.0.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 (279) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +61 -46
  3. package/{dist-es2015 → cjs}/assert-order/AssertOrder.d.ts +3 -2
  4. package/cjs/assert-order/AssertOrder.d.ts.map +1 -0
  5. package/cjs/assert-order/AssertOrder.js +148 -0
  6. package/cjs/assert-order/InvalidOrder.d.ts +9 -0
  7. package/cjs/assert-order/InvalidOrder.d.ts.map +1 -0
  8. package/cjs/assert-order/InvalidOrder.js +39 -0
  9. package/{dist-es5 → cjs}/assert-order/StateMachine.d.ts +5 -6
  10. package/cjs/assert-order/StateMachine.d.ts.map +1 -0
  11. package/cjs/assert-order/StateMachine.js +111 -0
  12. package/cjs/assert-order/index.d.ts +4 -0
  13. package/cjs/assert-order/index.d.ts.map +1 -0
  14. package/cjs/assert-order/index.js +7 -0
  15. package/{dist-es2015/assert-order/interfaces.d.ts → cjs/assert-order/types.d.ts} +1 -0
  16. package/cjs/assert-order/types.d.ts.map +1 -0
  17. package/cjs/assert-order/types.js +3 -0
  18. package/{dist-es2015 → cjs}/assertron/assertron.d.ts +1 -0
  19. package/cjs/assertron/assertron.d.ts.map +1 -0
  20. package/cjs/assertron/assertron.js +32 -0
  21. package/{dist-es2015 → cjs}/assertron/falsy.d.ts +1 -0
  22. package/cjs/assertron/falsy.d.ts.map +1 -0
  23. package/cjs/assertron/falsy.js +10 -0
  24. package/cjs/assertron/index.d.ts +2 -0
  25. package/cjs/assertron/index.d.ts.map +1 -0
  26. package/cjs/assertron/index.js +5 -0
  27. package/{dist-es2015 → cjs}/assertron/pathEqual.d.ts +1 -0
  28. package/cjs/assertron/pathEqual.d.ts.map +1 -0
  29. package/cjs/assertron/pathEqual.js +12 -0
  30. package/{dist-es2015 → cjs}/assertron/rejects.d.ts +1 -0
  31. package/cjs/assertron/rejects.d.ts.map +1 -0
  32. package/cjs/assertron/rejects.js +10 -0
  33. package/{dist-es2015 → cjs}/assertron/repeat.d.ts +1 -6
  34. package/cjs/assertron/repeat.d.ts.map +1 -0
  35. package/cjs/assertron/repeat.js +33 -0
  36. package/{dist-es2015 → cjs}/assertron/resolves.d.ts +1 -0
  37. package/cjs/assertron/resolves.d.ts.map +1 -0
  38. package/cjs/assertron/resolves.js +10 -0
  39. package/cjs/assertron/satisfies.d.ts +10 -0
  40. package/cjs/assertron/satisfies.d.ts.map +1 -0
  41. package/cjs/assertron/satisfies.js +18 -0
  42. package/{dist-es2015 → cjs}/assertron/throws.d.ts +3 -1
  43. package/cjs/assertron/throws.d.ts.map +1 -0
  44. package/cjs/assertron/throws.js +56 -0
  45. package/{dist-es2015 → cjs}/assertron/truthy.d.ts +1 -0
  46. package/cjs/assertron/truthy.d.ts.map +1 -0
  47. package/cjs/assertron/truthy.js +10 -0
  48. package/cjs/errors.d.ts +17 -0
  49. package/cjs/errors.d.ts.map +1 -0
  50. package/cjs/errors.js +29 -0
  51. package/{dist-es5 → cjs}/index.d.ts +3 -1
  52. package/cjs/index.d.ts.map +1 -0
  53. package/cjs/index.js +9 -0
  54. package/{dist-es2015/errors/interfaces.d.ts → cjs/types.d.ts} +1 -0
  55. package/cjs/types.d.ts.map +1 -0
  56. package/cjs/types.js +3 -0
  57. package/cjs/utils/index.d.ts +8 -0
  58. package/cjs/utils/index.d.ts.map +1 -0
  59. package/cjs/utils/index.js +16 -0
  60. package/{dist-es2015/errors/util.d.ts → cjs/utils/isErrorConstructor.d.ts} +2 -1
  61. package/cjs/utils/isErrorConstructor.d.ts.map +1 -0
  62. package/cjs/utils/isErrorConstructor.js +8 -0
  63. package/{dist-es2015/errors → cjs/utils}/notEqualMessage.d.ts +1 -0
  64. package/cjs/utils/notEqualMessage.d.ts.map +1 -0
  65. package/cjs/utils/notEqualMessage.js +8 -0
  66. package/{dist-es2015/errors/NotSatisfied.d.ts → cjs/utils/notSatisfiedMessage.d.ts} +1 -0
  67. package/cjs/utils/notSatisfiedMessage.d.ts.map +1 -0
  68. package/cjs/utils/notSatisfiedMessage.js +28 -0
  69. package/{dist-es2015/errors → cjs/utils}/notThrownMessage.d.ts +1 -0
  70. package/cjs/utils/notThrownMessage.d.ts.map +1 -0
  71. package/cjs/utils/notThrownMessage.js +9 -0
  72. package/cjs/utils/promiseMessages.d.ts +3 -0
  73. package/cjs/utils/promiseMessages.d.ts.map +1 -0
  74. package/cjs/utils/promiseMessages.js +15 -0
  75. package/{dist-es2015/errors → cjs/utils}/unexpectedErrorMessage.d.ts +2 -1
  76. package/cjs/utils/unexpectedErrorMessage.d.ts.map +1 -0
  77. package/cjs/utils/unexpectedErrorMessage.js +11 -0
  78. package/esm/assert-order/AssertOrder.js +132 -0
  79. package/esm/assert-order/InvalidOrder.js +31 -0
  80. package/esm/assert-order/StateMachine.js +103 -0
  81. package/esm/assert-order/index.js +4 -0
  82. package/esm/assert-order/types.js +2 -0
  83. package/esm/assertron/assertron.js +29 -0
  84. package/esm/assertron/falsy.js +6 -0
  85. package/esm/assertron/index.js +2 -0
  86. package/esm/assertron/pathEqual.js +8 -0
  87. package/esm/assertron/rejects.js +6 -0
  88. package/esm/assertron/repeat.js +28 -0
  89. package/esm/assertron/resolves.js +6 -0
  90. package/esm/assertron/satisfies.js +14 -0
  91. package/esm/assertron/throws.js +51 -0
  92. package/esm/assertron/truthy.js +6 -0
  93. package/esm/errors.js +18 -0
  94. package/esm/index.js +6 -0
  95. package/esm/types.js +2 -0
  96. package/esm/utils/index.js +11 -0
  97. package/esm/utils/isErrorConstructor.js +4 -0
  98. package/esm/utils/notEqualMessage.js +4 -0
  99. package/esm/utils/notSatisfiedMessage.js +23 -0
  100. package/esm/utils/notThrownMessage.js +5 -0
  101. package/esm/utils/promiseMessages.js +10 -0
  102. package/esm/utils/unexpectedErrorMessage.js +7 -0
  103. package/package.json +62 -24
  104. package/src/assert-order/AssertOrder.spec.ts +10 -12
  105. package/src/assert-order/AssertOrder.ts +8 -8
  106. package/src/assert-order/InvalidOrder.ts +7 -12
  107. package/src/assert-order/StateMachine.ts +26 -31
  108. package/src/assert-order/index.ts +3 -1
  109. package/src/assert-order/internalInterfaces.ts +3 -3
  110. package/src/assert-order/types.ts +7 -0
  111. package/src/assertron/assertron.spec.ts +2 -4
  112. package/src/assertron/assertron.ts +13 -14
  113. package/src/assertron/falsy.spec.ts +2 -3
  114. package/src/assertron/falsy.ts +2 -6
  115. package/src/assertron/pathEqual.spec.ts +2 -3
  116. package/src/assertron/pathEqual.ts +4 -7
  117. package/src/assertron/rejects.spec.ts +7 -8
  118. package/src/assertron/rejects.ts +3 -11
  119. package/src/assertron/repeat.spec.ts +8 -10
  120. package/src/assertron/repeat.ts +4 -9
  121. package/src/assertron/resolves.spec.ts +3 -4
  122. package/src/assertron/resolves.ts +3 -13
  123. package/src/assertron/satisfies.spec.ts +57 -26
  124. package/src/assertron/satisfies.ts +23 -10
  125. package/src/assertron/throws.spec.ts +63 -39
  126. package/src/assertron/throws.ts +32 -55
  127. package/src/assertron/truthy.spec.ts +2 -3
  128. package/src/assertron/truthy.ts +2 -3
  129. package/src/errors.ts +22 -0
  130. package/src/index.ts +2 -1
  131. package/src/testUtils.ts +16 -13
  132. package/src/{errors/interfaces.ts → types.ts} +1 -1
  133. package/src/utils/index.ts +12 -0
  134. package/src/utils/isErrorConstructor.ts +5 -0
  135. package/src/utils/notEqualMessage.ts +4 -0
  136. package/src/{errors → utils}/notSatisfiedMessage.spec.ts +0 -0
  137. package/src/{errors/NotSatisfied.ts → utils/notSatisfiedMessage.ts} +1 -1
  138. package/src/utils/notThrownMessage.ts +5 -0
  139. package/src/utils/promiseMessages.ts +12 -0
  140. package/src/{errors → utils}/unexpectedErrorMessage.ts +4 -3
  141. package/dist-es2015/assert-order/AssertOrder.js +0 -132
  142. package/dist-es2015/assert-order/AssertOrder.js.map +0 -1
  143. package/dist-es2015/assert-order/InvalidOrder.d.ts +0 -8
  144. package/dist-es2015/assert-order/InvalidOrder.js +0 -31
  145. package/dist-es2015/assert-order/InvalidOrder.js.map +0 -1
  146. package/dist-es2015/assert-order/StateMachine.d.ts +0 -23
  147. package/dist-es2015/assert-order/StateMachine.js +0 -106
  148. package/dist-es2015/assert-order/StateMachine.js.map +0 -1
  149. package/dist-es2015/assert-order/index.d.ts +0 -2
  150. package/dist-es2015/assert-order/index.js +0 -2
  151. package/dist-es2015/assert-order/index.js.map +0 -1
  152. package/dist-es2015/assert-order/interfaces.js +0 -1
  153. package/dist-es2015/assert-order/interfaces.js.map +0 -1
  154. package/dist-es2015/assertron/assertron.js +0 -28
  155. package/dist-es2015/assertron/assertron.js.map +0 -1
  156. package/dist-es2015/assertron/falsy.js +0 -6
  157. package/dist-es2015/assertron/falsy.js.map +0 -1
  158. package/dist-es2015/assertron/index.d.ts +0 -1
  159. package/dist-es2015/assertron/index.js +0 -2
  160. package/dist-es2015/assertron/index.js.map +0 -1
  161. package/dist-es2015/assertron/pathEqual.js +0 -8
  162. package/dist-es2015/assertron/pathEqual.js.map +0 -1
  163. package/dist-es2015/assertron/rejects.js +0 -10
  164. package/dist-es2015/assertron/rejects.js.map +0 -1
  165. package/dist-es2015/assertron/repeat.js +0 -35
  166. package/dist-es2015/assertron/repeat.js.map +0 -1
  167. package/dist-es2015/assertron/resolves.js +0 -12
  168. package/dist-es2015/assertron/resolves.js.map +0 -1
  169. package/dist-es2015/assertron/satisfies.d.ts +0 -5
  170. package/dist-es2015/assertron/satisfies.js +0 -14
  171. package/dist-es2015/assertron/satisfies.js.map +0 -1
  172. package/dist-es2015/assertron/throws.js +0 -55
  173. package/dist-es2015/assertron/throws.js.map +0 -1
  174. package/dist-es2015/assertron/truthy.js +0 -6
  175. package/dist-es2015/assertron/truthy.js.map +0 -1
  176. package/dist-es2015/errors/NotSatisfied.js +0 -23
  177. package/dist-es2015/errors/NotSatisfied.js.map +0 -1
  178. package/dist-es2015/errors/index.d.ts +0 -7
  179. package/dist-es2015/errors/index.js +0 -7
  180. package/dist-es2015/errors/index.js.map +0 -1
  181. package/dist-es2015/errors/interfaces.js +0 -1
  182. package/dist-es2015/errors/interfaces.js.map +0 -1
  183. package/dist-es2015/errors/notEqualMessage.js +0 -4
  184. package/dist-es2015/errors/notEqualMessage.js.map +0 -1
  185. package/dist-es2015/errors/notRejectedMessage.d.ts +0 -1
  186. package/dist-es2015/errors/notRejectedMessage.js +0 -4
  187. package/dist-es2015/errors/notRejectedMessage.js.map +0 -1
  188. package/dist-es2015/errors/notThrownMessage.js +0 -4
  189. package/dist-es2015/errors/notThrownMessage.js.map +0 -1
  190. package/dist-es2015/errors/returnNotRejectedMessage.d.ts +0 -1
  191. package/dist-es2015/errors/returnNotRejectedMessage.js +0 -4
  192. package/dist-es2015/errors/returnNotRejectedMessage.js.map +0 -1
  193. package/dist-es2015/errors/unexpectedErrorMessage.js +0 -6
  194. package/dist-es2015/errors/unexpectedErrorMessage.js.map +0 -1
  195. package/dist-es2015/errors/util.js +0 -4
  196. package/dist-es2015/errors/util.js.map +0 -1
  197. package/dist-es2015/index.d.ts +0 -4
  198. package/dist-es2015/index.js +0 -5
  199. package/dist-es2015/index.js.map +0 -1
  200. package/dist-es5/assert-order/AssertOrder.d.ts +0 -40
  201. package/dist-es5/assert-order/AssertOrder.js +0 -147
  202. package/dist-es5/assert-order/AssertOrder.js.map +0 -1
  203. package/dist-es5/assert-order/InvalidOrder.d.ts +0 -8
  204. package/dist-es5/assert-order/InvalidOrder.js +0 -58
  205. package/dist-es5/assert-order/InvalidOrder.js.map +0 -1
  206. package/dist-es5/assert-order/StateMachine.js +0 -115
  207. package/dist-es5/assert-order/StateMachine.js.map +0 -1
  208. package/dist-es5/assert-order/index.d.ts +0 -2
  209. package/dist-es5/assert-order/index.js +0 -7
  210. package/dist-es5/assert-order/index.js.map +0 -1
  211. package/dist-es5/assert-order/interfaces.d.ts +0 -7
  212. package/dist-es5/assert-order/interfaces.js +0 -3
  213. package/dist-es5/assert-order/interfaces.js.map +0 -1
  214. package/dist-es5/assertron/assertron.d.ts +0 -20
  215. package/dist-es5/assertron/assertron.js +0 -33
  216. package/dist-es5/assertron/assertron.js.map +0 -1
  217. package/dist-es5/assertron/falsy.d.ts +0 -1
  218. package/dist-es5/assertron/falsy.js +0 -12
  219. package/dist-es5/assertron/falsy.js.map +0 -1
  220. package/dist-es5/assertron/index.d.ts +0 -1
  221. package/dist-es5/assertron/index.js +0 -7
  222. package/dist-es5/assertron/index.js.map +0 -1
  223. package/dist-es5/assertron/pathEqual.d.ts +0 -1
  224. package/dist-es5/assertron/pathEqual.js +0 -14
  225. package/dist-es5/assertron/pathEqual.js.map +0 -1
  226. package/dist-es5/assertron/rejects.d.ts +0 -1
  227. package/dist-es5/assertron/rejects.js +0 -16
  228. package/dist-es5/assertron/rejects.js.map +0 -1
  229. package/dist-es5/assertron/repeat.d.ts +0 -11
  230. package/dist-es5/assertron/repeat.js +0 -58
  231. package/dist-es5/assertron/repeat.js.map +0 -1
  232. package/dist-es5/assertron/resolves.d.ts +0 -1
  233. package/dist-es5/assertron/resolves.js +0 -18
  234. package/dist-es5/assertron/resolves.js.map +0 -1
  235. package/dist-es5/assertron/satisfies.d.ts +0 -5
  236. package/dist-es5/assertron/satisfies.js +0 -20
  237. package/dist-es5/assertron/satisfies.js.map +0 -1
  238. package/dist-es5/assertron/throws.d.ts +0 -4
  239. package/dist-es5/assertron/throws.js +0 -61
  240. package/dist-es5/assertron/throws.js.map +0 -1
  241. package/dist-es5/assertron/truthy.d.ts +0 -1
  242. package/dist-es5/assertron/truthy.js +0 -12
  243. package/dist-es5/assertron/truthy.js.map +0 -1
  244. package/dist-es5/errors/NotSatisfied.d.ts +0 -2
  245. package/dist-es5/errors/NotSatisfied.js +0 -26
  246. package/dist-es5/errors/NotSatisfied.js.map +0 -1
  247. package/dist-es5/errors/index.d.ts +0 -7
  248. package/dist-es5/errors/index.js +0 -12
  249. package/dist-es5/errors/index.js.map +0 -1
  250. package/dist-es5/errors/interfaces.d.ts +0 -2
  251. package/dist-es5/errors/interfaces.js +0 -3
  252. package/dist-es5/errors/interfaces.js.map +0 -1
  253. package/dist-es5/errors/notEqualMessage.d.ts +0 -1
  254. package/dist-es5/errors/notEqualMessage.js +0 -7
  255. package/dist-es5/errors/notEqualMessage.js.map +0 -1
  256. package/dist-es5/errors/notRejectedMessage.d.ts +0 -1
  257. package/dist-es5/errors/notRejectedMessage.js +0 -7
  258. package/dist-es5/errors/notRejectedMessage.js.map +0 -1
  259. package/dist-es5/errors/notThrownMessage.d.ts +0 -1
  260. package/dist-es5/errors/notThrownMessage.js +0 -7
  261. package/dist-es5/errors/notThrownMessage.js.map +0 -1
  262. package/dist-es5/errors/returnNotRejectedMessage.d.ts +0 -1
  263. package/dist-es5/errors/returnNotRejectedMessage.js +0 -7
  264. package/dist-es5/errors/returnNotRejectedMessage.js.map +0 -1
  265. package/dist-es5/errors/unexpectedErrorMessage.d.ts +0 -2
  266. package/dist-es5/errors/unexpectedErrorMessage.js +0 -9
  267. package/dist-es5/errors/unexpectedErrorMessage.js.map +0 -1
  268. package/dist-es5/errors/util.d.ts +0 -2
  269. package/dist-es5/errors/util.js +0 -7
  270. package/dist-es5/errors/util.js.map +0 -1
  271. package/dist-es5/index.js +0 -10
  272. package/dist-es5/index.js.map +0 -1
  273. package/src/assert-order/interfaces.ts +0 -7
  274. package/src/errors/index.ts +0 -7
  275. package/src/errors/notEqualMessage.ts +0 -3
  276. package/src/errors/notRejectedMessage.ts +0 -3
  277. package/src/errors/notThrownMessage.ts +0 -3
  278. package/src/errors/returnNotRejectedMessage.ts +0 -3
  279. package/src/errors/util.ts +0 -5
@@ -1,3 +1,3 @@
1
1
 
2
- export type ErrorValidator = (value) => boolean
2
+ export type ErrorValidator = (value: any) => boolean
3
3
  export type ErrorConstructor<E extends Error> = new (...args: any[]) => E
@@ -0,0 +1,12 @@
1
+ import { tersify } from 'tersify';
2
+
3
+ export * from './isErrorConstructor';
4
+ export * from './notEqualMessage';
5
+ export * from './notSatisfiedMessage';
6
+ export * from './notThrownMessage';
7
+ export * from './promiseMessages';
8
+ export * from './unexpectedErrorMessage';
9
+
10
+ export function failOnOccurrence(occurrence: number, error: any) {
11
+ return `Failed on ${occurrence} occurrence: ${tersify(error, { maxLength: Infinity })}`
12
+ }
@@ -0,0 +1,5 @@
1
+ import { ErrorConstructor } from '../types'
2
+
3
+ export function isErrorConstructor(validator: any): validator is ErrorConstructor<any> {
4
+ return Object.prototype.isPrototypeOf.call(Error.prototype, validator.prototype)
5
+ }
@@ -0,0 +1,4 @@
1
+
2
+ export function notEqualMessage(actual: any, expected: any) {
3
+ return `Expected value to equal ${expected}, but received ${actual}`
4
+ }
@@ -22,6 +22,6 @@ function isIndice(node: string | number): node is number {
22
22
  return typeof node === 'number'
23
23
  }
24
24
 
25
- function formatValue(value) {
25
+ function formatValue(value: any) {
26
26
  return tersify(value)
27
27
  }
@@ -0,0 +1,5 @@
1
+ import { tersify } from 'tersify'
2
+
3
+ export function notThrownMessage(value: any) {
4
+ return `Expect function to throw, but it returned '${tersify(value)}' instead.`
5
+ }
@@ -0,0 +1,12 @@
1
+ import { tersify } from 'tersify'
2
+
3
+ export function notRejectedMessage(value: any) {
4
+ return `Expected promise to reject, but it resolves with ` + (typeof value === 'string'
5
+ ? `'${value}'` : tersify(value, { maxLength: Infinity }))
6
+ }
7
+
8
+ export function notResolvedMessage(error: any) {
9
+ return `Expected promise to resolve, but it rejects with ` + (typeof error === 'string'
10
+ ? `'${error}'` : error instanceof Error ? error : tersify(error, { maxLength: Infinity }))
11
+ }
12
+
@@ -1,7 +1,8 @@
1
1
  import { tersify } from 'tersify';
2
- import { ErrorConstructor, ErrorValidator } from '.';
3
- import { isErrorConstructor } from './util';
2
+ import { ErrorConstructor, ErrorValidator } from '../types';
3
+ import { isErrorConstructor } from './isErrorConstructor';
4
4
 
5
5
  export function unexpectedErrorMessage(actual: any, expected: ErrorValidator | ErrorConstructor<any>) {
6
- return `Unexpected error. Expecting '${isErrorConstructor(expected) ? expected.name : tersify(expected)}' but received ${tersify(actual)}`
6
+ return `Unexpected error. Expecting '${isErrorConstructor(expected) ?
7
+ expected.name : tersify(expected)}' but received ${tersify(actual)}`
7
8
  }
@@ -1,132 +0,0 @@
1
- import { InvalidOrder } from './InvalidOrder';
2
- import { StateMachine } from './StateMachine';
3
- // order.atLeast(step, count) // expected to be executed at least `count` times
4
- // order.atMost(step, count) // exected to be executed at most `count` times
5
- export class AssertOrder {
6
- /**
7
- * Gets the current expecting step.
8
- */
9
- get currentStep() {
10
- return this.state.step;
11
- }
12
- constructor(plan) {
13
- this.state = new StateMachine(plan);
14
- }
15
- /**
16
- * Asserts the current step is `step`.
17
- * @param step expected step.
18
- */
19
- is(step) {
20
- this.assert('is', step);
21
- }
22
- /**
23
- * Asserts the current step is not `step`.
24
- * @param step not expected step.
25
- */
26
- not(step) {
27
- if (this.state.isValid(step)) {
28
- throw new InvalidOrder(this.state.get(), 'not', this.not, step);
29
- }
30
- }
31
- /**
32
- * Reset to specified step.
33
- */
34
- jump(step) {
35
- this.state.jump(step);
36
- }
37
- /**
38
- * Move to next step.
39
- */
40
- move() {
41
- this.state.move();
42
- }
43
- /**
44
- * Asserts the specified step will run once.
45
- */
46
- once(step) {
47
- this.assert('once', step);
48
- this.state.move();
49
- }
50
- on(step, assert) {
51
- this.state.on(step, () => {
52
- assert(step);
53
- });
54
- }
55
- atLeastOnce(step) {
56
- const nextStep = step + 1;
57
- if (this.state.step === step) {
58
- this.state.move();
59
- return this.state.moveSubStep();
60
- }
61
- else if (this.state.step === nextStep && this.state.subStep > 0) {
62
- return this.state.moveSubStep();
63
- }
64
- else
65
- throw new InvalidOrder(this.state.get(), 'atLeastOnce', this.atLeastOnce, step);
66
- }
67
- any(steps) {
68
- const index = steps.indexOf(this.state.step);
69
- if (index === -1)
70
- throw new InvalidOrder(this.state.get(), 'any', this.any, steps);
71
- this.state.move();
72
- return steps[index];
73
- }
74
- onAny(steps, ...asserts) {
75
- steps.forEach(step => {
76
- this.state.on(step, () => {
77
- let firstError;
78
- let hasPass = false;
79
- asserts.forEach(assert => {
80
- try {
81
- assert(step);
82
- hasPass = true;
83
- }
84
- catch (err) {
85
- if (!firstError)
86
- firstError = err;
87
- }
88
- });
89
- if (!hasPass)
90
- throw firstError;
91
- });
92
- });
93
- return;
94
- }
95
- end(timeout) {
96
- if (timeout) {
97
- return new Promise(r => {
98
- setTimeout(r, timeout);
99
- }).then(() => {
100
- return this.end();
101
- });
102
- }
103
- if (!this.state.isMaxStepDefined()) {
104
- this.state.stopAccepting();
105
- return this.state.getTimeTaken();
106
- }
107
- if (this.state.isAccepting()) {
108
- throw new InvalidOrder(this.state.get(), 'end', this.end);
109
- }
110
- }
111
- exactly(step, times) {
112
- if (this.state.isNotValid(step))
113
- throw new InvalidOrder(this.state.get(), 'exactly', this.exactly, step, times);
114
- if (this.state.maxSubStep === undefined) {
115
- this.state.maxSubStep = times;
116
- this.state.minSubStep = times;
117
- }
118
- return this.state.moveSubStep();
119
- }
120
- wait(step, callback) {
121
- if (callback)
122
- this.on(step, callback);
123
- else
124
- return new Promise(a => { this.on(step, a); });
125
- }
126
- assert(method, step) {
127
- if (this.state.isNotValid(step)) {
128
- throw new InvalidOrder(this.state.get(), method, this[method], step);
129
- }
130
- }
131
- }
132
- //# sourceMappingURL=AssertOrder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssertOrder.js","sourceRoot":"","sources":["../../src/assert-order/AssertOrder.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- import { State } from './interfaces';
3
- export declare class InvalidOrder extends AssertionError {
4
- method: string;
5
- args: any[];
6
- state: State;
7
- constructor(state: State, method: string, ssf: Function, ...args: any[]);
8
- }
@@ -1,31 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- export class InvalidOrder extends AssertionError {
3
- constructor(state, method, ssf, ...args) {
4
- const message = method === 'end' ? getEndMessage(state) : getExpectingMessage(state, method, args);
5
- super(message, { method, state, args }, ssf);
6
- }
7
- }
8
- function getEndMessage(state) {
9
- return `Planned for ${state.maxStep} step but expecting step ${state.step} when 'end()' is called`;
10
- }
11
- function getExpectingMessage(state, method, args) {
12
- return `Expecting ${getExpectingCalls(state)}, but received '${method}(${getMethodArgs(args)})'`;
13
- }
14
- function getExpectingCalls(state) {
15
- let message;
16
- if (state.subStep === 0) {
17
- const methods = ['is', 'once', 'any'];
18
- message = methods.map(m => ['any'].indexOf(m) === -1 ?
19
- `'${m}(${state.step})'` :
20
- `'${m}([${state.step}])'`).join(', ');
21
- }
22
- else {
23
- const methods = ['exactly'];
24
- message = methods.map(m => `'${m}(${state.step}, ${state.maxSubStep})'`).join(', ');
25
- }
26
- return message;
27
- }
28
- function getMethodArgs(args) {
29
- return args.map(a => Array.isArray(a) ? `[${a.join(', ')}]` : a).join(', ');
30
- }
31
- //# sourceMappingURL=InvalidOrder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvalidOrder.js","sourceRoot":"","sources":["../../src/assert-order/InvalidOrder.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,cAAc;IAI9C,YAAY,KAAY,EAAE,MAAc,EAAE,GAAa,EAAE,GAAG,IAAW;QACrE,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAClG,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,OAAO,eAAe,KAAK,CAAC,OAAO,4BAA4B,KAAK,CAAC,IAAI,yBAAyB,CAAA;AACpG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;IAC9C,OAAO,aAAa,iBAAiB,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAA;AAClG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,IAAI,OAAe,CAAA;IACnB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACb;SACI;QACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACpF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAW;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7E,CAAC"}
@@ -1,23 +0,0 @@
1
- import { State } from './interfaces';
2
- export declare class StateMachine {
3
- listeners: {};
4
- step: number;
5
- maxStep?: number;
6
- subStep: number;
7
- minSubStep?: number;
8
- maxSubStep?: number;
9
- private startTick;
10
- constructor(maxStep?: number);
11
- jump(step: number): number;
12
- move(): number;
13
- moveSubStep(): number;
14
- get(): State;
15
- on(step: number, listener: any): void;
16
- isNotValid(step: number): boolean;
17
- isValid(step: number): boolean;
18
- isMaxStepDefined(): boolean;
19
- stopAccepting(): void;
20
- isAccepting(): boolean;
21
- getTimeTaken(): any;
22
- private getStartTick;
23
- }
@@ -1,106 +0,0 @@
1
- import isNode from 'is-node';
2
- // istanbul ignore next
3
- function nodeVersionIsOrAbove(major, minor = 0, patch = 0) {
4
- // without this, systemjs will complain `process is not defined`
5
- if (!global.process)
6
- return false;
7
- const versionString = process.version.startsWith('v') ? process.version.slice(1) : process.version;
8
- const [actualMajor, actualMinor, actualPatch] = versionString.split('.').map(s => parseInt(s, 10));
9
- const checking = major * 1000 * 1000 + minor * 1000 + patch;
10
- const actual = actualMajor * 1000 * 1000 + actualMinor * 1000 + actualPatch;
11
- return actual >= checking;
12
- }
13
- // istanbul ignore next
14
- const performance = isNode && nodeVersionIsOrAbove(8, 5) ? require('perf_hooks').performance : undefined;
15
- let startTick;
16
- let timeTaken;
17
- // istanbul ignore else
18
- // tslint:disable-next-line
19
- if (process && typeof process.hrtime === 'function') {
20
- startTick = process.hrtime;
21
- timeTaken = function (startTick) {
22
- const [second, nanoSecond] = process.hrtime(startTick);
23
- return second * 1000 + nanoSecond / 1e6;
24
- };
25
- }
26
- // tslint:disable-next-line
27
- else if (performance && typeof performance.now === 'function') {
28
- startTick = performance.now;
29
- timeTaken = function (startTick) {
30
- const end = performance.now();
31
- return end - startTick;
32
- };
33
- }
34
- else {
35
- startTick = function () {
36
- return new Date().valueOf();
37
- };
38
- timeTaken = function (startTick) {
39
- return new Date().valueOf() - startTick;
40
- };
41
- }
42
- export class StateMachine {
43
- constructor(maxStep) {
44
- this.listeners = {};
45
- this.step = 1;
46
- this.subStep = 0;
47
- this.maxStep = maxStep;
48
- this.startTick = this.getStartTick();
49
- }
50
- jump(step) {
51
- this.step = step;
52
- this.subStep = 0;
53
- return this.step;
54
- }
55
- move() {
56
- const listeners = this.listeners[this.step];
57
- this.step = this.step + 1;
58
- this.subStep = 0;
59
- if (listeners) {
60
- listeners.forEach(l => l());
61
- }
62
- return this.step;
63
- }
64
- moveSubStep() {
65
- const subStep = ++this.subStep;
66
- if (this.maxSubStep === this.subStep)
67
- this.move();
68
- return subStep;
69
- }
70
- get() {
71
- const { step, subStep, maxStep, minSubStep, maxSubStep } = this;
72
- return {
73
- step,
74
- maxStep,
75
- subStep,
76
- minSubStep,
77
- maxSubStep
78
- };
79
- }
80
- on(step, listener) {
81
- this.listeners[step] = [listener];
82
- }
83
- isNotValid(step) {
84
- return step !== this.step || (this.maxStep !== undefined && this.maxStep < step);
85
- }
86
- isValid(step) {
87
- return step === this.step;
88
- }
89
- isMaxStepDefined() {
90
- return this.maxStep !== undefined;
91
- }
92
- stopAccepting() {
93
- this.maxStep = this.step - 1;
94
- }
95
- isAccepting() {
96
- // istanbul ignore next
97
- return this.maxStep ? this.maxStep >= this.step : true;
98
- }
99
- getTimeTaken() {
100
- return timeTaken(this.startTick);
101
- }
102
- getStartTick() {
103
- return startTick();
104
- }
105
- }
106
- //# sourceMappingURL=StateMachine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["../../src/assert-order/StateMachine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './AssertOrder';
2
- export * from './interfaces';
@@ -1,2 +0,0 @@
1
- export * from './AssertOrder';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assert-order/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/assert-order/interfaces.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- import { falsy } from './falsy';
3
- import { pathEqual } from './pathEqual';
4
- import { rejects } from './rejects';
5
- import { repeat } from './repeat';
6
- import { resolves } from './resolves';
7
- import { satisfies } from './satisfies';
8
- import { throws } from './throws';
9
- import { truthy } from './truthy';
10
- export const assertron = {
11
- false(value) {
12
- if (value !== false)
13
- throw new AssertionError(`Expected value to equal false, but received ${value}`, { value }, assertron.false);
14
- },
15
- falsy,
16
- pathEqual,
17
- rejects,
18
- repeat,
19
- resolves,
20
- satisfies,
21
- throws,
22
- true(value) {
23
- if (value !== true)
24
- throw new AssertionError(`Expected value to equal true, but received ${value}`, { value }, assertron.true);
25
- },
26
- truthy
27
- };
28
- //# sourceMappingURL=assertron.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertron.js","sourceRoot":"","sources":["../../src/assertron/assertron.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,CAAC,KAAU;QACd,IAAI,KAAK,KAAK,KAAK;YACjB,MAAM,IAAI,cAAc,CACtB,+CAA+C,KAAK,EAAE,EACtD,EAAE,KAAK,EAAE,EACT,SAAS,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,KAAK;IACL,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,IAAI,CAAC,KAAU;QACb,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,cAAc,CAAC,8CAA8C,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IAChI,CAAC;IACD,MAAM;CACP,CAAA"}
@@ -1,6 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- export function falsy(value) {
3
- if (value)
4
- throw new AssertionError(`Expected value to be falsy, but received ${value}`, { value }, falsy);
5
- }
6
- //# sourceMappingURL=falsy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"falsy.js","sourceRoot":"","sources":["../../src/assertron/falsy.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C,MAAM,UAAU,KAAK,CAAC,KAAU;IAC9B,IAAI,KAAK;QACP,MAAM,IAAI,cAAc,CACtB,4CAA4C,KAAK,EAAE,EACnD,EAAE,KAAK,EAAE,EACT,KAAK,CACN,CAAA;AACL,CAAC"}
@@ -1 +0,0 @@
1
- export * from './assertron';
@@ -1,2 +0,0 @@
1
- export * from './assertron';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertron/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -1,8 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- import { pathEqual as isPathEqual } from 'path-equal';
3
- import { notEqualMessage } from '../errors';
4
- export function pathEqual(actual, expected) {
5
- if (!isPathEqual(actual, expected))
6
- throw new AssertionError(notEqualMessage(actual, expected), { actual, expected }, pathEqual);
7
- }
8
- //# sourceMappingURL=pathEqual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pathEqual.js","sourceRoot":"","sources":["../../src/assertron/pathEqual.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,QAAgB;IACxD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,MAAM,IAAI,cAAc,CACtB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,SAAS,CAAC,CAAA;AAChB,CAAC"}
@@ -1,10 +0,0 @@
1
- import { tersify } from 'tersify';
2
- import AssertionError from 'assertion-error';
3
- export function rejects(promise) {
4
- return promise.then(value => {
5
- throw new AssertionError(`Expected promise to reject, but it resolves with ${typeof value === 'string' ?
6
- `'${value}'` :
7
- tersify(value, { maxLength: Infinity })}`, { value }, rejects);
8
- }, () => { });
9
- }
10
- //# sourceMappingURL=rejects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rejects.js","sourceRoot":"","sources":["../../src/assertron/rejects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,OAAO,CAAC,OAAqB;IAC3C,OAAO,OAAO,CAAC,IAAI,CACjB,KAAK,CAAC,EAAE;QACN,MAAM,IAAI,cAAc,CACtB,oDACA,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC3C,EAAE,KAAK,EAAE,EACT,OAAO,CAAC,CAAA;IACZ,CAAC,EACD,GAAG,EAAE,GAAG,CAAC,CACV,CAAA;AACH,CAAC"}
@@ -1,35 +0,0 @@
1
- import isPromise from 'is-promise';
2
- import AssertionError from 'assertion-error';
3
- /**
4
- * Repeat the specified function n times and return the last result.
5
- * If the result is a promise, it will run the function sequentially.
6
- */
7
- export function repeat(fn, times) {
8
- return repeatRecur(fn, 1, times);
9
- }
10
- function repeatRecur(fn, i, times) {
11
- try {
12
- const result = fn();
13
- if (i === times)
14
- return result;
15
- if (isPromise(result)) {
16
- return result.then(() => repeatRecur(fn, i + 1, times), (e) => { throw new FailOnOccurance(i, e); });
17
- }
18
- else {
19
- return repeatRecur(fn, i + 1, times);
20
- }
21
- }
22
- catch (e) {
23
- if (e instanceof FailOnOccurance)
24
- throw e;
25
- throw new FailOnOccurance(i, e);
26
- }
27
- }
28
- export class FailOnOccurance extends AssertionError {
29
- constructor(occurance, error) {
30
- super(`Failed on ${occurance} occurance`);
31
- this.occurance = occurance;
32
- this.error = error;
33
- }
34
- }
35
- //# sourceMappingURL=repeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/assertron/repeat.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAI,EAAgC,EAAE,KAAa;IACvE,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,WAAW,CAAI,EAAgC,EAAE,CAAS,EAAE,KAAa;IAChF,IAAI;QACF,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,MAAa,CAAA;QAErC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC,IAAI,CAChB,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EACnC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CACpC,CAAA;SACT;aACI;YACH,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;SACrC;KACF;IACD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,YAAY,eAAe;YAAE,MAAM,CAAC,CAAA;QACzC,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KAChC;AACH,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAmB,SAAiB,EAAS,KAAU;QACrD,KAAK,CAAC,aAAa,SAAS,YAAY,CAAC,CAAA;QADxB,cAAS,GAAT,SAAS,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAK;IAEvD,CAAC;CACF"}
@@ -1,12 +0,0 @@
1
- import { tersify } from 'tersify';
2
- import AssertionError from 'assertion-error';
3
- export function resolves(promise) {
4
- return promise.then(() => { }, error => {
5
- throw new AssertionError(`Expected promise to resolve, but it rejects with ${typeof error === 'string' ?
6
- `'${error}'` :
7
- error instanceof Error ?
8
- error :
9
- tersify(error, { maxLength: Infinity })}`, { error }, resolves);
10
- });
11
- }
12
- //# sourceMappingURL=resolves.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolves.js","sourceRoot":"","sources":["../../src/assertron/resolves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,QAAQ,CAAC,OAAqB;IAC5C,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,EAAE,GAAG,CAAC,EACT,KAAK,CAAC,EAAE;QACN,MAAM,IAAI,cAAc,CAAC,oDACvB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,YAAY,KAAK,CAAC,CAAC;gBACtB,KAAK,CAAC,CAAC;gBACP,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC7C,EAAE,KAAK,EAAE,EACT,QAAQ,CACT,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Check if `actual` satisfies criteria in `expected`.
3
- * @param expected All properties can be a value which will be compared to the same property in `actual`, RegExp, or a predicate function that will be used to check against the property.
4
- */
5
- export declare function satisfies<Actual extends any>(actual: Actual, expected: any): void;
@@ -1,14 +0,0 @@
1
- import AssertionError from 'assertion-error';
2
- import { createSatisfier } from 'satisfier';
3
- import { notSatisfiedMessage } from '../errors';
4
- /**
5
- * Check if `actual` satisfies criteria in `expected`.
6
- * @param expected All properties can be a value which will be compared to the same property in `actual`, RegExp, or a predicate function that will be used to check against the property.
7
- */
8
- export function satisfies(actual, expected) {
9
- const diff = createSatisfier(expected).exec(actual);
10
- if (diff) {
11
- throw new AssertionError(notSatisfiedMessage(diff), { diff }, satisfies);
12
- }
13
- }
14
- //# sourceMappingURL=satisfies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"satisfies.js","sourceRoot":"","sources":["../../src/assertron/satisfies.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAqB,MAAc,EAAE,QAAa;IACzE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,cAAc,CACtB,mBAAmB,CAAC,IAAI,CAAC,EACzB,EAAE,IAAI,EAAE,EACR,SAAS,CACV,CAAA;KACF;AACH,CAAC"}