vest 4.4.0 → 4.4.1
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 +96 -103
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +96 -103
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +78 -85
- package/dist/umd/vest.production.js +1 -1
- package/package.json +1 -1
- package/testUtils/testObjects.ts +4 -11
- package/types/vest.d.ts +1 -1
|
@@ -196,20 +196,6 @@ var Modes;
|
|
|
196
196
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
197
197
|
})(Modes || (Modes = {}));
|
|
198
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
199
|
function createIsolateCursor() {
|
|
214
200
|
var cursor = {
|
|
215
201
|
value: 0
|
|
@@ -232,84 +218,6 @@ function createIsolateCursor() {
|
|
|
232
218
|
}
|
|
233
219
|
}
|
|
234
220
|
|
|
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
221
|
function generateIsolate(type, path) {
|
|
314
222
|
if (path === void 0) { path = []; }
|
|
315
223
|
return {
|
|
@@ -552,6 +460,20 @@ var STATUS_PENDING = 'PENDING';
|
|
|
552
460
|
var STATUS_CANCELED = 'CANCELED';
|
|
553
461
|
var STATUS_OMITTED = 'OMITTED';
|
|
554
462
|
|
|
463
|
+
function invariant(condition,
|
|
464
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
465
|
+
message) {
|
|
466
|
+
if (condition) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
// If message is a string object (rather than string literal)
|
|
470
|
+
// Throw the value directly as a string
|
|
471
|
+
// Alternatively, throw an error with the message
|
|
472
|
+
throw message instanceof String
|
|
473
|
+
? message.valueOf()
|
|
474
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
475
|
+
}
|
|
476
|
+
|
|
555
477
|
// eslint-disable-next-line max-lines-per-function
|
|
556
478
|
function createState(onStateChange) {
|
|
557
479
|
var state = {
|
|
@@ -635,6 +557,84 @@ function createStateRef(state, _a) {
|
|
|
635
557
|
};
|
|
636
558
|
}
|
|
637
559
|
|
|
560
|
+
function isNullish(value) {
|
|
561
|
+
return isNull(value) || isUndefined(value);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function deferThrow(message) {
|
|
565
|
+
setTimeout(function () {
|
|
566
|
+
throw new Error(message);
|
|
567
|
+
}, 0);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
function usePrevKeys() {
|
|
571
|
+
var prev = useTestObjects()[0].prev;
|
|
572
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
573
|
+
if (!(testObject instanceof VestTest)) {
|
|
574
|
+
return prevKeys;
|
|
575
|
+
}
|
|
576
|
+
if (isNullish(testObject.key)) {
|
|
577
|
+
return prevKeys;
|
|
578
|
+
}
|
|
579
|
+
prevKeys[testObject.key] = testObject;
|
|
580
|
+
return prevKeys;
|
|
581
|
+
}, {});
|
|
582
|
+
}
|
|
583
|
+
function usePrevTestByKey(key) {
|
|
584
|
+
var prev = useIsolate().keys.prev;
|
|
585
|
+
return prev[key];
|
|
586
|
+
}
|
|
587
|
+
function useRetainTestKey(key, testObject) {
|
|
588
|
+
var current = useIsolate().keys.current;
|
|
589
|
+
if (isNullish(current[key])) {
|
|
590
|
+
current[key] = testObject;
|
|
591
|
+
}
|
|
592
|
+
else {
|
|
593
|
+
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."));
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
function isolate(_a, callback) {
|
|
598
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
599
|
+
invariant(isFunction(callback));
|
|
600
|
+
// Generate a new Isolate layer, with its own cursor
|
|
601
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
602
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
603
|
+
isolate.keys.prev = usePrevKeys();
|
|
604
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
605
|
+
var res = callback();
|
|
606
|
+
return res;
|
|
607
|
+
});
|
|
608
|
+
// Move the parent cursor forward once we're done
|
|
609
|
+
useCursor().next();
|
|
610
|
+
return output;
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* @returns {Isolate} The current isolate layer
|
|
614
|
+
*/
|
|
615
|
+
function useIsolate() {
|
|
616
|
+
return context.useX().isolate;
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
620
|
+
*/
|
|
621
|
+
function shouldAllowReorder() {
|
|
622
|
+
return useIsolate().type === IsolateTypes.EACH;
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
626
|
+
*/
|
|
627
|
+
function useCurrentPath() {
|
|
628
|
+
var isolate = useIsolate();
|
|
629
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
633
|
+
*/
|
|
634
|
+
function useCursor() {
|
|
635
|
+
return useIsolate().cursor;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
638
|
var Severity;
|
|
639
639
|
(function (Severity) {
|
|
640
640
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -1797,20 +1797,13 @@ function useTestAtCursor(newTestObject) {
|
|
|
1797
1797
|
return nextTest;
|
|
1798
1798
|
}
|
|
1799
1799
|
function removeAllNextTestsInIsolate() {
|
|
1800
|
-
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
1801
|
-
var prevTests = testObjects.prev;
|
|
1802
|
-
var current = getCurrent(prevTests, useCurrentPath());
|
|
1803
1800
|
var cursorAt = useCursor().current();
|
|
1804
|
-
current.splice(cursorAt);
|
|
1805
1801
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1806
1802
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
1807
1803
|
// to prevent future headaches if we ever do need to rely on prev-state immutability.
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
return
|
|
1811
|
-
prev: prevTests,
|
|
1812
|
-
current: current
|
|
1813
|
-
});
|
|
1804
|
+
useSetTests(function (current) {
|
|
1805
|
+
current.splice(cursorAt);
|
|
1806
|
+
return current;
|
|
1814
1807
|
});
|
|
1815
1808
|
}
|
|
1816
1809
|
function useSetTestAtCursor(testObject) {
|
|
@@ -1954,7 +1947,7 @@ function warn() {
|
|
|
1954
1947
|
ctx.currentTest.warn();
|
|
1955
1948
|
}
|
|
1956
1949
|
|
|
1957
|
-
var VERSION = "4.4.
|
|
1950
|
+
var VERSION = "4.4.1";
|
|
1958
1951
|
|
|
1959
1952
|
Object.defineProperty(exports, 'enforce', {
|
|
1960
1953
|
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 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()};
|
|
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 _(){var n=0;return{current:function(){return n},next:function(){n++}}}function I(n,t){return void 0===t&&(t=[]),{cursor:_(),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 O=r.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:I(h.DEFAULT),mode:[E.ALL]},n)}));function A(){return O.useX().stateRef}function k(){return A().suiteId()[0]}function x(){return A().testCallbacks()}function L(n){return F()[0][n]}function F(){return A().optionalFields()}function U(n,t){(0,F()[1])((function(r){var e;return c(r,((e={})[n]=m(t,r[n]),e))}))}function W(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function G(){return A().testObjects()}function P(){D((function(n){return n}))}function D(n){(0,G()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function w(){return K().filter((function(n){return n.isPending()}))}var X,H=p();function K(){var n=G()[0].current;return H([n],(function(){return T(n)}))}function M(n){K().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(X||(X={}));var q,j,B=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=X.Error,this.status=V,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!==nn||(this.status=n)},n.prototype.warns=function(){return this.severity===X.Warning},n.prototype.setPending=function(){this.setStatus(Z)},n.prototype.fail=function(){this.setStatus(this.warns()?z:J)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Q)},n.prototype.warn=function(){this.severity=X.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Y)},n.prototype.cancel=function(){this.setStatus($),P()},n.prototype.reset=function(){this.status=V,P()},n.prototype.omit=function(){this.setStatus(nn)},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(Z)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(nn)},n.prototype.isUntested=function(){return this.statusEquals(V)},n.prototype.isFailing=function(){return this.statusEquals(J)},n.prototype.isCanceled=function(){return this.statusEquals($)},n.prototype.isSkipped=function(){return this.statusEquals(Y)},n.prototype.isPassing=function(){return this.statusEquals(Q)},n.prototype.isWarning=function(){return this.statusEquals(z)},n.prototype.statusEquals=function(n){return this.status===n},n}(),V="UNTESTED",Y="SKIPPED",J="FAILED",z="WARNING",Q="PASSING",Z="PENDING",$="CANCELED",nn="OMITTED";function tn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function rn(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 en(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 un(n){return v(n)||o(n)}function on(n){setTimeout((function(){throw Error(n)}),0)}function sn(n,t){n=void 0===(n=n.type)?h.DEFAULT:n,tn(N(t));var r=I(n,an());return n=O.run({isolate:r},(function(){return r.keys.prev=s(C(G()[0].prev,an())).reduce((function(n,t){return t instanceof B&&!un(t.key)?(n[t.key]=t,n):n}),{}),D((function(n){return b(n,r.path,[])})),t()})),fn().next(),n}function cn(){return O.useX().isolate}function an(){var n=cn();return n.path.concat(n.cursor.current())}function fn(){return cn().cursor}function ln(n){return n===q.ERRORS?j.ERROR_COUNT:j.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"}(j||(j={}));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 K().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(K())&&!function(n){return vn(w().filter((function(t){return bn(t,n)})))}(n)&&function(n){return K().every((function(t){return!!hn(t,n)||Tn(t,n)}))}(n))}function Rn(n,t){return!!Sn(t)||!function(n,t,r){return K().some((function(e){return!gn(e,t)&&mn(e,n,r)}))}(q.ERRORS,n,t)&&!function(n,t){return vn(w().filter((function(r){return!gn(r,n)&&bn(r,t)})))}(n,t)&&function(n,t){return K().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=L(n))||void 0===t?void 0:t[1]}(n)}function bn(n,t){return!hn(n,t)&&!0!==W(n.fieldName)}function Tn(n,t){return!!hn(n,t)||(!0===W(n.fieldName)||n.isTested()||n.isOmitted())}function Cn(){var n=O.useX().summary;return tn(n),n}function _n(){var n=K(),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(j.ERROR_COUNT,n)}function Pn(n){return Dn(j.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=K(),t={stateRef:A()};return jn([n],O.bind(t,(function(){var n=_n(),t=A().suiteName()[0],r={summary:n};return c(n,{getErrors:O.bind(r,kn),getErrorsByGroup:O.bind(r,Fn),getWarnings:O.bind(r,xn),getWarningsByGroup:O.bind(r,Un),hasErrors:O.bind(r,Gn),hasErrorsByGroup:O.bind(r,wn),hasWarnings:O.bind(r,Pn),hasWarningsByGroup:O.bind(r,Xn),isValid:O.bind(r,Kn),isValidByGroup:O.bind(r,Mn),suiteName:t})})))}function Vn(n){var t=w();return!dn(t)&&(n?t.some((function(t){return En(t,n)})):vn(t))}var Yn=p(20);function Jn(){var n=K(),t={stateRef:A()};return Yn([n],O.bind(t,(function(){return c({},Bn(),{done:O.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,x()[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=x()[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(),U(n.fieldName,(function(n){return[n[0],!0]})))}if(!dn(F()[0])){var t={};D((function(r){return S(r,(function(r){if(pn(t,r.fieldName))n(r);else{var e=W(r.fieldName);N(e)&&(t[r.fieldName]=e(),n(r))}return r}))}))}}()})),n.on(Zn.ALL_RUNNING_TESTS_FINISHED,(function(){tt(x()[0].doneCallbacks)})),n.on(Zn.REMOVE_FIELD,(function(n){M((function(t){En(t,n)&&(t.cancel(),function(n){D((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Zn.RESET_FIELD,(function(n){M((function(t){En(t,n)&&t.reset()}))})),n}function et(){var n=O.useX();return tn(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!!O.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=O.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=O.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=O.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=O.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 O.useX().mode[0]===n}(E.EAGER)||!Nn(n.fieldName))}function dt(){return!!O.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=A(),o=O.bind({stateRef:i},(function(){P(),e(Zn.TEST_COMPLETED,n)}));i=O.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 O.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=G()[0].prev;return dn(t)?(yt(n),n):(t=function(n){var t=an();return function(n,t){return C(n,t)[R(t)]}(n,t)}(t),un(n.key)?(function(n,t){return vn(n)&&!Et(n,t)}(t,n)&&(function(n,t){cn().type===h.EACH||on("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=fn().current();D((function(t){return t.splice(n),t}))}(),t=null),yt(n=y(t,n)),n):(yt(n=function(n,t){var r=function(n){return cn().keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=cn().keys.current;un(r[n])?r[n]=t:on('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=an();D((function(r){return b(r,t,n)}))}function Rt(n){var t=fn();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],tn(u(n),Tt("fieldName","string")),tn(N(r),Tt("Test callback","function"));var i=O.useX();return Rt(t=new B(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=fn().current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[k(),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.1",exports.context=O,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],tn(N(r),"vest.create: Expected callback to be a function.");var u=rt(),i=rn();return n={stateRef:en(i,{suiteId:e(),suiteName:n}),bus:u},c(O.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:h.SUITE},(function(){r.apply(void 0,n)})),u.emit(Zn.SUITE_CALLBACK_DONE_RUNNING),Jn()})),{get:O.bind(n,Bn),remove:O.bind(n,(function(n){u.emit(Zn.REMOVE_FIELD,n)})),reset:i.reset,resetField:O.bind(n,(function(n){u.emit(Zn.RESET_FIELD,n)}))})},exports.each=function(n,t){tn(N(t),"each callback must be a function"),sn({type:h.EACH},(function(){n.forEach((function(n,r){t(n,r)}))}))},exports.eager=function(){!function(n){O.useX().mode[0]=n}(E.EAGER)},exports.group=function(n,t){tn(u(n),lt("name must be a string")),tn(N(t),lt("callback must be a function")),sn({type:h.GROUP},(function(){O.run({groupName:n},t)}))},exports.include=function(n){var t=O.useX(),r=t.inclusion;return t=t.exclusion,tn(u(n)),r[n]=y(t.tests[n],!0),{when:function(t){var r=O.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){sn({type:h.OMIT_WHEN},(function(){O.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){U(n,[!0,!1])}));else for(var t in n)U(t,[n[t],!1])},exports.skip=ot,exports.skipWhen=function(n,t){sn({type:h.SKIP_WHEN},(function(){O.run({skipped:ut()||m(n,m(Bn))},(function(){return t()}))}))},exports.test=bt,exports.warn=function(){var n=O.useX("warn hook called outside of a running suite.");tn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -192,20 +192,6 @@ var Modes;
|
|
|
192
192
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
193
193
|
})(Modes || (Modes = {}));
|
|
194
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
195
|
function createIsolateCursor() {
|
|
210
196
|
var cursor = {
|
|
211
197
|
value: 0
|
|
@@ -228,84 +214,6 @@ function createIsolateCursor() {
|
|
|
228
214
|
}
|
|
229
215
|
}
|
|
230
216
|
|
|
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
217
|
function generateIsolate(type, path) {
|
|
310
218
|
if (path === void 0) { path = []; }
|
|
311
219
|
return {
|
|
@@ -548,6 +456,20 @@ var STATUS_PENDING = 'PENDING';
|
|
|
548
456
|
var STATUS_CANCELED = 'CANCELED';
|
|
549
457
|
var STATUS_OMITTED = 'OMITTED';
|
|
550
458
|
|
|
459
|
+
function invariant(condition,
|
|
460
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
461
|
+
message) {
|
|
462
|
+
if (condition) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
// If message is a string object (rather than string literal)
|
|
466
|
+
// Throw the value directly as a string
|
|
467
|
+
// Alternatively, throw an error with the message
|
|
468
|
+
throw message instanceof String
|
|
469
|
+
? message.valueOf()
|
|
470
|
+
: new Error(message ? optionalFunctionValue(message) : message);
|
|
471
|
+
}
|
|
472
|
+
|
|
551
473
|
// eslint-disable-next-line max-lines-per-function
|
|
552
474
|
function createState(onStateChange) {
|
|
553
475
|
var state = {
|
|
@@ -631,6 +553,84 @@ function createStateRef(state, _a) {
|
|
|
631
553
|
};
|
|
632
554
|
}
|
|
633
555
|
|
|
556
|
+
function isNullish(value) {
|
|
557
|
+
return isNull(value) || isUndefined(value);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
function deferThrow(message) {
|
|
561
|
+
setTimeout(function () {
|
|
562
|
+
throw new Error(message);
|
|
563
|
+
}, 0);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
function usePrevKeys() {
|
|
567
|
+
var prev = useTestObjects()[0].prev;
|
|
568
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
569
|
+
if (!(testObject instanceof VestTest)) {
|
|
570
|
+
return prevKeys;
|
|
571
|
+
}
|
|
572
|
+
if (isNullish(testObject.key)) {
|
|
573
|
+
return prevKeys;
|
|
574
|
+
}
|
|
575
|
+
prevKeys[testObject.key] = testObject;
|
|
576
|
+
return prevKeys;
|
|
577
|
+
}, {});
|
|
578
|
+
}
|
|
579
|
+
function usePrevTestByKey(key) {
|
|
580
|
+
var prev = useIsolate().keys.prev;
|
|
581
|
+
return prev[key];
|
|
582
|
+
}
|
|
583
|
+
function useRetainTestKey(key, testObject) {
|
|
584
|
+
var current = useIsolate().keys.current;
|
|
585
|
+
if (isNullish(current[key])) {
|
|
586
|
+
current[key] = testObject;
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
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."));
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
function isolate(_a, callback) {
|
|
594
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
595
|
+
invariant(isFunction(callback));
|
|
596
|
+
// Generate a new Isolate layer, with its own cursor
|
|
597
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
598
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
599
|
+
isolate.keys.prev = usePrevKeys();
|
|
600
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
601
|
+
var res = callback();
|
|
602
|
+
return res;
|
|
603
|
+
});
|
|
604
|
+
// Move the parent cursor forward once we're done
|
|
605
|
+
useCursor().next();
|
|
606
|
+
return output;
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* @returns {Isolate} The current isolate layer
|
|
610
|
+
*/
|
|
611
|
+
function useIsolate() {
|
|
612
|
+
return context.useX().isolate;
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
616
|
+
*/
|
|
617
|
+
function shouldAllowReorder() {
|
|
618
|
+
return useIsolate().type === IsolateTypes.EACH;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
622
|
+
*/
|
|
623
|
+
function useCurrentPath() {
|
|
624
|
+
var isolate = useIsolate();
|
|
625
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
629
|
+
*/
|
|
630
|
+
function useCursor() {
|
|
631
|
+
return useIsolate().cursor;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
634
|
var Severity;
|
|
635
635
|
(function (Severity) {
|
|
636
636
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -1793,20 +1793,13 @@ function useTestAtCursor(newTestObject) {
|
|
|
1793
1793
|
return nextTest;
|
|
1794
1794
|
}
|
|
1795
1795
|
function removeAllNextTestsInIsolate() {
|
|
1796
|
-
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
1797
|
-
var prevTests = testObjects.prev;
|
|
1798
|
-
var current = getCurrent(prevTests, useCurrentPath());
|
|
1799
1796
|
var cursorAt = useCursor().current();
|
|
1800
|
-
current.splice(cursorAt);
|
|
1801
1797
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1802
1798
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
1803
1799
|
// to prevent future headaches if we ever do need to rely on prev-state immutability.
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
return
|
|
1807
|
-
prev: prevTests,
|
|
1808
|
-
current: current
|
|
1809
|
-
});
|
|
1800
|
+
useSetTests(function (current) {
|
|
1801
|
+
current.splice(cursorAt);
|
|
1802
|
+
return current;
|
|
1810
1803
|
});
|
|
1811
1804
|
}
|
|
1812
1805
|
function useSetTestAtCursor(testObject) {
|
|
@@ -1950,6 +1943,6 @@ function warn() {
|
|
|
1950
1943
|
ctx.currentTest.warn();
|
|
1951
1944
|
}
|
|
1952
1945
|
|
|
1953
|
-
var VERSION = "4.4.
|
|
1946
|
+
var VERSION = "4.4.1";
|
|
1954
1947
|
|
|
1955
1948
|
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 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};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,r=(n=0,function(){return"".concat(n++)});function e(t){return String(t)===t}function u(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];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(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),a(e.length,t)&&(e.length=t),u)}function r(t){return e.findIndex((function(n){var r=n[0];return s(t.length,r.length)&&t.every((function(t,n){return t===r[n]}))}))}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){-1<(t=r(t))&&e.splice(t,1)},n.get=function(t){return e[r(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return l(t)?t.apply(void 0,n):t}function p(t,n){var r;return null!==(r=d(t))&&void 0!==r?r:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var r=[],e=0;e<t.length;e++){var u=t[e];Array.isArray(u)?r.push(h(u,n)):(u=n(u),f(u)&&r.push(u))}return r}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 r=0;for(n=n.slice(0,-1);r<n.length;r++){var e=n[r];t[e]=p(t[e],[]),t=t[e]}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(){var t=0;return{current:function(){return t},next:function(){t++}}}function S(t,n){return void 0===n&&(n=[]),{cursor:b(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var T=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:S(N.DEFAULT),mode:[y.ALL]},t)}));function O(){return T.useX().stateRef}function C(t){return O().optionalFields()[0][t]}function A(t,n){(0,O().optionalFields()[1])((function(r){var e;return i(r,((e={})[t]=d(n,r[t]),e))}))}function I(t){var n;return null===(n=C(t))||void 0===n?void 0:n[0]}function _(){k((function(t){return t}))}function k(t){(0,O().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return U().filter((function(t){return t.isPending()}))}var L=c();function U(){var t=O().testObjects()[0].current;return L([t],(function(){return E(t)}))}var G,P=G||(G={});P.Error="error",P.Warning="warning";var W=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=G.Error,this.status=w,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&e(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==M||(this.status=t)},t.prototype.warns=function(){return this.severity===G.Warning},t.prototype.setPending=function(){this.setStatus(H)},t.prototype.fail=function(){this.setStatus(this.warns()?X:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},t.prototype.warn=function(){this.severity=G.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(D)},t.prototype.cancel=function(){this.setStatus(K),_()},t.prototype.reset=function(){this.status=w,_()},t.prototype.omit=function(){this.setStatus(M)},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(H)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(M)},t.prototype.isUntested=function(){return this.statusEquals(w)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(K)},t.prototype.isSkipped=function(){return this.statusEquals(D)},t.prototype.isPassing=function(){return this.statusEquals(j)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),w="UNTESTED",D="SKIPPED",x="FAILED",X="WARNING",j="PASSING",H="PENDING",K="CANCELED",M="OMITTED";function q(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function B(t){function n(t,n,u){return e.references.push(),r(t,d(n,u)),function(){return[e.references[t],function(n){return r(t,d(n,e.references[t]))}]}}function r(n,r){var i=e.references[n];e.references[n]=r,l(n=u[n][1])&&n(r,i),l(t)&&t()}var e={references:[]},u=[];return{registerStateKey:function(t,r){var e=u.length;return u.push([t,r]),n(e,t)},reset:function(){var t=e.references;e.references=[],u.forEach((function(r,e){return n(e,r[0],t[e])}))}}}function V(t,n){var r=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(r),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function Y(t){return null==t}function J(t){setTimeout((function(){throw Error(t)}),0)}function z(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,q(l(n));var r=S(t,Z());return t=T.run({isolate:r},(function(){return r.keys.prev=function(){var t=O().testObjects()[0].prev;return[].concat(g(t,Z())).reduce((function(t,n){return n instanceof W&&!Y(n.key)?(t[n.key]=n,t):t}),{})}(),k((function(t){var n=r.path;return g(t,n)[v(n)]=[],t})),n()})),Q().cursor.next(),t}function Q(){return T.useX().isolate}function Z(){var t=Q();return t.path.concat(t.cursor.current())}var $,tt=$||($={});tt.WARNINGS="warnings",tt.ERRORS="errors";var nt,rt=nt||(nt={});function et(t){return t===$.ERRORS?nt.ERROR_COUNT:nt.WARN_COUNT}function ut(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))}rt.ERROR_COUNT="errorCount",rt.WARN_COUNT="warnCount";var it=u(ut);function ot(t,n){return!(!n||t.fieldName!==n)}var st=u((function(t,n){return t.groupName===n}));function at(t,n){return U().some((function(r){return ct(r,t,n)}))}function ct(t,n,r){return(r=!t.hasFailures()||r&&!ot(t,r))||(t=t.warns(),r=n===$.WARNINGS!=!!t),!r}function ft(t){return!!lt(t)||!at($.ERRORS,t)&&(!ut(U())&&!function(t){return it(F().filter((function(n){return dt(n,t)})))}(t)&&function(t){return U().every((function(n){return!(!t||ot(n,t))||pt(n,t)}))}(t))}function lt(t){return!!t&&!0===(null===(n=C(t))||void 0===n?void 0:n[1]);var n}function dt(t,n){return!(n&&!ot(t,n))&&!0!==I(t.fieldName)}function pt(t,n){return!(!n||ot(t,n))||(!0===I(t.fieldName)||t.isTested()||t.isOmitted())}function vt(){var t=T.useX().summary;return q(t),t}function ht(){var t=U(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var r=t.tests;r[n.fieldName]=Et(r,n),r[n.fieldName].valid=!1!==r[n.fieldName].valid&&ft(n.fieldName);var e=t.groups,u=n.groupName;return u&&(e[u]=e[u]||{},e[u][n.fieldName]=Et(e[u],n),r=e[u][n.fieldName],!1===e[u][n.fieldName].valid?n=!1:n=!!lt(n=n.fieldName)||!function(t,n,r){return U().some((function(e){return!st(e,n)&&ct(e,t,r)}))}($.ERRORS,u,n)&&!function(t,n){return it(F().filter((function(r){return!st(r,t)&&dt(r,n)})))}(u,n)&&function(t,n){return U().every((function(r){return!!st(r,t)||pt(r,n)}))}(u,n),r.valid=n),t}),n),n.valid=ft(),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 Et(t,n){function r(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var e=n.fieldName,u=n.message;t[e]=t[e]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?r($.ERRORS):n.isWarning()&&r($.WARNINGS)),o}function gt(t,n,r){var e;return(null===(e=null==t?void 0:t[r])||void 0===e?void 0:e[n])||[]}function Nt(t,n){var r,e={},u=et(n);for(r in t)a(t[r][u],0)&&(e[r]=t[r][n]||[]);return e}function mt(t){return Rt($.ERRORS,t)}function yt(t){return Rt($.WARNINGS,t)}function Rt(t,n){var r=vt().tests;return n?gt(r,t,n):Nt(r,t)}function bt(t,n){return Tt(t,$.ERRORS,n)}function St(t,n){return Tt(t,$.WARNINGS,n)}function Tt(t,n,r){return t=vt().groups[t],r?gt(t,n,r):Nt(t,n)}function Ot(t){return At(nt.ERROR_COUNT,t)}function Ct(t){return At(nt.WARN_COUNT,t)}function At(t,n){var r,e=vt();return a(n?null===(r=e.tests[n])||void 0===r?void 0:r[t]:e[t],0)}function It(t,n){return kt($.ERRORS,t,n)}function _t(t,n){return kt($.WARNINGS,t,n)}function kt(t,n,r){var e,u,i=vt();if(t=et(t),!(n=i.groups[n]))return!1;if(r)return a(null===(e=n[r])||void 0===e?void 0:e[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 Ft(t){var n=vt();return t?!!Ut(n.tests,t):n.valid}function Lt(t,n){if(!(t=vt().groups[t]))return!1;if(n)return Ut(t,n);for(var r in t)if(!Ut(t,r))return!1;return!0}function Ut(t,n){var r;return!(null===(r=t[n])||void 0===r||!r.valid)}var Gt=c(1);function Pt(){var t=U(),n={stateRef:O()};return Gt([t],T.bind(n,(function(){var t=ht(),n=O().suiteName()[0],r={summary:t};return i(t,{getErrors:T.bind(r,mt),getErrorsByGroup:T.bind(r,bt),getWarnings:T.bind(r,yt),getWarningsByGroup:T.bind(r,St),hasErrors:T.bind(r,Ot),hasErrorsByGroup:T.bind(r,It),hasWarnings:T.bind(r,Ct),hasWarningsByGroup:T.bind(r,_t),isValid:T.bind(r,Ft),isValidByGroup:T.bind(r,Lt),suiteName:n})})))}function Wt(t){var n=F();return!ut(n)&&(t?n.some((function(n){return ot(n,t)})):it(n))}var wt=c(20);function Dt(){var t=U(),n={stateRef:O()};return wt([t],T.bind(n,(function(){return i({},Pt(),{done:T.bind(n,jt)})})))}function xt(t,n,r){return!(l(t)&&(!n||r.tests[n]&&!ut(r.tests[n].testCount)))}function Xt(t){return!(Wt()&&(!t||Wt(t)))}function jt(){function t(){return e(Pt())}for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var e=(n=n.reverse())[0];return n=n[1],r=Dt(),xt(e,n,r)?r:Xt(n)?(t(),r):(Ht(t,n),r)}function Ht(t,n){(0,O().testCallbacks()[1])((function(r){return n?r.fieldCallbacks[n]=(r.fieldCallbacks[n]||[]).concat(t):r.doneCallbacks.push(t),r}))}function Kt(t){return t.forEach((function(t){return t()}))}function Mt(){var t=function(){var t={};return{emit:function(n,r){(t[n]||[]).forEach((function(t){t(r)}))},on:function(n,r){return t[n]=(t[n]||[]).concat(r),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==r}))}}}}}();return t.on(Bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var r=O().testCallbacks()[0].fieldCallbacks;n&&!Wt(n)&&Array.isArray(r[n])&&Kt(r[n]),Wt()||t.emit(Bt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Bt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),A(t.fieldName,(function(t){return[t[0],!0]})))}if(!ut(O().optionalFields()[0])){var n={};k((function(r){return h(r,(function(r){if(Object.prototype.hasOwnProperty.call(n,r.fieldName))t(r);else{var e=I(r.fieldName);l(e)&&(n[r.fieldName]=e(),t(r))}return r}))}))}}()})),t.on(Bt.ALL_RUNNING_TESTS_FINISHED,(function(){Kt(O().testCallbacks()[0].doneCallbacks)})),t.on(Bt.REMOVE_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&(n.cancel(),function(t){k((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Bt.RESET_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&n.reset()}))})),t}function qt(){var t=T.useX();return q(t.bus),t.bus}var Bt,Vt=Bt||(Bt={});function Yt(t){return zt(0,"tests",t)}function Jt(t){return zt(1,"tests",t)}function zt(t,n,r){var u=T.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){e(r)&&(u.exclusion[n][r]=0===t)}))}function Qt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Zt(){var t,n=T.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t,n,r){if(r||2===arguments.length)for(var e,u=0,i=n.length;u<i;u++)!e&&u in n||(e||(e=Array.prototype.slice.call(n,0,u)),e[u]=n[u]);return t.concat(e||Array.prototype.slice.call(n))}function nn(t){var n=t.asyncTest,r=t.message;if(n&&l(n.then)){var u=qt().emit,i=O(),o=T.bind({stateRef:i},(function(){_(),u(Bt.TEST_COMPLETED,t)}));i=T.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function rn(t){var n=O().testObjects()[0].prev;if(ut(n))return en(t),t;var r=Z();if(n=g(n,r)[v(r)],!Y(t.key)){n=t.key,(r=Q().keys.prev[n])&&(t=r),r=t;var e=Q().keys.current;return Y(e[n])?e[n]=r:J('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!it(r=n)||r.fieldName===t.fieldName&&r.groupName===t.groupName||(Q().type===N.EACH||J("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=Q().cursor.current();k((function(n){return n.splice(t),n}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=Z();k((function(r){return g(r,n)[v(n)]=t,r}))}function un(t){var n=Q().cursor,r=y.EAGER;if(r=!(T.useX().mode[0]!==r||!at($.ERRORS,t.fieldName)))return t.skip(),rn(t),n.next(),t;if(r=rn(t),T.useX().omitted)return r.omit(),n.next(),r;if(function(t){var n=t.fieldName;if(t=t.groupName,T.useX().skipped)return!0;var r=T.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=T.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Zt())return!0;if(!0===e.groups[t])return!(i||!Qt(u)&&!1!==u[n])}return!!(t=!!Zt()&&!t)||!i&&!!Qt(u)&&!d(r[n])}(t))return r.skip(!!T.useX().skipped),n.next(),r;if(t!==r&&r.fieldName===t.fieldName&&r.groupName===t.groupName&&r.isPending()&&r.cancel(),en(t),t.isUntested()){r=qt();var e=function(t){return T.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),nn(t)):r.emit(Bt.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(r=t.asyncTest)&&l(r.then)&&(t.setPending(),nn(t));return n.next(),t}function on(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var u=l(n[1])?n:tn([void 0],n,!0);n=u[0],r=u[1],u=u[2],q(e(t),an("fieldName","string")),q(l(r),an("Test callback","function"));var i=T.useX();return un(n=new W(t,r,{message:n,groupName:i.groupName,key:u}))}Vt.TEST_COMPLETED="test_completed",Vt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Vt.REMOVE_FIELD="remove_field",Vt.RESET_FIELD="reset_field",Vt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Yt.group=function(t){return zt(0,"groups",t)},Jt.group=function(t){return zt(1,"groups",t)};var sn=i(on,{memo:function(t){var n=c(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Q().cursor.current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[O().suiteId()[0],r,u].concat(i),null===(e=n.get(u))?n(u,(function(){return t(r,s,o)})):e[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(r,s,o)}))):un(e[1])}}(on)});function an(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var cn="4.4.1";function fn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],q(l(e),"vest.create: Expected callback to be a function.");var u=Mt(),o=B();return t={stateRef:V(o,{suiteId:r(),suiteName:t}),bus:u},i(T.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),z({type:N.SUITE},(function(){e.apply(void 0,t)})),u.emit(Bt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:T.bind(t,Pt),remove:T.bind(t,(function(t){u.emit(Bt.REMOVE_FIELD,t)})),reset:o.reset,resetField:T.bind(t,(function(t){u.emit(Bt.RESET_FIELD,t)}))})}function ln(t,n){q(l(n),"each callback must be a function"),z({type:N.EACH},(function(){t.forEach((function(t,r){n(t,r)}))}))}function dn(){var t=y.EAGER;T.useX().mode[0]=t}function pn(t,n){q(e(t),$t("name must be a string")),q(l(n),$t("callback must be a function")),z({type:N.GROUP},(function(){T.run({groupName:t},n)}))}function vn(t){var n=T.useX(),r=n.inclusion;return n=n.exclusion,q(e(t)),r[t]=p(n.tests[t],!0),{when:function(n){var r=T.useX(),u=r.exclusion;r.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):e(n)?!!u.tests[n]:d(n,d(Pt))}}}}function hn(t,n){z({type:N.OMIT_WHEN},(function(){T.run({omitted:!!T.useX().omitted||d(t,d(Pt))},(function(){return n()}))}))}function En(t){if(Array.isArray(t)||e(t))[].concat(t).forEach((function(t){A(t,[!0,!1])}));else for(var n in t)A(n,[t[n],!1])}function gn(t,n){z({type:N.SKIP_WHEN},(function(){T.run({skipped:!!T.useX().skipped||d(t,d(Pt))},(function(){return n()}))}))}function Nn(){var t=T.useX("warn hook called outside of a running suite.");q(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{cn as VERSION,T as context,fn as create,ln as each,dn as eager,pn as group,vn as include,hn as omitWhen,Yt as only,En as optional,Jt as skip,gn as skipWhen,sn as test,Nn as warn};
|
|
@@ -813,80 +813,6 @@
|
|
|
813
813
|
}
|
|
814
814
|
}
|
|
815
815
|
|
|
816
|
-
function deferThrow(message) {
|
|
817
|
-
setTimeout(function () {
|
|
818
|
-
throw new Error(message);
|
|
819
|
-
}, 0);
|
|
820
|
-
}
|
|
821
|
-
|
|
822
|
-
function usePrevKeys() {
|
|
823
|
-
var prev = useTestObjects()[0].prev;
|
|
824
|
-
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
825
|
-
if (!(testObject instanceof VestTest)) {
|
|
826
|
-
return prevKeys;
|
|
827
|
-
}
|
|
828
|
-
if (isNullish(testObject.key)) {
|
|
829
|
-
return prevKeys;
|
|
830
|
-
}
|
|
831
|
-
prevKeys[testObject.key] = testObject;
|
|
832
|
-
return prevKeys;
|
|
833
|
-
}, {});
|
|
834
|
-
}
|
|
835
|
-
function usePrevTestByKey(key) {
|
|
836
|
-
var prev = context.useX().isolate.keys.prev;
|
|
837
|
-
return prev[key];
|
|
838
|
-
}
|
|
839
|
-
function useRetainTestKey(key, testObject) {
|
|
840
|
-
var context$1 = context.useX();
|
|
841
|
-
var current = context$1.isolate.keys.current;
|
|
842
|
-
if (isNullish(current[key])) {
|
|
843
|
-
current[key] = testObject;
|
|
844
|
-
}
|
|
845
|
-
else {
|
|
846
|
-
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."));
|
|
847
|
-
}
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
function isolate(_a, callback) {
|
|
851
|
-
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
852
|
-
invariant(isFunction(callback));
|
|
853
|
-
// Generate a new Isolate layer, with its own cursor
|
|
854
|
-
var isolate = generateIsolate(type, useCurrentPath());
|
|
855
|
-
var output = context.run({ isolate: isolate }, function () {
|
|
856
|
-
isolate.keys.prev = usePrevKeys();
|
|
857
|
-
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
858
|
-
var res = callback();
|
|
859
|
-
return res;
|
|
860
|
-
});
|
|
861
|
-
// Move the parent cursor forward once we're done
|
|
862
|
-
useCursor().next();
|
|
863
|
-
return output;
|
|
864
|
-
}
|
|
865
|
-
/**
|
|
866
|
-
* @returns {Isolate} The current isolate layer
|
|
867
|
-
*/
|
|
868
|
-
function useIsolate() {
|
|
869
|
-
return context.useX().isolate;
|
|
870
|
-
}
|
|
871
|
-
/**
|
|
872
|
-
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
873
|
-
*/
|
|
874
|
-
function shouldAllowReorder() {
|
|
875
|
-
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
876
|
-
}
|
|
877
|
-
/**
|
|
878
|
-
* @returns {number[]} The current cursor path of the isolate tree
|
|
879
|
-
*/
|
|
880
|
-
function useCurrentPath() {
|
|
881
|
-
var isolate = useIsolate();
|
|
882
|
-
return isolate.path.concat(isolate.cursor.current());
|
|
883
|
-
}
|
|
884
|
-
/**
|
|
885
|
-
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
886
|
-
*/
|
|
887
|
-
function useCursor() {
|
|
888
|
-
return useIsolate().cursor;
|
|
889
|
-
}
|
|
890
816
|
function generateIsolate(type, path) {
|
|
891
817
|
if (path === void 0) { path = []; }
|
|
892
818
|
return {
|
|
@@ -1212,6 +1138,80 @@
|
|
|
1212
1138
|
};
|
|
1213
1139
|
}
|
|
1214
1140
|
|
|
1141
|
+
function deferThrow(message) {
|
|
1142
|
+
setTimeout(function () {
|
|
1143
|
+
throw new Error(message);
|
|
1144
|
+
}, 0);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
function usePrevKeys() {
|
|
1148
|
+
var prev = useTestObjects()[0].prev;
|
|
1149
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
1150
|
+
if (!(testObject instanceof VestTest)) {
|
|
1151
|
+
return prevKeys;
|
|
1152
|
+
}
|
|
1153
|
+
if (isNullish(testObject.key)) {
|
|
1154
|
+
return prevKeys;
|
|
1155
|
+
}
|
|
1156
|
+
prevKeys[testObject.key] = testObject;
|
|
1157
|
+
return prevKeys;
|
|
1158
|
+
}, {});
|
|
1159
|
+
}
|
|
1160
|
+
function usePrevTestByKey(key) {
|
|
1161
|
+
var prev = useIsolate().keys.prev;
|
|
1162
|
+
return prev[key];
|
|
1163
|
+
}
|
|
1164
|
+
function useRetainTestKey(key, testObject) {
|
|
1165
|
+
var current = useIsolate().keys.current;
|
|
1166
|
+
if (isNullish(current[key])) {
|
|
1167
|
+
current[key] = testObject;
|
|
1168
|
+
}
|
|
1169
|
+
else {
|
|
1170
|
+
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."));
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
function isolate(_a, callback) {
|
|
1175
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
1176
|
+
invariant(isFunction(callback));
|
|
1177
|
+
// Generate a new Isolate layer, with its own cursor
|
|
1178
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
1179
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
1180
|
+
isolate.keys.prev = usePrevKeys();
|
|
1181
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
1182
|
+
var res = callback();
|
|
1183
|
+
return res;
|
|
1184
|
+
});
|
|
1185
|
+
// Move the parent cursor forward once we're done
|
|
1186
|
+
useCursor().next();
|
|
1187
|
+
return output;
|
|
1188
|
+
}
|
|
1189
|
+
/**
|
|
1190
|
+
* @returns {Isolate} The current isolate layer
|
|
1191
|
+
*/
|
|
1192
|
+
function useIsolate() {
|
|
1193
|
+
return context.useX().isolate;
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
1197
|
+
*/
|
|
1198
|
+
function shouldAllowReorder() {
|
|
1199
|
+
return useIsolate().type === IsolateTypes.EACH;
|
|
1200
|
+
}
|
|
1201
|
+
/**
|
|
1202
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
1203
|
+
*/
|
|
1204
|
+
function useCurrentPath() {
|
|
1205
|
+
var isolate = useIsolate();
|
|
1206
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
1207
|
+
}
|
|
1208
|
+
/**
|
|
1209
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
1210
|
+
*/
|
|
1211
|
+
function useCursor() {
|
|
1212
|
+
return useIsolate().cursor;
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
1215
|
var Severity;
|
|
1216
1216
|
(function (Severity) {
|
|
1217
1217
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -2317,20 +2317,13 @@
|
|
|
2317
2317
|
return nextTest;
|
|
2318
2318
|
}
|
|
2319
2319
|
function removeAllNextTestsInIsolate() {
|
|
2320
|
-
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
2321
|
-
var prevTests = testObjects.prev;
|
|
2322
|
-
var current = getCurrent(prevTests, useCurrentPath());
|
|
2323
2320
|
var cursorAt = useCursor().current();
|
|
2324
|
-
current.splice(cursorAt);
|
|
2325
2321
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
2326
2322
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
2327
2323
|
// to prevent future headaches if we ever do need to rely on prev-state immutability.
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
return
|
|
2331
|
-
prev: prevTests,
|
|
2332
|
-
current: current
|
|
2333
|
-
});
|
|
2324
|
+
useSetTests(function (current) {
|
|
2325
|
+
current.splice(cursorAt);
|
|
2326
|
+
return current;
|
|
2334
2327
|
});
|
|
2335
2328
|
}
|
|
2336
2329
|
function useSetTestAtCursor(testObject) {
|
|
@@ -2474,7 +2467,7 @@
|
|
|
2474
2467
|
ctx.currentTest.warn();
|
|
2475
2468
|
}
|
|
2476
2469
|
|
|
2477
|
-
var VERSION = "4.4.
|
|
2470
|
+
var VERSION = "4.4.1";
|
|
2478
2471
|
|
|
2479
2472
|
exports.VERSION = VERSION;
|
|
2480
2473
|
exports.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function N(n,t){return l(n,t)||h(n,t)}function g(n,t,e){return d(n,t)&&N(n,e)}function E(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return o(n)&&o(t)&&n.startsWith(t)}function w(n){for(var e in wt){var r=wt[e];t(r)&&n(e,r)}}function x(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=x(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?x(t):t)}function L(n){function t(t,u){var i,o,s=e();return t=ct({},s||{},null!==(i=x(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function P(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function G(){try{return t(Proxy)}catch(n){return!1}}function X(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?X(n):X(n.pass,x.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([xt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!G())return w((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=wt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=wt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=xt.run({value:n},(function(){return e(n)}));i.pass||r(X(!!i.pass,null!==(u=x(t,n,i.message))&&void 0!==u?u:i.message))})),X(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return G()?s=new Proxy(s,{get:function(t,e){return wt[e]?n(e):t[e]}}):(w((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){var n=0;return{current:function(){return n},next:function(){n++}}}function z(n){setTimeout((function(){throw Error(n)}),0)}function Q(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r=$(n,Z());return n=Pt.run({isolate:r},(function(){return r.keys.prev=function(){var n=nn().testObjects()[0].prev;return[].concat(J(n,Z())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),on((function(n){var t=r.path;return J(n,t)[H(t)]=[],n})),e()})),Pt.useX().isolate.cursor.next(),n}function Z(){var n=Pt.useX().isolate;return n.path.concat(n.cursor.current())}function $(n,t){return void 0===t&&(t=[]),{cursor:Y(),keys:{current:{},prev:{}},path:t,type:n}}function nn(){return Pt.useX().stateRef}function tn(n){return nn().optionalFields()[0][n]}function en(n,t){(0,nn().optionalFields()[1])((function(e){var r;return ct(e,((r={})[n]=x(t,e[n]),r))}))}function rn(n){var t;return null===(t=tn(n))||void 0===t?void 0:t[0]}function un(){on((function(n){return n}))}function on(n){(0,nn().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function sn(){return an().filter((function(n){return n.isPending()}))}function an(){var n=nn().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function cn(n){function e(n,t,e){return u.references.push(),r(n,x(t,e)),function(){return[u.references[n],function(t){return r(n,x(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function fn(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),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===Gt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return an().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Gt.WARNINGS!=!!n),!e}function hn(n){return!!Nn(n)||!pn(Gt.ERRORS,n)&&(!R(an())&&!function(n){return St(sn().filter((function(t){return gn(t,n)})))}(n)&&function(n){return an().every((function(t){return!(!n||dn(t,n))||En(t,n)}))}(n))}function Nn(n){return!!n&&!0===(null===(t=tn(n))||void 0===t?void 0:t[1]);var t}function gn(n,t){return!(t&&!dn(n,t))&&!0!==rn(n.fieldName)}function En(n,t){return!(!t||dn(n,t))||(!0===rn(n.fieldName)||n.isTested()||n.isOmitted())}function mn(){var n=Pt.useX().summary;return F(n),n}function yn(){var n=an(),t=ct({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!Nn(t=t.fieldName)||!function(n,t,e){return an().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Gt.ERRORS,u,t)&&!function(n,t){return St(sn().filter((function(e){return!zt(e,n)&&gn(e,t)})))}(u,t)&&function(n,t){return an().every((function(e){return!!zt(e,n)||En(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=hn(),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 bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||ct({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Gt.ERRORS):t.isWarning()&&e(Gt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Gt.ERRORS,n)}function Tn(n){return Cn(Gt.WARNINGS,n)}function Cn(n,t){var e=mn().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return kn(n,Gt.ERRORS,t)}function _n(n,t){return kn(n,Gt.WARNINGS,t)}function kn(n,t,e){return n=mn().groups[n],e?Rn(n,t,e):On(n,t)}function An(n){return xn(Xt.ERROR_COUNT,n)}function wn(n){return xn(Xt.WARN_COUNT,n)}function xn(n,t){var e,r=mn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Ln(Gt.ERRORS,n,t)}function Fn(n,t){return Ln(Gt.WARNINGS,n,t)}function Ln(n,t,e){var r,u,i=mn();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Pn(n){var t=mn();return n?!!Gn(t.tests,n):t.valid}function Un(n,t){if(!(n=mn().groups[n]))return!1;if(t)return Gn(n,t);for(var e in n)if(!Gn(n,e))return!1;return!0}function Gn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Xn(){var n=an(),t={stateRef:nn()};return Qt([n],Pt.bind(t,(function(){var n=yn(),t=nn().suiteName()[0],e={summary:n};return ct(n,{getErrors:Pt.bind(e,Sn),getErrorsByGroup:Pt.bind(e,In),getWarnings:Pt.bind(e,Tn),getWarningsByGroup:Pt.bind(e,_n),hasErrors:Pt.bind(e,An),hasErrorsByGroup:Pt.bind(e,Wn),hasWarnings:Pt.bind(e,wn),hasWarningsByGroup:Pt.bind(e,Fn),isValid:Pt.bind(e,Pn),isValidByGroup:Pt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=sn();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=an(),t={stateRef:nn()};return Zt([n],Pt.bind(t,(function(){return ct({},Xn(),{done:Pt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,nn().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Hn(n){return n.forEach((function(n){return n()}))}function Mn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=nn().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),en(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(nn().optionalFields()[0])){var e={};on((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=rn(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(nn().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){an().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){on((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){an().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=Pt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=Pt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=Pt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=nn(),s=Pt.bind({stateRef:i},(function(){un(),u(Yt.TEST_COMPLETED,n)}));i=Pt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function tt(n){var t=nn().testObjects()[0].prev;if(R(t))return et(n),n;var e=Z();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=Pt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Pt.useX().isolate.keys.current;return i(r[t])?r[t]=e:z('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Pt.useX().isolate.type===ot.EACH||z("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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 n=nn().testObjects(),t=n[1],e=n[0].prev;n=J(e,Z());var r=Pt.useX().isolate.cursor.current();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=Z();on((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=Pt.useX().isolate.cursor,r=at.EAGER;if(r=!(Pt.useX().mode[0]!==r||!pn(Gt.ERRORS,n.fieldName)))return n.skip(),tt(n),e.next(),n;if(r=tt(n),Pt.useX().omitted)return r.omit(),e.next(),r;if(function(n){var t=n.fieldName;if(n=n.groupName,Pt.useX().skipped)return!0;var e=Pt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=Pt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!x(e[t])}(n))return r.skip(!!Pt.useX().skipped),e.next(),r;if(n!==r&&r.fieldName===n.fieldName&&r.groupName===n.groupName&&r.isPending()&&r.cancel(),et(n),n.isUntested()){r=Vn();var u=function(n){return Pt.run({currentTest:n},(function(){return n.run()}))}(n);try{u&&t(u.then)?(n.asyncTest=u,n.setPending(),nt(n)):r.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(r=n.asyncTest)&&t(r.then)&&(n.setPending(),nt(n));return e.next(),n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=Pt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,at,ct=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(a),ht=e(c),Nt=e(l),gt=e(p),Et=e(v),mt=e(g),yt=e(E),bt=e(m),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),kt=e(I),At=e(k),wt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(A),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:g,isBlank:E,isBoolean:m,isEmpty:R,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:gt,isNotBetween:mt,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:kt,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:N,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:N,matches:k,notEquals:vt,notInside:Et,notMatches:At,numberEquals:l,numberNotEquals:Nt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:A},xt=L((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?ct(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:ct(e,{parent:P})})),Wt=function(){function n(){if(!G())return w((function(n){t[n]=K(n)})),ct(q,t)}var t={context:function(){return xt.useX()},extend:function(t){ct(wt,t),n()}};return n(),new Proxy(ct(q,t),{get:function(n,t){return t in n?n[t]:wt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!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"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(at||(at={}));var Lt,Pt=L((function(n,t){return t?null:ct({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:$(ot.DEFAULT),mode:[at.ALL]},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Lt||(Lt={}));var Gt,Xt,Dt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Ft(),this.severity=Lt.Error,this.status=qt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Lt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Lt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),un()},n.prototype.reset=function(){this.status=qt,un()},n.prototype.omit=function(){this.setStatus(Jt)},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(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Gt||(Gt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Xt||(Xt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=qn(),jn(e,n,t))return t;var r=function(){return e(Xn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!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"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=ct(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Pt.useX().isolate.cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[nn().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0",n.context=Pt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=cn();return n={stateRef:fn(i,{suiteId:Ft(),suiteName:n}),bus:u},ct(Pt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),Q({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:Pt.bind(n,Xn),remove:Pt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Pt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),Q({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=at.EAGER;Pt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),Q({type:ot.GROUP},(function(){Pt.run({groupName:n},e)}))},n.include=function(n){var t=Pt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=Pt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:x(t,x(Xn))}}}},n.omitWhen=function(n,t){Q({type:ot.OMIT_WHEN},(function(){Pt.run({omitted:!!Pt.useX().omitted||x(n,x(Xn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){en(n,[!0,!1])}));else for(var t in n)en(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){Q({type:ot.SKIP_WHEN},(function(){Pt.run({skipped:!!Pt.useX().skipped||x(n,x(Xn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=Pt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function c(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function N(n,t){return l(n,t)||h(n,t)}function g(n,t,e){return d(n,t)&&N(n,e)}function E(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function S(n,t){return n in t}function O(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return o(n)&&o(t)&&n.startsWith(t)}function w(n){for(var e in xt){var r=xt[e];t(r)&&n(e,r)}}function x(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=x(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?x(t):t)}function L(n){function t(t,u){var i,o,s=e();return t=ft({},s||{},null!==(i=x(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function P(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function G(){try{return t(Proxy)}catch(n){return!1}}function D(n,t){return n={pass:n},t&&(n.message=t),n}function X(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?D(n):D(n.pass,x.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=X.apply(void 0,U([Wt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!G())return w((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=xt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=xt[r];e.push((function(n){return X.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=Wt.run({value:n},(function(){return e(n)}));i.pass||r(D(!!i.pass,null!==(u=x(t,n,i.message))&&void 0!==u?u:i.message))})),D(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return G()?s=new Proxy(s,{get:function(t,e){return xt[e]?n(e):t[e]}}):(w((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),lt(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){var n=0;return{current:function(){return n},next:function(){n++}}}function z(n,t){return void 0===t&&(t=[]),{cursor:Y(),keys:{current:{},prev:{}},path:t,type:n}}function Q(){return Ut.useX().stateRef}function Z(n){return Q().optionalFields()[0][n]}function $(n,t){(0,Q().optionalFields()[1])((function(e){var r;return ft(e,((r={})[n]=x(t,e[n]),r))}))}function nn(n){var t;return null===(t=Z(n))||void 0===t?void 0:t[0]}function tn(){en((function(n){return n}))}function en(n){(0,Q().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function rn(){return un().filter((function(n){return n.isPending()}))}function un(){var n=Q().testObjects()[0].current;return Gt([n],(function(){return V(n)}))}function on(n){function e(n,t,e){return u.references.push(),r(n,x(t,e)),function(){return[u.references[n],function(t){return r(n,x(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function sn(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function cn(n){setTimeout((function(){throw Error(n)}),0)}function an(n,e){n=void 0===(n=n.type)?st.DEFAULT:n,F(t(e));var r=z(n,ln());return n=Ut.run({isolate:r},(function(){return r.keys.prev=function(){var n=Q().testObjects()[0].prev;return[].concat(J(n,ln())).reduce((function(n,t){return t instanceof qt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),en((function(n){var t=r.path;return J(n,t)[H(t)]=[],n})),e()})),fn().cursor.next(),n}function fn(){return Ut.useX().isolate}function ln(){var n=fn();return n.path.concat(n.cursor.current())}function dn(n){return n===Dt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function pn(n,t){return!(!t||n.fieldName!==t)}function vn(n,t){return un().some((function(e){return hn(e,n,t)}))}function hn(n,t,e){return(e=!n.hasFailures()||e&&!pn(n,e))||(n=n.warns(),e=t===Dt.WARNINGS!=!!n),!e}function Nn(n){return!!gn(n)||!vn(Dt.ERRORS,n)&&(!R(un())&&!function(n){return Tt(rn().filter((function(t){return En(t,n)})))}(n)&&function(n){return un().every((function(t){return!(!n||pn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Z(n))||void 0===t?void 0:t[1]);var t}function En(n,t){return!(t&&!pn(n,t))&&!0!==nn(n.fieldName)}function mn(n,t){return!(!t||pn(n,t))||(!0===nn(n.fieldName)||n.isTested()||n.isOmitted())}function yn(){var n=Ut.useX().summary;return F(n),n}function bn(){var n=un(),t=ft({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=Rn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&Nn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=Rn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!gn(t=t.fieldName)||!function(n,t,e){return un().some((function(r){return!Qt(r,t)&&hn(r,n,e)}))}(Dt.ERRORS,u,t)&&!function(n,t){return Tt(rn().filter((function(e){return!Qt(e,n)&&En(e,t)})))}(u,t)&&function(n,t){return un().every((function(e){return!!Qt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=Nn(),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 Rn(n,t){function e(n){var t=dn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||ft({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Dt.ERRORS):t.isWarning()&&e(Dt.WARNINGS)),i}function Sn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=dn(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Tn(n){return In(Dt.ERRORS,n)}function Cn(n){return In(Dt.WARNINGS,n)}function In(n,t){var e=yn().tests;return t?Sn(e,n,t):On(e,n)}function _n(n,t){return An(n,Dt.ERRORS,t)}function kn(n,t){return An(n,Dt.WARNINGS,t)}function An(n,t,e){return n=yn().groups[n],e?Sn(n,t,e):On(n,t)}function wn(n){return Wn(Xt.ERROR_COUNT,n)}function xn(n){return Wn(Xt.WARN_COUNT,n)}function Wn(n,t){var e,r=yn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Fn(n,t){return Pn(Dt.ERRORS,n,t)}function Ln(n,t){return Pn(Dt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=yn();if(n=dn(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Un(n){var t=yn();return n?!!Dn(t.tests,n):t.valid}function Gn(n,t){if(!(n=yn().groups[n]))return!1;if(t)return Dn(n,t);for(var e in n)if(!Dn(n,e))return!1;return!0}function Dn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Xn(){var n=un(),t={stateRef:Q()};return Zt([n],Ut.bind(t,(function(){var n=bn(),t=Q().suiteName()[0],e={summary:n};return ft(n,{getErrors:Ut.bind(e,Tn),getErrorsByGroup:Ut.bind(e,_n),getWarnings:Ut.bind(e,Cn),getWarningsByGroup:Ut.bind(e,kn),hasErrors:Ut.bind(e,wn),hasErrorsByGroup:Ut.bind(e,Fn),hasWarnings:Ut.bind(e,xn),hasWarningsByGroup:Ut.bind(e,Ln),isValid:Ut.bind(e,Un),isValidByGroup:Ut.bind(e,Gn),suiteName:t})})))}function qn(n){var t=rn();return!R(t)&&(n?t.some((function(t){return pn(t,n)})):Tt(t))}function jn(){var n=un(),t={stateRef:Q()};return $t([n],Ut.bind(t,(function(){return ft({},Xn(),{done:Ut.bind(t,ne)})})))}function Kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Bn(n){return!(qn()&&(!n||qn(n)))}function Hn(n,t){(0,Q().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Mn(n){return n.forEach((function(n){return n()}))}function Vn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(zt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Q().testCallbacks()[0].fieldCallbacks;t&&!qn(t)&&p(e[t])&&Mn(e[t]),qn()||n.emit(zt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(zt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),$(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(Q().optionalFields()[0])){var e={};en((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=nn(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(zt.ALL_RUNNING_TESTS_FINISHED,(function(){Mn(Q().testCallbacks()[0].doneCallbacks)})),n.on(zt.REMOVE_FIELD,(function(n){un().forEach((function(t){pn(t,n)&&(t.cancel(),function(n){en((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(zt.RESET_FIELD,(function(n){un().forEach((function(t){pn(t,n)&&t.reset()}))})),n}function Jn(){var n=Ut.useX();return F(n.bus),n.bus}function Yn(n){return Qn(0,"tests",n)}function zn(n){return Qn(1,"tests",n)}function Qn(n,t,e){var r=Ut.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Zn(n){for(var t in n)if(!0===n[t])return!0;return!1}function $n(){var n,t=Ut.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function nt(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function tt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Jn().emit,i=Q(),s=Ut.bind({stateRef:i},(function(){tn(),u(zt.TEST_COMPLETED,n)}));i=Ut.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function et(n){var t=Q().testObjects()[0].prev;if(R(t))return rt(n),n;var e=ln();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=fn().keys.prev[t])&&(n=e),e=n;var r=fn().keys.current;return i(r[t])?r[t]=e:cn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),rt(n),n}return!Tt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(fn().type===st.EACH||cn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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 n=fn().cursor.current();en((function(t){return t.splice(n),t}))}(),t=null),rt(n=W(t,n)),n}function rt(n){var t=ln();en((function(e){return J(e,t)[H(t)]=n,e}))}function ut(n){var e=fn().cursor,r=at.EAGER;if(r=!(Ut.useX().mode[0]!==r||!vn(Dt.ERRORS,n.fieldName)))return n.skip(),et(n),e.next(),n;if(r=et(n),Ut.useX().omitted)return r.omit(),e.next(),r;if(function(n){var t=n.fieldName;if(n=n.groupName,Ut.useX().skipped)return!0;var e=Ut.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=Ut.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:$n())return!0;if(!0===r.groups[n])return!(i||!Zn(u)&&!1!==u[t])}return!!(n=!!$n()&&!n)||!i&&!!Zn(u)&&!x(e[t])}(n))return r.skip(!!Ut.useX().skipped),e.next(),r;if(n!==r&&r.fieldName===n.fieldName&&r.groupName===n.groupName&&r.isPending()&&r.cancel(),rt(n),n.isUntested()){r=Jn();var u=function(n){return Ut.run({currentTest:n},(function(){return n.run()}))}(n);try{u&&t(u.then)?(n.asyncTest=u,n.setPending(),tt(n)):r.emit(zt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(r=n.asyncTest)&&t(r.then)&&(n.setPending(),tt(n));return e.next(),n}function it(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),ot("fieldName","string")),F(t(r),ot("Test callback","function"));var i=Ut.useX();return ut(e=new qt(n,r,{message:e,groupName:i.groupName,key:u}))}function ot(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var st,ct,at,ft=Object.assign,lt=e(r),dt=e(u),pt=e(i),vt=e(s),ht=e(c),Nt=e(a),gt=e(l),Et=e(p),mt=e(v),yt=e(g),bt=e(E),Rt=e(m),St=e(y),Ot=e(b),Tt=e(R),Ct=e(S),It=e(O),_t=e(o),kt=e(C),At=e(I),wt=e(k),xt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:vt,doesNotStartWith:e(A),endsWith:s,equals:c,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:g,isBlank:E,isBoolean:m,isEmpty:R,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:kt,isKeyOf:S,isNaN:O,isNegative:function(n){return h(n,0)},isNotArray:Et,isNotBetween:yt,isNotBlank:bt,isNotBoolean:Rt,isNotEmpty:Tt,isNotKeyOf:Ct,isNotNaN:It,isNotNull:lt,isNotNullish:pt,isNotNumber:St,isNotNumeric:Nt,isNotString:_t,isNotUndefined:dt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:N,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:N,matches:k,notEquals:ht,notInside:mt,notMatches:wt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:A},Wt=L((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?ft(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:ft(e,{parent:P})})),Ft=function(){function n(){if(!G())return w((function(n){t[n]=K(n)})),ft(q,t)}var t={context:function(){return Wt.useX()},extend:function(t){ft(xt,t),n()}};return n(),new Proxy(ft(q,t),{get:function(n,t){return t in n?n[t]:xt[t]?K(t):void 0}})}(),Lt=(ct=0,function(){return"".concat(ct++)});!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"}(st||(st={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(at||(at={}));var Pt,Ut=L((function(n,t){return t?null:ft({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:z(st.DEFAULT),mode:[at.ALL]},n)})),Gt=B();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Dt,Xt,qt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Lt(),this.severity=Pt.Error,this.status=jt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Yt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Vt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ht:Bt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Mt)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Kt)},n.prototype.cancel=function(){this.setStatus(Jt),tn()},n.prototype.reset=function(){this.status=jt,tn()},n.prototype.omit=function(){this.setStatus(Yt)},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(Vt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Yt)},n.prototype.isUntested=function(){return this.statusEquals(jt)},n.prototype.isFailing=function(){return this.statusEquals(Bt)},n.prototype.isCanceled=function(){return this.statusEquals(Jt)},n.prototype.isSkipped=function(){return this.statusEquals(Kt)},n.prototype.isPassing=function(){return this.statusEquals(Mt)},n.prototype.isWarning=function(){return this.statusEquals(Ht)},n.prototype.statusEquals=function(n){return this.status===n},n}(),jt="UNTESTED",Kt="SKIPPED",Bt="FAILED",Ht="WARNING",Mt="PASSING",Vt="PENDING",Jt="CANCELED",Yt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Dt||(Dt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Xt||(Xt={}));var zt,Qt=e((function(n,t){return n.groupName===t})),Zt=B(1),$t=B(20),ne=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=jn(),Kn(e,n,t))return t;var r=function(){return e(Xn())};return Bn(n)?(r(),t):(Hn(r,n),t)};!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"}(zt||(zt={})),Yn.group=function(n){return Qn(0,"groups",n)},zn.group=function(n){return Qn(1,"groups",n)};var te=ft(it,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=fn().cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Q().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):ut(r[1])}}(it)});n.VERSION="4.4.1",n.context=Ut,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Vn(),i=on();return n={stateRef:sn(i,{suiteId:Lt(),suiteName:n}),bus:u},ft(Ut.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:st.SUITE},(function(){r.apply(void 0,n)})),u.emit(zt.SUITE_CALLBACK_DONE_RUNNING),jn()})),{get:Ut.bind(n,Xn),remove:Ut.bind(n,(function(n){u.emit(zt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Ut.bind(n,(function(n){u.emit(zt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),an({type:st.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=at.EAGER;Ut.useX().mode[0]=n},n.enforce=Ft,n.group=function(n,e){F(o(n),nt("name must be a string")),F(t(e),nt("callback must be a function")),an({type:st.GROUP},(function(){Ut.run({groupName:n},e)}))},n.include=function(n){var t=Ut.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=Ut.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:x(t,x(Xn))}}}},n.omitWhen=function(n,t){an({type:st.OMIT_WHEN},(function(){Ut.run({omitted:!!Ut.useX().omitted||x(n,x(Xn))},(function(){return t()}))}))},n.only=Yn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){$(n,[!0,!1])}));else for(var t in n)$(t,[n[t],!1])},n.skip=zn,n.skipWhen=function(n,t){an({type:st.SKIP_WHEN},(function(){Ut.run({skipped:!!Ut.useX().skipped||x(n,x(Xn))},(function(){return t()}))}))},n.test=te,n.warn=function(){var n=Ut.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
package/testUtils/testObjects.ts
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import VestTest from 'VestTest';
|
|
2
|
-
import {
|
|
2
|
+
import { useSetTests } from 'stateHooks';
|
|
3
3
|
|
|
4
4
|
export function emptyTestObjects(): void {
|
|
5
|
-
|
|
6
|
-
setTestObjects(({ prev }) => ({ prev, current: [] }));
|
|
5
|
+
useSetTests(() => []);
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
export function setTestObjects(...args: VestTest[]): void {
|
|
10
|
-
|
|
11
|
-
setTestObjects(({ prev }) => ({ prev, current: [...args] }));
|
|
9
|
+
useSetTests(() => [...args]);
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
export function addTestObject(addedTests: VestTest[] | VestTest): void {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
setTestObjects(({ prev, current }) => ({
|
|
18
|
-
prev,
|
|
19
|
-
current: current.concat(addedTests),
|
|
20
|
-
}));
|
|
13
|
+
useSetTests(tests => tests.concat(addedTests));
|
|
21
14
|
}
|
package/types/vest.d.ts
CHANGED
|
@@ -348,6 +348,6 @@ declare const test: typeof testBase & {
|
|
|
348
348
|
* Sets a running test to warn only mode.
|
|
349
349
|
*/
|
|
350
350
|
declare function warn(): void;
|
|
351
|
-
declare const VERSION = "4.4.
|
|
351
|
+
declare const VERSION = "4.4.1";
|
|
352
352
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
353
353
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|