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.
@@ -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
- setTestObjects(function (_a) {
1809
- var current = _a.current;
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.0";
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
- setTestObjects(function (_a) {
1805
- var current = _a.current;
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.0";
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)&&lt(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
- setTestObjects(function (_a) {
2329
- var current = _a.current;
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.0";
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.4.0",
2
+ "version": "4.4.1",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
@@ -1,21 +1,14 @@
1
1
  import VestTest from 'VestTest';
2
- import { useTestObjects } from 'stateHooks';
2
+ import { useSetTests } from 'stateHooks';
3
3
 
4
4
  export function emptyTestObjects(): void {
5
- const [, setTestObjects] = useTestObjects();
6
- setTestObjects(({ prev }) => ({ prev, current: [] }));
5
+ useSetTests(() => []);
7
6
  }
8
7
 
9
8
  export function setTestObjects(...args: VestTest[]): void {
10
- const [, setTestObjects] = useTestObjects();
11
- setTestObjects(({ prev }) => ({ prev, current: [...args] }));
9
+ useSetTests(() => [...args]);
12
10
  }
13
11
 
14
12
  export function addTestObject(addedTests: VestTest[] | VestTest): void {
15
- const [, setTestObjects] = useTestObjects();
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.0";
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 };