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
|
@@ -176,40 +176,6 @@ function getCurrent(array, path) {
|
|
|
176
176
|
return current;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
function createCursor() {
|
|
180
|
-
var storage = {
|
|
181
|
-
cursor: []
|
|
182
|
-
};
|
|
183
|
-
function addLevel() {
|
|
184
|
-
storage.cursor.push(0);
|
|
185
|
-
}
|
|
186
|
-
function removeLevel() {
|
|
187
|
-
storage.cursor.pop();
|
|
188
|
-
}
|
|
189
|
-
function cursorAt() {
|
|
190
|
-
return last(storage.cursor);
|
|
191
|
-
}
|
|
192
|
-
function getCursor() {
|
|
193
|
-
return asArray(storage.cursor);
|
|
194
|
-
}
|
|
195
|
-
function next() {
|
|
196
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
197
|
-
return last(storage.cursor);
|
|
198
|
-
}
|
|
199
|
-
function reset() {
|
|
200
|
-
storage.cursor = [0];
|
|
201
|
-
}
|
|
202
|
-
reset();
|
|
203
|
-
return {
|
|
204
|
-
addLevel: addLevel,
|
|
205
|
-
cursorAt: cursorAt,
|
|
206
|
-
getCursor: getCursor,
|
|
207
|
-
next: next,
|
|
208
|
-
removeLevel: removeLevel,
|
|
209
|
-
reset: reset
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
|
|
213
179
|
var IsolateTypes;
|
|
214
180
|
(function (IsolateTypes) {
|
|
215
181
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -226,6 +192,133 @@ var Modes;
|
|
|
226
192
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
227
193
|
})(Modes || (Modes = {}));
|
|
228
194
|
|
|
195
|
+
function invariant(condition,
|
|
196
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
197
|
+
message) {
|
|
198
|
+
if (condition) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
// If message is a string object (rather than string literal)
|
|
202
|
+
// Throw the value directly as a string
|
|
203
|
+
// Alternatively, throw an error with the message
|
|
204
|
+
throw message instanceof String
|
|
205
|
+
? message.valueOf()
|
|
206
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
function createIsolateCursor() {
|
|
210
|
+
var cursor = {
|
|
211
|
+
value: 0
|
|
212
|
+
};
|
|
213
|
+
return {
|
|
214
|
+
current: current,
|
|
215
|
+
next: next
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* @returns {number} The current value of the cursor
|
|
219
|
+
*/
|
|
220
|
+
function current() {
|
|
221
|
+
return cursor.value;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Moves the isolate cursor forward by 1
|
|
225
|
+
*/
|
|
226
|
+
function next() {
|
|
227
|
+
cursor.value++;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function isNullish(value) {
|
|
232
|
+
return isNull(value) || isUndefined(value);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function deferThrow(message) {
|
|
236
|
+
setTimeout(function () {
|
|
237
|
+
throw new Error(message);
|
|
238
|
+
}, 0);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
function usePrevKeys() {
|
|
242
|
+
var prev = useTestObjects()[0].prev;
|
|
243
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
244
|
+
if (!(testObject instanceof VestTest)) {
|
|
245
|
+
return prevKeys;
|
|
246
|
+
}
|
|
247
|
+
if (isNullish(testObject.key)) {
|
|
248
|
+
return prevKeys;
|
|
249
|
+
}
|
|
250
|
+
prevKeys[testObject.key] = testObject;
|
|
251
|
+
return prevKeys;
|
|
252
|
+
}, {});
|
|
253
|
+
}
|
|
254
|
+
function usePrevTestByKey(key) {
|
|
255
|
+
var prev = context.useX().isolate.keys.prev;
|
|
256
|
+
return prev[key];
|
|
257
|
+
}
|
|
258
|
+
function useRetainTestKey(key, testObject) {
|
|
259
|
+
var context$1 = context.useX();
|
|
260
|
+
var current = context$1.isolate.keys.current;
|
|
261
|
+
if (isNullish(current[key])) {
|
|
262
|
+
current[key] = testObject;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
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."));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function isolate(_a, callback) {
|
|
270
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
271
|
+
invariant(isFunction(callback));
|
|
272
|
+
// Generate a new Isolate layer, with its own cursor
|
|
273
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
274
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
275
|
+
isolate.keys.prev = usePrevKeys();
|
|
276
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
277
|
+
var res = callback();
|
|
278
|
+
return res;
|
|
279
|
+
});
|
|
280
|
+
// Move the parent cursor forward once we're done
|
|
281
|
+
useCursor().next();
|
|
282
|
+
return output;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* @returns {Isolate} The current isolate layer
|
|
286
|
+
*/
|
|
287
|
+
function useIsolate() {
|
|
288
|
+
return context.useX().isolate;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
292
|
+
*/
|
|
293
|
+
function shouldAllowReorder() {
|
|
294
|
+
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
298
|
+
*/
|
|
299
|
+
function useCurrentPath() {
|
|
300
|
+
var isolate = useIsolate();
|
|
301
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
305
|
+
*/
|
|
306
|
+
function useCursor() {
|
|
307
|
+
return useIsolate().cursor;
|
|
308
|
+
}
|
|
309
|
+
function generateIsolate(type, path) {
|
|
310
|
+
if (path === void 0) { path = []; }
|
|
311
|
+
return {
|
|
312
|
+
cursor: createIsolateCursor(),
|
|
313
|
+
keys: {
|
|
314
|
+
current: {},
|
|
315
|
+
prev: {}
|
|
316
|
+
},
|
|
317
|
+
path: path,
|
|
318
|
+
type: type
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
|
|
229
322
|
var context = createContext(function (ctxRef, parentContext) {
|
|
230
323
|
return parentContext
|
|
231
324
|
? null
|
|
@@ -235,15 +328,8 @@ var context = createContext(function (ctxRef, parentContext) {
|
|
|
235
328
|
groups: {}
|
|
236
329
|
},
|
|
237
330
|
inclusion: {},
|
|
238
|
-
isolate:
|
|
239
|
-
|
|
240
|
-
keys: {
|
|
241
|
-
current: {},
|
|
242
|
-
prev: {}
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
mode: [Modes.ALL],
|
|
246
|
-
testCursor: createCursor()
|
|
331
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
332
|
+
mode: [Modes.ALL]
|
|
247
333
|
}, ctxRef);
|
|
248
334
|
});
|
|
249
335
|
|
|
@@ -462,20 +548,6 @@ var STATUS_PENDING = 'PENDING';
|
|
|
462
548
|
var STATUS_CANCELED = 'CANCELED';
|
|
463
549
|
var STATUS_OMITTED = 'OMITTED';
|
|
464
550
|
|
|
465
|
-
function invariant(condition,
|
|
466
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
467
|
-
message) {
|
|
468
|
-
if (condition) {
|
|
469
|
-
return;
|
|
470
|
-
}
|
|
471
|
-
// If message is a string object (rather than string literal)
|
|
472
|
-
// Throw the value directly as a string
|
|
473
|
-
// Alternatively, throw an error with the message
|
|
474
|
-
throw message instanceof String
|
|
475
|
-
? message.valueOf()
|
|
476
|
-
: new Error(message ? optionalFunctionValue(message) : message);
|
|
477
|
-
}
|
|
478
|
-
|
|
479
551
|
// eslint-disable-next-line max-lines-per-function
|
|
480
552
|
function createState(onStateChange) {
|
|
481
553
|
var state = {
|
|
@@ -559,87 +631,6 @@ function createStateRef(state, _a) {
|
|
|
559
631
|
};
|
|
560
632
|
}
|
|
561
633
|
|
|
562
|
-
function isNullish(value) {
|
|
563
|
-
return isNull(value) || isUndefined(value);
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
function deferThrow(message) {
|
|
567
|
-
setTimeout(function () {
|
|
568
|
-
throw new Error(message);
|
|
569
|
-
}, 0);
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
function usePath() {
|
|
573
|
-
var context$1 = context.useX();
|
|
574
|
-
return context$1.testCursor.getCursor();
|
|
575
|
-
}
|
|
576
|
-
function useCursorAt() {
|
|
577
|
-
var context$1 = context.useX();
|
|
578
|
-
return context$1.testCursor.cursorAt();
|
|
579
|
-
}
|
|
580
|
-
function moveForward() {
|
|
581
|
-
var context$1 = context.useX();
|
|
582
|
-
return context$1.testCursor.next();
|
|
583
|
-
}
|
|
584
|
-
function addLevel() {
|
|
585
|
-
var context$1 = context.useX();
|
|
586
|
-
context$1.testCursor.addLevel();
|
|
587
|
-
}
|
|
588
|
-
function removeLevel() {
|
|
589
|
-
var context$1 = context.useX();
|
|
590
|
-
context$1.testCursor.removeLevel();
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
function usePrevKeys() {
|
|
594
|
-
var prev = useTestObjects()[0].prev;
|
|
595
|
-
return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
|
|
596
|
-
if (!(testObject instanceof VestTest)) {
|
|
597
|
-
return prevKeys;
|
|
598
|
-
}
|
|
599
|
-
if (isNullish(testObject.key)) {
|
|
600
|
-
return prevKeys;
|
|
601
|
-
}
|
|
602
|
-
prevKeys[testObject.key] = testObject;
|
|
603
|
-
return prevKeys;
|
|
604
|
-
}, {});
|
|
605
|
-
}
|
|
606
|
-
function usePrevTestByKey(key) {
|
|
607
|
-
var prev = context.useX().isolate.keys.prev;
|
|
608
|
-
return prev[key];
|
|
609
|
-
}
|
|
610
|
-
function useRetainTestKey(key, testObject) {
|
|
611
|
-
var context$1 = context.useX();
|
|
612
|
-
var current = context$1.isolate.keys.current;
|
|
613
|
-
if (isNullish(current[key])) {
|
|
614
|
-
current[key] = testObject;
|
|
615
|
-
}
|
|
616
|
-
else {
|
|
617
|
-
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."));
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
function isolate(_a, callback) {
|
|
622
|
-
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
623
|
-
invariant(isFunction(callback));
|
|
624
|
-
var keys = {
|
|
625
|
-
current: {},
|
|
626
|
-
prev: {}
|
|
627
|
-
};
|
|
628
|
-
var path = usePath();
|
|
629
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
630
|
-
addLevel();
|
|
631
|
-
keys.prev = usePrevKeys();
|
|
632
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
633
|
-
var res = callback();
|
|
634
|
-
removeLevel();
|
|
635
|
-
moveForward();
|
|
636
|
-
return res;
|
|
637
|
-
});
|
|
638
|
-
}
|
|
639
|
-
function shouldAllowReorder() {
|
|
640
|
-
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
641
|
-
}
|
|
642
|
-
|
|
643
634
|
var Severity;
|
|
644
635
|
(function (Severity) {
|
|
645
636
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -1659,7 +1650,7 @@ function optional(optionals) {
|
|
|
1659
1650
|
}
|
|
1660
1651
|
}
|
|
1661
1652
|
|
|
1662
|
-
|
|
1653
|
+
/******************************************************************************
|
|
1663
1654
|
Copyright (c) Microsoft Corporation.
|
|
1664
1655
|
|
|
1665
1656
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -1804,8 +1795,8 @@ function useTestAtCursor(newTestObject) {
|
|
|
1804
1795
|
function removeAllNextTestsInIsolate() {
|
|
1805
1796
|
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
1806
1797
|
var prevTests = testObjects.prev;
|
|
1807
|
-
var current = getCurrent(prevTests,
|
|
1808
|
-
var cursorAt =
|
|
1798
|
+
var current = getCurrent(prevTests, useCurrentPath());
|
|
1799
|
+
var cursorAt = useCursor().current();
|
|
1809
1800
|
current.splice(cursorAt);
|
|
1810
1801
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1811
1802
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
@@ -1819,13 +1810,13 @@ function removeAllNextTestsInIsolate() {
|
|
|
1819
1810
|
});
|
|
1820
1811
|
}
|
|
1821
1812
|
function useSetTestAtCursor(testObject) {
|
|
1822
|
-
var cursorPath =
|
|
1813
|
+
var cursorPath = useCurrentPath();
|
|
1823
1814
|
useSetTests(function (tests) {
|
|
1824
1815
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
1825
1816
|
});
|
|
1826
1817
|
}
|
|
1827
1818
|
function useGetTestAtCursor(tests) {
|
|
1828
|
-
var cursorPath =
|
|
1819
|
+
var cursorPath = useCurrentPath();
|
|
1829
1820
|
return valueAtPath(tests, cursorPath);
|
|
1830
1821
|
}
|
|
1831
1822
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -1849,16 +1840,17 @@ function handleKeyTest(key, newTestObject) {
|
|
|
1849
1840
|
|
|
1850
1841
|
// eslint-disable-next-line max-statements
|
|
1851
1842
|
function registerPrevRunTest(testObject) {
|
|
1843
|
+
var cursor = useCursor();
|
|
1852
1844
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
1853
1845
|
testObject.skip();
|
|
1854
1846
|
useTestAtCursor(testObject);
|
|
1855
|
-
|
|
1847
|
+
cursor.next();
|
|
1856
1848
|
return testObject;
|
|
1857
1849
|
}
|
|
1858
1850
|
var prevRunTest = useTestAtCursor(testObject);
|
|
1859
1851
|
if (isOmitted()) {
|
|
1860
1852
|
prevRunTest.omit();
|
|
1861
|
-
|
|
1853
|
+
cursor.next();
|
|
1862
1854
|
return prevRunTest;
|
|
1863
1855
|
}
|
|
1864
1856
|
if (isExcluded(testObject)) {
|
|
@@ -1867,13 +1859,13 @@ function registerPrevRunTest(testObject) {
|
|
|
1867
1859
|
// This mostly means that we're probably giving
|
|
1868
1860
|
// up on this async test intentionally.
|
|
1869
1861
|
prevRunTest.skip(isExcludedIndividually());
|
|
1870
|
-
|
|
1862
|
+
cursor.next();
|
|
1871
1863
|
return prevRunTest;
|
|
1872
1864
|
}
|
|
1873
1865
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
1874
1866
|
useSetTestAtCursor(testObject);
|
|
1875
|
-
moveForward();
|
|
1876
1867
|
registerTestObjectByTier(testObject);
|
|
1868
|
+
cursor.next();
|
|
1877
1869
|
return testObject;
|
|
1878
1870
|
}
|
|
1879
1871
|
function registerTestObjectByTier(testObject) {
|
|
@@ -1896,7 +1888,7 @@ function bindTestMemo(test) {
|
|
|
1896
1888
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1897
1889
|
args[_i - 1] = arguments[_i];
|
|
1898
1890
|
}
|
|
1899
|
-
var cursorAt =
|
|
1891
|
+
var cursorAt = useCursor().current();
|
|
1900
1892
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
1901
1893
|
// Implicit dependency for more specificity
|
|
1902
1894
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -1958,6 +1950,6 @@ function warn() {
|
|
|
1958
1950
|
ctx.currentTest.warn();
|
|
1959
1951
|
}
|
|
1960
1952
|
|
|
1961
|
-
var VERSION = "4.4.0
|
|
1953
|
+
var VERSION = "4.4.0";
|
|
1962
1954
|
|
|
1963
1955
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=d(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function g(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(g(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function C(){return S.useX().stateRef}function O(t){return C().optionalFields()[0][t]}function T(t,n){(0,C().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=d(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,C().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=C().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,G=U||(U={});G.Error="error",G.Warning="warning";var P=function(){function t(t,n,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=U.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),I()},t.prototype.reset=function(){this.status=W,I()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,d(n,u)),function(){return[r.references[t],function(n){return e(t,d(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return S.useX().testCursor.getCursor()}function z(){return S.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=C().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return F().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(F())&&!function(t){return ut(k().filter((function(n){return lt(n,t)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||dt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=O(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==A(t.fieldName)}function dt(t,n){return!(!n||it(t,n))||(!0===A(t.fieldName)||t.isTested()||t.isOmitted())}function pt(){var t=S.useX().summary;return M(t),t}function vt(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return F().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(k().filter((function(e){return!ot(e,t)&<(e,n)})))}(u,n)&&function(t,n){return F().every((function(e){return!!ot(e,t)||dt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function gt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Et(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=pt().tests;return n?gt(e,t,n):Et(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=pt().groups[t],e?gt(t,n,e):Et(t,n)}function Ct(t){return Tt(tt.ERROR_COUNT,t)}function Ot(t){return Tt(tt.WARN_COUNT,t)}function Tt(t,n){var e,r=pt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=pt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function kt(t){var n=pt();return t?!!Ft(n.tests,t):n.valid}function Lt(t,n){if(!(t=pt().groups[t]))return!1;if(n)return Ft(t,n);for(var e in t)if(!Ft(t,e))return!1;return!0}function Ft(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=F(),n={stateRef:C()};return Ut([t],S.bind(n,(function(){var t=vt(),n=C().suiteName()[0],e={summary:t};return i(t,{getErrors:S.bind(e,Nt),getErrorsByGroup:S.bind(e,Rt),getWarnings:S.bind(e,mt),getWarningsByGroup:S.bind(e,bt),hasErrors:S.bind(e,Ct),hasErrorsByGroup:S.bind(e,At),hasWarnings:S.bind(e,Ot),hasWarningsByGroup:S.bind(e,It),isValid:S.bind(e,kt),isValidByGroup:S.bind(e,Lt),suiteName:n})})))}function Pt(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function Xt(){var t=F(),n={stateRef:C()};return Wt([t],S.bind(n,(function(){return i({},Gt(),{done:S.bind(n,xt)})})))}function wt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Dt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Xt(),wt(r,n,e)?e:Dt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,C().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=C().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(C().optionalFields()[0])){var n={};_((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(C().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){F().forEach((function(n){it(n,t)&&(n.cancel(),function(t){_((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=S.useX();return M(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=C(),o=S.bind({stateRef:i},(function(){I(),u(qt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=C().testObjects()[0].prev;if(rt(n))return en(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||Y("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.')),function(){var t=C().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function rn(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),z(),t;if(n=nn(t),S.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!d(e[n])}(t))return n.skip(!!S.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),en(t),z(),t.isUntested()){n=Mt();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),tn(t)):n.emit(qt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),tn(t));return t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),sn("fieldName","string")),M(l(e),sn("Test callback","function"));var i=S.useX();return rn(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[C().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0-dev-08ec91";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),Xt()})),{get:S.bind(t,Gt),remove:S.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:S.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=R.EAGER;S.useX().mode[0]=t}function dn(t,n){M(r(t),Zt("name must be a string")),M(l(n),Zt("callback must be a function")),Q({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function pn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:d(n,d(Gt))}}}}function vn(t,n){Q({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||d(t,d(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function gn(t,n){Q({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||d(t,d(Gt))},(function(){return n()}))}))}function En(){var t=S.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,S as context,cn as create,fn as each,ln as eager,dn as group,pn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,gn as skipWhen,on as test,En as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}return t}var N,m=N||(N={});m[m.DEFAULT=0]="DEFAULT",m[m.SUITE=1]="SUITE",m[m.EACH=2]="EACH",m[m.SKIP_WHEN=3]="SKIP_WHEN",m[m.OMIT_WHEN=4]="OMIT_WHEN",m[m.GROUP=5]="GROUP";var y,R=y||(y={});function b(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function S(){var t=0;return{current:function(){return t},next:function(){t++}}}function O(t){return null==t}function T(t){setTimeout((function(){throw Error(t)}),0)}function C(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,b(l(n));var e=I(t,A());return t=_.run({isolate:e},(function(){return e.keys.prev=function(){var t=k().testObjects()[0].prev;return[].concat(g(t,A())).reduce((function(t,n){return n instanceof j&&!O(n.key)?(t[n.key]=n,t):t}),{})}(),P((function(t){var n=e.path;return g(t,n)[v(n)]=[],t})),n()})),_.useX().isolate.cursor.next(),t}function A(){var t=_.useX().isolate;return t.path.concat(t.cursor.current())}function I(t,n){return void 0===n&&(n=[]),{cursor:S(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var _=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:I(N.DEFAULT),mode:[y.ALL]},t)}));function k(){return _.useX().stateRef}function F(t){return k().optionalFields()[0][t]}function L(t,n){(0,k().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function U(t){var n;return null===(n=F(t))||void 0===n?void 0:n[0]}function G(){P((function(t){return t}))}function P(t){(0,k().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function W(){return D().filter((function(t){return t.isPending()}))}var w=c();function D(){var t=k().testObjects()[0].current;return w([t],(function(){return E(t)}))}var X,x=X||(X={});x.Error="error",x.Warning="warning";var j=function(){function t(t,n,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=X.Error,this.status=H,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==J||(this.status=t)},t.prototype.warns=function(){return this.severity===X.Warning},t.prototype.setPending=function(){this.setStatus(V)},t.prototype.fail=function(){this.setStatus(this.warns()?q:M)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(B)},t.prototype.warn=function(){this.severity=X.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(K)},t.prototype.cancel=function(){this.setStatus(Y),G()},t.prototype.reset=function(){this.status=H,G()},t.prototype.omit=function(){this.setStatus(J)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(V)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(J)},t.prototype.isUntested=function(){return this.statusEquals(H)},t.prototype.isFailing=function(){return this.statusEquals(M)},t.prototype.isCanceled=function(){return this.statusEquals(Y)},t.prototype.isSkipped=function(){return this.statusEquals(K)},t.prototype.isPassing=function(){return this.statusEquals(B)},t.prototype.isWarning=function(){return this.statusEquals(q)},t.prototype.statusEquals=function(t){return this.status===t},t}(),H="UNTESTED",K="SKIPPED",M="FAILED",q="WARNING",B="PASSING",V="PENDING",Y="CANCELED",J="OMITTED";function z(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function Q(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return D().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(D())&&!function(t){return ut(W().filter((function(n){return lt(n,t)})))}(t)&&function(t){return D().every((function(n){return!(!t||it(n,t))||pt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=F(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==U(t.fieldName)}function pt(t,n){return!(!n||it(t,n))||(!0===U(t.fieldName)||t.isTested()||t.isOmitted())}function dt(){var t=_.useX().summary;return b(t),t}function vt(){var t=D(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return D().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(W().filter((function(e){return!ot(e,t)&<(e,n)})))}(u,n)&&function(t,n){return D().every((function(e){return!!ot(e,t)||pt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function Et(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function gt(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=dt().tests;return n?Et(e,t,n):gt(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=dt().groups[t],e?Et(t,n,e):gt(t,n)}function Ot(t){return Ct(tt.ERROR_COUNT,t)}function Tt(t){return Ct(tt.WARN_COUNT,t)}function Ct(t,n){var e,r=dt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=dt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function kt(t){var n=dt();return t?!!Lt(n.tests,t):n.valid}function Ft(t,n){if(!(t=dt().groups[t]))return!1;if(n)return Lt(t,n);for(var e in t)if(!Lt(t,e))return!1;return!0}function Lt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=D(),n={stateRef:k()};return Ut([t],_.bind(n,(function(){var t=vt(),n=k().suiteName()[0],e={summary:t};return i(t,{getErrors:_.bind(e,Nt),getErrorsByGroup:_.bind(e,Rt),getWarnings:_.bind(e,mt),getWarningsByGroup:_.bind(e,bt),hasErrors:_.bind(e,Ot),hasErrorsByGroup:_.bind(e,At),hasWarnings:_.bind(e,Tt),hasWarningsByGroup:_.bind(e,It),isValid:_.bind(e,kt),isValidByGroup:_.bind(e,Ft),suiteName:n})})))}function Pt(t){var n=W();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function wt(){var t=D(),n={stateRef:k()};return Wt([t],_.bind(n,(function(){return i({},Gt(),{done:_.bind(n,xt)})})))}function Dt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Xt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=wt(),Dt(r,n,e)?e:Xt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,k().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=k().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),L(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(k().optionalFields()[0])){var n={};P((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=U(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(k().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){D().forEach((function(n){it(n,t)&&(n.cancel(),function(t){P((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){D().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=_.useX();return b(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=_.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=_.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=k(),o=_.bind({stateRef:i},(function(){G(),u(qt.TEST_COMPLETED,t)}));i=_.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=k().testObjects()[0].prev;if(rt(n))return en(t),t;var e=A();if(n=g(n,e)[v(e)],!O(t.key)){n=t.key,(e=_.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=_.useX().isolate.keys.current;return O(r[n])?r[n]=e:T('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(_.useX().isolate.type===N.EACH||T("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.')),function(){var t=k().testObjects(),n=t[1],e=t[0].prev;t=g(e,A());var r=_.useX().isolate.cursor.current();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=d(n,t)),t}function en(t){var n=A();P((function(e){return g(e,n)[v(n)]=t,e}))}function rn(t){var n=_.useX().isolate.cursor,e=y.EAGER;if(e=!(_.useX().mode[0]!==e||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),n.next(),t;if(e=nn(t),_.useX().omitted)return e.omit(),n.next(),e;if(function(t){var n=t.fieldName;if(t=t.groupName,_.useX().skipped)return!0;var e=_.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=_.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!p(e[n])}(t))return e.skip(!!_.useX().skipped),n.next(),e;if(t!==e&&e.fieldName===t.fieldName&&e.groupName===t.groupName&&e.isPending()&&e.cancel(),en(t),t.isUntested()){e=Mt();var r=function(t){return _.run({currentTest:t},(function(){return t.run()}))}(t);try{r&&l(r.then)?(t.asyncTest=r,t.setPending(),tn(t)):e.emit(qt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(e=t.asyncTest)&&l(e.then)&&(t.setPending(),tn(t));return n.next(),t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],b(r(t),sn("fieldName","string")),b(l(e),sn("Test callback","function"));var i=_.useX();return rn(n=new j(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=_.useX().isolate.cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],b(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=z();return t={stateRef:Q(o,{suiteId:e(),suiteName:t}),bus:u},i(_.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),C({type:N.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),wt()})),{get:_.bind(t,Gt),remove:_.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:_.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){b(l(n),"each callback must be a function"),C({type:N.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=y.EAGER;_.useX().mode[0]=t}function pn(t,n){b(r(t),Zt("name must be a string")),b(l(n),Zt("callback must be a function")),C({type:N.GROUP},(function(){_.run({groupName:t},n)}))}function dn(t){var n=_.useX(),e=n.inclusion;return n=n.exclusion,b(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=_.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Gt))}}}}function vn(t,n){C({type:N.OMIT_WHEN},(function(){_.run({omitted:!!_.useX().omitted||p(t,p(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){L(t,[!0,!1])}));else for(var n in t)L(n,[t[n],!1])}function En(t,n){C({type:N.SKIP_WHEN},(function(){_.run({skipped:!!_.useX().skipped||p(t,p(Gt))},(function(){return n()}))}))}function gn(){var t=_.useX("warn hook called outside of a running suite.");b(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,_ as context,cn as create,fn as each,ln as eager,pn as group,dn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,En as skipWhen,on as test,gn as warn};
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
return null;
|
|
508
508
|
}
|
|
509
509
|
|
|
510
|
-
|
|
510
|
+
/******************************************************************************
|
|
511
511
|
Copyright (c) Microsoft Corporation.
|
|
512
512
|
|
|
513
513
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|