vest 4.1.1 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vest.development.js +18 -10
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +18 -10
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +18 -10
- package/dist/umd/vest.production.js +1 -1
- package/package.json +2 -2
- package/types/vest.d.ts +2 -1
|
@@ -504,31 +504,34 @@ var VestTest = /** @class */ (function () {
|
|
|
504
504
|
return this.isSkipped() || this.isOmitted() || this.isCanceled();
|
|
505
505
|
};
|
|
506
506
|
VestTest.prototype.isPending = function () {
|
|
507
|
-
return this.
|
|
507
|
+
return this.statusEquals(STATUS_PENDING);
|
|
508
508
|
};
|
|
509
509
|
VestTest.prototype.isTested = function () {
|
|
510
510
|
return this.hasFailures() || this.isPassing();
|
|
511
511
|
};
|
|
512
512
|
VestTest.prototype.isOmitted = function () {
|
|
513
|
-
return this.
|
|
513
|
+
return this.statusEquals(STATUS_OMITTED);
|
|
514
514
|
};
|
|
515
515
|
VestTest.prototype.isUntested = function () {
|
|
516
|
-
return this.
|
|
516
|
+
return this.statusEquals(STATUS_UNTESTED);
|
|
517
517
|
};
|
|
518
518
|
VestTest.prototype.isFailing = function () {
|
|
519
|
-
return this.
|
|
519
|
+
return this.statusEquals(STATUS_FAILED);
|
|
520
520
|
};
|
|
521
521
|
VestTest.prototype.isCanceled = function () {
|
|
522
|
-
return this.
|
|
522
|
+
return this.statusEquals(STATUS_CANCELED);
|
|
523
523
|
};
|
|
524
524
|
VestTest.prototype.isSkipped = function () {
|
|
525
|
-
return this.
|
|
525
|
+
return this.statusEquals(STATUS_SKIPPED);
|
|
526
526
|
};
|
|
527
527
|
VestTest.prototype.isPassing = function () {
|
|
528
|
-
return this.
|
|
528
|
+
return this.statusEquals(STATUS_PASSING);
|
|
529
529
|
};
|
|
530
530
|
VestTest.prototype.isWarning = function () {
|
|
531
|
-
return this.
|
|
531
|
+
return this.statusEquals(STATUS_WARNING);
|
|
532
|
+
};
|
|
533
|
+
VestTest.prototype.statusEquals = function (status) {
|
|
534
|
+
return this.status === status;
|
|
532
535
|
};
|
|
533
536
|
return VestTest;
|
|
534
537
|
}());
|
|
@@ -1517,7 +1520,12 @@ function optional(optionals) {
|
|
|
1517
1520
|
function skipWhen(conditional, callback) {
|
|
1518
1521
|
isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
|
|
1519
1522
|
context.run({
|
|
1520
|
-
skipped:
|
|
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))
|
|
1521
1529
|
}, function () { return callback(); });
|
|
1522
1530
|
});
|
|
1523
1531
|
}
|
|
@@ -1811,7 +1819,7 @@ function warn() {
|
|
|
1811
1819
|
ctx.currentTest.warn();
|
|
1812
1820
|
}
|
|
1813
1821
|
|
|
1814
|
-
var VERSION = "4.1.
|
|
1822
|
+
var VERSION = "4.1.1";
|
|
1815
1823
|
|
|
1816
1824
|
Object.defineProperty(exports, 'enforce', {
|
|
1817
1825
|
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 G(){var n=W()[0].current;return M([n],(function(){return T(n)}))}function j(n){G().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(R||(R={}));var H=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=K,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()?q:B)},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(V)},n.prototype.cancel=function(){this.setStatus(J),X()},n.prototype.reset=function(){this.status=K,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.status===z},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Q},n.prototype.isUntested=function(){return this.status===K},n.prototype.isFailing=function(){return this.status===B},n.prototype.isCanceled=function(){return this.status===J},n.prototype.isSkipped=function(){return this.status===V},n.prototype.isPassing=function(){return this.status===Y},n.prototype.isWarning=function(){return this.status===q},n}(),K="UNTESTED",V="SKIPPED",B="FAILED",q="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 H&&!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,G(),{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,G(),{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 G().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 G().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function In(n,t){return!!function(n){var t=G().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(rn(G())||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=G(),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=G(),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 G().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=G(),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){j((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){j((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 Gn(n){return Vn(0,"tests",n)}function jn(n){return Vn(1,"tests",n)}function Hn(){return!!h.useX().skipped}function Kn(n){var t=n.fieldName;if(n=n.groupName,Hn())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&&(!!Bn(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&&(!!Bn(u)&&!s(e[t]))}function Vn(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 Bn(n){for(var t in n)if(!0===n[t])return!0;return!1}function qn(n){a("Wrong arguments passed to group. Group ".concat(n,"."))}Gn.group=function(n){return Vn(0,"groups",n)},jn.group=function(n){return Vn(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):Kn(n)?(t.skip(Hn()),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 H(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.0",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)||qn("name must be a string"),o(e)||qn("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=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: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(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()};
|
|
@@ -500,31 +500,34 @@ var VestTest = /** @class */ (function () {
|
|
|
500
500
|
return this.isSkipped() || this.isOmitted() || this.isCanceled();
|
|
501
501
|
};
|
|
502
502
|
VestTest.prototype.isPending = function () {
|
|
503
|
-
return this.
|
|
503
|
+
return this.statusEquals(STATUS_PENDING);
|
|
504
504
|
};
|
|
505
505
|
VestTest.prototype.isTested = function () {
|
|
506
506
|
return this.hasFailures() || this.isPassing();
|
|
507
507
|
};
|
|
508
508
|
VestTest.prototype.isOmitted = function () {
|
|
509
|
-
return this.
|
|
509
|
+
return this.statusEquals(STATUS_OMITTED);
|
|
510
510
|
};
|
|
511
511
|
VestTest.prototype.isUntested = function () {
|
|
512
|
-
return this.
|
|
512
|
+
return this.statusEquals(STATUS_UNTESTED);
|
|
513
513
|
};
|
|
514
514
|
VestTest.prototype.isFailing = function () {
|
|
515
|
-
return this.
|
|
515
|
+
return this.statusEquals(STATUS_FAILED);
|
|
516
516
|
};
|
|
517
517
|
VestTest.prototype.isCanceled = function () {
|
|
518
|
-
return this.
|
|
518
|
+
return this.statusEquals(STATUS_CANCELED);
|
|
519
519
|
};
|
|
520
520
|
VestTest.prototype.isSkipped = function () {
|
|
521
|
-
return this.
|
|
521
|
+
return this.statusEquals(STATUS_SKIPPED);
|
|
522
522
|
};
|
|
523
523
|
VestTest.prototype.isPassing = function () {
|
|
524
|
-
return this.
|
|
524
|
+
return this.statusEquals(STATUS_PASSING);
|
|
525
525
|
};
|
|
526
526
|
VestTest.prototype.isWarning = function () {
|
|
527
|
-
return this.
|
|
527
|
+
return this.statusEquals(STATUS_WARNING);
|
|
528
|
+
};
|
|
529
|
+
VestTest.prototype.statusEquals = function (status) {
|
|
530
|
+
return this.status === status;
|
|
528
531
|
};
|
|
529
532
|
return VestTest;
|
|
530
533
|
}());
|
|
@@ -1513,7 +1516,12 @@ function optional(optionals) {
|
|
|
1513
1516
|
function skipWhen(conditional, callback) {
|
|
1514
1517
|
isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
|
|
1515
1518
|
context.run({
|
|
1516
|
-
skipped:
|
|
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))
|
|
1517
1525
|
}, function () { return callback(); });
|
|
1518
1526
|
});
|
|
1519
1527
|
}
|
|
@@ -1807,6 +1815,6 @@ function warn() {
|
|
|
1807
1815
|
ctx.currentTest.warn();
|
|
1808
1816
|
}
|
|
1809
1817
|
|
|
1810
|
-
var VERSION = "4.1.
|
|
1818
|
+
var VERSION = "4.1.1";
|
|
1811
1819
|
|
|
1812
1820
|
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,D=A||(A={});D.Error="error",D.Warning="warning";var L=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=X,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=X,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.status===R},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.status===G},t.prototype.isUntested=function(){return this.status===X},t.prototype.isFailing=function(){return this.status===x},t.prototype.isCanceled=function(){return this.status===M},t.prototype.isSkipped=function(){return this.status===_},t.prototype.isPassing=function(){return this.status===W},t.prototype.isWarning=function(){return this.status===U},t}(),X="UNTESTED",_="SKIPPED",x="FAILED",U="WARNING",W="PASSING",R="PENDING",M="CANCELED",G="OMITTED";function j(){return g.useX().testCursor.getCursor()}function H(){return g.useX().testCursor.next()}function K(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 L&&!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(),H(),t}))}}function V(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 B=h(V);function Y(t,n){return!(!n||t.fieldName!==n)}function q(t){var n=F();return!V(n)&&(t?n.some((function(n){return Y(n,t)})):B(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&&!Y(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&&!Y(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=!(V(e=P())||t&&V(n.tests[t])||function(t){var n=k().optionalFields()[0];return B(F().filter((function(e){return!(t&&!Y(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=P(),e=k().optionalFields()[0];return n.every((function(n){return!(!t||Y(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]&&!V(e.tests[n].testCount)))}function mt(t){return!(q()&&(!t||q(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&&!q(t)&&Array.isArray(n[t])&&bt(n[t]),t=k().testCallbacks()[0].doneCallbacks,q()||bt(t)}})),t.on(Tt.SUITE_COMPLETED,(function(){!function(){var t=k().optionalFields()[0];if(!V(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){Y(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){Y(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 Dt(t){var n=j();w((function(e){return b(e,n)[d(n)]=t,e}))}function Lt(t){var n=S()[0].prev;if(V(n))Dt(t),n=t;else{var e=j();if(n=b(n,e)[d(e)],N(t.key))!B(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),Dt(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.")),Dt(n=e)}}if(g.useX().omitted)return n.omit(),H(),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),H(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Dt(t),H(),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 Xt(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 Lt(n=new L(t,e,{message:n,groupName:i.groupName,key:r}))}var _t=e(Xt,{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)}))):Lt(r[1])}}(Xt)});function xt(t,n){s("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ut="4.1.0";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(),K({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"),K({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"),K({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){K({type:f.OMIT_WHEN},(function(){g.run({omitted:i(t,i(dt))},(function(){return n()}))}))}function Ht(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 Kt(t,n){K({type:f.SKIP_WHEN},(function(){g.run({skipped:i(t,i(dt))},(function(){return n()}))}))}function Vt(){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,Ht as optional,Ot as skip,Kt as skipWhen,_t as test,Vt 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.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};
|
|
@@ -1112,31 +1112,34 @@
|
|
|
1112
1112
|
return this.isSkipped() || this.isOmitted() || this.isCanceled();
|
|
1113
1113
|
};
|
|
1114
1114
|
VestTest.prototype.isPending = function () {
|
|
1115
|
-
return this.
|
|
1115
|
+
return this.statusEquals(STATUS_PENDING);
|
|
1116
1116
|
};
|
|
1117
1117
|
VestTest.prototype.isTested = function () {
|
|
1118
1118
|
return this.hasFailures() || this.isPassing();
|
|
1119
1119
|
};
|
|
1120
1120
|
VestTest.prototype.isOmitted = function () {
|
|
1121
|
-
return this.
|
|
1121
|
+
return this.statusEquals(STATUS_OMITTED);
|
|
1122
1122
|
};
|
|
1123
1123
|
VestTest.prototype.isUntested = function () {
|
|
1124
|
-
return this.
|
|
1124
|
+
return this.statusEquals(STATUS_UNTESTED);
|
|
1125
1125
|
};
|
|
1126
1126
|
VestTest.prototype.isFailing = function () {
|
|
1127
|
-
return this.
|
|
1127
|
+
return this.statusEquals(STATUS_FAILED);
|
|
1128
1128
|
};
|
|
1129
1129
|
VestTest.prototype.isCanceled = function () {
|
|
1130
|
-
return this.
|
|
1130
|
+
return this.statusEquals(STATUS_CANCELED);
|
|
1131
1131
|
};
|
|
1132
1132
|
VestTest.prototype.isSkipped = function () {
|
|
1133
|
-
return this.
|
|
1133
|
+
return this.statusEquals(STATUS_SKIPPED);
|
|
1134
1134
|
};
|
|
1135
1135
|
VestTest.prototype.isPassing = function () {
|
|
1136
|
-
return this.
|
|
1136
|
+
return this.statusEquals(STATUS_PASSING);
|
|
1137
1137
|
};
|
|
1138
1138
|
VestTest.prototype.isWarning = function () {
|
|
1139
|
-
return this.
|
|
1139
|
+
return this.statusEquals(STATUS_WARNING);
|
|
1140
|
+
};
|
|
1141
|
+
VestTest.prototype.statusEquals = function (status) {
|
|
1142
|
+
return this.status === status;
|
|
1140
1143
|
};
|
|
1141
1144
|
return VestTest;
|
|
1142
1145
|
}());
|
|
@@ -2061,7 +2064,12 @@
|
|
|
2061
2064
|
function skipWhen(conditional, callback) {
|
|
2062
2065
|
isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
|
|
2063
2066
|
context.run({
|
|
2064
|
-
skipped:
|
|
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))
|
|
2065
2073
|
}, function () { return callback(); });
|
|
2066
2074
|
});
|
|
2067
2075
|
}
|
|
@@ -2353,7 +2361,7 @@
|
|
|
2353
2361
|
ctx.currentTest.warn();
|
|
2354
2362
|
}
|
|
2355
2363
|
|
|
2356
|
-
var VERSION = "4.1.
|
|
2364
|
+
var VERSION = "4.1.1";
|
|
2357
2365
|
|
|
2358
2366
|
exports.VERSION = VERSION;
|
|
2359
2367
|
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 R(){try{return t(Proxy)}catch(n){return!1}}function M(n,t){return n={pass:n},t&&(n.message=t),n}function j(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)?M(n):M(n.pass,W.apply(void 0,U([n.message,t,e],r,!1)))}function G(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=j.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(!R())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 K(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function q(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 j.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return X(K(e,(function(e,r){var u,i=gt.run({value:n},(function(){return e(n)}));i.pass||r(M(!!i.pass,null!==(u=W(t,n,i.message))&&void 0!==u?u:i.message))})),M(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return R()?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)?qn.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 Rn(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 Mn(n){var t=on();en((function(e){return Q(e,t)[V(t)]=n,e}))}function jn(n){var e=nn()[0].prev;if(E(e))Mn(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!==qn.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),Mn(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.")),Mn(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(),Mn(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(),Rn(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(),Rn(n));return n}function Gn(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)&&Kn("fieldName","string"),t(r)||Kn("Test callback","function");var i=bt.useX();return jn(e=new Ot(n,r,{message:e,groupName:i.groupName,key:u}))}function Kn(n,t){_("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var qn,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)}},R()?new Proxy(Hn(G,Bn),{get:function(n,t){return t in n?n[t]:ht[t]?q(t):void 0}}):(x((function(n){Bn[n]=q(n)})),Hn(G,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"}(qn||(qn={}));var Et,bt=D((function(n,t){return t?null:Hn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:qn.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.status===It},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Wt},n.prototype.isUntested=function(){return this.status===kt},n.prototype.isFailing=function(){return this.status===wt},n.prototype.isCanceled=function(){return this.status===xt},n.prototype.isSkipped=function(){return this.status===St},n.prototype.isPassing=function(){return this.status===Ft},n.prototype.isWarning=function(){return this.status===Pt},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(Gn,{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)}))):jn(r[1])}}(Gn)});n.VERSION="4.1.0",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:qn.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:qn.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:qn.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:qn.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:qn.SKIP_WHEN},(function(){bt.run({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.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})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.1.
|
|
2
|
+
"version": "4.1.2",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"context": "^2.0.1",
|
|
24
|
-
"n4s": "^4.1.
|
|
24
|
+
"n4s": "^4.1.2"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
package/types/vest.d.ts
CHANGED
|
@@ -131,6 +131,7 @@ declare class VestTest {
|
|
|
131
131
|
isSkipped(): boolean;
|
|
132
132
|
isPassing(): boolean;
|
|
133
133
|
isWarning(): boolean;
|
|
134
|
+
statusEquals(status: KStatus): boolean;
|
|
134
135
|
}
|
|
135
136
|
type TAsyncTest = Promise<string | void>;
|
|
136
137
|
type TTestResult = TAsyncTest | boolean | void;
|
|
@@ -316,5 +317,5 @@ declare const test: typeof testBase & {
|
|
|
316
317
|
* Sets a running test to warn only mode.
|
|
317
318
|
*/
|
|
318
319
|
declare function warn(): void;
|
|
319
|
-
declare const VERSION = "4.1.
|
|
320
|
+
declare const VERSION = "4.1.1";
|
|
320
321
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include };
|