vest 4.3.2 → 4.3.3

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.
@@ -39,6 +39,8 @@ function asArray(possibleArg) {
39
39
  return [].concat(possibleArg);
40
40
  }
41
41
 
42
+ var assign = Object.assign;
43
+
42
44
  function isNumeric(value) {
43
45
  var str = String(value);
44
46
  var num = Number(value);
@@ -178,8 +180,6 @@ function getCurrent(array, path) {
178
180
  return current;
179
181
  }
180
182
 
181
- var assign = Object.assign;
182
-
183
183
  function createCursor() {
184
184
  var storage = {
185
185
  cursor: []
@@ -266,22 +266,37 @@ function useSuiteName() {
266
266
  function useTestCallbacks() {
267
267
  return useStateRef().testCallbacks();
268
268
  }
269
+ // OPTIONAL FIELDS
270
+ function useOptionalField(fieldName) {
271
+ var optionalFields = useOptionalFields()[0];
272
+ return optionalFields[fieldName];
273
+ }
269
274
  function useOptionalFields() {
270
275
  return useStateRef().optionalFields();
271
276
  }
277
+ function useSetOptionalField(fieldName, setter) {
278
+ var _a = useOptionalFields(), setOptionalFields = _a[1];
279
+ setOptionalFields(function (optionalFields) {
280
+ var _a;
281
+ return assign(optionalFields, (_a = {},
282
+ _a[fieldName] = optionalFunctionValue(setter, optionalFields[fieldName]),
283
+ _a));
284
+ });
285
+ }
286
+ function useOptionalFieldApplied(fieldName) {
287
+ var _a;
288
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
289
+ }
290
+ function useOptionalFieldConfig(fieldName) {
291
+ var _a;
292
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
293
+ }
272
294
  function useTestObjects() {
273
295
  return useStateRef().testObjects();
274
296
  }
275
297
  // STATE ACTIONS
276
298
  function useRefreshTestObjects() {
277
- var _a = useTestObjects(), setTestObjects = _a[1];
278
- setTestObjects(function (_a) {
279
- var current = _a.current, prev = _a.prev;
280
- return ({
281
- prev: prev,
282
- current: asArray(current)
283
- });
284
- });
299
+ useSetTests(function (tests) { return tests; });
285
300
  }
286
301
  function useSetTests(handler) {
287
302
  var _a = useTestObjects(), testObjects = _a[1];
@@ -295,10 +310,7 @@ function useSetTests(handler) {
295
310
  }
296
311
  // Derived state
297
312
  function useAllIncomplete() {
298
- var current = useTestObjects()[0].current;
299
- return flatten(transform(current, function (testObject) {
300
- return testObject.isPending() ? testObject : null;
301
- }));
313
+ return useTestsFlat().filter(function (test) { return test.isPending(); });
302
314
  }
303
315
  var flatCache = createCache();
304
316
  function useTestsFlat() {
@@ -744,26 +756,23 @@ function fieldIsOmitted(fieldName) {
744
756
  if (!fieldName) {
745
757
  return false;
746
758
  }
747
- var flatTests = useTestsFlat();
748
- return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
759
+ return useOptionalFieldApplied(fieldName) === true;
749
760
  }
750
761
  function hasNonOptionalIncomplete(fieldName) {
751
- var optionalFields = useOptionalFields()[0];
752
762
  return isNotEmpty(useAllIncomplete().filter(function (testObject) {
753
763
  if (nonMatchingFieldName(testObject, fieldName)) {
754
764
  return false;
755
765
  }
756
- return optionalFields[testObject.fieldName] !== true;
766
+ return useOptionalFieldConfig(testObject.fieldName) !== true;
757
767
  }));
758
768
  }
759
769
  function noMissingTests(fieldName) {
760
770
  var testObjects = useTestsFlat();
761
- var optionalFields = useOptionalFields()[0];
762
771
  return testObjects.every(function (testObject) {
763
772
  if (nonMatchingFieldName(testObject, fieldName)) {
764
773
  return true;
765
774
  }
766
- return (optionalFields[testObject.fieldName] === true ||
775
+ return (useOptionalFieldConfig(testObject.fieldName) === true ||
767
776
  testObject.isTested() ||
768
777
  testObject.isOmitted());
769
778
  });
@@ -1074,7 +1083,7 @@ function createBus() {
1074
1083
  }
1075
1084
  }
1076
1085
 
1077
- function omitOptionalTests() {
1086
+ function omitOptionalFields() {
1078
1087
  var optionalFields = useOptionalFields()[0];
1079
1088
  if (isEmpty(optionalFields)) {
1080
1089
  return;
@@ -1095,10 +1104,11 @@ function omitOptionalTests() {
1095
1104
  function verifyAndOmit(testObject) {
1096
1105
  if (shouldOmit[testObject.fieldName]) {
1097
1106
  testObject.omit();
1107
+ useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
1098
1108
  }
1099
1109
  }
1100
1110
  function runOptionalConfig(testObject) {
1101
- var optionalConfig = optionalFields[testObject.fieldName];
1111
+ var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
1102
1112
  if (isFunction(optionalConfig)) {
1103
1113
  shouldOmit[testObject.fieldName] = optionalConfig();
1104
1114
  verifyAndOmit(testObject);
@@ -1158,7 +1168,7 @@ function initBus() {
1158
1168
  // Async operations may still be running.
1159
1169
  bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1160
1170
  // Remove tests that are optional and need to be omitted
1161
- omitOptionalTests();
1171
+ omitOptionalFields();
1162
1172
  });
1163
1173
  // Called when all the tests, including async, are done running
1164
1174
  bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
@@ -1551,22 +1561,21 @@ function isOmitted() {
1551
1561
  * });
1552
1562
  */
1553
1563
  function optional(optionals) {
1554
- var _a = useOptionalFields(), setOptionalFields = _a[1];
1555
- setOptionalFields(function (state) {
1556
- if (!isArray(optionals) && !isStringValue(optionals)) {
1557
- var optionalFunctions = optionals;
1558
- for (var field in optionalFunctions) {
1559
- var predicate = optionalFunctions[field];
1560
- state[field] = predicate;
1561
- }
1562
- }
1563
- else {
1564
- asArray(optionals).forEach(function (optionalField) {
1565
- state[optionalField] = true;
1566
- });
1564
+ // When the optional is given as a string or a list of strings
1565
+ // we just add them to the list of optional fields.
1566
+ if (isArray(optionals) || isStringValue(optionals)) {
1567
+ asArray(optionals).forEach(function (optionalField) {
1568
+ useSetOptionalField(optionalField, [true, false]);
1569
+ });
1570
+ }
1571
+ else {
1572
+ // if it's an object, we iterate over the keys and add them to the list
1573
+ var optionalFunctions = optionals;
1574
+ for (var field in optionalFunctions) {
1575
+ var predicate = optionalFunctions[field];
1576
+ useSetOptionalField(field, [predicate, false]);
1567
1577
  }
1568
- return state;
1569
- });
1578
+ }
1570
1579
  }
1571
1580
 
1572
1581
  /*! *****************************************************************************
@@ -1868,7 +1877,7 @@ function warn() {
1868
1877
  ctx.currentTest.warn();
1869
1878
  }
1870
1879
 
1871
- var VERSION = "4.3.2";
1880
+ var VERSION = "4.3.3";
1872
1881
 
1873
1882
  Object.defineProperty(exports, 'enforce', {
1874
1883
  enumerable: true,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function a(n,t){return function(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}(n.length,t)}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n){function t(n){return e.findIndex((function(t){var e=t[0];return a(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]),function(n,t){return f(n.length,t)}(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 p(n){return!!Array.isArray(n)}function d(n){return null===n}var v=i(d);function h(n){return"function"==typeof n}function g(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return h(n)?n.apply(void 0,t):n}function E(n,t){var e;return null!==(e=g(n))&&void 0!==e?e:t}function N(n){return(n=s(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),v(u)&&e.push(u))}return e}function y(n,t,e){return S(n,t)[N(t)]=e,n}function R(n){return s(n).reduce((function(n,t){return p(t)?n.concat(R(t)):s(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=E(n[r],[]),n=n[r]}return n}var C,b,T=Object.assign;function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return N(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,N(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(C||(C={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(b||(b={}));var I=e.createContext((function(n,t){return t?null:T({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:C.DEFAULT,keys:{current:{},prev:{}}},mode:[b.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(){return O().optionalFields()}function x(){return O().testObjects()}function F(){(0,x()[1])((function(n){return{prev:n.prev,current:s(n.current)}}))}function U(n){(0,x()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function W(){return R(m(x()[0].current,(function(n){return n.isPending()?n:null})))}var G,P=l();function D(){var n=x()[0].current;return P([n],(function(){return R(n)}))}function w(n){D().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(G||(G={}));var X,H,K=function(){function n(n,t,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=M,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),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!==z||(this.status=n)},n.prototype.warns=function(){return this.severity===G.Warning},n.prototype.setPending=function(){this.setStatus(Y)},n.prototype.fail=function(){this.setStatus(this.warns()?B:j)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(V)},n.prototype.warn=function(){this.severity=G.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(q)},n.prototype.cancel=function(){this.setStatus(J),F()},n.prototype.reset=function(){this.status=M,F()},n.prototype.omit=function(){this.setStatus(z)},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(Y)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(z)},n.prototype.isUntested=function(){return this.statusEquals(M)},n.prototype.isFailing=function(){return this.statusEquals(j)},n.prototype.isCanceled=function(){return this.statusEquals(J)},n.prototype.isSkipped=function(){return this.statusEquals(q)},n.prototype.isPassing=function(){return this.statusEquals(V)},n.prototype.isWarning=function(){return this.statusEquals(B)},n.prototype.statusEquals=function(n){return this.status===n},n}(),M="UNTESTED",q="SKIPPED",j="FAILED",B="WARNING",V="PASSING",Y="PENDING",J="CANCELED",z="OMITTED";function Q(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?g(t):t)}function Z(n){function t(n,t,u){return r.references.push(),e(n,g(t,u)),function(){return[r.references[n],function(t){return e(n,g(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,h(t=u[t][1])&&t(e,i),h(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function $(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 nn(n){return d(n)||o(n)}function tn(n){setTimeout((function(){throw Error(n)}),0)}function en(){return I.useX().testCursor.getCursor()}function rn(){return I.useX().testCursor.cursorAt()}function un(){return I.useX().testCursor.next()}function on(n,t){n=void 0===(n=n.type)?C.DEFAULT:n,Q(h(t));var e={current:{},prev:{}},r=en();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=s(S(x()[0].prev,en())).reduce((function(n,t){return t instanceof K&&!nn(t.key)?(n[t.key]=t,n):n}),{}),U((function(n){return y(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),un(),n}))}function sn(n){return n===X.ERRORS?H.ERROR_COUNT:H.WARN_COUNT}function cn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function an(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:cn(n,"length")?a(n,0):"object"==typeof n&&a(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(X||(X={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(H||(H={}));var fn=i(an);function ln(n,t){return!!t&&!pn(n,t)}function pn(n,t){return!(!t||n.fieldName!==t)}function dn(n){return function(n,t){return D().some((function(e){return function(n,t,e){return!(!n.hasFailures()||ln(n,e)||function(n,t){return function(n,t){return!!n!=!!t}(n===X.WARNINGS,t.warns())}(t,n))}(e,n,t)}))}(X.ERRORS,n)}function vn(n){return!!function(n){return!!n&&D().some((function(t){return t.fieldName===n&&t.isOmitted()}))}(n)||!dn(n)&&(!an(D())&&!function(n){var t=L()[0];return fn(W().filter((function(e){return!ln(e,n)&&!0!==t[e.fieldName]})))}(n)&&function(n){var t=D(),e=L()[0];return t.every((function(t){return!!ln(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function hn(){var n=I.useX().summary;return Q(n),n}function gn(){var n=D(),t=T({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=En(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&vn(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=En(n[e],t))}(n.groups,t),n}),t),t.valid=vn(),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 En(n,t){function e(n){var t=sn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||T({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(X.ERRORS):t.isWarning()&&e(X.WARNINGS)),i}function Nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={};for(e in n)r[e]=n[e][t]||[];return r}(n,t)}function mn(n){return Rn(X.ERRORS,n)}function yn(n){return Rn(X.WARNINGS,n)}function Rn(n,t){return Nn(hn().tests,n,t)}function Sn(n,t){return bn(n,X.ERRORS,t)}function Cn(n,t){return bn(n,X.WARNINGS,t)}function bn(n,t,e){return Nn(hn().groups[n],t,e)}function Tn(n){return f(n,0)}function _n(n){return On(H.ERROR_COUNT,n)}function In(n){return On(H.WARN_COUNT,n)}function On(n,t){var e,r=hn();return Tn(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function An(n,t){return Ln(X.ERRORS,n,t)}function kn(n,t){return Ln(X.WARNINGS,n,t)}function Ln(n,t,e){var r,u,i=hn();if(n=sn(n),!(t=i.groups[t]))return!1;if(e)return Tn(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(Tn(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t,e=hn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}var Fn=l(1);function Un(){var n=D(),t={stateRef:O()};return Fn([n],I.bind(t,(function(){var n=gn(),t=O().suiteName()[0],e={summary:n};return T(n,{getErrors:I.bind(e,mn),getErrorsByGroup:I.bind(e,Sn),getWarnings:I.bind(e,yn),getWarningsByGroup:I.bind(e,Cn),hasErrors:I.bind(e,_n),hasErrorsByGroup:I.bind(e,An),hasWarnings:I.bind(e,In),hasWarningsByGroup:I.bind(e,kn),isValid:I.bind(e,xn),suiteName:t})})))}function Wn(n){var t=W();return!an(t)&&(n?t.some((function(t){return pn(t,n)})):fn(t))}var Gn=l(20);function Pn(){var n=D(),t={stateRef:O()};return Gn([n],I.bind(t,(function(){return T({},Un(),{done:I.bind(t,Hn)})})))}function Dn(n,t,e){return!(h(n)&&(!t||e.tests[t]&&!an(e.tests[t].testCount)))}function wn(n){return!(Wn()&&(!n||Wn(n)))}var Xn,Hn=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=Pn(),Dn(e,n,t))return t;var r=function(){return e(Un())};return wn(n)?(r(),t):(Kn(r,n),t)};function Kn(n,t){(0,k()[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 qn(){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(Xn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Wn(n)&&p(t[n])&&Mn(t[n])}(t.fieldName),Wn()||n.emit(Xn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Xn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=L()[0];if(!an(n)){var t={};U((function(e){return m(e,(function(e){if(cn(t,e.fieldName))t[e.fieldName]&&e.omit();else{var r=n[e.fieldName];h(r)&&(t[e.fieldName]=r(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Xn.ALL_RUNNING_TESTS_FINISHED,(function(){Mn(k()[0].doneCallbacks)})),n.on(Xn.REMOVE_FIELD,(function(n){w((function(t){pn(t,n)&&(t.cancel(),function(n){U((function(t){return m(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Xn.RESET_FIELD,(function(n){w((function(t){pn(t,n)&&t.reset()}))})),n}function jn(){var n=I.useX();return Q(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"}(Xn||(Xn={}));function Bn(){return!!I.useX().skipped}function Vn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function Jn(n){var t=n.fieldName;if(n=n.groupName,Bn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return cn(t,n)?!1===t[n]:Zn()}(n))return!0;if(!0===r.groups[n])return!i&&(!!Qn(u)||!1===u[t])}return!!function(n){return!!Zn()&&!n}(n)||!i&&(!!Qn(u)&&!g(e[t]))}function zn(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&s(e).forEach((function(e){u(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=I.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){return!(!function(n){return I.useX().mode[0]===n}(b.EAGER)||!dn(n.fieldName))}function tt(){return!!I.useX().omitted}function et(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 rt(n){return n&&h(n.then)}function ut(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function it(n){var t=n.asyncTest,e=n.message;if(rt(t)){var r=jn().emit,i=O(),o=I.bind({stateRef:i},(function(){F(),r(Xn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function ot(n){var t=jn(),e=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{rt(e)?(n.asyncTest=e,n.setPending(),it(n)):t.emit(Xn.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 st(n){var t=x()[0].prev;return an(t)?(ct(n),n):(t=function(n){var t=en();return function(n,t){return S(n,t)[N(t)]}(n,t)}(t),nn(n.key)?(function(n,t){return fn(n)&&!ut(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===C.EACH||tn("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=x(),t=n[1],e=n[0].prev;n=S(e,en());var r=rn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),ct(n=E(t,n)),n):(ct(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;nn(e[n])?e[n]=t:tn('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 ct(n){var t=en();U((function(e){return y(e,t,n)}))}function at(n){if(nt(n))return n.skip(),st(n),un(),n;var t=st(n);return tt()?(t.omit(),un(),t):Jn(n)?(t.skip(Bn()),un(),t):(function(n,t){t!==n&&ut(n,t)&&n.isPending()&&n.cancel()}(t,n),ct(n),un(),function(n){n.isUntested()?ot(n):rt(n.asyncTest)&&(n.setPending(),it(n))}(n),n)}function ft(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=h(t[1])?t:et([void 0],t,!0);t=r[0],e=r[1],r=r[2],Q(u(n),pt("fieldName","string")),Q(h(e),pt("Test callback","function"));var i=I.useX();return at(t=new K(n,e,{message:t,groupName:i.groupName,key:r}))}Vn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var lt=T(ft,{memo:function(n){var t=l(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=rn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[A(),e,u].concat(i),d(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)}))):at(r[1])}}(ft)});function pt(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.3.2",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],Q(h(e),"vest.create: Expected callback to be a function.");var u=qn(),i=Z();return n={stateRef:$(i,{suiteId:r(),suiteName:n}),bus:u},T(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),on({type:C.SUITE},(function(){e.apply(void 0,n)})),u.emit(Xn.SUITE_CALLBACK_DONE_RUNNING),Pn()})),{get:I.bind(n,Un),remove:I.bind(n,(function(n){u.emit(Xn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Xn.RESET_FIELD,n)}))})},exports.each=function(n,t){Q(h(t),"each callback must be a function"),on({type:C.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(b.EAGER)},exports.group=function(n,t){Q(u(n),$n("name must be a string")),Q(h(t),$n("callback must be a function")),on({type:C.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),e=t.inclusion;return t=t.exclusion,Q(u(n)),e[n]=E(t.tests[n],!0),{when:function(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return cn(r.tests,n)?E(r.tests[n],!0):u(t)?!!r.tests[t]:g(t,g(Un))}}}},exports.omitWhen=function(n,t){on({type:C.OMIT_WHEN},(function(){I.run({omitted:tt()||g(n,g(Un))},(function(){return t()}))}))},exports.only=Vn,exports.optional=function(n){(0,L()[1])((function(t){if(p(n)||u(n))s(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Yn,exports.skipWhen=function(n,t){on({type:C.SKIP_WHEN},(function(){I.run({skipped:Bn()||g(n,g(Un))},(function(){return t()}))}))},exports.test=lt,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");Q(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"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];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 e.findIndex((function(t){var e=t[0];return f(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]),function(n,t){return l(n.length,t)}(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 d(n){return!!Array.isArray(n)}function v(n){return null===n}var h,g,E=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return N(n)?n.apply(void 0,t):n}function y(n,t){var e;return null!==(e=m(n))&&void 0!==e?e:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(S(u,t)):(u=t(u),E(u)&&e.push(u))}return e}function C(n,t,e){return T(n,t)[R(t)]=e,n}function b(n){return s(n).reduce((function(n,t){return d(t)?n.concat(b(t)):s(n).concat(t)}),[])}function T(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=y(n[r],[]),n=n[r]}return n}function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return R(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,R(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(h||(h={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(g||(g={}));var I=e.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:h.DEFAULT,keys:{current:{},prev:{}}},mode:[g.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(n){return x()[0][n]}function x(){return O().optionalFields()}function F(n,t){(0,x()[1])((function(e){var r;return c(e,((r={})[n]=m(t,e[n]),r))}))}function U(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function W(){return O().testObjects()}function G(){P((function(n){return n}))}function P(n){(0,W()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function D(){return H().filter((function(n){return n.isPending()}))}var w,X=p();function H(){var n=W()[0].current;return X([n],(function(){return b(n)}))}function K(n){H().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(w||(w={}));var M,q,j=function(){function n(n,t,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=w.Error,this.status=B,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==$||(this.status=n)},n.prototype.warns=function(){return this.severity===w.Warning},n.prototype.setPending=function(){this.setStatus(Q)},n.prototype.fail=function(){this.setStatus(this.warns()?J:Y)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=w.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(Z),G()},n.prototype.reset=function(){this.status=B,G()},n.prototype.omit=function(){this.setStatus($)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Q)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals($)},n.prototype.isUntested=function(){return this.statusEquals(B)},n.prototype.isFailing=function(){return this.statusEquals(Y)},n.prototype.isCanceled=function(){return this.statusEquals(Z)},n.prototype.isSkipped=function(){return this.statusEquals(V)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(J)},n.prototype.statusEquals=function(n){return this.status===n},n}(),B="UNTESTED",V="SKIPPED",Y="FAILED",J="WARNING",z="PASSING",Q="PENDING",Z="CANCELED",$="OMITTED";function nn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function tn(n){function t(n,t,u){return r.references.push(),e(n,m(t,u)),function(){return[r.references[n],function(t){return e(n,m(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,N(t=u[t][1])&&t(e,i),N(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function en(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 rn(n){return v(n)||o(n)}function un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return I.useX().testCursor.getCursor()}function sn(){return I.useX().testCursor.cursorAt()}function cn(){return I.useX().testCursor.next()}function an(n,t){n=void 0===(n=n.type)?h.DEFAULT:n,nn(N(t));var e={current:{},prev:{}},r=on();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=s(T(W()[0].prev,on())).reduce((function(n,t){return t instanceof j&&!rn(t.key)?(n[t.key]=t,n):n}),{}),P((function(n){return C(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),cn(),n}))}function fn(n){return n===M.ERRORS?q.ERROR_COUNT:q.WARN_COUNT}function ln(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function pn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:ln(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(M||(M={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(q||(q={}));var dn=i(pn);function vn(n,t){return!!t&&!hn(n,t)}function hn(n,t){return!(!t||n.fieldName!==t)}function gn(n){return function(n,t){return H().some((function(e){return function(n,t,e){return!(!n.hasFailures()||vn(n,e)||function(n,t){return function(n,t){return!!n!=!!t}(n===M.WARNINGS,t.warns())}(t,n))}(e,n,t)}))}(M.ERRORS,n)}function En(n){return!!function(n){return!!n&&!0===function(n){var t;return null===(t=L(n))||void 0===t?void 0:t[1]}(n)}(n)||!gn(n)&&(!pn(H())&&!function(n){return dn(D().filter((function(t){return!vn(t,n)&&!0!==U(t.fieldName)})))}(n)&&function(n){return H().every((function(t){return!!vn(t,n)||(!0===U(t.fieldName)||t.isTested()||t.isOmitted())}))}(n))}function Nn(){var n=I.useX().summary;return nn(n),n}function mn(){var n=H(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=yn(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&En(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=yn(n[e],t))}(n.groups,t),n}),t),t.valid=En(),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 yn(n,t){function e(n){var t=fn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(M.ERRORS):t.isWarning()&&e(M.WARNINGS)),i}function Rn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={};for(e in n)r[e]=n[e][t]||[];return r}(n,t)}function Sn(n){return bn(M.ERRORS,n)}function Cn(n){return bn(M.WARNINGS,n)}function bn(n,t){return Rn(Nn().tests,n,t)}function Tn(n,t){return In(n,M.ERRORS,t)}function _n(n,t){return In(n,M.WARNINGS,t)}function In(n,t,e){return Rn(Nn().groups[n],t,e)}function On(n){return l(n,0)}function An(n){return Ln(q.ERROR_COUNT,n)}function kn(n){return Ln(q.WARN_COUNT,n)}function Ln(n,t){var e,r=Nn();return On(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function xn(n,t){return Un(M.ERRORS,n,t)}function Fn(n,t){return Un(M.WARNINGS,n,t)}function Un(n,t,e){var r,u,i=Nn();if(n=fn(n),!(t=i.groups[t]))return!1;if(e)return On(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(On(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Wn(n){var t,e=Nn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}var Gn=p(1);function Pn(){var n=H(),t={stateRef:O()};return Gn([n],I.bind(t,(function(){var n=mn(),t=O().suiteName()[0],e={summary:n};return c(n,{getErrors:I.bind(e,Sn),getErrorsByGroup:I.bind(e,Tn),getWarnings:I.bind(e,Cn),getWarningsByGroup:I.bind(e,_n),hasErrors:I.bind(e,An),hasErrorsByGroup:I.bind(e,xn),hasWarnings:I.bind(e,kn),hasWarningsByGroup:I.bind(e,Fn),isValid:I.bind(e,Wn),suiteName:t})})))}function Dn(n){var t=D();return!pn(t)&&(n?t.some((function(t){return hn(t,n)})):dn(t))}var wn=p(20);function Xn(){var n=H(),t={stateRef:O()};return wn([n],I.bind(t,(function(){return c({},Pn(),{done:I.bind(t,qn)})})))}function Hn(n,t,e){return!(N(n)&&(!t||e.tests[t]&&!pn(e.tests[t].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}var Mn,qn=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=Xn(),Hn(e,n,t))return t;var r=function(){return e(Pn())};return Kn(n)?(r(),t):(jn(r,n),t)};function jn(n,t){(0,k()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Bn(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(Mn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Dn(n)&&d(t[n])&&Bn(t[n])}(t.fieldName),Dn()||n.emit(Mn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Mn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),F(n.fieldName,(function(n){return[n[0],!0]})))}if(!pn(x()[0])){var t={};P((function(e){return S(e,(function(e){if(ln(t,e.fieldName))n(e);else{var r=U(e.fieldName);N(r)&&(t[e.fieldName]=r(),n(e))}return e}))}))}}()})),n.on(Mn.ALL_RUNNING_TESTS_FINISHED,(function(){Bn(k()[0].doneCallbacks)})),n.on(Mn.REMOVE_FIELD,(function(n){K((function(t){hn(t,n)&&(t.cancel(),function(n){P((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Mn.RESET_FIELD,(function(n){K((function(t){hn(t,n)&&t.reset()}))})),n}function Yn(){var n=I.useX();return nn(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Mn||(Mn={}));function Jn(){return!!I.useX().skipped}function zn(n){return $n(0,"tests",n)}function Qn(n){return $n(1,"tests",n)}function Zn(n){var t=n.fieldName;if(n=n.groupName,Jn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return ln(t,n)?!1===t[n]:tt()}(n))return!0;if(!0===r.groups[n])return!i&&(!!nt(u)||!1===u[t])}return!!function(n){return!!tt()&&!n}(n)||!i&&(!!nt(u)&&!m(e[t]))}function $n(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&s(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function nt(n){for(var t in n)if(!0===n[t])return!0;return!1}function tt(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function et(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function rt(n){return!(!function(n){return I.useX().mode[0]===n}(g.EAGER)||!gn(n.fieldName))}function ut(){return!!I.useX().omitted}function it(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 ot(n){return n&&N(n.then)}function st(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ct(n){var t=n.asyncTest,e=n.message;if(ot(t)){var r=Yn().emit,i=O(),o=I.bind({stateRef:i},(function(){G(),r(Mn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function at(n){var t=Yn(),e=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{ot(e)?(n.asyncTest=e,n.setPending(),ct(n)):t.emit(Mn.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 ft(n){var t=W()[0].prev;return pn(t)?(lt(n),n):(t=function(n){var t=on();return function(n,t){return T(n,t)[R(t)]}(n,t)}(t),rn(n.key)?(function(n,t){return dn(n)&&!st(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===h.EACH||un("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=W(),t=n[1],e=n[0].prev;n=T(e,on());var r=sn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),lt(n=y(t,n)),n):(lt(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;rn(e[n])?e[n]=t:un('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function lt(n){var t=on();P((function(e){return C(e,t,n)}))}function pt(n){if(rt(n))return n.skip(),ft(n),cn(),n;var t=ft(n);return ut()?(t.omit(),cn(),t):Zn(n)?(t.skip(Jn()),cn(),t):(function(n,t){t!==n&&st(n,t)&&n.isPending()&&n.cancel()}(t,n),lt(n),cn(),function(n){n.isUntested()?at(n):ot(n.asyncTest)&&(n.setPending(),ct(n))}(n),n)}function dt(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=N(t[1])?t:it([void 0],t,!0);t=r[0],e=r[1],r=r[2],nn(u(n),ht("fieldName","string")),nn(N(e),ht("Test callback","function"));var i=I.useX();return pt(t=new j(n,e,{message:t,groupName:i.groupName,key:r}))}zn.group=function(n){return $n(0,"groups",n)},Qn.group=function(n){return $n(1,"groups",n)};var vt=c(dt,{memo:function(n){var t=p(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=sn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[A(),e,u].concat(i),v(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)}))):pt(r[1])}}(dt)});function ht(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.3.3",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],nn(N(e),"vest.create: Expected callback to be a function.");var u=Vn(),i=tn();return n={stateRef:en(i,{suiteId:r(),suiteName:n}),bus:u},c(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:h.SUITE},(function(){e.apply(void 0,n)})),u.emit(Mn.SUITE_CALLBACK_DONE_RUNNING),Xn()})),{get:I.bind(n,Pn),remove:I.bind(n,(function(n){u.emit(Mn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Mn.RESET_FIELD,n)}))})},exports.each=function(n,t){nn(N(t),"each callback must be a function"),an({type:h.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(g.EAGER)},exports.group=function(n,t){nn(u(n),et("name must be a string")),nn(N(t),et("callback must be a function")),an({type:h.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),e=t.inclusion;return t=t.exclusion,nn(u(n)),e[n]=y(t.tests[n],!0),{when:function(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return ln(r.tests,n)?y(r.tests[n],!0):u(t)?!!r.tests[t]:m(t,m(Pn))}}}},exports.omitWhen=function(n,t){an({type:h.OMIT_WHEN},(function(){I.run({omitted:ut()||m(n,m(Pn))},(function(){return t()}))}))},exports.only=zn,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){F(n,[!0,!1])}));else for(var t in n)F(t,[n[t],!1])},exports.skip=Qn,exports.skipWhen=function(n,t){an({type:h.SKIP_WHEN},(function(){I.run({skipped:Jn()||m(n,m(Pn))},(function(){return t()}))}))},exports.test=vt,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");nn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
@@ -35,6 +35,8 @@ function asArray(possibleArg) {
35
35
  return [].concat(possibleArg);
36
36
  }
37
37
 
38
+ var assign = Object.assign;
39
+
38
40
  function isNumeric(value) {
39
41
  var str = String(value);
40
42
  var num = Number(value);
@@ -174,8 +176,6 @@ function getCurrent(array, path) {
174
176
  return current;
175
177
  }
176
178
 
177
- var assign = Object.assign;
178
-
179
179
  function createCursor() {
180
180
  var storage = {
181
181
  cursor: []
@@ -262,22 +262,37 @@ function useSuiteName() {
262
262
  function useTestCallbacks() {
263
263
  return useStateRef().testCallbacks();
264
264
  }
265
+ // OPTIONAL FIELDS
266
+ function useOptionalField(fieldName) {
267
+ var optionalFields = useOptionalFields()[0];
268
+ return optionalFields[fieldName];
269
+ }
265
270
  function useOptionalFields() {
266
271
  return useStateRef().optionalFields();
267
272
  }
273
+ function useSetOptionalField(fieldName, setter) {
274
+ var _a = useOptionalFields(), setOptionalFields = _a[1];
275
+ setOptionalFields(function (optionalFields) {
276
+ var _a;
277
+ return assign(optionalFields, (_a = {},
278
+ _a[fieldName] = optionalFunctionValue(setter, optionalFields[fieldName]),
279
+ _a));
280
+ });
281
+ }
282
+ function useOptionalFieldApplied(fieldName) {
283
+ var _a;
284
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
285
+ }
286
+ function useOptionalFieldConfig(fieldName) {
287
+ var _a;
288
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
289
+ }
268
290
  function useTestObjects() {
269
291
  return useStateRef().testObjects();
270
292
  }
271
293
  // STATE ACTIONS
272
294
  function useRefreshTestObjects() {
273
- var _a = useTestObjects(), setTestObjects = _a[1];
274
- setTestObjects(function (_a) {
275
- var current = _a.current, prev = _a.prev;
276
- return ({
277
- prev: prev,
278
- current: asArray(current)
279
- });
280
- });
295
+ useSetTests(function (tests) { return tests; });
281
296
  }
282
297
  function useSetTests(handler) {
283
298
  var _a = useTestObjects(), testObjects = _a[1];
@@ -291,10 +306,7 @@ function useSetTests(handler) {
291
306
  }
292
307
  // Derived state
293
308
  function useAllIncomplete() {
294
- var current = useTestObjects()[0].current;
295
- return flatten(transform(current, function (testObject) {
296
- return testObject.isPending() ? testObject : null;
297
- }));
309
+ return useTestsFlat().filter(function (test) { return test.isPending(); });
298
310
  }
299
311
  var flatCache = createCache();
300
312
  function useTestsFlat() {
@@ -740,26 +752,23 @@ function fieldIsOmitted(fieldName) {
740
752
  if (!fieldName) {
741
753
  return false;
742
754
  }
743
- var flatTests = useTestsFlat();
744
- return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
755
+ return useOptionalFieldApplied(fieldName) === true;
745
756
  }
746
757
  function hasNonOptionalIncomplete(fieldName) {
747
- var optionalFields = useOptionalFields()[0];
748
758
  return isNotEmpty(useAllIncomplete().filter(function (testObject) {
749
759
  if (nonMatchingFieldName(testObject, fieldName)) {
750
760
  return false;
751
761
  }
752
- return optionalFields[testObject.fieldName] !== true;
762
+ return useOptionalFieldConfig(testObject.fieldName) !== true;
753
763
  }));
754
764
  }
755
765
  function noMissingTests(fieldName) {
756
766
  var testObjects = useTestsFlat();
757
- var optionalFields = useOptionalFields()[0];
758
767
  return testObjects.every(function (testObject) {
759
768
  if (nonMatchingFieldName(testObject, fieldName)) {
760
769
  return true;
761
770
  }
762
- return (optionalFields[testObject.fieldName] === true ||
771
+ return (useOptionalFieldConfig(testObject.fieldName) === true ||
763
772
  testObject.isTested() ||
764
773
  testObject.isOmitted());
765
774
  });
@@ -1070,7 +1079,7 @@ function createBus() {
1070
1079
  }
1071
1080
  }
1072
1081
 
1073
- function omitOptionalTests() {
1082
+ function omitOptionalFields() {
1074
1083
  var optionalFields = useOptionalFields()[0];
1075
1084
  if (isEmpty(optionalFields)) {
1076
1085
  return;
@@ -1091,10 +1100,11 @@ function omitOptionalTests() {
1091
1100
  function verifyAndOmit(testObject) {
1092
1101
  if (shouldOmit[testObject.fieldName]) {
1093
1102
  testObject.omit();
1103
+ useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
1094
1104
  }
1095
1105
  }
1096
1106
  function runOptionalConfig(testObject) {
1097
- var optionalConfig = optionalFields[testObject.fieldName];
1107
+ var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
1098
1108
  if (isFunction(optionalConfig)) {
1099
1109
  shouldOmit[testObject.fieldName] = optionalConfig();
1100
1110
  verifyAndOmit(testObject);
@@ -1154,7 +1164,7 @@ function initBus() {
1154
1164
  // Async operations may still be running.
1155
1165
  bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1156
1166
  // Remove tests that are optional and need to be omitted
1157
- omitOptionalTests();
1167
+ omitOptionalFields();
1158
1168
  });
1159
1169
  // Called when all the tests, including async, are done running
1160
1170
  bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
@@ -1547,22 +1557,21 @@ function isOmitted() {
1547
1557
  * });
1548
1558
  */
1549
1559
  function optional(optionals) {
1550
- var _a = useOptionalFields(), setOptionalFields = _a[1];
1551
- setOptionalFields(function (state) {
1552
- if (!isArray(optionals) && !isStringValue(optionals)) {
1553
- var optionalFunctions = optionals;
1554
- for (var field in optionalFunctions) {
1555
- var predicate = optionalFunctions[field];
1556
- state[field] = predicate;
1557
- }
1558
- }
1559
- else {
1560
- asArray(optionals).forEach(function (optionalField) {
1561
- state[optionalField] = true;
1562
- });
1560
+ // When the optional is given as a string or a list of strings
1561
+ // we just add them to the list of optional fields.
1562
+ if (isArray(optionals) || isStringValue(optionals)) {
1563
+ asArray(optionals).forEach(function (optionalField) {
1564
+ useSetOptionalField(optionalField, [true, false]);
1565
+ });
1566
+ }
1567
+ else {
1568
+ // if it's an object, we iterate over the keys and add them to the list
1569
+ var optionalFunctions = optionals;
1570
+ for (var field in optionalFunctions) {
1571
+ var predicate = optionalFunctions[field];
1572
+ useSetOptionalField(field, [predicate, false]);
1563
1573
  }
1564
- return state;
1565
- });
1574
+ }
1566
1575
  }
1567
1576
 
1568
1577
  /*! *****************************************************************************
@@ -1864,6 +1873,6 @@ function warn() {
1864
1873
  ctx.currentTest.warn();
1865
1874
  }
1866
1875
 
1867
- var VERSION = "4.3.2";
1876
+ var VERSION = "4.3.3";
1868
1877
 
1869
1878
  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)}}function i(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function o(t,n){return i(t)&&i(n)&&Number(t)===Number(n)}function s(t,n){return i(t)&&i(n)&&Number(t)>Number(n)}function a(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),s(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return o(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 c=u((function(t){return null===t}));function f(t){return"function"==typeof t}function l(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return f(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=l(t))&&void 0!==e?e:n}function d(t){return(t=[].concat(t))[t.length-1]}function v(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(v(u,n)):(u=n(u),c(u)&&e.push(u))}return e}function h(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(h(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}var g=Object.assign;function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return d(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,d(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,C=R||(R={});C[C.ALL=0]="ALL",C[C.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:g({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function b(){return S.useX().stateRef}function T(){return b().testObjects()}function O(){(0,T()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function A(t){(0,T()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function _(){return h(v(T()[0].current,(function(t){return t.isPending()?t:null})))}var I=a();function k(){var t=T()[0].current;return I([t],(function(){return h(t)}))}var L,F=L||(L={});F.Error="error",F.Warning="warning";var U=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=L.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==H||(this.status=t)},t.prototype.warns=function(){return this.severity===L.Warning},t.prototype.setPending=function(){this.setStatus(D)},t.prototype.fail=function(){this.setStatus(this.warns()?X:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(w)},t.prototype.warn=function(){this.severity=L.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(P)},t.prototype.cancel=function(){this.setStatus(x),O()},t.prototype.reset=function(){this.status=W,O()},t.prototype.omit=function(){this.setStatus(H)},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(D)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(H)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(x)},t.prototype.isSkipped=function(){return this.statusEquals(P)},t.prototype.isPassing=function(){return this.statusEquals(w)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",P="SKIPPED",G="FAILED",X="WARNING",w="PASSING",D="PENDING",x="CANCELED",H="OMITTED";function K(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?l(n):n)}function M(t){function n(t,n,u){return r.references.push(),e(t,l(n,u)),function(){return[r.references[t],function(n){return e(t,l(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,f(n=u[n][1])&&n(e,i),f(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 j(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function q(t){return null==t}function B(t){setTimeout((function(){throw Error(t)}),0)}function V(){return S.useX().testCursor.getCursor()}function Y(){return S.useX().testCursor.next()}function J(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,K(f(n));var e={current:{},prev:{}},r=V();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=T()[0].prev;return[].concat(E(t,V())).reduce((function(t,n){return n instanceof U&&!q(n.key)?(t[n.key]=n,t):t}),{})}(),A((function(t){return E(t,r)[d(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),Y(),t}))}var z,Q=z||(z={});Q.WARNINGS="warnings",Q.ERRORS="errors";var Z,$=Z||(Z={});function tt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?o(t.length,0):"object"==typeof t&&o((t=Object.keys(t)).length,0))}$.ERROR_COUNT="errorCount",$.WARN_COUNT="warnCount";var nt=u(tt);function et(t,n){return!(!n||t.fieldName!==n)}function rt(t,n){return k().some((function(e){return e.hasFailures()?n&&!et(e,n)?e=!1:(e=e.warns(),e=t===z.WARNINGS==!!e):e=!1,e}))}function ut(t){return!!function(t){return!!t&&k().some((function(n){return n.fieldName===t&&n.isOmitted()}))}(t)||!rt(z.ERRORS,t)&&(!tt(k())&&!function(t){var n=b().optionalFields()[0];return nt(_().filter((function(e){return!(t&&!et(e,t))&&!0!==n[e.fieldName]})))}(t)&&function(t){var n=k(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||et(n,t))||(!0===e[n.fieldName]||n.isTested()||n.isOmitted())}))}(t))}function it(){var t=S.useX().summary;return K(t),t}function ot(t,n){function e(t){i[t===z.ERRORS?Z.ERROR_COUNT:Z.WARN_COUNT]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||g({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(z.ERRORS):n.isWarning()&&e(z.WARNINGS)),i}function st(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function at(t,n){var e,r={};for(e in t)r[e]=t[e][n]||[];return r}function ct(t){return lt(z.ERRORS,t)}function ft(t){return lt(z.WARNINGS,t)}function lt(t,n){var e=it().tests;return n?st(e,t,n):at(e,t)}function pt(t,n){return vt(t,z.ERRORS,n)}function dt(t,n){return vt(t,z.WARNINGS,n)}function vt(t,n,e){return t=it().groups[t],e?st(t,n,e):at(t,n)}function ht(t){return gt(Z.ERROR_COUNT,t)}function Et(t){return gt(Z.WARN_COUNT,t)}function gt(t,n){var e,r=it();return s(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function Nt(t,n){return yt(z.ERRORS,t,n)}function mt(t,n){return yt(z.WARNINGS,t,n)}function yt(t,n,e){var r,u,i=it();if(t=t===z.ERRORS?Z.ERROR_COUNT:Z.WARN_COUNT,!(n=i.groups[n]))return!1;if(e)return s(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(s(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function Rt(t){var n,e=it();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var Ct=a(1);function St(){var t=k(),n={stateRef:b()};return Ct([t],S.bind(n,(function(){var t=function(){var t=k(),n=g({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ot(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ut(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=ot(e[r],n)),t}),n),n.valid=ut(),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)}(),n=b().suiteName()[0],e={summary:t};return g(t,{getErrors:S.bind(e,ct),getErrorsByGroup:S.bind(e,pt),getWarnings:S.bind(e,ft),getWarningsByGroup:S.bind(e,dt),hasErrors:S.bind(e,ht),hasErrorsByGroup:S.bind(e,Nt),hasWarnings:S.bind(e,Et),hasWarningsByGroup:S.bind(e,mt),isValid:S.bind(e,Rt),suiteName:n})})))}function bt(t){var n=_();return!tt(n)&&(t?n.some((function(n){return et(n,t)})):nt(n))}var Tt=a(20);function Ot(){var t=k(),n={stateRef:b()};return Tt([t],S.bind(n,(function(){return g({},St(),{done:S.bind(n,It)})})))}function At(t,n,e){return!(f(t)&&(!n||e.tests[n]&&!tt(e.tests[n].testCount)))}function _t(t){return!(bt()&&(!t||bt(t)))}function It(){function t(){return r(St())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Ot(),At(r,n,e)?e:_t(n)?(t(),e):(kt(t,n),e)}function kt(t,n){(0,b().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Lt(t){return t.forEach((function(t){return t()}))}function Ft(){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(Wt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!bt(n)&&Array.isArray(e[n])&&Lt(e[n]),bt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!tt(t)){var n={};A((function(e){return v(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))n[e.fieldName]&&e.omit();else{var r=t[e.fieldName];f(r)&&(n[e.fieldName]=r(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){Lt(b().testCallbacks()[0].doneCallbacks)})),t.on(Wt.REMOVE_FIELD,(function(t){k().forEach((function(n){et(n,t)&&(n.cancel(),function(t){A((function(n){return v(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){k().forEach((function(n){et(n,t)&&n.reset()}))})),t}function Ut(){var t=S.useX();return K(t.bus),t.bus}var Wt,Pt=Wt||(Wt={});function Gt(t){return wt(0,"tests",t)}function Xt(t){return wt(1,"tests",t)}function wt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Dt(t){for(var n in t)if(!0===t[n])return!0;return!1}function xt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Ht(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Kt(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 Mt(t){var n=t.asyncTest,e=t.message;if(n&&f(n.then)){var u=Ut().emit,i=b(),o=S.bind({stateRef:i},(function(){O(),u(Wt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function jt(t){var n=T()[0].prev;if(tt(n))return qt(t),t;var e=V();if(n=E(n,e)[d(e)],!q(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return q(r[n])?r[n]=e:B('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),qt(t),t}return!nt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||B("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=T(),n=t[1],e=t[0].prev;t=E(e,V());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),qt(t=p(n,t)),t}function qt(t){var n=V();A((function(e){return E(e,n)[d(n)]=t,e}))}function Bt(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!rt(z.ERRORS,t.fieldName)))return t.skip(),jt(t),Y(),t;if(n=jt(t),S.useX().omitted)return n.omit(),Y(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:xt())return!0;if(!0===r.groups[t])return!(i||!Dt(u)&&!1!==u[n])}return!!(t=!!xt()&&!t)||!i&&!!Dt(u)&&!l(e[n])}(t))return n.skip(!!S.useX().skipped),Y(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),qt(t),Y(),t.isUntested()){n=Ut();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&f(e.then)?(t.asyncTest=e,t.setPending(),Mt(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&f(n.then)&&(t.setPending(),Mt(t));return t}function Vt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=f(n[1])?n:Kt([void 0],n,!0);n=u[0],e=u[1],u=u[2],K(r(t),Jt("fieldName","string")),K(f(e),Jt("Test callback","function"));var i=S.useX();return Bt(n=new U(t,e,{message:n,groupName:i.groupName,key:u}))}Pt.TEST_COMPLETED="test_completed",Pt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Pt.REMOVE_FIELD="remove_field",Pt.RESET_FIELD="reset_field",Pt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Gt.group=function(t){return wt(0,"groups",t)},Xt.group=function(t){return wt(1,"groups",t)};var Yt=g(Vt,{memo:function(t){var n=a(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().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)}))):Bt(r[1])}}(Vt)});function Jt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var zt="4.3.2";function Qt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],K(f(r),"vest.create: Expected callback to be a function.");var u=Ft(),i=M();return t={stateRef:j(i,{suiteId:e(),suiteName:t}),bus:u},g(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),J({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Ot()})),{get:S.bind(t,St),remove:S.bind(t,(function(t){u.emit(Wt.REMOVE_FIELD,t)})),reset:i.reset,resetField:S.bind(t,(function(t){u.emit(Wt.RESET_FIELD,t)}))})}function Zt(t,n){K(f(n),"each callback must be a function"),J({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function $t(){var t=R.EAGER;S.useX().mode[0]=t}function tn(t,n){K(r(t),Ht("name must be a string")),K(f(n),Ht("callback must be a function")),J({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function nn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,K(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:l(n,l(St))}}}}function en(t,n){J({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||l(t,l(St))},(function(){return n()}))}))}function rn(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function un(t,n){J({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||l(t,l(St))},(function(){return n()}))}))}function on(){var t=S.useX("warn hook called outside of a running suite.");K(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{zt as VERSION,S as context,Qt as create,Zt as each,$t as eager,tn as group,nn as include,en as omitWhen,Gt as only,rn as optional,Xt as skip,un as skipWhen,Yt as test,on as warn};
1
+ import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var C=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function S(){return C.useX().stateRef}function O(t){return S().optionalFields()[0][t]}function T(t,n){(0,S().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function _(){I((function(t){return t}))}function I(t){(0,S().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=S().testObjects()[0].current;return L([t],(function(){return E(t)}))}var U,W=U||(U={});W.Error="error",W.Warning="warning";var P=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=U.Error,this.status=G,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),_()},t.prototype.reset=function(){this.status=G,_()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(G)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),G="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function q(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 B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return C.useX().testCursor.getCursor()}function z(){return C.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return C.run({isolate:{type:t,keys:e}},(function(){C.useX().testCursor.addLevel(),e.prev=function(){var t=S().testObjects()[0].prev;return[].concat(g(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),I((function(t){return g(t,r)[v(r)]=[],t}));var t=n();return C.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(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 rt=u(et);function ut(t,n){return!(!n||t.fieldName!==n)}function it(t,n){return F().some((function(e){return e.hasFailures()?n&&!ut(e,n)?e=!1:(e=e.warns(),e=t===Z.WARNINGS==!!e):e=!1,e}))}function ot(t){if(t)var n,e=!0===(null===(n=O(t))||void 0===n?void 0:n[1]);else e=!1;return!!e||!it(Z.ERRORS,t)&&(!et(e=F())&&!function(t){return rt(k().filter((function(n){return!(t&&!ut(n,t))&&!0!==A(n.fieldName)})))}(t)&&function(t){return F().every((function(n){return!(!t||ut(n,t))||(!0===A(n.fieldName)||n.isTested()||n.isOmitted())}))}(t))}function st(){var t=C.useX().summary;return M(t),t}function at(t,n){function e(t){o[t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT]++,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 ct(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function ft(t,n){var e,r={};for(e in t)r[e]=t[e][n]||[];return r}function lt(t){return dt(Z.ERRORS,t)}function pt(t){return dt(Z.WARNINGS,t)}function dt(t,n){var e=st().tests;return n?ct(e,t,n):ft(e,t)}function vt(t,n){return Et(t,Z.ERRORS,n)}function ht(t,n){return Et(t,Z.WARNINGS,n)}function Et(t,n,e){return t=st().groups[t],e?ct(t,n,e):ft(t,n)}function gt(t){return mt(tt.ERROR_COUNT,t)}function Nt(t){return mt(tt.WARN_COUNT,t)}function mt(t,n){var e,r=st();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function yt(t,n){return bt(Z.ERRORS,t,n)}function Rt(t,n){return bt(Z.WARNINGS,t,n)}function bt(t,n,e){var r,u,i=st();if(t=t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT,!(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 Ct(t){var n,e=st();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var St=c(1);function Ot(){var t=F(),n={stateRef:S()};return St([t],C.bind(n,(function(){var t=function(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=at(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ot(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=at(e[r],n)),t}),n),n.valid=ot(),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)}(),n=S().suiteName()[0],e={summary:t};return i(t,{getErrors:C.bind(e,lt),getErrorsByGroup:C.bind(e,vt),getWarnings:C.bind(e,pt),getWarningsByGroup:C.bind(e,ht),hasErrors:C.bind(e,gt),hasErrorsByGroup:C.bind(e,yt),hasWarnings:C.bind(e,Nt),hasWarningsByGroup:C.bind(e,Rt),isValid:C.bind(e,Ct),suiteName:n})})))}function Tt(t){var n=k();return!et(n)&&(t?n.some((function(n){return ut(n,t)})):rt(n))}var At=c(20);function _t(){var t=F(),n={stateRef:S()};return At([t],C.bind(n,(function(){return i({},Ot(),{done:C.bind(n,Lt)})})))}function It(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!et(e.tests[n].testCount)))}function kt(t){return!(Tt()&&(!t||Tt(t)))}function Lt(){function t(){return r(Ot())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=_t(),It(r,n,e)?e:kt(n)?(t(),e):(Ft(t,n),e)}function Ft(t,n){(0,S().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ut(t){return t.forEach((function(t){return t()}))}function Wt(){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(Gt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=S().testCallbacks()[0].fieldCallbacks;n&&!Tt(n)&&Array.isArray(e[n])&&Ut(e[n]),Tt()||t.emit(Gt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Gt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!et(S().optionalFields()[0])){var n={};I((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(Gt.ALL_RUNNING_TESTS_FINISHED,(function(){Ut(S().testCallbacks()[0].doneCallbacks)})),t.on(Gt.REMOVE_FIELD,(function(t){F().forEach((function(n){ut(n,t)&&(n.cancel(),function(t){I((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Gt.RESET_FIELD,(function(t){F().forEach((function(n){ut(n,t)&&n.reset()}))})),t}function Pt(){var t=C.useX();return M(t.bus),t.bus}var Gt,Xt=Gt||(Gt={});function wt(t){return xt(0,"tests",t)}function Dt(t){return xt(1,"tests",t)}function xt(t,n,e){var u=C.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function jt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ht(){var t,n=C.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Kt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Mt(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 qt(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Pt().emit,i=S(),o=C.bind({stateRef:i},(function(){_(),u(Gt.TEST_COMPLETED,t)}));i=C.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 Bt(t){var n=S().testObjects()[0].prev;if(et(n))return Vt(t),t;var e=J();if(n=g(n,e)[v(e)],!V(t.key)){n=t.key,(e=C.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=C.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Vt(t),t}return!rt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(C.useX().isolate.type===m.EACH||Y("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S().testObjects(),n=t[1],e=t[0].prev;t=g(e,J());var r=C.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Vt(t=d(n,t)),t}function Vt(t){var n=J();I((function(e){return g(e,n)[v(n)]=t,e}))}function Yt(t){var n=R.EAGER;if(n=!(C.useX().mode[0]!==n||!it(Z.ERRORS,t.fieldName)))return t.skip(),Bt(t),z(),t;if(n=Bt(t),C.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,C.useX().skipped)return!0;var e=C.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=C.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Ht())return!0;if(!0===r.groups[t])return!(i||!jt(u)&&!1!==u[n])}return!!(t=!!Ht()&&!t)||!i&&!!jt(u)&&!p(e[n])}(t))return n.skip(!!C.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Vt(t),z(),t.isUntested()){n=Pt();var e=function(t){return C.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),qt(t)):n.emit(Gt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),qt(t));return t}function Jt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:Mt([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),Qt("fieldName","string")),M(l(e),Qt("Test callback","function"));var i=C.useX();return Yt(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Xt.TEST_COMPLETED="test_completed",Xt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Xt.REMOVE_FIELD="remove_field",Xt.RESET_FIELD="reset_field",Xt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",wt.group=function(t){return xt(0,"groups",t)},Dt.group=function(t){return xt(1,"groups",t)};var zt=i(Jt,{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=C.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[S().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)}))):Yt(r[1])}}(Jt)});function Qt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var Zt="4.3.3";function $t(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Wt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(C.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(Gt.SUITE_CALLBACK_DONE_RUNNING),_t()})),{get:C.bind(t,Ot),remove:C.bind(t,(function(t){u.emit(Gt.REMOVE_FIELD,t)})),reset:o.reset,resetField:C.bind(t,(function(t){u.emit(Gt.RESET_FIELD,t)}))})}function tn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function nn(){var t=R.EAGER;C.useX().mode[0]=t}function en(t,n){M(r(t),Kt("name must be a string")),M(l(n),Kt("callback must be a function")),Q({type:m.GROUP},(function(){C.run({groupName:t},n)}))}function rn(t){var n=C.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=C.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(Ot))}}}}function un(t,n){Q({type:m.OMIT_WHEN},(function(){C.run({omitted:!!C.useX().omitted||p(t,p(Ot))},(function(){return n()}))}))}function on(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function sn(t,n){Q({type:m.SKIP_WHEN},(function(){C.run({skipped:!!C.useX().skipped||p(t,p(Ot))},(function(){return n()}))}))}function an(){var t=C.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{Zt as VERSION,C as context,$t as create,tn as each,nn as eager,en as group,rn as include,un as omitWhen,wt as only,on as optional,Dt as skip,sn as skipWhen,zt as test,an as warn};
@@ -861,22 +861,37 @@
861
861
  function useTestCallbacks() {
862
862
  return useStateRef().testCallbacks();
863
863
  }
864
+ // OPTIONAL FIELDS
865
+ function useOptionalField(fieldName) {
866
+ var optionalFields = useOptionalFields()[0];
867
+ return optionalFields[fieldName];
868
+ }
864
869
  function useOptionalFields() {
865
870
  return useStateRef().optionalFields();
866
871
  }
872
+ function useSetOptionalField(fieldName, setter) {
873
+ var _a = useOptionalFields(), setOptionalFields = _a[1];
874
+ setOptionalFields(function (optionalFields) {
875
+ var _a;
876
+ return assign(optionalFields, (_a = {},
877
+ _a[fieldName] = optionalFunctionValue(setter, optionalFields[fieldName]),
878
+ _a));
879
+ });
880
+ }
881
+ function useOptionalFieldApplied(fieldName) {
882
+ var _a;
883
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
884
+ }
885
+ function useOptionalFieldConfig(fieldName) {
886
+ var _a;
887
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
888
+ }
867
889
  function useTestObjects() {
868
890
  return useStateRef().testObjects();
869
891
  }
870
892
  // STATE ACTIONS
871
893
  function useRefreshTestObjects() {
872
- var _a = useTestObjects(), setTestObjects = _a[1];
873
- setTestObjects(function (_a) {
874
- var current = _a.current, prev = _a.prev;
875
- return ({
876
- prev: prev,
877
- current: asArray(current)
878
- });
879
- });
894
+ useSetTests(function (tests) { return tests; });
880
895
  }
881
896
  function useSetTests(handler) {
882
897
  var _a = useTestObjects(), testObjects = _a[1];
@@ -890,10 +905,7 @@
890
905
  }
891
906
  // Derived state
892
907
  function useAllIncomplete() {
893
- var current = useTestObjects()[0].current;
894
- return flatten(transform(current, function (testObject) {
895
- return testObject.isPending() ? testObject : null;
896
- }));
908
+ return useTestsFlat().filter(function (test) { return test.isPending(); });
897
909
  }
898
910
  var flatCache = createCache();
899
911
  function useTestsFlat() {
@@ -1293,26 +1305,23 @@
1293
1305
  if (!fieldName) {
1294
1306
  return false;
1295
1307
  }
1296
- var flatTests = useTestsFlat();
1297
- return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
1308
+ return useOptionalFieldApplied(fieldName) === true;
1298
1309
  }
1299
1310
  function hasNonOptionalIncomplete(fieldName) {
1300
- var optionalFields = useOptionalFields()[0];
1301
1311
  return isNotEmpty(useAllIncomplete().filter(function (testObject) {
1302
1312
  if (nonMatchingFieldName(testObject, fieldName)) {
1303
1313
  return false;
1304
1314
  }
1305
- return optionalFields[testObject.fieldName] !== true;
1315
+ return useOptionalFieldConfig(testObject.fieldName) !== true;
1306
1316
  }));
1307
1317
  }
1308
1318
  function noMissingTests(fieldName) {
1309
1319
  var testObjects = useTestsFlat();
1310
- var optionalFields = useOptionalFields()[0];
1311
1320
  return testObjects.every(function (testObject) {
1312
1321
  if (nonMatchingFieldName(testObject, fieldName)) {
1313
1322
  return true;
1314
1323
  }
1315
- return (optionalFields[testObject.fieldName] === true ||
1324
+ return (useOptionalFieldConfig(testObject.fieldName) === true ||
1316
1325
  testObject.isTested() ||
1317
1326
  testObject.isOmitted());
1318
1327
  });
@@ -1619,7 +1628,7 @@
1619
1628
  }
1620
1629
  }
1621
1630
 
1622
- function omitOptionalTests() {
1631
+ function omitOptionalFields() {
1623
1632
  var optionalFields = useOptionalFields()[0];
1624
1633
  if (isEmpty(optionalFields)) {
1625
1634
  return;
@@ -1640,10 +1649,11 @@
1640
1649
  function verifyAndOmit(testObject) {
1641
1650
  if (shouldOmit[testObject.fieldName]) {
1642
1651
  testObject.omit();
1652
+ useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
1643
1653
  }
1644
1654
  }
1645
1655
  function runOptionalConfig(testObject) {
1646
- var optionalConfig = optionalFields[testObject.fieldName];
1656
+ var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
1647
1657
  if (isFunction(optionalConfig)) {
1648
1658
  shouldOmit[testObject.fieldName] = optionalConfig();
1649
1659
  verifyAndOmit(testObject);
@@ -1703,7 +1713,7 @@
1703
1713
  // Async operations may still be running.
1704
1714
  bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1705
1715
  // Remove tests that are optional and need to be omitted
1706
- omitOptionalTests();
1716
+ omitOptionalFields();
1707
1717
  });
1708
1718
  // Called when all the tests, including async, are done running
1709
1719
  bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
@@ -2096,22 +2106,21 @@
2096
2106
  * });
2097
2107
  */
2098
2108
  function optional(optionals) {
2099
- var _a = useOptionalFields(), setOptionalFields = _a[1];
2100
- setOptionalFields(function (state) {
2101
- if (!isArray(optionals) && !isStringValue(optionals)) {
2102
- var optionalFunctions = optionals;
2103
- for (var field in optionalFunctions) {
2104
- var predicate = optionalFunctions[field];
2105
- state[field] = predicate;
2106
- }
2107
- }
2108
- else {
2109
- asArray(optionals).forEach(function (optionalField) {
2110
- state[optionalField] = true;
2111
- });
2109
+ // When the optional is given as a string or a list of strings
2110
+ // we just add them to the list of optional fields.
2111
+ if (isArray(optionals) || isStringValue(optionals)) {
2112
+ asArray(optionals).forEach(function (optionalField) {
2113
+ useSetOptionalField(optionalField, [true, false]);
2114
+ });
2115
+ }
2116
+ else {
2117
+ // if it's an object, we iterate over the keys and add them to the list
2118
+ var optionalFunctions = optionals;
2119
+ for (var field in optionalFunctions) {
2120
+ var predicate = optionalFunctions[field];
2121
+ useSetOptionalField(field, [predicate, false]);
2112
2122
  }
2113
- return state;
2114
- });
2123
+ }
2115
2124
  }
2116
2125
 
2117
2126
  function isPromise(value) {
@@ -2388,7 +2397,7 @@
2388
2397
  ctx.currentTest.warn();
2389
2398
  }
2390
2399
 
2391
- var VERSION = "4.3.2";
2400
+ var VERSION = "4.3.3";
2392
2401
 
2393
2402
  exports.VERSION = VERSION;
2394
2403
  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 p(n,t){return l(n,t)||f(n,t)}function d(n){return!!Array.isArray(n)}function v(n,t){return!!(d(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 p(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 R(n,t){return l(n.length,t)}function b(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?R(n,0):"object"==typeof n&&R(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 _(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function I(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Rt){var r=Rt[e];t(r)&&n(e,r)}}function w(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=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=$n({},s||{},null!==(i=w(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 U(){return null}function x(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 X(){try{return t(Proxy)}catch(n){return!1}}function G(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)?G(n):G(n.pass,w.apply(void 0,x([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,x([bt.run({value:n},(function(){return e.apply(void 0,x([n],u,!1))})),r,n],u,!1))).pass,b(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Rt[e])return t(r,n,e)}});return r}function K(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 j(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=Rt[r];e.push((function(n){return D.apply(void 0,x([o.apply(void 0,x([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(K(e,(function(e,r){var u,i=bt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Rt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return R(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]),I(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];d(u)?e.push(M(u,t)):(u=t(u),nt(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return d(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(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return Ct.useX().stateRef}function Q(){return z().testObjects()}function Z(){(0,Q()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function $(n){(0,Q()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function nn(){return V(M(Q()[0].current,(function(n){return n.isPending()?n:null})))}function tn(){var n=Q()[0].current;return _t([n],(function(){return V(n)}))}function en(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(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 rn(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 un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return Ct.useX().testCursor.getCursor()}function sn(){return Ct.useX().testCursor.next()}function an(n,e){n=void 0===(n=n.type)?zn.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=on();return Ct.run({isolate:{type:n,keys:r}},(function(){Ct.useX().testCursor.addLevel(),r.prev=function(){var n=Q()[0].prev;return[].concat(J(n,on())).reduce((function(n,t){return t instanceof kt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),$((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return Ct.useX().testCursor.removeLevel(),sn(),n}))}function cn(n,t){return!(!t||n.fieldName!==t)}function fn(n,t){return tn().some((function(e){return e.hasFailures()?t&&!cn(e,t)?e=!1:(e=e.warns(),e=n===It.WARNINGS==!!e):e=!1,e}))}function ln(n){return!!function(n){return!!n&&tn().some((function(t){return t.fieldName===n&&t.isOmitted()}))}(n)||!fn(It.ERRORS,n)&&(!b(tn())&&!function(n){var t=z().optionalFields()[0];return vt(nn().filter((function(e){return!(n&&!cn(e,n))&&!0!==t[e.fieldName]})))}(n)&&function(n){var t=tn(),e=z().optionalFields()[0];return t.every((function(t){return!(!n||cn(t,n))||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function pn(){var n=Ct.useX().summary;return F(n),n}function dn(n,t){function e(n){i[n===It.ERRORS?At.ERROR_COUNT:At.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||$n({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(It.ERRORS):t.isWarning()&&e(It.WARNINGS)),i}function vn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function hn(n,t){var e,r={};for(e in n)r[e]=n[e][t]||[];return r}function Nn(n){return En(It.ERRORS,n)}function gn(n){return En(It.WARNINGS,n)}function En(n,t){var e=pn().tests;return t?vn(e,n,t):hn(e,n)}function mn(n,t){return Rn(n,It.ERRORS,t)}function yn(n,t){return Rn(n,It.WARNINGS,t)}function Rn(n,t,e){return n=pn().groups[n],e?vn(n,t,e):hn(n,t)}function bn(n){return Sn(At.ERROR_COUNT,n)}function On(n){return Sn(At.WARN_COUNT,n)}function Sn(n,t){var e,r=pn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Tn(n,t){return _n(It.ERRORS,n,t)}function Cn(n,t){return _n(It.WARNINGS,n,t)}function _n(n,t,e){var r,u,i=pn();if(n=n===It.ERRORS?At.ERROR_COUNT:At.WARN_COUNT,!(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 In(n){var t,e=pn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}function An(){var n=tn(),t={stateRef:z()};return Dt([n],Ct.bind(t,(function(){var n=function(){var n=tn(),t=$n({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=dn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&ln(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=dn(e[r],t)),n}),t),t.valid=ln(),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)}(),t=z().suiteName()[0],e={summary:n};return $n(n,{getErrors:Ct.bind(e,Nn),getErrorsByGroup:Ct.bind(e,mn),getWarnings:Ct.bind(e,gn),getWarningsByGroup:Ct.bind(e,yn),hasErrors:Ct.bind(e,bn),hasErrorsByGroup:Ct.bind(e,Tn),hasWarnings:Ct.bind(e,On),hasWarningsByGroup:Ct.bind(e,Cn),isValid:Ct.bind(e,In),suiteName:t})})))}function kn(n){var t=nn();return!b(t)&&(n?t.some((function(t){return cn(t,n)})):vt(t))}function Ln(){var n=tn(),t={stateRef:z()};return qt([n],Ct.bind(t,(function(){return $n({},An(),{done:Ct.bind(t,Kt)})})))}function wn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!b(r.tests[e].testCount)))}function Wn(n){return!(kn()&&(!n||kn(n)))}function Fn(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Pn(n){return n.forEach((function(n){return n()}))}function Un(){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(Gt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!kn(t)&&d(e[t])&&Pn(e[t]),kn()||n.emit(Gt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Gt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=z().optionalFields()[0];if(!b(n)){var e={};$((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))e[r.fieldName]&&r.omit();else{var u=n[r.fieldName];t(u)&&(e[r.fieldName]=u(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Gt.ALL_RUNNING_TESTS_FINISHED,(function(){Pn(z().testCallbacks()[0].doneCallbacks)})),n.on(Gt.REMOVE_FIELD,(function(n){tn().forEach((function(t){cn(t,n)&&(t.cancel(),function(n){$((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Gt.RESET_FIELD,(function(n){tn().forEach((function(t){cn(t,n)&&t.reset()}))})),n}function xn(){var n=Ct.useX();return F(n.bus),n.bus}function Xn(n){return Dn(0,"tests",n)}function Gn(n){return Dn(1,"tests",n)}function Dn(n,t,e){var r=Ct.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 Kn(){var n,t=Ct.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function jn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Bn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=xn().emit,i=z(),s=Ct.bind({stateRef:i},(function(){Z(),u(Gt.TEST_COMPLETED,n)}));i=Ct.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 Hn(n){var t=Q()[0].prev;if(b(t))return Mn(n),n;var e=on();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=Ct.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Ct.useX().isolate.keys.current;return i(r[t])?r[t]=e:un('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Mn(n),n}return!vt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Ct.useX().isolate.type===zn.EACH||un("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=Q(),t=n[1],e=n[0].prev;n=J(e,on());var r=Ct.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),Mn(n=W(t,n)),n}function Mn(n){var t=on();$((function(e){return J(e,t)[H(t)]=n,e}))}function Vn(n){var e=Zn.EAGER;if(e=!(Ct.useX().mode[0]!==e||!fn(It.ERRORS,n.fieldName)))return n.skip(),Hn(n),sn(),n;if(e=Hn(n),Ct.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Ct.useX().skipped)return!0;var e=Ct.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=Ct.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Kn())return!0;if(!0===r.groups[n])return!(i||!qn(u)&&!1!==u[t])}return!!(n=!!Kn()&&!n)||!i&&!!qn(u)&&!w(e[t])}(n))return e.skip(!!Ct.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Mn(n),sn(),n.isUntested()){e=xn();var r=function(n){return Ct.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Bn(n)):e.emit(Gt.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(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Bn(n));return n}function Jn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:x([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),Yn("fieldName","string")),F(t(r),Yn("Test callback","function"));var i=Ct.useX();return Vn(e=new kt(n,r,{message:e,groupName:i.groupName,key:u}))}function Yn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var zn,Qn,Zn,$n=Object.assign,nt=e(r),tt=e(u),et=e(i),rt=e(s),ut=e(a),it=e(c),ot=e(l),st=e(d),at=e(v),ct=e(g),ft=e(E),lt=e(m),pt=e(y),dt=e(R),vt=e(b),ht=e(O),Nt=e(S),gt=e(o),Et=e(C),mt=e(_),yt=e(A),Rt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:rt,doesNotStartWith:e(k),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:p,gt:f,gte:p,inside:v,isArray:d,isBetween:g,isBlank:E,isBoolean:m,isEmpty:b,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:Et,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:st,isNotBetween:ct,isNotBlank:ft,isNotBoolean:lt,isNotEmpty:vt,isNotKeyOf:ht,isNotNaN:Nt,isNotNull:nt,isNotNullish:et,isNotNumber:pt,isNotNumeric:it,isNotString:gt,isNotUndefined:tt,isNotValueOf:mt,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:_,lengthEquals:R,lengthNotEquals:dt,lessThan:h,lessThanOrEquals:N,longerThan:I,longerThanOrEquals:function(n,t){return p(n.length,t)},lt:h,lte:N,matches:A,notEquals:ut,notInside:at,notMatches:yt,numberEquals:l,numberNotEquals:ot,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:k},bt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?$n(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:$n(e,{parent:U})})),Ot=function(){function n(){if(!X())return L((function(n){t[n]=j(n)})),$n(q,t)}var t={context:function(){return bt.useX()},extend:function(t){$n(Rt,t),n()}};return n(),new Proxy($n(q,t),{get:function(n,t){return t in n?n[t]:Rt[t]?j(t):void 0}})}(),St=(Qn=0,function(){return"".concat(Qn++)});!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"}(zn||(zn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Zn||(Zn={}));var Tt,Ct=P((function(n,t){return t?null:$n({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:zn.DEFAULT,keys:{current:{},prev:{}}},mode:[Zn.ALL],testCursor:Y()},n)})),_t=B();!function(n){n.Error="error",n.Warning="warning"}(Tt||(Tt={}));var It,At,kt=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=St(),this.severity=Tt.Error,this.status=Lt,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!==Xt||(this.status=n)},n.prototype.warns=function(){return this.severity===Tt.Warning},n.prototype.setPending=function(){this.setStatus(Ut)},n.prototype.fail=function(){this.setStatus(this.warns()?Ft:Wt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Pt)},n.prototype.warn=function(){this.severity=Tt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(wt)},n.prototype.cancel=function(){this.setStatus(xt),Z()},n.prototype.reset=function(){this.status=Lt,Z()},n.prototype.omit=function(){this.setStatus(Xt)},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(Ut)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Xt)},n.prototype.isUntested=function(){return this.statusEquals(Lt)},n.prototype.isFailing=function(){return this.statusEquals(Wt)},n.prototype.isCanceled=function(){return this.statusEquals(xt)},n.prototype.isSkipped=function(){return this.statusEquals(wt)},n.prototype.isPassing=function(){return this.statusEquals(Pt)},n.prototype.isWarning=function(){return this.statusEquals(Ft)},n.prototype.statusEquals=function(n){return this.status===n},n}(),Lt="UNTESTED",wt="SKIPPED",Wt="FAILED",Ft="WARNING",Pt="PASSING",Ut="PENDING",xt="CANCELED",Xt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(It||(It={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(At||(At={}));var Gt,Dt=B(1),qt=B(20),Kt=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=Ln(),wn(e,n,t))return t;var r=function(){return e(An())};return Wn(n)?(r(),t):(Fn(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"}(Gt||(Gt={})),Xn.group=function(n){return Dn(0,"groups",n)},Gn.group=function(n){return Dn(1,"groups",n)};var jt=$n(Jn,{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=Ct.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[z().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)}))):Vn(r[1])}}(Jn)});n.VERSION="4.3.2",n.context=Ct,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=Un(),i=en();return n={stateRef:rn(i,{suiteId:St(),suiteName:n}),bus:u},$n(Ct.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:zn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Gt.SUITE_CALLBACK_DONE_RUNNING),Ln()})),{get:Ct.bind(n,An),remove:Ct.bind(n,(function(n){u.emit(Gt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Ct.bind(n,(function(n){u.emit(Gt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),an({type:zn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Zn.EAGER;Ct.useX().mode[0]=n},n.enforce=Ot,n.group=function(n,e){F(o(n),jn("name must be a string")),F(t(e),jn("callback must be a function")),an({type:zn.GROUP},(function(){Ct.run({groupName:n},e)}))},n.include=function(n){var t=Ct.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=Ct.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]:w(t,w(An))}}}},n.omitWhen=function(n,t){an({type:zn.OMIT_WHEN},(function(){Ct.run({omitted:!!Ct.useX().omitted||w(n,w(An))},(function(){return t()}))}))},n.only=Xn,n.optional=function(n){(0,z().optionalFields()[1])((function(t){if(d(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Gn,n.skipWhen=function(n,t){an({type:zn.SKIP_WHEN},(function(){Ct.run({skipped:!!Ct.useX().skipped||w(n,w(An))},(function(){return t()}))}))},n.test=jt,n.warn=function(){var n=Ct.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 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 _(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function I(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Ot){var r=Ot[e];t(r)&&n(e,r)}}function w(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=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=tt({},s||{},null!==(i=w(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 U(){return null}function x(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 X(){try{return t(Proxy)}catch(n){return!1}}function G(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)?G(n):G(n.pass,w.apply(void 0,x([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,x([St.run({value:n},(function(){return e.apply(void 0,x([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(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Ot[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=Ot[r];e.push((function(n){return D.apply(void 0,x([o.apply(void 0,x([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=St.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Ot[e]?n(e):t[e]}}):(L((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]),I(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),et(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(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return It.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return tt(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return At([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(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 on(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 sn(n){setTimeout((function(){throw Error(n)}),0)}function an(){return It.useX().testCursor.getCursor()}function cn(){return It.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?Zn.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=an();return It.run({isolate:{type:n,keys:r}},(function(){It.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,an())).reduce((function(n,t){return t instanceof wt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return It.useX().testCursor.removeLevel(),cn(),n}))}function ln(n,t){return!(!t||n.fieldName!==t)}function dn(n,t){return rn().some((function(e){return e.hasFailures()?t&&!ln(e,t)?e=!1:(e=e.warns(),e=n===kt.WARNINGS==!!e):e=!1,e}))}function pn(n){if(n)var t,e=!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);else e=!1;return!!e||!dn(kt.ERRORS,n)&&(!R(e=rn())&&!function(n){return Nt(en().filter((function(t){return!(n&&!ln(t,n))&&!0!==$(t.fieldName)})))}(n)&&function(n){return rn().every((function(t){return!(!n||ln(t,n))||(!0===$(t.fieldName)||t.isTested()||t.isOmitted())}))}(n))}function vn(){var n=It.useX().summary;return F(n),n}function hn(n,t){function e(n){i[n===kt.ERRORS?Lt.ERROR_COUNT:Lt.WARN_COUNT]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||tt({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(kt.ERRORS):t.isWarning()&&e(kt.WARNINGS)),i}function Nn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function gn(n,t){var e,r={};for(e in n)r[e]=n[e][t]||[];return r}function En(n){return yn(kt.ERRORS,n)}function mn(n){return yn(kt.WARNINGS,n)}function yn(n,t){var e=vn().tests;return t?Nn(e,n,t):gn(e,n)}function bn(n,t){return On(n,kt.ERRORS,t)}function Rn(n,t){return On(n,kt.WARNINGS,t)}function On(n,t,e){return n=vn().groups[n],e?Nn(n,t,e):gn(n,t)}function Sn(n){return Cn(Lt.ERROR_COUNT,n)}function Tn(n){return Cn(Lt.WARN_COUNT,n)}function Cn(n,t){var e,r=vn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function _n(n,t){return An(kt.ERRORS,n,t)}function In(n,t){return An(kt.WARNINGS,n,t)}function An(n,t,e){var r,u,i=vn();if(n=n===kt.ERRORS?Lt.ERROR_COUNT:Lt.WARN_COUNT,!(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 kn(n){var t,e=vn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}function Ln(){var n=rn(),t={stateRef:z()};return jt([n],It.bind(t,(function(){var n=function(){var n=rn(),t=tt({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=hn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&pn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=hn(e[r],t)),n}),t),t.valid=pn(),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)}(),t=z().suiteName()[0],e={summary:n};return tt(n,{getErrors:It.bind(e,En),getErrorsByGroup:It.bind(e,bn),getWarnings:It.bind(e,mn),getWarningsByGroup:It.bind(e,Rn),hasErrors:It.bind(e,Sn),hasErrorsByGroup:It.bind(e,_n),hasWarnings:It.bind(e,Tn),hasWarningsByGroup:It.bind(e,In),isValid:It.bind(e,kn),suiteName:t})})))}function wn(n){var t=en();return!R(t)&&(n?t.some((function(t){return ln(t,n)})):Nt(t))}function Wn(){var n=rn(),t={stateRef:z()};return Kt([n],It.bind(t,(function(){return tt({},Ln(),{done:It.bind(t,Bt)})})))}function Fn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Pn(n){return!(wn()&&(!n||wn(n)))}function Un(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function xn(n){return n.forEach((function(n){return n()}))}function Xn(){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(qt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!wn(t)&&p(e[t])&&xn(e[t]),wn()||n.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){xn(z().testCallbacks()[0].doneCallbacks)})),n.on(qt.REMOVE_FIELD,(function(n){rn().forEach((function(t){ln(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(qt.RESET_FIELD,(function(n){rn().forEach((function(t){ln(t,n)&&t.reset()}))})),n}function Gn(){var n=It.useX();return F(n.bus),n.bus}function Dn(n){return jn(0,"tests",n)}function qn(n){return jn(1,"tests",n)}function jn(n,t,e){var r=It.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Kn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Bn(){var n,t=It.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function Hn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Mn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Gn().emit,i=z(),s=It.bind({stateRef:i},(function(){nn(),u(qt.TEST_COMPLETED,n)}));i=It.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 Vn(n){var t=z().testObjects()[0].prev;if(R(t))return Jn(n),n;var e=an();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=It.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=It.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Jn(n),n}return!Nt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(It.useX().isolate.type===Zn.EACH||sn("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=z().testObjects(),t=n[1],e=n[0].prev;n=J(e,an());var r=It.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),Jn(n=W(t,n)),n}function Jn(n){var t=an();tn((function(e){return J(e,t)[H(t)]=n,e}))}function Yn(n){var e=nt.EAGER;if(e=!(It.useX().mode[0]!==e||!dn(kt.ERRORS,n.fieldName)))return n.skip(),Vn(n),cn(),n;if(e=Vn(n),It.useX().omitted)return e.omit(),cn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,It.useX().skipped)return!0;var e=It.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=It.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Bn())return!0;if(!0===r.groups[n])return!(i||!Kn(u)&&!1!==u[t])}return!!(n=!!Bn()&&!n)||!i&&!!Kn(u)&&!w(e[t])}(n))return e.skip(!!It.useX().skipped),cn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Jn(n),cn(),n.isUntested()){e=Gn();var r=function(n){return It.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Mn(n)):e.emit(qt.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(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Mn(n));return n}function zn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:x([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),Qn("fieldName","string")),F(t(r),Qn("Test callback","function"));var i=It.useX();return Yn(e=new wt(n,r,{message:e,groupName:i.groupName,key:u}))}function Qn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var Zn,$n,nt,tt=Object.assign,et=e(r),rt=e(u),ut=e(i),it=e(s),ot=e(a),st=e(c),at=e(l),ct=e(p),ft=e(v),lt=e(g),dt=e(E),pt=e(m),vt=e(y),ht=e(b),Nt=e(R),gt=e(O),Et=e(S),mt=e(o),yt=e(C),bt=e(_),Rt=e(A),Ot={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:it,doesNotStartWith:e(k),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:yt,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:ct,isNotBetween:lt,isNotBlank:dt,isNotBoolean:pt,isNotEmpty:Nt,isNotKeyOf:gt,isNotNaN:Et,isNotNull:et,isNotNullish:ut,isNotNumber:vt,isNotNumeric:st,isNotString:mt,isNotUndefined:rt,isNotValueOf:bt,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:_,lengthEquals:b,lengthNotEquals:ht,lessThan:h,lessThanOrEquals:N,longerThan:I,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:N,matches:A,notEquals:ot,notInside:ft,notMatches:Rt,numberEquals:l,numberNotEquals:at,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:k},St=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?tt(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:tt(e,{parent:U})})),Tt=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),tt(q,t)}var t={context:function(){return St.useX()},extend:function(t){tt(Ot,t),n()}};return n(),new Proxy(tt(q,t),{get:function(n,t){return t in n?n[t]:Ot[t]?K(t):void 0}})}(),Ct=($n=0,function(){return"".concat($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"}(Zn||(Zn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(nt||(nt={}));var _t,It=P((function(n,t){return t?null:tt({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Zn.DEFAULT,keys:{current:{},prev:{}}},mode:[nt.ALL],testCursor:Y()},n)})),At=B();!function(n){n.Error="error",n.Warning="warning"}(_t||(_t={}));var kt,Lt,wt=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=Ct(),this.severity=_t.Error,this.status=Wt,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!==Dt||(this.status=n)},n.prototype.warns=function(){return this.severity===_t.Warning},n.prototype.setPending=function(){this.setStatus(Xt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ut:Pt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(xt)},n.prototype.warn=function(){this.severity=_t.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Ft)},n.prototype.cancel=function(){this.setStatus(Gt),nn()},n.prototype.reset=function(){this.status=Wt,nn()},n.prototype.omit=function(){this.setStatus(Dt)},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(Xt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Dt)},n.prototype.isUntested=function(){return this.statusEquals(Wt)},n.prototype.isFailing=function(){return this.statusEquals(Pt)},n.prototype.isCanceled=function(){return this.statusEquals(Gt)},n.prototype.isSkipped=function(){return this.statusEquals(Ft)},n.prototype.isPassing=function(){return this.statusEquals(xt)},n.prototype.isWarning=function(){return this.statusEquals(Ut)},n.prototype.statusEquals=function(n){return this.status===n},n}(),Wt="UNTESTED",Ft="SKIPPED",Pt="FAILED",Ut="WARNING",xt="PASSING",Xt="PENDING",Gt="CANCELED",Dt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(kt||(kt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Lt||(Lt={}));var qt,jt=B(1),Kt=B(20),Bt=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=Wn(),Fn(e,n,t))return t;var r=function(){return e(Ln())};return Pn(n)?(r(),t):(Un(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"}(qt||(qt={})),Dn.group=function(n){return jn(0,"groups",n)},qn.group=function(n){return jn(1,"groups",n)};var Ht=tt(zn,{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=It.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[z().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)}))):Yn(r[1])}}(zn)});n.VERSION="4.3.3",n.context=It,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=Xn(),i=un();return n={stateRef:on(i,{suiteId:Ct(),suiteName:n}),bus:u},tt(It.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:Zn.SUITE},(function(){r.apply(void 0,n)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),Wn()})),{get:It.bind(n,Ln),remove:It.bind(n,(function(n){u.emit(qt.REMOVE_FIELD,n)})),reset:i.reset,resetField:It.bind(n,(function(n){u.emit(qt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:Zn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=nt.EAGER;It.useX().mode[0]=n},n.enforce=Tt,n.group=function(n,e){F(o(n),Hn("name must be a string")),F(t(e),Hn("callback must be a function")),fn({type:Zn.GROUP},(function(){It.run({groupName:n},e)}))},n.include=function(n){var t=It.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=It.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]:w(t,w(Ln))}}}},n.omitWhen=function(n,t){fn({type:Zn.OMIT_WHEN},(function(){It.run({omitted:!!It.useX().omitted||w(n,w(Ln))},(function(){return t()}))}))},n.only=Dn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=qn,n.skipWhen=function(n,t){fn({type:Zn.SKIP_WHEN},(function(){It.run({skipped:!!It.useX().skipped||w(n,w(Ln))},(function(){return t()}))}))},n.test=Ht,n.warn=function(){var n=It.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.3.2",
2
+ "version": "4.3.3",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
@@ -20,8 +20,8 @@
20
20
  "url": "https://github.com/ealush/vest.git/issues"
21
21
  },
22
22
  "dependencies": {
23
- "context": "^2.0.4",
24
- "n4s": "^4.1.5"
23
+ "context": "^2.0.5",
24
+ "n4s": "^4.1.6"
25
25
  },
26
26
  "homepage": "https://vestjs.dev/",
27
27
  "exports": {
package/types/vest.d.ts CHANGED
@@ -179,7 +179,10 @@ declare function createStateRef(state: State, { suiteId, suiteName }: {
179
179
  suiteId: string;
180
180
  suiteName?: void | string;
181
181
  }): {
182
- optionalFields: () => StateHandlerReturn<Record<string, boolean | (() => boolean)>>;
182
+ optionalFields: () => StateHandlerReturn<Record<string, [
183
+ rule: boolean | (() => boolean),
184
+ isApplied: boolean
185
+ ]>>;
183
186
  suiteId: () => StateHandlerReturn<string>;
184
187
  suiteName: () => StateHandlerReturn<string | void>;
185
188
  testCallbacks: () => StateHandlerReturn<{
@@ -353,6 +356,6 @@ declare const test: typeof testBase & {
353
356
  * Sets a running test to warn only mode.
354
357
  */
355
358
  declare function warn(): void;
356
- declare const VERSION = "4.3.2";
359
+ declare const VERSION = "4.3.3";
357
360
  export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
358
361
  export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };