vest 4.4.0-dev-08ec91 → 4.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.
- package/dist/cjs/vest.development.js +141 -149
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +141 -149
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +1 -1
- package/dist/umd/enforce/compounds.development.js +1 -1
- package/dist/umd/enforce/schema.development.js +1 -1
- package/dist/umd/vest.development.js +123 -131
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/vest.d.ts +11 -13
|
@@ -180,40 +180,6 @@ function getCurrent(array, path) {
|
|
|
180
180
|
return current;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
function createCursor() {
|
|
184
|
-
var storage = {
|
|
185
|
-
cursor: []
|
|
186
|
-
};
|
|
187
|
-
function addLevel() {
|
|
188
|
-
storage.cursor.push(0);
|
|
189
|
-
}
|
|
190
|
-
function removeLevel() {
|
|
191
|
-
storage.cursor.pop();
|
|
192
|
-
}
|
|
193
|
-
function cursorAt() {
|
|
194
|
-
return last(storage.cursor);
|
|
195
|
-
}
|
|
196
|
-
function getCursor() {
|
|
197
|
-
return asArray(storage.cursor);
|
|
198
|
-
}
|
|
199
|
-
function next() {
|
|
200
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
201
|
-
return last(storage.cursor);
|
|
202
|
-
}
|
|
203
|
-
function reset() {
|
|
204
|
-
storage.cursor = [0];
|
|
205
|
-
}
|
|
206
|
-
reset();
|
|
207
|
-
return {
|
|
208
|
-
addLevel: addLevel,
|
|
209
|
-
cursorAt: cursorAt,
|
|
210
|
-
getCursor: getCursor,
|
|
211
|
-
next: next,
|
|
212
|
-
removeLevel: removeLevel,
|
|
213
|
-
reset: reset
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
|
|
217
183
|
var IsolateTypes;
|
|
218
184
|
(function (IsolateTypes) {
|
|
219
185
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -230,6 +196,133 @@ var Modes;
|
|
|
230
196
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
231
197
|
})(Modes || (Modes = {}));
|
|
232
198
|
|
|
199
|
+
function invariant(condition,
|
|
200
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
201
|
+
message) {
|
|
202
|
+
if (condition) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
// If message is a string object (rather than string literal)
|
|
206
|
+
// Throw the value directly as a string
|
|
207
|
+
// Alternatively, throw an error with the message
|
|
208
|
+
throw message instanceof String
|
|
209
|
+
? message.valueOf()
|
|
210
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function createIsolateCursor() {
|
|
214
|
+
var cursor = {
|
|
215
|
+
value: 0
|
|
216
|
+
};
|
|
217
|
+
return {
|
|
218
|
+
current: current,
|
|
219
|
+
next: next
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* @returns {number} The current value of the cursor
|
|
223
|
+
*/
|
|
224
|
+
function current() {
|
|
225
|
+
return cursor.value;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Moves the isolate cursor forward by 1
|
|
229
|
+
*/
|
|
230
|
+
function next() {
|
|
231
|
+
cursor.value++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function isNullish(value) {
|
|
236
|
+
return isNull(value) || isUndefined(value);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function deferThrow(message) {
|
|
240
|
+
setTimeout(function () {
|
|
241
|
+
throw new Error(message);
|
|
242
|
+
}, 0);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
function usePrevKeys() {
|
|
246
|
+
var prev = useTestObjects()[0].prev;
|
|
247
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
248
|
+
if (!(testObject instanceof VestTest)) {
|
|
249
|
+
return prevKeys;
|
|
250
|
+
}
|
|
251
|
+
if (isNullish(testObject.key)) {
|
|
252
|
+
return prevKeys;
|
|
253
|
+
}
|
|
254
|
+
prevKeys[testObject.key] = testObject;
|
|
255
|
+
return prevKeys;
|
|
256
|
+
}, {});
|
|
257
|
+
}
|
|
258
|
+
function usePrevTestByKey(key) {
|
|
259
|
+
var prev = context.useX().isolate.keys.prev;
|
|
260
|
+
return prev[key];
|
|
261
|
+
}
|
|
262
|
+
function useRetainTestKey(key, testObject) {
|
|
263
|
+
var context$1 = context.useX();
|
|
264
|
+
var current = context$1.isolate.keys.current;
|
|
265
|
+
if (isNullish(current[key])) {
|
|
266
|
+
current[key] = testObject;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
function isolate(_a, callback) {
|
|
274
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
275
|
+
invariant(isFunction(callback));
|
|
276
|
+
// Generate a new Isolate layer, with its own cursor
|
|
277
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
278
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
279
|
+
isolate.keys.prev = usePrevKeys();
|
|
280
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
281
|
+
var res = callback();
|
|
282
|
+
return res;
|
|
283
|
+
});
|
|
284
|
+
// Move the parent cursor forward once we're done
|
|
285
|
+
useCursor().next();
|
|
286
|
+
return output;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @returns {Isolate} The current isolate layer
|
|
290
|
+
*/
|
|
291
|
+
function useIsolate() {
|
|
292
|
+
return context.useX().isolate;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
296
|
+
*/
|
|
297
|
+
function shouldAllowReorder() {
|
|
298
|
+
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
302
|
+
*/
|
|
303
|
+
function useCurrentPath() {
|
|
304
|
+
var isolate = useIsolate();
|
|
305
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
309
|
+
*/
|
|
310
|
+
function useCursor() {
|
|
311
|
+
return useIsolate().cursor;
|
|
312
|
+
}
|
|
313
|
+
function generateIsolate(type, path) {
|
|
314
|
+
if (path === void 0) { path = []; }
|
|
315
|
+
return {
|
|
316
|
+
cursor: createIsolateCursor(),
|
|
317
|
+
keys: {
|
|
318
|
+
current: {},
|
|
319
|
+
prev: {}
|
|
320
|
+
},
|
|
321
|
+
path: path,
|
|
322
|
+
type: type
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
|
|
233
326
|
var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
234
327
|
return parentContext
|
|
235
328
|
? null
|
|
@@ -239,15 +332,8 @@ var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
|
239
332
|
groups: {}
|
|
240
333
|
},
|
|
241
334
|
inclusion: {},
|
|
242
|
-
isolate:
|
|
243
|
-
|
|
244
|
-
keys: {
|
|
245
|
-
current: {},
|
|
246
|
-
prev: {}
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
mode: [Modes.ALL],
|
|
250
|
-
testCursor: createCursor()
|
|
335
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
336
|
+
mode: [Modes.ALL]
|
|
251
337
|
}, ctxRef);
|
|
252
338
|
});
|
|
253
339
|
|
|
@@ -466,20 +552,6 @@ var STATUS_PENDING = 'PENDING';
|
|
|
466
552
|
var STATUS_CANCELED = 'CANCELED';
|
|
467
553
|
var STATUS_OMITTED = 'OMITTED';
|
|
468
554
|
|
|
469
|
-
function invariant(condition,
|
|
470
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
471
|
-
message) {
|
|
472
|
-
if (condition) {
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
|
-
// If message is a string object (rather than string literal)
|
|
476
|
-
// Throw the value directly as a string
|
|
477
|
-
// Alternatively, throw an error with the message
|
|
478
|
-
throw message instanceof String
|
|
479
|
-
? message.valueOf()
|
|
480
|
-
: new Error(message ? optionalFunctionValue(message) : message);
|
|
481
|
-
}
|
|
482
|
-
|
|
483
555
|
// eslint-disable-next-line max-lines-per-function
|
|
484
556
|
function createState(onStateChange) {
|
|
485
557
|
var state = {
|
|
@@ -563,87 +635,6 @@ function createStateRef(state, _a) {
|
|
|
563
635
|
};
|
|
564
636
|
}
|
|
565
637
|
|
|
566
|
-
function isNullish(value) {
|
|
567
|
-
return isNull(value) || isUndefined(value);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
function deferThrow(message) {
|
|
571
|
-
setTimeout(function () {
|
|
572
|
-
throw new Error(message);
|
|
573
|
-
}, 0);
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
function usePath() {
|
|
577
|
-
var context$1 = context.useX();
|
|
578
|
-
return context$1.testCursor.getCursor();
|
|
579
|
-
}
|
|
580
|
-
function useCursorAt() {
|
|
581
|
-
var context$1 = context.useX();
|
|
582
|
-
return context$1.testCursor.cursorAt();
|
|
583
|
-
}
|
|
584
|
-
function moveForward() {
|
|
585
|
-
var context$1 = context.useX();
|
|
586
|
-
return context$1.testCursor.next();
|
|
587
|
-
}
|
|
588
|
-
function addLevel() {
|
|
589
|
-
var context$1 = context.useX();
|
|
590
|
-
context$1.testCursor.addLevel();
|
|
591
|
-
}
|
|
592
|
-
function removeLevel() {
|
|
593
|
-
var context$1 = context.useX();
|
|
594
|
-
context$1.testCursor.removeLevel();
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
function usePrevKeys() {
|
|
598
|
-
var prev = useTestObjects()[0].prev;
|
|
599
|
-
return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
|
|
600
|
-
if (!(testObject instanceof VestTest)) {
|
|
601
|
-
return prevKeys;
|
|
602
|
-
}
|
|
603
|
-
if (isNullish(testObject.key)) {
|
|
604
|
-
return prevKeys;
|
|
605
|
-
}
|
|
606
|
-
prevKeys[testObject.key] = testObject;
|
|
607
|
-
return prevKeys;
|
|
608
|
-
}, {});
|
|
609
|
-
}
|
|
610
|
-
function usePrevTestByKey(key) {
|
|
611
|
-
var prev = context.useX().isolate.keys.prev;
|
|
612
|
-
return prev[key];
|
|
613
|
-
}
|
|
614
|
-
function useRetainTestKey(key, testObject) {
|
|
615
|
-
var context$1 = context.useX();
|
|
616
|
-
var current = context$1.isolate.keys.current;
|
|
617
|
-
if (isNullish(current[key])) {
|
|
618
|
-
current[key] = testObject;
|
|
619
|
-
}
|
|
620
|
-
else {
|
|
621
|
-
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
function isolate(_a, callback) {
|
|
626
|
-
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
627
|
-
invariant(isFunction(callback));
|
|
628
|
-
var keys = {
|
|
629
|
-
current: {},
|
|
630
|
-
prev: {}
|
|
631
|
-
};
|
|
632
|
-
var path = usePath();
|
|
633
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
634
|
-
addLevel();
|
|
635
|
-
keys.prev = usePrevKeys();
|
|
636
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
637
|
-
var res = callback();
|
|
638
|
-
removeLevel();
|
|
639
|
-
moveForward();
|
|
640
|
-
return res;
|
|
641
|
-
});
|
|
642
|
-
}
|
|
643
|
-
function shouldAllowReorder() {
|
|
644
|
-
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
645
|
-
}
|
|
646
|
-
|
|
647
638
|
var Severity;
|
|
648
639
|
(function (Severity) {
|
|
649
640
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -1663,7 +1654,7 @@ function optional(optionals) {
|
|
|
1663
1654
|
}
|
|
1664
1655
|
}
|
|
1665
1656
|
|
|
1666
|
-
|
|
1657
|
+
/******************************************************************************
|
|
1667
1658
|
Copyright (c) Microsoft Corporation.
|
|
1668
1659
|
|
|
1669
1660
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -1808,8 +1799,8 @@ function useTestAtCursor(newTestObject) {
|
|
|
1808
1799
|
function removeAllNextTestsInIsolate() {
|
|
1809
1800
|
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
1810
1801
|
var prevTests = testObjects.prev;
|
|
1811
|
-
var current = getCurrent(prevTests,
|
|
1812
|
-
var cursorAt =
|
|
1802
|
+
var current = getCurrent(prevTests, useCurrentPath());
|
|
1803
|
+
var cursorAt = useCursor().current();
|
|
1813
1804
|
current.splice(cursorAt);
|
|
1814
1805
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1815
1806
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
@@ -1823,13 +1814,13 @@ function removeAllNextTestsInIsolate() {
|
|
|
1823
1814
|
});
|
|
1824
1815
|
}
|
|
1825
1816
|
function useSetTestAtCursor(testObject) {
|
|
1826
|
-
var cursorPath =
|
|
1817
|
+
var cursorPath = useCurrentPath();
|
|
1827
1818
|
useSetTests(function (tests) {
|
|
1828
1819
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
1829
1820
|
});
|
|
1830
1821
|
}
|
|
1831
1822
|
function useGetTestAtCursor(tests) {
|
|
1832
|
-
var cursorPath =
|
|
1823
|
+
var cursorPath = useCurrentPath();
|
|
1833
1824
|
return valueAtPath(tests, cursorPath);
|
|
1834
1825
|
}
|
|
1835
1826
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -1853,16 +1844,17 @@ function handleKeyTest(key, newTestObject) {
|
|
|
1853
1844
|
|
|
1854
1845
|
// eslint-disable-next-line max-statements
|
|
1855
1846
|
function registerPrevRunTest(testObject) {
|
|
1847
|
+
var cursor = useCursor();
|
|
1856
1848
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
1857
1849
|
testObject.skip();
|
|
1858
1850
|
useTestAtCursor(testObject);
|
|
1859
|
-
|
|
1851
|
+
cursor.next();
|
|
1860
1852
|
return testObject;
|
|
1861
1853
|
}
|
|
1862
1854
|
var prevRunTest = useTestAtCursor(testObject);
|
|
1863
1855
|
if (isOmitted()) {
|
|
1864
1856
|
prevRunTest.omit();
|
|
1865
|
-
|
|
1857
|
+
cursor.next();
|
|
1866
1858
|
return prevRunTest;
|
|
1867
1859
|
}
|
|
1868
1860
|
if (isExcluded(testObject)) {
|
|
@@ -1871,13 +1863,13 @@ function registerPrevRunTest(testObject) {
|
|
|
1871
1863
|
// This mostly means that we're probably giving
|
|
1872
1864
|
// up on this async test intentionally.
|
|
1873
1865
|
prevRunTest.skip(isExcludedIndividually());
|
|
1874
|
-
|
|
1866
|
+
cursor.next();
|
|
1875
1867
|
return prevRunTest;
|
|
1876
1868
|
}
|
|
1877
1869
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
1878
1870
|
useSetTestAtCursor(testObject);
|
|
1879
|
-
moveForward();
|
|
1880
1871
|
registerTestObjectByTier(testObject);
|
|
1872
|
+
cursor.next();
|
|
1881
1873
|
return testObject;
|
|
1882
1874
|
}
|
|
1883
1875
|
function registerTestObjectByTier(testObject) {
|
|
@@ -1900,7 +1892,7 @@ function bindTestMemo(test) {
|
|
|
1900
1892
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1901
1893
|
args[_i - 1] = arguments[_i];
|
|
1902
1894
|
}
|
|
1903
|
-
var cursorAt =
|
|
1895
|
+
var cursorAt = useCursor().current();
|
|
1904
1896
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
1905
1897
|
// Implicit dependency for more specificity
|
|
1906
1898
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -1962,7 +1954,7 @@ function warn() {
|
|
|
1962
1954
|
ctx.currentTest.warn();
|
|
1963
1955
|
}
|
|
1964
1956
|
|
|
1965
|
-
var VERSION = "4.4.0
|
|
1957
|
+
var VERSION = "4.4.0";
|
|
1966
1958
|
|
|
1967
1959
|
Object.defineProperty(exports, 'enforce', {
|
|
1968
1960
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),r=require("context"),e=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}var c=Object.assign;function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function p(n){function t(n){return r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))}void 0===n&&(n=1);var r=[],e=function(t,u){var i=e.get(t);return i?i[1]:(u=u(),r.unshift([t.concat(),u]),function(n,t){return l(n.length,t)}(r,n)&&(r.length=n),u)};return e.invalidate=function(n){-1<(n=t(n))&&r.splice(n,1)},e.get=function(n){return r[t(n)]||null},e}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var g,h,E=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return N(n)?n.apply(void 0,t):n}function y(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];d(u)?r.push(S(u,t)):(u=t(u),E(u)&&r.push(u))}return r}function C(n,t,r){return T(n,t)[R(t)]=r,n}function b(n){return s(n).reduce((function(n,t){return d(t)?n.concat(b(t)):s(n).concat(t)}),[])}function T(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=y(n[e],[]),n=n[e]}return n}function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return R(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,R(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(g||(g={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(h||(h={}));var I=r.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[h.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(n){return x()[0][n]}function x(){return O().optionalFields()}function F(n,t){(0,x()[1])((function(r){var e;return c(r,((e={})[n]=m(t,r[n]),e))}))}function U(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function W(){return O().testObjects()}function G(){P((function(n){return n}))}function P(n){(0,W()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function D(){return H().filter((function(n){return n.isPending()}))}var w,X=p();function H(){var n=W()[0].current;return X([n],(function(){return b(n)}))}function K(n){H().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(w||(w={}));var M,q,j=function(){function n(n,t,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=w.Error,this.status=B,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==$||(this.status=n)},n.prototype.warns=function(){return this.severity===w.Warning},n.prototype.setPending=function(){this.setStatus(Q)},n.prototype.fail=function(){this.setStatus(this.warns()?J:Y)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=w.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(Z),G()},n.prototype.reset=function(){this.status=B,G()},n.prototype.omit=function(){this.setStatus($)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Q)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals($)},n.prototype.isUntested=function(){return this.statusEquals(B)},n.prototype.isFailing=function(){return this.statusEquals(Y)},n.prototype.isCanceled=function(){return this.statusEquals(Z)},n.prototype.isSkipped=function(){return this.statusEquals(V)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(J)},n.prototype.statusEquals=function(n){return this.status===n},n}(),B="UNTESTED",V="SKIPPED",Y="FAILED",J="WARNING",z="PASSING",Q="PENDING",Z="CANCELED",$="OMITTED";function nn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function tn(n){function t(n,t,u){return e.references.push(),r(n,m(t,u)),function(){return[e.references[n],function(t){return r(n,m(t,e.references[n]))}]}}function r(t,r){var i=e.references[t];e.references[t]=r,N(t=u[t][1])&&t(r,i),N(n)&&n()}var e={references:[]},u=[];return{registerStateKey:function(n,r){var e=u.length;return u.push([n,r]),t(e,n)},reset:function(){var n=e.references;e.references=[],u.forEach((function(r,e){return t(e,r[0],n[e])}))}}}function rn(n,t){var r=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(r),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function en(n){return v(n)||o(n)}function un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return I.useX().testCursor.getCursor()}function sn(){return I.useX().testCursor.cursorAt()}function cn(){return I.useX().testCursor.next()}function an(n,t){n=void 0===(n=n.type)?g.DEFAULT:n,nn(N(t));var r={current:{},prev:{}},e=on();return I.run({isolate:{type:n,keys:r}},(function(){I.useX().testCursor.addLevel(),r.prev=s(T(W()[0].prev,on())).reduce((function(n,t){return t instanceof j&&!en(t.key)?(n[t.key]=t,n):n}),{}),P((function(n){return C(n,e,[])}));var n=t();return I.useX().testCursor.removeLevel(),cn(),n}))}function fn(n){return n===M.ERRORS?q.ERROR_COUNT:q.WARN_COUNT}function ln(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function pn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:ln(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(M||(M={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(q||(q={}));var dn=i(pn);function vn(n,t){return!!t&&!gn(n,t)}function gn(n,t){return!(!t||n.fieldName!==t)}var hn=i((function(n,t){return n.groupName===t}));function En(n){return function(n,t){return H().some((function(r){return Nn(r,n,t)}))}(M.ERRORS,n)}function Nn(n,t,r){return!(!n.hasFailures()||vn(n,r)||function(n,t){return function(n,t){return!!n!=!!t}(n===M.WARNINGS,t.warns())}(t,n))}function mn(n){return!!Rn(n)||!En(n)&&(!pn(H())&&!function(n){return dn(D().filter((function(t){return Sn(t,n)})))}(n)&&function(n){return H().every((function(t){return!!vn(t,n)||Cn(t,n)}))}(n))}function yn(n,t){return!!Rn(t)||!function(n,t,r){return H().some((function(e){return!hn(e,t)&&Nn(e,n,r)}))}(M.ERRORS,n,t)&&!function(n,t){return dn(D().filter((function(r){return!hn(r,n)&&Sn(r,t)})))}(n,t)&&function(n,t){return H().every((function(r){return!!hn(r,n)||Cn(r,t)}))}(n,t)}function Rn(n){return!!n&&!0===function(n){var t;return null===(t=L(n))||void 0===t?void 0:t[1]}(n)}function Sn(n,t){return!vn(n,t)&&!0!==U(n.fieldName)}function Cn(n,t){return!!vn(n,t)||(!0===U(n.fieldName)||n.isTested()||n.isOmitted())}function bn(){var n=I.useX().summary;return nn(n),n}function Tn(){var n=H(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=_n(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&mn(t.fieldName)}(n.tests,t),function(n,t){var r=t.groupName;r&&(n[r]=n[r]||{},n[r][t.fieldName]=_n(n[r],t),n[r][t.fieldName].valid=!1!==n[r][t.fieldName].valid&&yn(r,t.fieldName))}(n.groups,t),n}),t),t.valid=mn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function _n(n,t){function r(n){var t=fn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[e];return t.isNonActionable()||(n[e].testCount++,t.isFailing()?r(M.ERRORS):t.isWarning()&&r(M.WARNINGS)),i}function In(n){return l(n,0)}function On(n,t,r){return r?function(n,t,r){var e;return(null===(e=null==n?void 0:n[r])||void 0===e?void 0:e[t])||[]}(n,t,r):function(n,t){var r,e={},u=fn(t);for(r in n)In(n[r][u])&&(e[r]=n[r][t]||[]);return e}(n,t)}function An(n){return Ln(M.ERRORS,n)}function kn(n){return Ln(M.WARNINGS,n)}function Ln(n,t){return On(bn().tests,n,t)}function xn(n,t){return Un(n,M.ERRORS,t)}function Fn(n,t){return Un(n,M.WARNINGS,t)}function Un(n,t,r){return On(bn().groups[n],t,r)}function Wn(n){return Pn(q.ERROR_COUNT,n)}function Gn(n){return Pn(q.WARN_COUNT,n)}function Pn(n,t){var r,e=bn();return In(t?null===(r=e.tests[t])||void 0===r?void 0:r[n]:e[n])}function Dn(n,t){return Xn(M.ERRORS,n,t)}function wn(n,t){return Xn(M.WARNINGS,n,t)}function Xn(n,t,r){var e,u,i=bn();if(n=fn(n),!(t=i.groups[t]))return!1;if(r)return In(null===(e=t[r])||void 0===e?void 0:e[n]);for(var o in t)if(In(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Hn(n){var t=bn();return n?!!Mn(t.tests,n):t.valid}function Kn(n,t){if(!(n=bn().groups[n]))return!1;if(t)return Mn(n,t);for(var r in n)if(!Mn(n,r))return!1;return!0}function Mn(n,t){var r;return!(null===(r=n[t])||void 0===r||!r.valid)}var qn=p(1);function jn(){var n=H(),t={stateRef:O()};return qn([n],I.bind(t,(function(){var n=Tn(),t=O().suiteName()[0],r={summary:n};return c(n,{getErrors:I.bind(r,An),getErrorsByGroup:I.bind(r,xn),getWarnings:I.bind(r,kn),getWarningsByGroup:I.bind(r,Fn),hasErrors:I.bind(r,Wn),hasErrorsByGroup:I.bind(r,Dn),hasWarnings:I.bind(r,Gn),hasWarningsByGroup:I.bind(r,wn),isValid:I.bind(r,Hn),isValidByGroup:I.bind(r,Kn),suiteName:t})})))}function Bn(n){var t=D();return!pn(t)&&(n?t.some((function(t){return gn(t,n)})):dn(t))}var Vn=p(20);function Yn(){var n=H(),t={stateRef:O()};return Vn([n],I.bind(t,(function(){return c({},jn(),{done:I.bind(t,Zn)})})))}function Jn(n,t,r){return!(N(n)&&(!t||r.tests[t]&&!pn(r.tests[t].testCount)))}function zn(n){return!(Bn()&&(!n||Bn(n)))}var Qn,Zn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Yn(),Jn(r,n,t))return t;var e=function(){return r(jn())};return zn(n)?(e(),t):($n(e,n),t)};function $n(n,t){(0,k()[1])((function(r){return t?r.fieldCallbacks[t]=(r.fieldCallbacks[t]||[]).concat(n):r.doneCallbacks.push(n),r}))}function nt(n){return n.forEach((function(n){return n()}))}function tt(){var n=function(){var n={};return{emit:function(t,r){(n[t]||[]).forEach((function(n){n(r)}))},on:function(t,r){return n[t]=(n[t]||[]).concat(r),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==r}))}}}}}();return n.on(Qn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Bn(n)&&d(t[n])&&nt(t[n])}(t.fieldName),Bn()||n.emit(Qn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Qn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),F(n.fieldName,(function(n){return[n[0],!0]})))}if(!pn(x()[0])){var t={};P((function(r){return S(r,(function(r){if(ln(t,r.fieldName))n(r);else{var e=U(r.fieldName);N(e)&&(t[r.fieldName]=e(),n(r))}return r}))}))}}()})),n.on(Qn.ALL_RUNNING_TESTS_FINISHED,(function(){nt(k()[0].doneCallbacks)})),n.on(Qn.REMOVE_FIELD,(function(n){K((function(t){gn(t,n)&&(t.cancel(),function(n){P((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Qn.RESET_FIELD,(function(n){K((function(t){gn(t,n)&&t.reset()}))})),n}function rt(){var n=I.useX();return nn(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Qn||(Qn={}));function et(){return!!I.useX().skipped}function ut(n){return st(0,"tests",n)}function it(n){return st(1,"tests",n)}function ot(n){var t=n.fieldName;if(n=n.groupName,et())return!0;var r=I.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return ln(t,n)?!1===t[n]:at()}(n))return!0;if(!0===e.groups[n])return!i&&(!!ct(u)||!1===u[t])}return!!function(n){return!!at()&&!n}(n)||!i&&(!!ct(u)&&!m(r[t]))}function st(n,t,r){var e=I.useX("hook called outside of a running suite.");r&&s(r).forEach((function(r){u(r)&&(e.exclusion[t][r]=0===n)}))}function ct(n){for(var t in n)if(!0===n[t])return!0;return!1}function at(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function ft(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function lt(n){return!(!function(n){return I.useX().mode[0]===n}(h.EAGER)||!En(n.fieldName))}function pt(){return!!I.useX().omitted}function dt(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function vt(n){return n&&N(n.then)}function gt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ht(n){var t=n.asyncTest,r=n.message;if(vt(t)){var e=rt().emit,i=O(),o=I.bind({stateRef:i},(function(){G(),e(Qn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Et(n){var t=rt(),r=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{vt(r)?(n.asyncTest=r,n.setPending(),ht(n)):t.emit(Qn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Nt(n){var t=W()[0].prev;return pn(t)?(mt(n),n):(t=function(n){var t=on();return function(n,t){return T(n,t)[R(t)]}(n,t)}(t),en(n.key)?(function(n,t){return dn(n)&&!gt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===g.EACH||un("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=W(),t=n[1],r=n[0].prev;n=T(r,on());var e=sn();n.splice(e),t((function(n){return{prev:r,current:n.current}}))}(),t=null),mt(n=y(t,n)),n):(mt(n=function(n,t){var r=function(n){return I.useX().isolate.keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=I.useX().isolate.keys.current;en(r[n])?r[n]=t:un('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function mt(n){var t=on();P((function(r){return C(r,t,n)}))}function yt(n){if(lt(n))return n.skip(),Nt(n),cn(),n;var t=Nt(n);return pt()?(t.omit(),cn(),t):ot(n)?(t.skip(et()),cn(),t):(function(n,t){t!==n&>(n,t)&&n.isPending()&&n.cancel()}(t,n),mt(n),cn(),function(n){n.isUntested()?Et(n):vt(n.asyncTest)&&(n.setPending(),ht(n))}(n),n)}function Rt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=N(t[1])?t:dt([void 0],t,!0);t=e[0],r=e[1],e=e[2],nn(u(n),Ct("fieldName","string")),nn(N(r),Ct("Test callback","function"));var i=I.useX();return yt(t=new j(n,r,{message:t,groupName:i.groupName,key:e}))}ut.group=function(n){return st(0,"groups",n)},it.group=function(n){return st(1,"groups",n)};var St=c(Rt,{memo:function(n){var t=p(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=sn();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[A(),r,u].concat(i),v(e=t.get(u))?t(u,(function(){return n(r,s,o)})):e[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(r,s,o)}))):yt(e[1])}}(Rt)});function Ct(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.4.0-dev-08ec91",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];n=n[1],nn(N(r),"vest.create: Expected callback to be a function.");var u=tt(),i=tn();return n={stateRef:rn(i,{suiteId:e(),suiteName:n}),bus:u},c(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:g.SUITE},(function(){r.apply(void 0,n)})),u.emit(Qn.SUITE_CALLBACK_DONE_RUNNING),Yn()})),{get:I.bind(n,jn),remove:I.bind(n,(function(n){u.emit(Qn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Qn.RESET_FIELD,n)}))})},exports.each=function(n,t){nn(N(t),"each callback must be a function"),an({type:g.EACH},(function(){n.forEach((function(n,r){t(n,r)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(h.EAGER)},exports.group=function(n,t){nn(u(n),ft("name must be a string")),nn(N(t),ft("callback must be a function")),an({type:g.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),r=t.inclusion;return t=t.exclusion,nn(u(n)),r[n]=y(t.tests[n],!0),{when:function(t){var r=I.useX(),e=r.exclusion;r.inclusion[n]=function(){return ln(e.tests,n)?y(e.tests[n],!0):u(t)?!!e.tests[t]:m(t,m(jn))}}}},exports.omitWhen=function(n,t){an({type:g.OMIT_WHEN},(function(){I.run({omitted:pt()||m(n,m(jn))},(function(){return t()}))}))},exports.only=ut,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){F(n,[!0,!1])}));else for(var t in n)F(t,[n[t],!1])},exports.skip=it,exports.skipWhen=function(n,t){an({type:g.SKIP_WHEN},(function(){I.run({skipped:et()||m(n,m(jn))},(function(){return t()}))}))},exports.test=St,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");nn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),r=require("context"),e=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}var c=Object.assign;function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function p(n){function t(n){return r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))}void 0===n&&(n=1);var r=[],e=function(t,u){var i=e.get(t);return i?i[1]:(u=u(),r.unshift([t.concat(),u]),function(n,t){return l(n.length,t)}(r,n)&&(r.length=n),u)};return e.invalidate=function(n){-1<(n=t(n))&&r.splice(n,1)},e.get=function(n){return r[t(n)]||null},e}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var h,E,g=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return N(n)?n.apply(void 0,t):n}function y(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];d(u)?r.push(S(u,t)):(u=t(u),g(u)&&r.push(u))}return r}function b(n,t,r){return C(n,t)[R(t)]=r,n}function T(n){return s(n).reduce((function(n,t){return d(t)?n.concat(T(t)):s(n).concat(t)}),[])}function C(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=y(n[e],[]),n=n[e]}return n}function _(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function I(){var n=0;return{current:function(){return n},next:function(){n++}}}function O(n){return v(n)||o(n)}function A(n){setTimeout((function(){throw Error(n)}),0)}function k(n,t){n=void 0===(n=n.type)?h.DEFAULT:n,_(N(t));var r=U(n,L());return n=W.run({isolate:r},(function(){return r.keys.prev=s(C(M()[0].prev,L())).reduce((function(n,t){return t instanceof $&&!O(t.key)?(n[t.key]=t,n):n}),{}),j((function(n){return b(n,r.path,[])})),t()})),F().next(),n}function x(){return W.useX().isolate}function L(){var n=x();return n.path.concat(n.cursor.current())}function F(){return x().cursor}function U(n,t){return void 0===t&&(t=[]),{cursor:I(),keys:{current:{},prev:{}},path:t,type:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(h||(h={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(E||(E={}));var W=r.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:U(h.DEFAULT),mode:[E.ALL]},n)}));function G(){return W.useX().stateRef}function P(){return G().suiteId()[0]}function D(){return G().testCallbacks()}function w(n){return X()[0][n]}function X(){return G().optionalFields()}function H(n,t){(0,X()[1])((function(r){var e;return c(r,((e={})[n]=m(t,r[n]),e))}))}function K(n){var t;return null===(t=w(n))||void 0===t?void 0:t[0]}function M(){return G().testObjects()}function q(){j((function(n){return n}))}function j(n){(0,M()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function B(){return J().filter((function(n){return n.isPending()}))}var V,Y=p();function J(){var n=M()[0].current;return Y([n],(function(){return T(n)}))}function z(n){J().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(V||(V={}));var Q,Z,$=function(){function n(n,t,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=V.Error,this.status=nn,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==cn||(this.status=n)},n.prototype.warns=function(){return this.severity===V.Warning},n.prototype.setPending=function(){this.setStatus(on)},n.prototype.fail=function(){this.setStatus(this.warns()?en:rn)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(un)},n.prototype.warn=function(){this.severity=V.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(tn)},n.prototype.cancel=function(){this.setStatus(sn),q()},n.prototype.reset=function(){this.status=nn,q()},n.prototype.omit=function(){this.setStatus(cn)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(on)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(cn)},n.prototype.isUntested=function(){return this.statusEquals(nn)},n.prototype.isFailing=function(){return this.statusEquals(rn)},n.prototype.isCanceled=function(){return this.statusEquals(sn)},n.prototype.isSkipped=function(){return this.statusEquals(tn)},n.prototype.isPassing=function(){return this.statusEquals(un)},n.prototype.isWarning=function(){return this.statusEquals(en)},n.prototype.statusEquals=function(n){return this.status===n},n}(),nn="UNTESTED",tn="SKIPPED",rn="FAILED",en="WARNING",un="PASSING",on="PENDING",sn="CANCELED",cn="OMITTED";function an(n){function t(n,t,u){return e.references.push(),r(n,m(t,u)),function(){return[e.references[n],function(t){return r(n,m(t,e.references[n]))}]}}function r(t,r){var i=e.references[t];e.references[t]=r,N(t=u[t][1])&&t(r,i),N(n)&&n()}var e={references:[]},u=[];return{registerStateKey:function(n,r){var e=u.length;return u.push([n,r]),t(e,n)},reset:function(){var n=e.references;e.references=[],u.forEach((function(r,e){return t(e,r[0],n[e])}))}}}function fn(n,t){var r=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(r),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function ln(n){return n===Q.ERRORS?Z.ERROR_COUNT:Z.WARN_COUNT}function pn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function dn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:pn(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Q||(Q={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Z||(Z={}));var vn=i(dn);function hn(n,t){return!!t&&!En(n,t)}function En(n,t){return!(!t||n.fieldName!==t)}var gn=i((function(n,t){return n.groupName===t}));function Nn(n){return function(n,t){return J().some((function(r){return mn(r,n,t)}))}(Q.ERRORS,n)}function mn(n,t,r){return!(!n.hasFailures()||hn(n,r)||function(n,t){return function(n,t){return!!n!=!!t}(n===Q.WARNINGS,t.warns())}(t,n))}function yn(n){return!!Sn(n)||!Nn(n)&&(!dn(J())&&!function(n){return vn(B().filter((function(t){return bn(t,n)})))}(n)&&function(n){return J().every((function(t){return!!hn(t,n)||Tn(t,n)}))}(n))}function Rn(n,t){return!!Sn(t)||!function(n,t,r){return J().some((function(e){return!gn(e,t)&&mn(e,n,r)}))}(Q.ERRORS,n,t)&&!function(n,t){return vn(B().filter((function(r){return!gn(r,n)&&bn(r,t)})))}(n,t)&&function(n,t){return J().every((function(r){return!!gn(r,n)||Tn(r,t)}))}(n,t)}function Sn(n){return!!n&&!0===function(n){var t;return null===(t=w(n))||void 0===t?void 0:t[1]}(n)}function bn(n,t){return!hn(n,t)&&!0!==K(n.fieldName)}function Tn(n,t){return!!hn(n,t)||(!0===K(n.fieldName)||n.isTested()||n.isOmitted())}function Cn(){var n=W.useX().summary;return _(n),n}function _n(){var n=J(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=In(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&yn(t.fieldName)}(n.tests,t),function(n,t){var r=t.groupName;r&&(n[r]=n[r]||{},n[r][t.fieldName]=In(n[r],t),n[r][t.fieldName].valid=!1!==n[r][t.fieldName].valid&&Rn(r,t.fieldName))}(n.groups,t),n}),t),t.valid=yn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function In(n,t){function r(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[e];return t.isNonActionable()||(n[e].testCount++,t.isFailing()?r(Q.ERRORS):t.isWarning()&&r(Q.WARNINGS)),i}function On(n){return l(n,0)}function An(n,t,r){return r?function(n,t,r){var e;return(null===(e=null==n?void 0:n[r])||void 0===e?void 0:e[t])||[]}(n,t,r):function(n,t){var r,e={},u=ln(t);for(r in n)On(n[r][u])&&(e[r]=n[r][t]||[]);return e}(n,t)}function kn(n){return Ln(Q.ERRORS,n)}function xn(n){return Ln(Q.WARNINGS,n)}function Ln(n,t){return An(Cn().tests,n,t)}function Fn(n,t){return Wn(n,Q.ERRORS,t)}function Un(n,t){return Wn(n,Q.WARNINGS,t)}function Wn(n,t,r){return An(Cn().groups[n],t,r)}function Gn(n){return Dn(Z.ERROR_COUNT,n)}function Pn(n){return Dn(Z.WARN_COUNT,n)}function Dn(n,t){var r,e=Cn();return On(t?null===(r=e.tests[t])||void 0===r?void 0:r[n]:e[n])}function wn(n,t){return Hn(Q.ERRORS,n,t)}function Xn(n,t){return Hn(Q.WARNINGS,n,t)}function Hn(n,t,r){var e,u,i=Cn();if(n=ln(n),!(t=i.groups[t]))return!1;if(r)return On(null===(e=t[r])||void 0===e?void 0:e[n]);for(var o in t)if(On(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Kn(n){var t=Cn();return n?!!qn(t.tests,n):t.valid}function Mn(n,t){if(!(n=Cn().groups[n]))return!1;if(t)return qn(n,t);for(var r in n)if(!qn(n,r))return!1;return!0}function qn(n,t){var r;return!(null===(r=n[t])||void 0===r||!r.valid)}var jn=p(1);function Bn(){var n=J(),t={stateRef:G()};return jn([n],W.bind(t,(function(){var n=_n(),t=G().suiteName()[0],r={summary:n};return c(n,{getErrors:W.bind(r,kn),getErrorsByGroup:W.bind(r,Fn),getWarnings:W.bind(r,xn),getWarningsByGroup:W.bind(r,Un),hasErrors:W.bind(r,Gn),hasErrorsByGroup:W.bind(r,wn),hasWarnings:W.bind(r,Pn),hasWarningsByGroup:W.bind(r,Xn),isValid:W.bind(r,Kn),isValidByGroup:W.bind(r,Mn),suiteName:t})})))}function Vn(n){var t=B();return!dn(t)&&(n?t.some((function(t){return En(t,n)})):vn(t))}var Yn=p(20);function Jn(){var n=J(),t={stateRef:G()};return Yn([n],W.bind(t,(function(){return c({},Bn(),{done:W.bind(t,$n)})})))}function zn(n,t,r){return!(N(n)&&(!t||r.tests[t]&&!dn(r.tests[t].testCount)))}function Qn(n){return!(Vn()&&(!n||Vn(n)))}var Zn,$n=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Jn(),zn(r,n,t))return t;var e=function(){return r(Bn())};return Qn(n)?(e(),t):(nt(e,n),t)};function nt(n,t){(0,D()[1])((function(r){return t?r.fieldCallbacks[t]=(r.fieldCallbacks[t]||[]).concat(n):r.doneCallbacks.push(n),r}))}function tt(n){return n.forEach((function(n){return n()}))}function rt(){var n=function(){var n={};return{emit:function(t,r){(n[t]||[]).forEach((function(n){n(r)}))},on:function(t,r){return n[t]=(n[t]||[]).concat(r),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==r}))}}}}}();return n.on(Zn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=D()[0].fieldCallbacks;n&&!Vn(n)&&d(t[n])&&tt(t[n])}(t.fieldName),Vn()||n.emit(Zn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Zn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),H(n.fieldName,(function(n){return[n[0],!0]})))}if(!dn(X()[0])){var t={};j((function(r){return S(r,(function(r){if(pn(t,r.fieldName))n(r);else{var e=K(r.fieldName);N(e)&&(t[r.fieldName]=e(),n(r))}return r}))}))}}()})),n.on(Zn.ALL_RUNNING_TESTS_FINISHED,(function(){tt(D()[0].doneCallbacks)})),n.on(Zn.REMOVE_FIELD,(function(n){z((function(t){En(t,n)&&(t.cancel(),function(n){j((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Zn.RESET_FIELD,(function(n){z((function(t){En(t,n)&&t.reset()}))})),n}function et(){var n=W.useX();return _(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Zn||(Zn={}));function ut(){return!!W.useX().skipped}function it(n){return ct(0,"tests",n)}function ot(n){return ct(1,"tests",n)}function st(n){var t=n.fieldName;if(n=n.groupName,ut())return!0;var r=W.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=W.useX().exclusion.groups;return pn(t,n)?!1===t[n]:ft()}(n))return!0;if(!0===e.groups[n])return!i&&(!!at(u)||!1===u[t])}return!!function(n){return!!ft()&&!n}(n)||!i&&(!!at(u)&&!m(r[t]))}function ct(n,t,r){var e=W.useX("hook called outside of a running suite.");r&&s(r).forEach((function(r){u(r)&&(e.exclusion[t][r]=0===n)}))}function at(n){for(var t in n)if(!0===n[t])return!0;return!1}function ft(){var n,t=W.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function lt(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function pt(n){return!(!function(n){return W.useX().mode[0]===n}(E.EAGER)||!Nn(n.fieldName))}function dt(){return!!W.useX().omitted}function vt(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function ht(n){return n&&N(n.then)}function Et(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function gt(n){var t=n.asyncTest,r=n.message;if(ht(t)){var e=et().emit,i=G(),o=W.bind({stateRef:i},(function(){q(),e(Zn.TEST_COMPLETED,n)}));i=W.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Nt(n){var t=et(),r=function(n){return W.run({currentTest:n},(function(){return n.run()}))}(n);try{ht(r)?(n.asyncTest=r,n.setPending(),gt(n)):t.emit(Zn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function mt(n){var t=M()[0].prev;return dn(t)?(yt(n),n):(t=function(n){var t=L();return function(n,t){return C(n,t)[R(t)]}(n,t)}(t),O(n.key)?(function(n,t){return vn(n)&&!Et(n,t)}(t,n)&&(function(n,t){W.useX().isolate.type===h.EACH||A("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=M(),t=n[1],r=n[0].prev;n=C(r,L());var e=F().current();n.splice(e),t((function(n){return{prev:r,current:n.current}}))}(),t=null),yt(n=y(t,n)),n):(yt(n=function(n,t){var r=function(n){return W.useX().isolate.keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=W.useX().isolate.keys.current;O(r[n])?r[n]=t:A('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function yt(n){var t=L();j((function(r){return b(r,t,n)}))}function Rt(n){var t=F();if(pt(n))return n.skip(),mt(n),t.next(),n;var r=mt(n);return dt()?(r.omit(),t.next(),r):st(n)?(r.skip(ut()),t.next(),r):(function(n,t){t!==n&&Et(n,t)&&n.isPending()&&n.cancel()}(r,n),yt(n),function(n){n.isUntested()?Nt(n):ht(n.asyncTest)&&(n.setPending(),gt(n))}(n),t.next(),n)}function St(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=N(t[1])?t:vt([void 0],t,!0);t=e[0],r=e[1],e=e[2],_(u(n),Tt("fieldName","string")),_(N(r),Tt("Test callback","function"));var i=W.useX();return Rt(t=new $(n,r,{message:t,groupName:i.groupName,key:e}))}it.group=function(n){return ct(0,"groups",n)},ot.group=function(n){return ct(1,"groups",n)};var bt=c(St,{memo:function(n){var t=p(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=F().current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[P(),r,u].concat(i),v(e=t.get(u))?t(u,(function(){return n(r,s,o)})):e[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(r,s,o)}))):Rt(e[1])}}(St)});function Tt(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.4.0",exports.context=W,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];n=n[1],_(N(r),"vest.create: Expected callback to be a function.");var u=rt(),i=an();return n={stateRef:fn(i,{suiteId:e(),suiteName:n}),bus:u},c(W.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),k({type:h.SUITE},(function(){r.apply(void 0,n)})),u.emit(Zn.SUITE_CALLBACK_DONE_RUNNING),Jn()})),{get:W.bind(n,Bn),remove:W.bind(n,(function(n){u.emit(Zn.REMOVE_FIELD,n)})),reset:i.reset,resetField:W.bind(n,(function(n){u.emit(Zn.RESET_FIELD,n)}))})},exports.each=function(n,t){_(N(t),"each callback must be a function"),k({type:h.EACH},(function(){n.forEach((function(n,r){t(n,r)}))}))},exports.eager=function(){!function(n){W.useX().mode[0]=n}(E.EAGER)},exports.group=function(n,t){_(u(n),lt("name must be a string")),_(N(t),lt("callback must be a function")),k({type:h.GROUP},(function(){W.run({groupName:n},t)}))},exports.include=function(n){var t=W.useX(),r=t.inclusion;return t=t.exclusion,_(u(n)),r[n]=y(t.tests[n],!0),{when:function(t){var r=W.useX(),e=r.exclusion;r.inclusion[n]=function(){return pn(e.tests,n)?y(e.tests[n],!0):u(t)?!!e.tests[t]:m(t,m(Bn))}}}},exports.omitWhen=function(n,t){k({type:h.OMIT_WHEN},(function(){W.run({omitted:dt()||m(n,m(Bn))},(function(){return t()}))}))},exports.only=it,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){H(n,[!0,!1])}));else for(var t in n)H(t,[n[t],!1])},exports.skip=ot,exports.skipWhen=function(n,t){k({type:h.SKIP_WHEN},(function(){W.run({skipped:ut()||m(n,m(Bn))},(function(){return t()}))}))},exports.test=bt,exports.warn=function(){var n=W.useX("warn hook called outside of a running suite.");_(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|