vest 4.1.2 → 4.1.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.
@@ -1258,6 +1258,31 @@ function each(list, callback) {
1258
1258
  */
1259
1259
  var ERROR_HOOK_CALLED_OUTSIDE = 'hook called outside of a running suite.';
1260
1260
 
1261
+ /**
1262
+ * Conditionally skips running tests within the callback.
1263
+ *
1264
+ * @example
1265
+ *
1266
+ * skipWhen(res => res.hasErrors('username'), () => {
1267
+ * test('username', 'User already taken', async () => await doesUserExist(username)
1268
+ * });
1269
+ */
1270
+ function skipWhen(conditional, callback) {
1271
+ isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
1272
+ context.run({
1273
+ skipped:
1274
+ // Checking for nested conditional. If we're in a nested skipWhen,
1275
+ // we should skip the test if the parent conditional is true.
1276
+ isExcludedIndividually() ||
1277
+ // Otherwise, we should skip the test if the conditional is true.
1278
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1279
+ }, function () { return callback(); });
1280
+ });
1281
+ }
1282
+ function isExcludedIndividually() {
1283
+ return !!context.useX().skipped;
1284
+ }
1285
+
1261
1286
  /**
1262
1287
  * Adds a field or a list of fields into the inclusion list
1263
1288
  *
@@ -1284,9 +1309,6 @@ function skip(item) {
1284
1309
  skip.group = function (item) {
1285
1310
  return addTo(1 /* SKIP */, 'groups', item);
1286
1311
  };
1287
- function isExcludedIndividually() {
1288
- return !!context.useX().skipped;
1289
- }
1290
1312
  //Checks whether a certain test profile excluded by any of the exclusion groups.
1291
1313
  // eslint-disable-next-line complexity, max-statements, max-lines-per-function
1292
1314
  function isExcluded(testObject) {
@@ -1470,7 +1492,8 @@ function include(fieldName) {
1470
1492
  function omitWhen(conditional, callback) {
1471
1493
  isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
1472
1494
  context.run({
1473
- omitted: optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1495
+ omitted: isOmitted() ||
1496
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1474
1497
  }, function () { return callback(); });
1475
1498
  });
1476
1499
  }
@@ -1508,28 +1531,6 @@ function optional(optionals) {
1508
1531
  });
1509
1532
  }
1510
1533
 
1511
- /**
1512
- * Conditionally skips running tests within the callback.
1513
- *
1514
- * @example
1515
- *
1516
- * skipWhen(res => res.hasErrors('username'), () => {
1517
- * test('username', 'User already taken', async () => await doesUserExist(username)
1518
- * });
1519
- */
1520
- function skipWhen(conditional, callback) {
1521
- isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
1522
- context.run({
1523
- skipped:
1524
- // Checking for nested conditional. If we're in a nested skipWhen,
1525
- // we should skip the test if the parent conditional is true.
1526
- isExcludedIndividually() ||
1527
- // Otherwise, we should skip the test if the conditional is true.
1528
- optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1529
- }, function () { return callback(); });
1530
- });
1531
- }
1532
-
1533
1534
  var isNotString = bindNot(isStringValue);
1534
1535
 
1535
1536
  function isPromise(value) {
@@ -1819,7 +1820,7 @@ function warn() {
1819
1820
  ctx.currentTest.warn();
1820
1821
  }
1821
1822
 
1822
- var VERSION = "4.1.1";
1823
+ var VERSION = "4.1.3";
1823
1824
 
1824
1825
  Object.defineProperty(exports, 'enforce', {
1825
1826
  enumerable: true,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e=require("n4s"),r=require("context"),u=Object.assign,i=(n=0,function(){return"".concat(n++)});function o(n){return"function"==typeof n}function s(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o(n)?n.apply(void 0,t):n}function c(n,t){var e;return null!==(e=s(n))&&void 0!==e?e:t}function a(n,t){throw Error(c(t,n))}function f(n,t){setTimeout((function(){a(n,t)}),0)}function l(n){function t(n,t,u){return r.references.push(),e(n,s(t,u)),function(){return[r.references[n],function(t){return e(n,s(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,o(t=u[t][1])&&t(e,i),o(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 p(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 v(n){return[].concat(n)}function d(n){return(n=v(n))[n.length-1]}function g(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return d(t)},getCursor:function(){return v(t)},next:function(){return t[t.length-1]++,d(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"}(t||(t={}));var h=r.createContext((function(n,e){return e?null:u({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var b=m(E);function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(N(u,t)):(u=t(u),b(u)&&e.push(u))}return e}function C(n,t,e){return S(n,t)[d(t)]=e,n}function T(n){return v(n).reduce((function(n,t){return y(t)?n.concat(T(t)):v(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]=c(n[r],[]),n=n[r]}return n}function k(n){return void 0===n}function O(n){return E(n)||k(n)}function x(n){return String(n)===n}function I(n,t){return k(n)&&x(t)}function P(n,t){return n.length===Number(t)}function w(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function F(){return h.useX().stateRef}function _(){return F().suiteId()[0]}function D(){return F().testCallbacks()}function L(){return F().optionalFields()}function W(){return F().testObjects()}function X(){(0,W()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function A(n){(0,W()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function U(){return T(N(W()[0].current,(function(n){return n.isPending()?n:null})))}var R,M=w();function q(){var n=W()[0].current;return M([n],(function(){return T(n)}))}function G(n){q().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(R||(R={}));var j=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=i(),this.severity=R.Error,this.status=H,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){I(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Q||(this.status=n)},n.prototype.warns=function(){return this.severity===R.Warning},n.prototype.setPending=function(){this.setStatus(z)},n.prototype.fail=function(){this.setStatus(this.warns()?B:V)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Y)},n.prototype.warn=function(){this.severity=R.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(J),X()},n.prototype.reset=function(){this.status=H,X()},n.prototype.omit=function(){this.setStatus(Q)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(z)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Q)},n.prototype.isUntested=function(){return this.statusEquals(H)},n.prototype.isFailing=function(){return this.statusEquals(V)},n.prototype.isCanceled=function(){return this.statusEquals(J)},n.prototype.isSkipped=function(){return this.statusEquals(K)},n.prototype.isPassing=function(){return this.statusEquals(Y)},n.prototype.isWarning=function(){return this.statusEquals(B)},n.prototype.statusEquals=function(n){return this.status===n},n}(),H="UNTESTED",K="SKIPPED",V="FAILED",B="WARNING",Y="PASSING",z="PENDING",J="CANCELED",Q="OMITTED";function Z(){return h.useX().testCursor.getCursor()}function $(){return h.useX().testCursor.cursorAt()}function nn(){return h.useX().testCursor.next()}function tn(n,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(e)){var r={current:{},prev:{}},u=Z();return h.run({isolate:{type:n,keys:r}},(function(){h.useX().testCursor.addLevel(),r.prev=v(S(W()[0].prev,Z())).reduce((function(n,t){return t instanceof j&&!O(t.key)?(n[t.key]=t,n):n}),{}),A((function(n){return C(n,u,[])}));var n=e();return h.useX().testCursor.removeLevel(),nn(),n}))}}function en(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function rn(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(en(n,"length"))return P(n,0);if("object"==typeof n)return P(Object.keys(n),0)}return!0}var un=m(rn);function on(n,t){return!!t&&!sn(n,t)}function sn(n,t){return!(!t||n.fieldName!==t)}function cn(n){var t=U();return!rn(t)&&(n?t.some((function(t){return sn(t,n)})):un(t))}function an(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}var fn=function(){return(fn=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function ln(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 pn(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function vn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||on(n,r)||pn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),fn({},i&&((r={})[i]=[],r)))}function dn(n,t){return t?n[t]:n}function gn(n){return mn("errors",n)}function hn(n){return mn("warnings",n)}function mn(n,t){return dn(n=vn(n,q(),{fieldName:t}),t)}function yn(n,t){return dn(n=bn("errors",n,t),t)}function En(n,t){return dn(n=bn("warnings",n,t),t)}function bn(n,t,e){return t||a("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),vn(n,q(),{group:t,fieldName:e})}function Nn(n,t,e){return!(!n.hasFailures()||on(n,e)||pn(t,n))}function Cn(n){return Sn("errors",n)}function Tn(n){return Sn("warnings",n)}function Sn(n,t){return q().some((function(e){return Nn(e,n,t)}))}function kn(n,t){return xn("errors",n,t)}function On(n,t){return xn("warnings",n,t)}function xn(n,t,e){return q().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function In(n,t){return!!function(n){var t=q().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(rn(q())||function(n,t){return!!t&&rn(n.tests[t])}(n,t)||function(n){var t=L()[0];return un(U().filter((function(e){return!on(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=q(),e=L()[0];return t.every((function(t){return!!on(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Pn=w(20);function wn(){var n=q(),t={stateRef:F()};return Pn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return q().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=an(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=an(n.groups[r],t))})),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}(n)}(),{getErrors:h.bind(t,gn),getErrorsByGroup:h.bind(t,yn),getWarnings:h.bind(t,hn),getWarningsByGroup:h.bind(t,En),hasErrors:h.bind(t,Cn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Tn),hasWarningsByGroup:h.bind(t,On),isValid:h.bind(t,(function(n){return In(wn(),n)})),suiteName:n})})))}var Fn=w(20);function _n(){var n=q(),t={stateRef:F()};return Fn([n],h.bind(t,(function(){return u({},wn(),{done:h.bind(t,Xn)})})))}function Dn(n,t,e){return!(o(n)&&(!t||e.tests[t]&&!rn(e.tests[t].testCount)))}function Ln(n){return!(cn()&&(!n||cn(n)))}var Wn,Xn=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=_n(),Dn(e,n,t))return t;var r=function(){return e(wn())};return Ln(n)?(r(),t):(An(r,n),t)};function An(n,t){var e=h.bind({},n);(0,D()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Un(n){return n.forEach((function(n){return n()}))}function Rn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Wn.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=D()[0].fieldCallbacks;n&&!cn(n)&&y(t[n])&&Un(t[n])}(n.fieldName),function(){var n=D()[0].doneCallbacks;cn()||Un(n)}())})),n.on(Wn.SUITE_COMPLETED,(function(){!function(){var n=L()[0];if(!rn(n)){var t={};A((function(e){return N(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];o(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Wn.REMOVE_FIELD,(function(n){G((function(t){sn(t,n)&&(t.cancel(),function(n){A((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Wn.RESET_FIELD,(function(n){G((function(t){sn(t,n)&&t.reset()}))})),n}function Mn(){var n=h.useX();return n.bus||a(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_COMPLETED="suite_completed"}(Wn||(Wn={}));function qn(n){return Kn(0,"tests",n)}function Gn(n){return Kn(1,"tests",n)}function jn(){return!!h.useX().skipped}function Hn(n){var t=n.fieldName;if(n=n.groupName,jn())return!0;var e=h.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=h.useX().exclusion.groups;if(en(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Vn(u)||!1===u[t])}return!!function(n){var t=h.useX().exclusion;return!!function(){var n,t=h.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Vn(u)&&!s(e[t]))}function Kn(n,t,e){var r=h.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){x(e)&&(r.exclusion[t][e]=0===n)}))}function Vn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Bn(n){a("Wrong arguments passed to group. Group ".concat(n,"."))}qn.group=function(n){return Kn(0,"groups",n)},Gn.group=function(n){return Kn(1,"groups",n)};var Yn=m(x);function zn(n){return n&&o(n.then)}function Jn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Qn(n){var t=n.asyncTest,e=n.message;if(zn(t)){var r=Mn().emit,u=F(),i=h.bind({stateRef:u},(function(){X(),r(Wn.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function Zn(n){var t=Mn(),e=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){I(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{zn(e)?(n.asyncTest=e,n.setPending(),Qn(n)):t.emit(Wn.TEST_COMPLETED,n)}catch(t){a("Unexpected error encountered during test registration.\n Test Object: ".concat(n,".\n Error: ").concat(t,"."))}}function $n(n){var e=W()[0].prev;return rn(e)?(nt(n),n):(e=function(n){var t=Z();return function(n,t){return S(n,t)[d(t)]}(n,t)}(e),O(n.key)?(function(n,t){return un(n)&&!Jn(n,t)}(e,n)&&(function(n,e){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.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.'))}(e,n),function(){var n=W(),t=n[1],e=n[0].prev;n=S(e,Z());var r=$();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),nt(n=c(e,n)),n):(nt(n=function(n,t){var e=function(n){return h.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=h.useX().isolate.keys.current;O(e[n])?e[n]=t:f('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 nt(n){var t=Z();A((function(e){return C(e,t,n)}))}function tt(n){var t=$n(n);return h.useX().omitted?(t.omit(),nn(),t):Hn(n)?(t.skip(jn()),nn(),t):(function(n,t){t!==n&&Jn(n,t)&&n.isPending()&&n.cancel()}(t,n),nt(n),nn(),function(n){n.isUntested()?Zn(n):zn(n.asyncTest)&&(n.setPending(),Qn(n))}(n),n)}function et(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o(t[1])?t:ln([void 0],t,!0);t=r[0],e=r[1],r=r[2],Yn(n)&&ut("fieldName","string"),o(e)||ut("Test callback","function");var u=h.useX();return tt(t=new j(n,e,{message:t,groupName:u.groupName,key:r}))}var rt=u(et,{memo:function(n){var t=w(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=$();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[_(),e,u].concat(i),E(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)}))):tt(r[1])}}(et)});function ut(n,t){a("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.1.1",exports.context=h,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],o(r)||a("vest.create: Expected callback to be a function.");var s=Rn(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),tn({type:t.SUITE},(function(){r.apply(void 0,n)})),s.emit(Wn.SUITE_COMPLETED),_n()})),{get:h.bind(n,wn),remove:h.bind(n,(function(n){s.emit(Wn.REMOVE_FIELD,n)})),reset:c.reset,resetField:h.bind(n,(function(n){s.emit(Wn.RESET_FIELD,n)}))})},exports.each=function(n,e){o(e)||a("callback must be a function"),tn({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.group=function(n,e){x(n)||Bn("name must be a string"),o(e)||Bn("callback must be a function"),tn({type:t.GROUP},(function(){h.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=h.useX(),r=e.exclusion;e.inclusion[n]=function(){return en(r.tests,n)?c(r.tests[n],!0):x(t)?!!r.tests[t]:s(t,s(wn))}}var e=h.useX();return n?(e.inclusion[n]=c(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){tn({type:t.OMIT_WHEN},(function(){h.run({omitted:s(n,s(wn))},(function(){return e()}))}))},exports.only=qn,exports.optional=function(n){(0,L()[1])((function(t){if(y(n)||x(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Gn,exports.skipWhen=function(n,e){tn({type:t.SKIP_WHEN},(function(){h.run({skipped:jn()||s(n,s(wn))},(function(){return e()}))}))},exports.test=rt,exports.warn=function(){var n=h.useX("warn hook called outside of a running suite.");n.currentTest||a("warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e=require("n4s"),r=require("context"),u=Object.assign,i=(n=0,function(){return"".concat(n++)});function o(n){return"function"==typeof n}function s(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o(n)?n.apply(void 0,t):n}function c(n,t){var e;return null!==(e=s(n))&&void 0!==e?e:t}function a(n,t){throw Error(c(t,n))}function f(n,t){setTimeout((function(){a(n,t)}),0)}function l(n){function t(n,t,u){return r.references.push(),e(n,s(t,u)),function(){return[r.references[n],function(t){return e(n,s(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,o(t=u[t][1])&&t(e,i),o(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 p(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 v(n){return[].concat(n)}function d(n){return(n=v(n))[n.length-1]}function g(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return d(t)},getCursor:function(){return v(t)},next:function(){return t[t.length-1]++,d(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"}(t||(t={}));var h=r.createContext((function(n,e){return e?null:u({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var b=m(E);function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(N(u,t)):(u=t(u),b(u)&&e.push(u))}return e}function C(n,t,e){return S(n,t)[d(t)]=e,n}function T(n){return v(n).reduce((function(n,t){return y(t)?n.concat(T(t)):v(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]=c(n[r],[]),n=n[r]}return n}function k(n){return void 0===n}function O(n){return E(n)||k(n)}function x(n){return String(n)===n}function I(n,t){return k(n)&&x(t)}function P(n,t){return n.length===Number(t)}function w(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function F(){return h.useX().stateRef}function _(){return F().suiteId()[0]}function D(){return F().testCallbacks()}function L(){return F().optionalFields()}function W(){return F().testObjects()}function X(){(0,W()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function A(n){(0,W()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function U(){return T(N(W()[0].current,(function(n){return n.isPending()?n:null})))}var R,M=w();function q(){var n=W()[0].current;return M([n],(function(){return T(n)}))}function G(n){q().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(R||(R={}));var j=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=i(),this.severity=R.Error,this.status=H,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){I(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Q||(this.status=n)},n.prototype.warns=function(){return this.severity===R.Warning},n.prototype.setPending=function(){this.setStatus(z)},n.prototype.fail=function(){this.setStatus(this.warns()?B:V)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Y)},n.prototype.warn=function(){this.severity=R.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(J),X()},n.prototype.reset=function(){this.status=H,X()},n.prototype.omit=function(){this.setStatus(Q)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(z)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Q)},n.prototype.isUntested=function(){return this.statusEquals(H)},n.prototype.isFailing=function(){return this.statusEquals(V)},n.prototype.isCanceled=function(){return this.statusEquals(J)},n.prototype.isSkipped=function(){return this.statusEquals(K)},n.prototype.isPassing=function(){return this.statusEquals(Y)},n.prototype.isWarning=function(){return this.statusEquals(B)},n.prototype.statusEquals=function(n){return this.status===n},n}(),H="UNTESTED",K="SKIPPED",V="FAILED",B="WARNING",Y="PASSING",z="PENDING",J="CANCELED",Q="OMITTED";function Z(){return h.useX().testCursor.getCursor()}function $(){return h.useX().testCursor.cursorAt()}function nn(){return h.useX().testCursor.next()}function tn(n,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(e)){var r={current:{},prev:{}},u=Z();return h.run({isolate:{type:n,keys:r}},(function(){h.useX().testCursor.addLevel(),r.prev=v(S(W()[0].prev,Z())).reduce((function(n,t){return t instanceof j&&!O(t.key)?(n[t.key]=t,n):n}),{}),A((function(n){return C(n,u,[])}));var n=e();return h.useX().testCursor.removeLevel(),nn(),n}))}}function en(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function rn(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(en(n,"length"))return P(n,0);if("object"==typeof n)return P(Object.keys(n),0)}return!0}var un=m(rn);function on(n,t){return!!t&&!sn(n,t)}function sn(n,t){return!(!t||n.fieldName!==t)}function cn(n){var t=U();return!rn(t)&&(n?t.some((function(t){return sn(t,n)})):un(t))}function an(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}var fn=function(){return(fn=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function ln(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 pn(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function vn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||on(n,r)||pn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),fn({},i&&((r={})[i]=[],r)))}function dn(n,t){return t?n[t]:n}function gn(n){return mn("errors",n)}function hn(n){return mn("warnings",n)}function mn(n,t){return dn(n=vn(n,q(),{fieldName:t}),t)}function yn(n,t){return dn(n=bn("errors",n,t),t)}function En(n,t){return dn(n=bn("warnings",n,t),t)}function bn(n,t,e){return t||a("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),vn(n,q(),{group:t,fieldName:e})}function Nn(n,t,e){return!(!n.hasFailures()||on(n,e)||pn(t,n))}function Cn(n){return Sn("errors",n)}function Tn(n){return Sn("warnings",n)}function Sn(n,t){return q().some((function(e){return Nn(e,n,t)}))}function kn(n,t){return xn("errors",n,t)}function On(n,t){return xn("warnings",n,t)}function xn(n,t,e){return q().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function In(n,t){return!!function(n){var t=q().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(rn(q())||function(n,t){return!!t&&rn(n.tests[t])}(n,t)||function(n){var t=L()[0];return un(U().filter((function(e){return!on(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=q(),e=L()[0];return t.every((function(t){return!!on(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Pn=w(20);function wn(){var n=q(),t={stateRef:F()};return Pn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return q().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=an(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=an(n.groups[r],t))})),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}(n)}(),{getErrors:h.bind(t,gn),getErrorsByGroup:h.bind(t,yn),getWarnings:h.bind(t,hn),getWarningsByGroup:h.bind(t,En),hasErrors:h.bind(t,Cn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Tn),hasWarningsByGroup:h.bind(t,On),isValid:h.bind(t,(function(n){return In(wn(),n)})),suiteName:n})})))}var Fn=w(20);function _n(){var n=q(),t={stateRef:F()};return Fn([n],h.bind(t,(function(){return u({},wn(),{done:h.bind(t,Xn)})})))}function Dn(n,t,e){return!(o(n)&&(!t||e.tests[t]&&!rn(e.tests[t].testCount)))}function Ln(n){return!(cn()&&(!n||cn(n)))}var Wn,Xn=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=_n(),Dn(e,n,t))return t;var r=function(){return e(wn())};return Ln(n)?(r(),t):(An(r,n),t)};function An(n,t){var e=h.bind({},n);(0,D()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Un(n){return n.forEach((function(n){return n()}))}function Rn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Wn.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=D()[0].fieldCallbacks;n&&!cn(n)&&y(t[n])&&Un(t[n])}(n.fieldName),function(){var n=D()[0].doneCallbacks;cn()||Un(n)}())})),n.on(Wn.SUITE_COMPLETED,(function(){!function(){var n=L()[0];if(!rn(n)){var t={};A((function(e){return N(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];o(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Wn.REMOVE_FIELD,(function(n){G((function(t){sn(t,n)&&(t.cancel(),function(n){A((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Wn.RESET_FIELD,(function(n){G((function(t){sn(t,n)&&t.reset()}))})),n}function Mn(){var n=h.useX();return n.bus||a(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_COMPLETED="suite_completed"}(Wn||(Wn={}));function qn(){return!!h.useX().skipped}function Gn(n){return Kn(0,"tests",n)}function jn(n){return Kn(1,"tests",n)}function Hn(n){var t=n.fieldName;if(n=n.groupName,qn())return!0;var e=h.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=h.useX().exclusion.groups;if(en(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Vn(u)||!1===u[t])}return!!function(n){var t=h.useX().exclusion;return!!function(){var n,t=h.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Vn(u)&&!s(e[t]))}function Kn(n,t,e){var r=h.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){x(e)&&(r.exclusion[t][e]=0===n)}))}function Vn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Bn(n){a("Wrong arguments passed to group. Group ".concat(n,"."))}function Yn(){return!!h.useX().omitted}Gn.group=function(n){return Kn(0,"groups",n)},jn.group=function(n){return Kn(1,"groups",n)};var zn=m(x);function Jn(n){return n&&o(n.then)}function Qn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Zn(n){var t=n.asyncTest,e=n.message;if(Jn(t)){var r=Mn().emit,u=F(),i=h.bind({stateRef:u},(function(){X(),r(Wn.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function $n(n){var t=Mn(),e=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){I(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{Jn(e)?(n.asyncTest=e,n.setPending(),Zn(n)):t.emit(Wn.TEST_COMPLETED,n)}catch(t){a("Unexpected error encountered during test registration.\n Test Object: ".concat(n,".\n Error: ").concat(t,"."))}}function nt(n){var e=W()[0].prev;return rn(e)?(tt(n),n):(e=function(n){var t=Z();return function(n,t){return S(n,t)[d(t)]}(n,t)}(e),O(n.key)?(function(n,t){return un(n)&&!Qn(n,t)}(e,n)&&(function(n,e){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.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.'))}(e,n),function(){var n=W(),t=n[1],e=n[0].prev;n=S(e,Z());var r=$();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),tt(n=c(e,n)),n):(tt(n=function(n,t){var e=function(n){return h.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=h.useX().isolate.keys.current;O(e[n])?e[n]=t:f('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 tt(n){var t=Z();A((function(e){return C(e,t,n)}))}function et(n){var t=nt(n);return Yn()?(t.omit(),nn(),t):Hn(n)?(t.skip(qn()),nn(),t):(function(n,t){t!==n&&Qn(n,t)&&n.isPending()&&n.cancel()}(t,n),tt(n),nn(),function(n){n.isUntested()?$n(n):Jn(n.asyncTest)&&(n.setPending(),Zn(n))}(n),n)}function rt(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o(t[1])?t:ln([void 0],t,!0);t=r[0],e=r[1],r=r[2],zn(n)&&it("fieldName","string"),o(e)||it("Test callback","function");var u=h.useX();return et(t=new j(n,e,{message:t,groupName:u.groupName,key:r}))}var ut=u(rt,{memo:function(n){var t=w(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=$();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[_(),e,u].concat(i),E(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)}))):et(r[1])}}(rt)});function it(n,t){a("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.1.3",exports.context=h,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],o(r)||a("vest.create: Expected callback to be a function.");var s=Rn(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),tn({type:t.SUITE},(function(){r.apply(void 0,n)})),s.emit(Wn.SUITE_COMPLETED),_n()})),{get:h.bind(n,wn),remove:h.bind(n,(function(n){s.emit(Wn.REMOVE_FIELD,n)})),reset:c.reset,resetField:h.bind(n,(function(n){s.emit(Wn.RESET_FIELD,n)}))})},exports.each=function(n,e){o(e)||a("callback must be a function"),tn({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.group=function(n,e){x(n)||Bn("name must be a string"),o(e)||Bn("callback must be a function"),tn({type:t.GROUP},(function(){h.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=h.useX(),r=e.exclusion;e.inclusion[n]=function(){return en(r.tests,n)?c(r.tests[n],!0):x(t)?!!r.tests[t]:s(t,s(wn))}}var e=h.useX();return n?(e.inclusion[n]=c(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){tn({type:t.OMIT_WHEN},(function(){h.run({omitted:Yn()||s(n,s(wn))},(function(){return e()}))}))},exports.only=Gn,exports.optional=function(n){(0,L()[1])((function(t){if(y(n)||x(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=jn,exports.skipWhen=function(n,e){tn({type:t.SKIP_WHEN},(function(){h.run({skipped:qn()||s(n,s(wn))},(function(){return e()}))}))},exports.test=ut,exports.warn=function(){var n=h.useX("warn hook called outside of a running suite.");n.currentTest||a("warn called outside of a test."),n.currentTest.warn()};
@@ -1254,6 +1254,31 @@ function each(list, callback) {
1254
1254
  */
1255
1255
  var ERROR_HOOK_CALLED_OUTSIDE = 'hook called outside of a running suite.';
1256
1256
 
1257
+ /**
1258
+ * Conditionally skips running tests within the callback.
1259
+ *
1260
+ * @example
1261
+ *
1262
+ * skipWhen(res => res.hasErrors('username'), () => {
1263
+ * test('username', 'User already taken', async () => await doesUserExist(username)
1264
+ * });
1265
+ */
1266
+ function skipWhen(conditional, callback) {
1267
+ isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
1268
+ context.run({
1269
+ skipped:
1270
+ // Checking for nested conditional. If we're in a nested skipWhen,
1271
+ // we should skip the test if the parent conditional is true.
1272
+ isExcludedIndividually() ||
1273
+ // Otherwise, we should skip the test if the conditional is true.
1274
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1275
+ }, function () { return callback(); });
1276
+ });
1277
+ }
1278
+ function isExcludedIndividually() {
1279
+ return !!context.useX().skipped;
1280
+ }
1281
+
1257
1282
  /**
1258
1283
  * Adds a field or a list of fields into the inclusion list
1259
1284
  *
@@ -1280,9 +1305,6 @@ function skip(item) {
1280
1305
  skip.group = function (item) {
1281
1306
  return addTo(1 /* SKIP */, 'groups', item);
1282
1307
  };
1283
- function isExcludedIndividually() {
1284
- return !!context.useX().skipped;
1285
- }
1286
1308
  //Checks whether a certain test profile excluded by any of the exclusion groups.
1287
1309
  // eslint-disable-next-line complexity, max-statements, max-lines-per-function
1288
1310
  function isExcluded(testObject) {
@@ -1466,7 +1488,8 @@ function include(fieldName) {
1466
1488
  function omitWhen(conditional, callback) {
1467
1489
  isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
1468
1490
  context.run({
1469
- omitted: optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1491
+ omitted: isOmitted() ||
1492
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1470
1493
  }, function () { return callback(); });
1471
1494
  });
1472
1495
  }
@@ -1504,28 +1527,6 @@ function optional(optionals) {
1504
1527
  });
1505
1528
  }
1506
1529
 
1507
- /**
1508
- * Conditionally skips running tests within the callback.
1509
- *
1510
- * @example
1511
- *
1512
- * skipWhen(res => res.hasErrors('username'), () => {
1513
- * test('username', 'User already taken', async () => await doesUserExist(username)
1514
- * });
1515
- */
1516
- function skipWhen(conditional, callback) {
1517
- isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
1518
- context.run({
1519
- skipped:
1520
- // Checking for nested conditional. If we're in a nested skipWhen,
1521
- // we should skip the test if the parent conditional is true.
1522
- isExcludedIndividually() ||
1523
- // Otherwise, we should skip the test if the conditional is true.
1524
- optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1525
- }, function () { return callback(); });
1526
- });
1527
- }
1528
-
1529
1530
  var isNotString = bindNot(isStringValue);
1530
1531
 
1531
1532
  function isPromise(value) {
@@ -1815,6 +1816,6 @@ function warn() {
1815
1816
  ctx.currentTest.warn();
1816
1817
  }
1817
1818
 
1818
- var VERSION = "4.1.1";
1819
+ var VERSION = "4.1.3";
1819
1820
 
1820
1821
  export { VERSION, context, create, each, 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=Object.assign,r=(n=0,function(){return"".concat(n++)});function u(t){return"function"==typeof t}function i(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return u(t)?t.apply(void 0,n):t}function o(t,n){var e;return null!==(e=i(t))&&void 0!==e?e:n}function s(t,n){throw Error(o(n,t))}function a(t,n){setTimeout((function(){s(t,n)}),0)}function c(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,u(n=o[n][1])&&n(e,i),u(t)&&t()}var r={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}var f,l=f||(f={});function p(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 d(t){return(t=[].concat(t))[t.length-1]}function v(){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}}l[l.DEFAULT=0]="DEFAULT",l[l.SUITE=1]="SUITE",l[l.EACH=2]="EACH",l[l.SKIP_WHEN=3]="SKIP_WHEN",l[l.OMIT_WHEN=4]="OMIT_WHEN",l[l.GROUP=5]="GROUP";var g=t((function(t,n){return n?null:e({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:f.DEFAULT,keys:{current:{},prev:{}}},testCursor:v()},t)}));function h(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var m=h((function(t){return null===t}));function y(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(y(u,n)):(u=n(u),m(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 b(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=o(t[r],[]),t=t[r]}return t}function N(t){return null==t}function C(t){return String(t)===t}function T(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),e.length>Number(t)&&(e.length=t),u)}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){var n=e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<n&&e.splice(n,1)},n.get=function(t){return e[e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},n}function k(){return g.useX().stateRef}function S(){return k().testObjects()}function O(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function w(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return E(y(S()[0].current,(function(t){return t.isPending()?t:null})))}var I=T();function P(){var t=S()[0].current;return I([t],(function(){return E(t)}))}var A,X=A||(A={});X.Error="error",X.Warning="warning";var D=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=A.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&C(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==G||(this.status=t)},t.prototype.warns=function(){return this.severity===A.Warning},t.prototype.setPending=function(){this.setStatus(R)},t.prototype.fail=function(){this.setStatus(this.warns()?U:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=A.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(_)},t.prototype.cancel=function(){this.setStatus(M),O()},t.prototype.reset=function(){this.status=L,O()},t.prototype.omit=function(){this.setStatus(G)},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(R)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(G)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(M)},t.prototype.isSkipped=function(){return this.statusEquals(_)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(U)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",_="SKIPPED",x="FAILED",U="WARNING",W="PASSING",R="PENDING",M="CANCELED",G="OMITTED";function j(){return g.useX().testCursor.getCursor()}function q(){return g.useX().testCursor.next()}function H(t,n){if(t=void 0===(t=t.type)?f.DEFAULT:t,u(n)){var e={current:{},prev:{}},r=j();return g.run({isolate:{type:t,keys:e}},(function(){g.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(b(t,j())).reduce((function(t,n){return n instanceof D&&!N(n.key)?(t[n.key]=n,t):t}),{})}(),w((function(t){return b(t,r)[d(r)]=[],t}));var t=n();return g.useX().testCursor.removeLevel(),q(),t}))}}function K(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}var V=h(K);function B(t,n){return!(!n||t.fieldName!==n)}function Y(t){var n=F();return!K(n)&&(t?n.some((function(n){return B(n,t)})):V(n))}function z(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function J(){return(J=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(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 Z(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!B(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),J({},i&&((r={})[i]=[],r)))}function $(t){return nt("errors",t)}function tt(t){return nt("warnings",t)}function nt(t,n){return t=Z(t,P(),{fieldName:n}),n?t[n]:t}function et(t,n){return t=ut("errors",t,n),n?t[n]:t}function rt(t,n){return t=ut("warnings",t,n),n?t[n]:t}function ut(t,n,e){return n||s("get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),Z(t,P(),{group:n,fieldName:e})}function it(t,n,e){return(e=!t.hasFailures()||e&&!B(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function ot(t){return at("errors",t)}function st(t){return at("warnings",t)}function at(t,n){return P().some((function(e){return it(e,t,n)}))}function ct(t,n){return lt("errors",t,n)}function ft(t,n){return lt("warnings",t,n)}function lt(t,n,e){return P().some((function(r){return n===r.groupName&&it(r,t,e)}))}var pt=T(20);function dt(){var t=P(),n={stateRef:k()};return pt([t],g.bind(n,(function(){var t=k().suiteName()[0];return e(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return P().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=z(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=z(t.groups[r],n))})),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}(t)}(),{getErrors:g.bind(n,$),getErrorsByGroup:g.bind(n,et),getWarnings:g.bind(n,tt),getWarningsByGroup:g.bind(n,rt),hasErrors:g.bind(n,ot),hasErrorsByGroup:g.bind(n,ct),hasWarnings:g.bind(n,st),hasWarningsByGroup:g.bind(n,ft),isValid:g.bind(n,(function(t){var n=dt(),e=P().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(K(e=P())||t&&K(n.tests[t])||function(t){var n=k().optionalFields()[0];return V(F().filter((function(e){return!(t&&!B(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=P(),e=k().optionalFields()[0];return n.every((function(n){return!(!t||B(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}var vt=T(20);function gt(){var t=P(),n={stateRef:k()};return vt([t],g.bind(n,(function(){return e({},dt(),{done:g.bind(n,yt)})})))}function ht(t,n,e){return!(u(t)&&(!n||e.tests[n]&&!K(e.tests[n].testCount)))}function mt(t){return!(Y()&&(!t||Y(t)))}function yt(){function t(){return r(dt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=gt(),ht(r,n,e)?e:mt(n)?(t(),e):(Et(t,n),e)}function Et(t,n){var e=g.bind({},t);(0,k().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function bt(t){return t.forEach((function(t){return t()}))}function Nt(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Tt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=k().testCallbacks()[0].fieldCallbacks;t&&!Y(t)&&Array.isArray(n[t])&&bt(n[t]),t=k().testCallbacks()[0].doneCallbacks,Y()||bt(t)}})),t.on(Tt.SUITE_COMPLETED,(function(){!function(){var t=k().optionalFields()[0];if(!K(t)){var n={};w((function(e){return y(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var i=t[r];u(i)&&(n[r]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Tt.REMOVE_FIELD,(function(t){P().forEach((function(n){B(n,t)&&(n.cancel(),function(t){w((function(n){return y(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Tt.RESET_FIELD,(function(t){P().forEach((function(n){B(n,t)&&n.reset()}))})),t}function Ct(){var t=g.useX();return t.bus||s(),t.bus}var Tt,kt=Tt||(Tt={});function St(t){return wt(0,"tests",t)}function Ot(t){return wt(1,"tests",t)}function wt(t,n,e){var r=g.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){C(e)&&(r.exclusion[n][e]=0===t)}))}function Ft(t){for(var n in t)if(!0===t[n])return!0;return!1}function It(t){s("Wrong arguments passed to group. Group ".concat(t,"."))}kt.TEST_COMPLETED="test_completed",kt.REMOVE_FIELD="remove_field",kt.RESET_FIELD="reset_field",kt.SUITE_COMPLETED="suite_completed",St.group=function(t){return wt(0,"groups",t)},Ot.group=function(t){return wt(1,"groups",t)};var Pt=h(C);function At(t){var n=t.asyncTest,e=t.message;if(n&&u(n.then)){var r=Ct().emit,i=k(),o=g.bind({stateRef:i},(function(){O(),r(Tt.TEST_COMPLETED,t)}));i=g.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=C(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=j();w((function(e){return b(e,n)[d(n)]=t,e}))}function Dt(t){var n=S()[0].prev;if(K(n))Xt(t),n=t;else{var e=j();if(n=b(n,e)[d(e)],N(t.key))!V(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(g.useX().isolate.type!==f.EACH&&a("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=b(e,j());var r=g.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=o(n,t));else{n=t.key;var r=g.useX().isolate.keys.prev[n];e=t,r&&(e=r),r=e;var c=g.useX().isolate.keys.current;N(c[n])?c[n]=r:a('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Xt(n=e)}}if(g.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,g.useX().skipped)return!0;var e=g.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){t:{var s=g.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(s,t))var a=!1===s[t];else{for(a in s)if(!0===s[a]){a=!0;break t}a=!1}}if(a)return!0;if(!0===r.groups[t])return!(o||!Ft(u)&&!1!==u[n])}r=g.useX().exclusion;t:{for(c in(a=g.useX().exclusion).groups)if(a.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!o&&!!Ft(u)&&!i(e[n])}(t))return n.skip(!!g.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),q(),t.isUntested()){n=Ct(),e=function(t){return g.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&C(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&u(e.then)?(t.asyncTest=e,t.setPending(),At(t)):n.emit(Tt.TEST_COMPLETED,t)}catch(n){s("Unexpected error encountered during test registration.\n Test Object: ".concat(t,".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&u(n.then)&&(t.setPending(),At(t));return t}function Lt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=u(n[1])?n:Q([void 0],n,!0);n=r[0],e=r[1],r=r[2],Pt(t)&&xt("fieldName","string"),u(e)||xt("Test callback","function");var i=g.useX();return Dt(n=new D(t,e,{message:n,groupName:i.groupName,key:r}))}var _t=e(Lt,{memo:function(t){var n=T(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=g.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Dt(r[1])}}(Lt)});function xt(t,n){s("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ut="4.1.1";function Wt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=(t=t.reverse())[0];t=t[1],u(i)||s("vest.create: Expected callback to be a function.");var o=Nt(),a=c();return t={stateRef:p(a,{suiteId:r(),suiteName:t}),bus:o},e(g.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),H({type:f.SUITE},(function(){i.apply(void 0,t)})),o.emit(Tt.SUITE_COMPLETED),gt()})),{get:g.bind(t,dt),remove:g.bind(t,(function(t){o.emit(Tt.REMOVE_FIELD,t)})),reset:a.reset,resetField:g.bind(t,(function(t){o.emit(Tt.RESET_FIELD,t)}))})}function Rt(t,n){u(n)||s("callback must be a function"),H({type:f.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Mt(t,n){C(t)||It("name must be a string"),u(n)||It("callback must be a function"),H({type:f.GROUP},(function(){g.run({groupName:t},n)}))}function Gt(t){function n(n){var e=g.useX(),r=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(r.tests,t)?o(r.tests[t],!0):C(n)?!!r.tests[n]:i(n,i(dt))}}var e=g.useX();return t?(e.inclusion[t]=o(e.exclusion.tests[t],!0),{when:n}):{when:n}}function jt(t,n){H({type:f.OMIT_WHEN},(function(){g.run({omitted:i(t,i(dt))},(function(){return n()}))}))}function qt(t){(0,k().optionalFields()[1])((function(n){if(Array.isArray(t)||C(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Ht(t,n){H({type:f.SKIP_WHEN},(function(){g.run({skipped:!!g.useX().skipped||i(t,i(dt))},(function(){return n()}))}))}function Kt(){var t=g.useX("warn hook called outside of a running suite.");t.currentTest||s("warn called outside of a test."),t.currentTest.warn()}export{Ut as VERSION,g as context,Wt as create,Rt as each,Mt as group,Gt as include,jt as omitWhen,St as only,qt as optional,Ot as skip,Ht as skipWhen,_t as test,Kt as warn};
1
+ import{createContext as t}from"context";export{enforce}from"n4s";var n,e=Object.assign,r=(n=0,function(){return"".concat(n++)});function u(t){return"function"==typeof t}function i(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return u(t)?t.apply(void 0,n):t}function o(t,n){var e;return null!==(e=i(t))&&void 0!==e?e:n}function s(t,n){throw Error(o(n,t))}function a(t,n){setTimeout((function(){s(t,n)}),0)}function c(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,u(n=o[n][1])&&n(e,i),u(t)&&t()}var r={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}var f,l=f||(f={});function p(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 d(t){return(t=[].concat(t))[t.length-1]}function v(){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}}l[l.DEFAULT=0]="DEFAULT",l[l.SUITE=1]="SUITE",l[l.EACH=2]="EACH",l[l.SKIP_WHEN=3]="SKIP_WHEN",l[l.OMIT_WHEN=4]="OMIT_WHEN",l[l.GROUP=5]="GROUP";var g=t((function(t,n){return n?null:e({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:f.DEFAULT,keys:{current:{},prev:{}}},testCursor:v()},t)}));function h(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var m=h((function(t){return null===t}));function y(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(y(u,n)):(u=n(u),m(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 b(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=o(t[r],[]),t=t[r]}return t}function N(t){return null==t}function C(t){return String(t)===t}function T(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),e.length>Number(t)&&(e.length=t),u)}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){var n=e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<n&&e.splice(n,1)},n.get=function(t){return e[e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},n}function k(){return g.useX().stateRef}function S(){return k().testObjects()}function O(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function w(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return E(y(S()[0].current,(function(t){return t.isPending()?t:null})))}var I=T();function P(){var t=S()[0].current;return I([t],(function(){return E(t)}))}var A,X=A||(A={});X.Error="error",X.Warning="warning";var D=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=A.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&C(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==G||(this.status=t)},t.prototype.warns=function(){return this.severity===A.Warning},t.prototype.setPending=function(){this.setStatus(R)},t.prototype.fail=function(){this.setStatus(this.warns()?U:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=A.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(_)},t.prototype.cancel=function(){this.setStatus(M),O()},t.prototype.reset=function(){this.status=L,O()},t.prototype.omit=function(){this.setStatus(G)},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(R)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(G)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(M)},t.prototype.isSkipped=function(){return this.statusEquals(_)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(U)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",_="SKIPPED",x="FAILED",U="WARNING",W="PASSING",R="PENDING",M="CANCELED",G="OMITTED";function j(){return g.useX().testCursor.getCursor()}function q(){return g.useX().testCursor.next()}function H(t,n){if(t=void 0===(t=t.type)?f.DEFAULT:t,u(n)){var e={current:{},prev:{}},r=j();return g.run({isolate:{type:t,keys:e}},(function(){g.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(b(t,j())).reduce((function(t,n){return n instanceof D&&!N(n.key)?(t[n.key]=n,t):t}),{})}(),w((function(t){return b(t,r)[d(r)]=[],t}));var t=n();return g.useX().testCursor.removeLevel(),q(),t}))}}function K(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}var V=h(K);function B(t,n){return!(!n||t.fieldName!==n)}function Y(t){var n=F();return!K(n)&&(t?n.some((function(n){return B(n,t)})):V(n))}function z(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function J(){return(J=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(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 Z(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!B(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),J({},i&&((r={})[i]=[],r)))}function $(t){return nt("errors",t)}function tt(t){return nt("warnings",t)}function nt(t,n){return t=Z(t,P(),{fieldName:n}),n?t[n]:t}function et(t,n){return t=ut("errors",t,n),n?t[n]:t}function rt(t,n){return t=ut("warnings",t,n),n?t[n]:t}function ut(t,n,e){return n||s("get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),Z(t,P(),{group:n,fieldName:e})}function it(t,n,e){return(e=!t.hasFailures()||e&&!B(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function ot(t){return at("errors",t)}function st(t){return at("warnings",t)}function at(t,n){return P().some((function(e){return it(e,t,n)}))}function ct(t,n){return lt("errors",t,n)}function ft(t,n){return lt("warnings",t,n)}function lt(t,n,e){return P().some((function(r){return n===r.groupName&&it(r,t,e)}))}var pt=T(20);function dt(){var t=P(),n={stateRef:k()};return pt([t],g.bind(n,(function(){var t=k().suiteName()[0];return e(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return P().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=z(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=z(t.groups[r],n))})),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}(t)}(),{getErrors:g.bind(n,$),getErrorsByGroup:g.bind(n,et),getWarnings:g.bind(n,tt),getWarningsByGroup:g.bind(n,rt),hasErrors:g.bind(n,ot),hasErrorsByGroup:g.bind(n,ct),hasWarnings:g.bind(n,st),hasWarningsByGroup:g.bind(n,ft),isValid:g.bind(n,(function(t){var n=dt(),e=P().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(K(e=P())||t&&K(n.tests[t])||function(t){var n=k().optionalFields()[0];return V(F().filter((function(e){return!(t&&!B(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=P(),e=k().optionalFields()[0];return n.every((function(n){return!(!t||B(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}var vt=T(20);function gt(){var t=P(),n={stateRef:k()};return vt([t],g.bind(n,(function(){return e({},dt(),{done:g.bind(n,yt)})})))}function ht(t,n,e){return!(u(t)&&(!n||e.tests[n]&&!K(e.tests[n].testCount)))}function mt(t){return!(Y()&&(!t||Y(t)))}function yt(){function t(){return r(dt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=gt(),ht(r,n,e)?e:mt(n)?(t(),e):(Et(t,n),e)}function Et(t,n){var e=g.bind({},t);(0,k().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function bt(t){return t.forEach((function(t){return t()}))}function Nt(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Tt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=k().testCallbacks()[0].fieldCallbacks;t&&!Y(t)&&Array.isArray(n[t])&&bt(n[t]),t=k().testCallbacks()[0].doneCallbacks,Y()||bt(t)}})),t.on(Tt.SUITE_COMPLETED,(function(){!function(){var t=k().optionalFields()[0];if(!K(t)){var n={};w((function(e){return y(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var i=t[r];u(i)&&(n[r]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Tt.REMOVE_FIELD,(function(t){P().forEach((function(n){B(n,t)&&(n.cancel(),function(t){w((function(n){return y(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Tt.RESET_FIELD,(function(t){P().forEach((function(n){B(n,t)&&n.reset()}))})),t}function Ct(){var t=g.useX();return t.bus||s(),t.bus}var Tt,kt=Tt||(Tt={});function St(t){return wt(0,"tests",t)}function Ot(t){return wt(1,"tests",t)}function wt(t,n,e){var r=g.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){C(e)&&(r.exclusion[n][e]=0===t)}))}function Ft(t){for(var n in t)if(!0===t[n])return!0;return!1}function It(t){s("Wrong arguments passed to group. Group ".concat(t,"."))}kt.TEST_COMPLETED="test_completed",kt.REMOVE_FIELD="remove_field",kt.RESET_FIELD="reset_field",kt.SUITE_COMPLETED="suite_completed",St.group=function(t){return wt(0,"groups",t)},Ot.group=function(t){return wt(1,"groups",t)};var Pt=h(C);function At(t){var n=t.asyncTest,e=t.message;if(n&&u(n.then)){var r=Ct().emit,i=k(),o=g.bind({stateRef:i},(function(){O(),r(Tt.TEST_COMPLETED,t)}));i=g.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=C(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=j();w((function(e){return b(e,n)[d(n)]=t,e}))}function Dt(t){var n=S()[0].prev;if(K(n))Xt(t),n=t;else{var e=j();if(n=b(n,e)[d(e)],N(t.key))!V(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(g.useX().isolate.type!==f.EACH&&a("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=b(e,j());var r=g.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=o(n,t));else{n=t.key;var r=g.useX().isolate.keys.prev[n];e=t,r&&(e=r),r=e;var c=g.useX().isolate.keys.current;N(c[n])?c[n]=r:a('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Xt(n=e)}}if(g.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,g.useX().skipped)return!0;var e=g.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){t:{var s=g.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(s,t))var a=!1===s[t];else{for(a in s)if(!0===s[a]){a=!0;break t}a=!1}}if(a)return!0;if(!0===r.groups[t])return!(o||!Ft(u)&&!1!==u[n])}r=g.useX().exclusion;t:{for(c in(a=g.useX().exclusion).groups)if(a.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!o&&!!Ft(u)&&!i(e[n])}(t))return n.skip(!!g.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),q(),t.isUntested()){n=Ct(),e=function(t){return g.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&C(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&u(e.then)?(t.asyncTest=e,t.setPending(),At(t)):n.emit(Tt.TEST_COMPLETED,t)}catch(n){s("Unexpected error encountered during test registration.\n Test Object: ".concat(t,".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&u(n.then)&&(t.setPending(),At(t));return t}function Lt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=u(n[1])?n:Q([void 0],n,!0);n=r[0],e=r[1],r=r[2],Pt(t)&&xt("fieldName","string"),u(e)||xt("Test callback","function");var i=g.useX();return Dt(n=new D(t,e,{message:n,groupName:i.groupName,key:r}))}var _t=e(Lt,{memo:function(t){var n=T(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=g.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Dt(r[1])}}(Lt)});function xt(t,n){s("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ut="4.1.3";function Wt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=(t=t.reverse())[0];t=t[1],u(i)||s("vest.create: Expected callback to be a function.");var o=Nt(),a=c();return t={stateRef:p(a,{suiteId:r(),suiteName:t}),bus:o},e(g.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),H({type:f.SUITE},(function(){i.apply(void 0,t)})),o.emit(Tt.SUITE_COMPLETED),gt()})),{get:g.bind(t,dt),remove:g.bind(t,(function(t){o.emit(Tt.REMOVE_FIELD,t)})),reset:a.reset,resetField:g.bind(t,(function(t){o.emit(Tt.RESET_FIELD,t)}))})}function Rt(t,n){u(n)||s("callback must be a function"),H({type:f.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Mt(t,n){C(t)||It("name must be a string"),u(n)||It("callback must be a function"),H({type:f.GROUP},(function(){g.run({groupName:t},n)}))}function Gt(t){function n(n){var e=g.useX(),r=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(r.tests,t)?o(r.tests[t],!0):C(n)?!!r.tests[n]:i(n,i(dt))}}var e=g.useX();return t?(e.inclusion[t]=o(e.exclusion.tests[t],!0),{when:n}):{when:n}}function jt(t,n){H({type:f.OMIT_WHEN},(function(){g.run({omitted:!!g.useX().omitted||i(t,i(dt))},(function(){return n()}))}))}function qt(t){(0,k().optionalFields()[1])((function(n){if(Array.isArray(t)||C(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Ht(t,n){H({type:f.SKIP_WHEN},(function(){g.run({skipped:!!g.useX().skipped||i(t,i(dt))},(function(){return n()}))}))}function Kt(){var t=g.useX("warn hook called outside of a running suite.");t.currentTest||s("warn called outside of a test."),t.currentTest.warn()}export{Ut as VERSION,g as context,Wt as create,Rt as each,Mt as group,Gt as include,jt as omitWhen,St as only,qt as optional,Ot as skip,Ht as skipWhen,_t as test,Kt as warn};
@@ -1802,6 +1802,31 @@
1802
1802
  */
1803
1803
  var ERROR_HOOK_CALLED_OUTSIDE = 'hook called outside of a running suite.';
1804
1804
 
1805
+ /**
1806
+ * Conditionally skips running tests within the callback.
1807
+ *
1808
+ * @example
1809
+ *
1810
+ * skipWhen(res => res.hasErrors('username'), () => {
1811
+ * test('username', 'User already taken', async () => await doesUserExist(username)
1812
+ * });
1813
+ */
1814
+ function skipWhen(conditional, callback) {
1815
+ isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
1816
+ context.run({
1817
+ skipped:
1818
+ // Checking for nested conditional. If we're in a nested skipWhen,
1819
+ // we should skip the test if the parent conditional is true.
1820
+ isExcludedIndividually() ||
1821
+ // Otherwise, we should skip the test if the conditional is true.
1822
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
1823
+ }, function () { return callback(); });
1824
+ });
1825
+ }
1826
+ function isExcludedIndividually() {
1827
+ return !!context.useX().skipped;
1828
+ }
1829
+
1805
1830
  /**
1806
1831
  * Adds a field or a list of fields into the inclusion list
1807
1832
  *
@@ -1828,9 +1853,6 @@
1828
1853
  skip.group = function (item) {
1829
1854
  return addTo(1 /* SKIP */, 'groups', item);
1830
1855
  };
1831
- function isExcludedIndividually() {
1832
- return !!context.useX().skipped;
1833
- }
1834
1856
  //Checks whether a certain test profile excluded by any of the exclusion groups.
1835
1857
  // eslint-disable-next-line complexity, max-statements, max-lines-per-function
1836
1858
  function isExcluded(testObject) {
@@ -2014,7 +2036,8 @@
2014
2036
  function omitWhen(conditional, callback) {
2015
2037
  isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
2016
2038
  context.run({
2017
- omitted: optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
2039
+ omitted: isOmitted() ||
2040
+ optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
2018
2041
  }, function () { return callback(); });
2019
2042
  });
2020
2043
  }
@@ -2052,28 +2075,6 @@
2052
2075
  });
2053
2076
  }
2054
2077
 
2055
- /**
2056
- * Conditionally skips running tests within the callback.
2057
- *
2058
- * @example
2059
- *
2060
- * skipWhen(res => res.hasErrors('username'), () => {
2061
- * test('username', 'User already taken', async () => await doesUserExist(username)
2062
- * });
2063
- */
2064
- function skipWhen(conditional, callback) {
2065
- isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
2066
- context.run({
2067
- skipped:
2068
- // Checking for nested conditional. If we're in a nested skipWhen,
2069
- // we should skip the test if the parent conditional is true.
2070
- isExcludedIndividually() ||
2071
- // Otherwise, we should skip the test if the conditional is true.
2072
- optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
2073
- }, function () { return callback(); });
2074
- });
2075
- }
2076
-
2077
2078
  function isPromise(value) {
2078
2079
  return value && isFunction(value.then);
2079
2080
  }
@@ -2361,7 +2362,7 @@
2361
2362
  ctx.currentTest.warn();
2362
2363
  }
2363
2364
 
2364
- var VERSION = "4.1.1";
2365
+ var VERSION = "4.1.3";
2365
2366
 
2366
2367
  exports.VERSION = VERSION;
2367
2368
  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){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function N(n,t){return n.length===Number(t)}function E(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return N(n,0);if("object"==typeof n)return N(Object.keys(n),0)}return!0}function b(n,t){return n in t}function T(n){return Number.isNaN(n)}function C(n){return!!c(n)&&0>Number(n)}function O(n){return!!n}function k(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function S(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function w(n,t){return n.length>Number(t)}function P(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function F(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function I(n,t){return o(n)&&o(t)&&n.startsWith(t)}function x(n){for(var e in ht){var r=ht[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 X(n,t){var e;return null!==(e=W(n))&&void 0!==e?e:t}function _(n,t){throw Error(X(t,n))}function A(n,t){setTimeout((function(){_(n,t)}),0)}function D(n){function t(t,u){var i,o,s=e();return t=Hn({},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){var t;return null!==(t=r.ctx)&&void 0!==t?t:_(X(n,"Context was used after it was closed"))}}}function L(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function q(){try{return t(Proxy)}catch(n){return!1}}function R(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return m(n)||n&&m(n.pass)||_("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?R(n):R(n.pass,W.apply(void 0,U([n.message,t,e],r,!1)))}function j(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,U([gt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass){if(!E(i.message))throw i.message;_("enforce/".concat(r," failed with ").concat(JSON.stringify(n)))}return t}}var e={};if(!q())return x((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=ht[e])return t(r,n,e)}});return r}function G(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=ht[r];e.push((function(n){return M.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return X(G(e,(function(e,r){var u,i=gt.run({value:n},(function(){return e(n)}));i.pass||r(R(!!i.pass,null!==(u=W(t,n,i.message))&&void 0!==u?u:i.message))})),R(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return q()?s=new Proxy(s,{get:function(t,e){return ht[e]?n(e):t[e]}}):(x((function(t){s[t]=n(t)})),s)}}(n)}function B(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 H(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 V(n){return(n=[].concat(n))[n.length-1]}function J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return V(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,V(t)},removeLevel:function(){t.pop()},reset:n}}function Y(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(Y(u,t)):(u=t(u),Vn(u)&&e.push(u))}return e}function z(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(z(t)):[].concat(n).concat(t)}),[])}function Q(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=X(n[r],[]),n=n[r]}return n}function Z(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),w(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function $(){return bt.useX().stateRef}function nn(){return $().testObjects()}function tn(){(0,nn()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function en(n){(0,nn()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function rn(){return z(Y(nn()[0].current,(function(n){return n.isPending()?n:null})))}function un(){var n=nn()[0].current;return Tt([n],(function(){return z(n)}))}function on(){return bt.useX().testCursor.getCursor()}function sn(){return bt.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Kn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return bt.run({isolate:{type:n,keys:r}},(function(){bt.useX().testCursor.addLevel(),r.prev=function(){var n=nn()[0].prev;return[].concat(Q(n,on())).reduce((function(n,t){return t instanceof Ot&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),en((function(n){return Q(n,u)[V(u)]=[],n}));var n=e();return bt.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){return!(!t||n.fieldName!==t)}function fn(n){var t=rn();return!E(t)&&(n?t.some((function(t){return cn(t,n)})):ot(t))}function ln(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}function pn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!cn(e,i)?r=!0:(r=e.warns(),r="warnings"===n!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function dn(n){return hn("errors",n)}function vn(n){return hn("warnings",n)}function hn(n,t){return n=pn(n,un(),{fieldName:t}),t?n[t]:n}function gn(n,t){return n=yn("errors",n,t),t?n[t]:n}function mn(n,t){return n=yn("warnings",n,t),t?n[t]:n}function yn(n,t,e){return t||_("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),pn(n,un(),{group:t,fieldName:e})}function Nn(n,t,e){return(e=!n.hasFailures()||e&&!cn(n,e))||(e="warnings"===t!=!!(n=n.warns())),!e}function En(n){return Tn("errors",n)}function bn(n){return Tn("warnings",n)}function Tn(n,t){return un().some((function(e){return Nn(e,n,t)}))}function Cn(n,t){return kn("errors",n,t)}function On(n,t){return kn("warnings",n,t)}function kn(n,t,e){return un().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function Sn(){var n=un(),t={stateRef:$()};return Xt([n],bt.bind(t,(function(){var n=$().suiteName()[0];return Hn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return un().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=ln(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=ln(n.groups[r],t))})),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}(n)}(),{getErrors:bt.bind(t,dn),getErrorsByGroup:bt.bind(t,gn),getWarnings:bt.bind(t,vn),getWarningsByGroup:bt.bind(t,mn),hasErrors:bt.bind(t,En),hasErrorsByGroup:bt.bind(t,Cn),hasWarnings:bt.bind(t,bn),hasWarningsByGroup:bt.bind(t,On),isValid:bt.bind(t,(function(n){var t=Sn(),e=un().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=un())||n&&E(t.tests[n])||function(n){var t=$().optionalFields()[0];return ot(rn().filter((function(e){return!(n&&!cn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=un(),e=$().optionalFields()[0];return t.every((function(t){return!(!n||cn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function wn(){var n=un(),t={stateRef:$()};return _t([n],bt.bind(t,(function(){return Hn({},Sn(),{done:bt.bind(t,At)})})))}function Pn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function Fn(n){return!(fn()&&(!n||fn(n)))}function In(n,t){var e=bt.bind({},n);(0,$().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function xn(n){return n.forEach((function(n){return n()}))}function Wn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Ct.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=$().testCallbacks()[0].fieldCallbacks;n&&!fn(n)&&p(t[n])&&xn(t[n]),n=$().testCallbacks()[0].doneCallbacks,fn()||xn(n)}})),n.on(Ct.SUITE_COMPLETED,(function(){!function(){var n=$().optionalFields()[0];if(!E(n)){var e={};en((function(r){return Y(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Ct.REMOVE_FIELD,(function(n){un().forEach((function(t){cn(t,n)&&(t.cancel(),function(n){en((function(t){return Y(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Ct.RESET_FIELD,(function(n){un().forEach((function(t){cn(t,n)&&t.reset()}))})),n}function Xn(){var n=bt.useX();return n.bus||_(),n.bus}function _n(n){return Dn(0,"tests",n)}function An(n){return Dn(1,"tests",n)}function Dn(n,t,e){var r=bt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Ln(n){for(var t in n)if(!0===n[t])return!0;return!1}function Un(n){_("Wrong arguments passed to group. Group ".concat(n,"."))}function qn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Xn().emit,i=$(),s=bt.bind({stateRef:i},(function(){tn(),u(Ct.TEST_COMPLETED,n)}));i=bt.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 Rn(n){var t=on();en((function(e){return Q(e,t)[V(t)]=n,e}))}function Mn(n){var e=nn()[0].prev;if(E(e))Rn(n),e=n;else{var r=on();if(e=Q(e,r)[V(r)],i(n.key))!ot(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(bt.useX().isolate.type!==Kn.EACH&&A("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(e.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=nn(),t=n[1],e=n[0].prev;n=Q(e,on());var r=bt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Rn(e=X(e,n));else{e=n.key;var s=bt.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=bt.useX().isolate.keys.current;i(a[e])?a[e]=s:A('Encountered the same test key "'.concat(e,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Rn(e=r)}}if(bt.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,bt.useX().skipped)return!0;var e=bt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=bt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Ln(u)&&!1!==u[t])}r=bt.useX().exclusion;n:{for(a in(s=bt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Ln(u)&&!W(e[t])}(n))return e.skip(!!bt.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Rn(n),sn(),n.isUntested()){e=Xn(),r=function(n){return bt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),qn(n)):e.emit(Ct.TEST_COMPLETED,n)}catch(t){_("Unexpected error encountered during test registration.\n Test Object: ".concat(n,".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),qn(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:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],ft(n)&&Gn("fieldName","string"),t(r)||Gn("Test callback","function");var i=bt.useX();return Mn(e=new Ot(n,r,{message:e,groupName:i.groupName,key:u}))}function Gn(n,t){_("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var Kn,Bn,Hn=Object.assign,Vn=e(r),Jn=e(u),Yn=e(i),zn=e(s),Qn=e(a),Zn=e(c),$n=e(p),nt=e(d),tt=e(h),et=e(g),rt=e(m),ut=e(y),it=e(N),ot=e(E),st=e(b),at=e(T),ct=e(C),ft=e(o),lt=e(O),pt=e(k),dt=e(P),vt=e(F),ht={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:zn,doesNotStartWith:e(I),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:m,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:lt,isKeyOf:b,isNaN:T,isNegative:C,isNotArray:$n,isNotBetween:tt,isNotBlank:et,isNotBoolean:rt,isNotEmpty:ot,isNotKeyOf:st,isNotNaN:at,isNotNull:Vn,isNotNullish:Yn,isNotNumber:ut,isNotNumeric:Zn,isNotString:ft,isNotUndefined:Jn,isNotValueOf:pt,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:ct,isString:o,isTruthy:O,isUndefined:u,isValueOf:k,lengthEquals:N,lengthNotEquals:it,lessThan:S,lessThanOrEquals:v,longerThan:w,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:S,lte:v,matches:P,notEquals:Qn,notInside:nt,notMatches:dt,numberEquals:F,numberNotEquals:vt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:I},gt=D((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Hn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Hn(e,{parent:L})})),mt=function(){return(mt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},yt=(Bn={context:function(){return gt.useX()},extend:function(n){Hn(ht,n)}},q()?new Proxy(Hn(j,Bn),{get:function(n,t){return t in n?n[t]:ht[t]?K(t):void 0}}):(x((function(n){Bn[n]=K(n)})),Hn(j,Bn))),Nt=function(n){return function(){return"".concat(n++)}}(0);!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"}(Kn||(Kn={}));var Et,bt=D((function(n,t){return t?null:Hn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Kn.DEFAULT,keys:{current:{},prev:{}}},testCursor:J()},n)})),Tt=Z();!function(n){n.Error="error",n.Warning="warning"}(Et||(Et={}));var Ct,Ot=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=Nt(),this.severity=Et.Error,this.status=kt,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!==Wt||(this.status=n)},n.prototype.warns=function(){return this.severity===Et.Warning},n.prototype.setPending=function(){this.setStatus(It)},n.prototype.fail=function(){this.setStatus(this.warns()?Pt:wt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ft)},n.prototype.warn=function(){this.severity=Et.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(St)},n.prototype.cancel=function(){this.setStatus(xt),tn()},n.prototype.reset=function(){this.status=kt,tn()},n.prototype.omit=function(){this.setStatus(Wt)},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(It)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Wt)},n.prototype.isUntested=function(){return this.statusEquals(kt)},n.prototype.isFailing=function(){return this.statusEquals(wt)},n.prototype.isCanceled=function(){return this.statusEquals(xt)},n.prototype.isSkipped=function(){return this.statusEquals(St)},n.prototype.isPassing=function(){return this.statusEquals(Ft)},n.prototype.isWarning=function(){return this.statusEquals(Pt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),kt="UNTESTED",St="SKIPPED",wt="FAILED",Pt="WARNING",Ft="PASSING",It="PENDING",xt="CANCELED",Wt="OMITTED",Xt=Z(20),_t=Z(20),At=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(),Pn(e,n,t))return t;var r=function(){return e(Sn())};return Fn(n)?(r(),t):(In(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_COMPLETED="suite_completed"}(Ct||(Ct={})),_n.group=function(n){return Dn(0,"groups",n)},An.group=function(n){return Dn(1,"groups",n)};var Dt=Hn(jn,{memo:function(n){var t=Z(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=bt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[$().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)}))):Mn(r[1])}}(jn)});n.VERSION="4.1.1",n.context=bt,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],t(r)||_("vest.create: Expected callback to be a function.");var u=Wn(),i=B();return n={stateRef:H(i,{suiteId:Nt(),suiteName:n}),bus:u},Hn(bt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Kn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Ct.SUITE_COMPLETED),wn()})),{get:bt.bind(n,Sn),remove:bt.bind(n,(function(n){u.emit(Ct.REMOVE_FIELD,n)})),reset:i.reset,resetField:bt.bind(n,(function(n){u.emit(Ct.RESET_FIELD,n)}))})},n.each=function(n,e){t(e)||_("callback must be a function"),an({type:Kn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.enforce=yt,n.group=function(n,e){o(n)||Un("name must be a string"),t(e)||Un("callback must be a function"),an({type:Kn.GROUP},(function(){bt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=bt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?X(r.tests[n],!0):o(t)?!!r.tests[t]:W(t,W(Sn))}}var e=bt.useX();return n?(e.inclusion[n]=X(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Kn.OMIT_WHEN},(function(){bt.run({omitted:W(n,W(Sn))},(function(){return t()}))}))},n.only=_n,n.optional=function(n){(0,$().optionalFields()[1])((function(t){if(p(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=An,n.skipWhen=function(n,t){an({type:Kn.SKIP_WHEN},(function(){bt.run({skipped:!!bt.useX().skipped||W(n,W(Sn))},(function(){return t()}))}))},n.test=Dt,n.warn=function(){var n=bt.useX("warn hook called outside of a running suite.");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 p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function N(n,t){return n.length===Number(t)}function E(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return N(n,0);if("object"==typeof n)return N(Object.keys(n),0)}return!0}function b(n,t){return n in t}function T(n){return Number.isNaN(n)}function C(n){return!!c(n)&&0>Number(n)}function O(n){return!!n}function k(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function S(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function w(n,t){return n.length>Number(t)}function P(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function F(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function I(n,t){return o(n)&&o(t)&&n.startsWith(t)}function x(n){for(var e in ht){var r=ht[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 X(n,t){var e;return null!==(e=W(n))&&void 0!==e?e:t}function _(n,t){throw Error(X(t,n))}function A(n,t){setTimeout((function(){_(n,t)}),0)}function D(n){function t(t,u){var i,o,s=e();return t=Hn({},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){var t;return null!==(t=r.ctx)&&void 0!==t?t:_(X(n,"Context was used after it was closed"))}}}function L(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function q(){try{return t(Proxy)}catch(n){return!1}}function R(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return m(n)||n&&m(n.pass)||_("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?R(n):R(n.pass,W.apply(void 0,U([n.message,t,e],r,!1)))}function j(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,U([gt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass){if(!E(i.message))throw i.message;_("enforce/".concat(r," failed with ").concat(JSON.stringify(n)))}return t}}var e={};if(!q())return x((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=ht[e])return t(r,n,e)}});return r}function G(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=ht[r];e.push((function(n){return M.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return X(G(e,(function(e,r){var u,i=gt.run({value:n},(function(){return e(n)}));i.pass||r(R(!!i.pass,null!==(u=W(t,n,i.message))&&void 0!==u?u:i.message))})),R(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return q()?s=new Proxy(s,{get:function(t,e){return ht[e]?n(e):t[e]}}):(x((function(t){s[t]=n(t)})),s)}}(n)}function B(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 H(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 V(n){return(n=[].concat(n))[n.length-1]}function J(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return V(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,V(t)},removeLevel:function(){t.pop()},reset:n}}function Y(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(Y(u,t)):(u=t(u),Vn(u)&&e.push(u))}return e}function z(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(z(t)):[].concat(n).concat(t)}),[])}function Q(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=X(n[r],[]),n=n[r]}return n}function Z(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),w(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function $(){return bt.useX().stateRef}function nn(){return $().testObjects()}function tn(){(0,nn()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function en(n){(0,nn()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function rn(){return z(Y(nn()[0].current,(function(n){return n.isPending()?n:null})))}function un(){var n=nn()[0].current;return Tt([n],(function(){return z(n)}))}function on(){return bt.useX().testCursor.getCursor()}function sn(){return bt.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Kn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return bt.run({isolate:{type:n,keys:r}},(function(){bt.useX().testCursor.addLevel(),r.prev=function(){var n=nn()[0].prev;return[].concat(Q(n,on())).reduce((function(n,t){return t instanceof Ot&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),en((function(n){return Q(n,u)[V(u)]=[],n}));var n=e();return bt.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){return!(!t||n.fieldName!==t)}function fn(n){var t=rn();return!E(t)&&(n?t.some((function(t){return cn(t,n)})):ot(t))}function ln(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}function pn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!cn(e,i)?r=!0:(r=e.warns(),r="warnings"===n!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function dn(n){return hn("errors",n)}function vn(n){return hn("warnings",n)}function hn(n,t){return n=pn(n,un(),{fieldName:t}),t?n[t]:n}function gn(n,t){return n=yn("errors",n,t),t?n[t]:n}function mn(n,t){return n=yn("warnings",n,t),t?n[t]:n}function yn(n,t,e){return t||_("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),pn(n,un(),{group:t,fieldName:e})}function Nn(n,t,e){return(e=!n.hasFailures()||e&&!cn(n,e))||(e="warnings"===t!=!!(n=n.warns())),!e}function En(n){return Tn("errors",n)}function bn(n){return Tn("warnings",n)}function Tn(n,t){return un().some((function(e){return Nn(e,n,t)}))}function Cn(n,t){return kn("errors",n,t)}function On(n,t){return kn("warnings",n,t)}function kn(n,t,e){return un().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function Sn(){var n=un(),t={stateRef:$()};return Xt([n],bt.bind(t,(function(){var n=$().suiteName()[0];return Hn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return un().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=ln(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=ln(n.groups[r],t))})),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}(n)}(),{getErrors:bt.bind(t,dn),getErrorsByGroup:bt.bind(t,gn),getWarnings:bt.bind(t,vn),getWarningsByGroup:bt.bind(t,mn),hasErrors:bt.bind(t,En),hasErrorsByGroup:bt.bind(t,Cn),hasWarnings:bt.bind(t,bn),hasWarningsByGroup:bt.bind(t,On),isValid:bt.bind(t,(function(n){var t=Sn(),e=un().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=un())||n&&E(t.tests[n])||function(n){var t=$().optionalFields()[0];return ot(rn().filter((function(e){return!(n&&!cn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=un(),e=$().optionalFields()[0];return t.every((function(t){return!(!n||cn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function wn(){var n=un(),t={stateRef:$()};return _t([n],bt.bind(t,(function(){return Hn({},Sn(),{done:bt.bind(t,At)})})))}function Pn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function Fn(n){return!(fn()&&(!n||fn(n)))}function In(n,t){var e=bt.bind({},n);(0,$().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function xn(n){return n.forEach((function(n){return n()}))}function Wn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Ct.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=$().testCallbacks()[0].fieldCallbacks;n&&!fn(n)&&p(t[n])&&xn(t[n]),n=$().testCallbacks()[0].doneCallbacks,fn()||xn(n)}})),n.on(Ct.SUITE_COMPLETED,(function(){!function(){var n=$().optionalFields()[0];if(!E(n)){var e={};en((function(r){return Y(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Ct.REMOVE_FIELD,(function(n){un().forEach((function(t){cn(t,n)&&(t.cancel(),function(n){en((function(t){return Y(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Ct.RESET_FIELD,(function(n){un().forEach((function(t){cn(t,n)&&t.reset()}))})),n}function Xn(){var n=bt.useX();return n.bus||_(),n.bus}function _n(n){return Dn(0,"tests",n)}function An(n){return Dn(1,"tests",n)}function Dn(n,t,e){var r=bt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Ln(n){for(var t in n)if(!0===n[t])return!0;return!1}function Un(n){_("Wrong arguments passed to group. Group ".concat(n,"."))}function qn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Xn().emit,i=$(),s=bt.bind({stateRef:i},(function(){tn(),u(Ct.TEST_COMPLETED,n)}));i=bt.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 Rn(n){var t=on();en((function(e){return Q(e,t)[V(t)]=n,e}))}function Mn(n){var e=nn()[0].prev;if(E(e))Rn(n),e=n;else{var r=on();if(e=Q(e,r)[V(r)],i(n.key))!ot(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(bt.useX().isolate.type!==Kn.EACH&&A("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(e.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=nn(),t=n[1],e=n[0].prev;n=Q(e,on());var r=bt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Rn(e=X(e,n));else{e=n.key;var s=bt.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=bt.useX().isolate.keys.current;i(a[e])?a[e]=s:A('Encountered the same test key "'.concat(e,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Rn(e=r)}}if(bt.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,bt.useX().skipped)return!0;var e=bt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=bt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Ln(u)&&!1!==u[t])}r=bt.useX().exclusion;n:{for(a in(s=bt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Ln(u)&&!W(e[t])}(n))return e.skip(!!bt.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Rn(n),sn(),n.isUntested()){e=Xn(),r=function(n){return bt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),qn(n)):e.emit(Ct.TEST_COMPLETED,n)}catch(t){_("Unexpected error encountered during test registration.\n Test Object: ".concat(n,".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),qn(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:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],ft(n)&&Gn("fieldName","string"),t(r)||Gn("Test callback","function");var i=bt.useX();return Mn(e=new Ot(n,r,{message:e,groupName:i.groupName,key:u}))}function Gn(n,t){_("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var Kn,Bn,Hn=Object.assign,Vn=e(r),Jn=e(u),Yn=e(i),zn=e(s),Qn=e(a),Zn=e(c),$n=e(p),nt=e(d),tt=e(h),et=e(g),rt=e(m),ut=e(y),it=e(N),ot=e(E),st=e(b),at=e(T),ct=e(C),ft=e(o),lt=e(O),pt=e(k),dt=e(P),vt=e(F),ht={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:zn,doesNotStartWith:e(I),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:m,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:lt,isKeyOf:b,isNaN:T,isNegative:C,isNotArray:$n,isNotBetween:tt,isNotBlank:et,isNotBoolean:rt,isNotEmpty:ot,isNotKeyOf:st,isNotNaN:at,isNotNull:Vn,isNotNullish:Yn,isNotNumber:ut,isNotNumeric:Zn,isNotString:ft,isNotUndefined:Jn,isNotValueOf:pt,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:ct,isString:o,isTruthy:O,isUndefined:u,isValueOf:k,lengthEquals:N,lengthNotEquals:it,lessThan:S,lessThanOrEquals:v,longerThan:w,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:S,lte:v,matches:P,notEquals:Qn,notInside:nt,notMatches:dt,numberEquals:F,numberNotEquals:vt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:I},gt=D((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Hn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Hn(e,{parent:L})})),mt=function(){return(mt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},yt=(Bn={context:function(){return gt.useX()},extend:function(n){Hn(ht,n)}},q()?new Proxy(Hn(j,Bn),{get:function(n,t){return t in n?n[t]:ht[t]?K(t):void 0}}):(x((function(n){Bn[n]=K(n)})),Hn(j,Bn))),Nt=function(n){return function(){return"".concat(n++)}}(0);!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"}(Kn||(Kn={}));var Et,bt=D((function(n,t){return t?null:Hn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Kn.DEFAULT,keys:{current:{},prev:{}}},testCursor:J()},n)})),Tt=Z();!function(n){n.Error="error",n.Warning="warning"}(Et||(Et={}));var Ct,Ot=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=Nt(),this.severity=Et.Error,this.status=kt,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!==Wt||(this.status=n)},n.prototype.warns=function(){return this.severity===Et.Warning},n.prototype.setPending=function(){this.setStatus(It)},n.prototype.fail=function(){this.setStatus(this.warns()?Pt:wt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ft)},n.prototype.warn=function(){this.severity=Et.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(St)},n.prototype.cancel=function(){this.setStatus(xt),tn()},n.prototype.reset=function(){this.status=kt,tn()},n.prototype.omit=function(){this.setStatus(Wt)},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(It)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Wt)},n.prototype.isUntested=function(){return this.statusEquals(kt)},n.prototype.isFailing=function(){return this.statusEquals(wt)},n.prototype.isCanceled=function(){return this.statusEquals(xt)},n.prototype.isSkipped=function(){return this.statusEquals(St)},n.prototype.isPassing=function(){return this.statusEquals(Ft)},n.prototype.isWarning=function(){return this.statusEquals(Pt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),kt="UNTESTED",St="SKIPPED",wt="FAILED",Pt="WARNING",Ft="PASSING",It="PENDING",xt="CANCELED",Wt="OMITTED",Xt=Z(20),_t=Z(20),At=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(),Pn(e,n,t))return t;var r=function(){return e(Sn())};return Fn(n)?(r(),t):(In(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_COMPLETED="suite_completed"}(Ct||(Ct={})),_n.group=function(n){return Dn(0,"groups",n)},An.group=function(n){return Dn(1,"groups",n)};var Dt=Hn(jn,{memo:function(n){var t=Z(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=bt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[$().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)}))):Mn(r[1])}}(jn)});n.VERSION="4.1.3",n.context=bt,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],t(r)||_("vest.create: Expected callback to be a function.");var u=Wn(),i=B();return n={stateRef:H(i,{suiteId:Nt(),suiteName:n}),bus:u},Hn(bt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Kn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Ct.SUITE_COMPLETED),wn()})),{get:bt.bind(n,Sn),remove:bt.bind(n,(function(n){u.emit(Ct.REMOVE_FIELD,n)})),reset:i.reset,resetField:bt.bind(n,(function(n){u.emit(Ct.RESET_FIELD,n)}))})},n.each=function(n,e){t(e)||_("callback must be a function"),an({type:Kn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.enforce=yt,n.group=function(n,e){o(n)||Un("name must be a string"),t(e)||Un("callback must be a function"),an({type:Kn.GROUP},(function(){bt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=bt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?X(r.tests[n],!0):o(t)?!!r.tests[t]:W(t,W(Sn))}}var e=bt.useX();return n?(e.inclusion[n]=X(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Kn.OMIT_WHEN},(function(){bt.run({omitted:!!bt.useX().omitted||W(n,W(Sn))},(function(){return t()}))}))},n.only=_n,n.optional=function(n){(0,$().optionalFields()[1])((function(t){if(p(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=An,n.skipWhen=function(n,t){an({type:Kn.SKIP_WHEN},(function(){bt.run({skipped:!!bt.useX().skipped||W(n,W(Sn))},(function(){return t()}))}))},n.test=Dt,n.warn=function(){var n=bt.useX("warn hook called outside of a running suite.");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.1.2",
2
+ "version": "4.1.3",
3
3
  "license": "MIT",
4
4
  "name": "vest",
5
5
  "author": "ealush",
package/types/vest.d.ts CHANGED
@@ -317,5 +317,5 @@ declare const test: typeof testBase & {
317
317
  * Sets a running test to warn only mode.
318
318
  */
319
319
  declare function warn(): void;
320
- declare const VERSION = "4.1.1";
320
+ declare const VERSION = "4.1.3";
321
321
  export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include };