vest 4.0.0-dev-8851ff → 4.0.0-dev-7acb76
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/CHANGELOG.md +1 -0
- package/dist/cjs/vest.development.js +7 -1
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +7 -1
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +7 -1
- package/dist/umd/vest.production.js +1 -1
- package/package.json +1 -1
- package/types/vest.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
|
19
19
|
- 990c68f feat(n4s): context propagation within enforce (undefined)
|
|
20
20
|
|
|
21
21
|
### Fixed and improved
|
|
22
|
+
- 7acb76f fix(vest): prevent pending tests from being marked as skipped (ealush)
|
|
22
23
|
- 8851ff5 patch(vest): Add isolate module for containing re-orders (ealush)
|
|
23
24
|
- 0593c0f patch(vest): refresh tests after cancel (ealush)
|
|
24
25
|
- e915b53 patch: add cursor util (ealush)
|
|
@@ -1866,6 +1866,12 @@ var VestTest = /** @class */ (function () {
|
|
|
1866
1866
|
return this.hasFailures() || this.isCanceled() || this.isPassing();
|
|
1867
1867
|
};
|
|
1868
1868
|
VestTest.prototype.skip = function () {
|
|
1869
|
+
if (this.isPending()) {
|
|
1870
|
+
// Without this condition, the test will be marked as skipped even if it is pending.
|
|
1871
|
+
// This means that it will not be counted in "allIncomplete" and its done callbacks
|
|
1872
|
+
// will not be called, or will be called prematurely.
|
|
1873
|
+
return;
|
|
1874
|
+
}
|
|
1869
1875
|
this.setStatus(STATUS_SKIPPED);
|
|
1870
1876
|
};
|
|
1871
1877
|
VestTest.prototype.cancel = function () {
|
|
@@ -2178,7 +2184,7 @@ var test = assign(testBase, {
|
|
|
2178
2184
|
memo: bindTestMemo(testBase)
|
|
2179
2185
|
});
|
|
2180
2186
|
|
|
2181
|
-
var VERSION = "4.0.0-dev-
|
|
2187
|
+
var VERSION = "4.0.0-dev-7acb76";
|
|
2182
2188
|
|
|
2183
2189
|
exports.VERSION = VERSION;
|
|
2184
2190
|
exports.create = create;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function f(){return s(!0)}function c(n){return o(n,a())}function l(n){return o(n,f())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function g(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function h(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function m(n,t){return n.length===Number(t)}var y=h(m);function N(n,t){return n.length>Number(t)}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(m(e,1))}function E(n){return null===n}var C=h(E);function T(n){return void 0===n}var S=h(T);function O(n,t){return T(n)||E(n)?f():p(t,n)}function x(n){return String(n)===n}function w(n,t){return x(n)&&x(t)&&n.endsWith(t)}var P=h(w);function k(n,t){return n===t}var F=h(k);function I(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=h(I);function W(n,t){return I(n)&&I(t)&&Number(n)>Number(t)}function R(n,t){return I(n)&&I(t)&&Number(n)>=Number(t)}function U(n){return!!Array.isArray(n)}var X=h(U);function D(n,t){return!!(U(t)||x(t)&&x(n))&&-1!==t.indexOf(n)}var L=h(D);function G(n,t){return I(n)&&I(t)&&Number(n)<=Number(t)}function j(n,t,r){return R(n,t)&&G(n,r)}var q=h(j);function B(n){return x(n)&&!n.trim()}var _=h(B);function K(n){return!!n===n}var H=h(K);function M(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function J(n){return"number"==typeof n}var V=h(J);function z(n){if(n){if(J(n))return 0===n;if(M(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}var Y=h(z),Q=function(n){return!!I(n)&&0==n%2};function Z(n){return Number.isNaN(n)}var $=h(Z);function nn(n){return!!I(n)&&0>Number(n)}var tn=h(nn),rn=function(n){return!!I(n)&&0!=n%2},en=h(x);function un(n){return!!n}var on=h(un);function sn(n,t){return I(n)&&I(t)&&Number(n)<Number(t)}function an(n,t){return n.length>=Number(t)}function fn(n,t){return t instanceof RegExp?t.test(n):!!x(t)&&new RegExp(t).test(n)}var cn=h(fn);function ln(n,t){return I(n)&&I(t)&&Number(n)===Number(t)}var pn=h(ln);function vn(n,t){try{return t(n)}catch(n){return!1}}function dn(n,t){return n.length<Number(t)}function gn(n,t){return n.length<=Number(t)}function hn(n,t){return x(n)&&x(t)&&n.startsWith(t)}var mn=h(hn);function yn(n,t){throw Error(o(t,n))}function Nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:yn(o(n,"Context was used after it was closed"))}}}var bn=Nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:En})}));function En(){return null}function Cn(n,t){return l(u(n,(function(n,r,e){(e=bn.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function Tn(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=bn.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return f()}function Sn(n,t){var r=Tn(n,t);if(!r.pass)return r;for(var e in n)if(!M(t,e))return a();return f()}var On=r({condition:vn,doesNotEndWith:P,doesNotStartWith:mn,endsWith:w,equals:k,greaterThan:W,greaterThanOrEquals:R,gt:W,gte:R,inside:D,isArray:U,isBetween:j,isBlank:B,isBoolean:K,isEmpty:z,isEven:Q,isFalsy:on,isNaN:Z,isNegative:nn,isNotArray:X,isNotBetween:q,isNotBlank:_,isNotBoolean:H,isNotEmpty:Y,isNotNaN:$,isNotNull:C,isNotNumber:V,isNotNumeric:A,isNotString:en,isNotUndefined:S,isNull:E,isNumber:J,isNumeric:I,isOdd:rn,isPositive:tn,isString:x,isTruthy:un,isUndefined:T,lengthEquals:m,lengthNotEquals:y,lessThan:sn,lessThanOrEquals:G,longerThan:N,longerThanOrEquals:an,lt:sn,lte:G,matches:fn,notEquals:F,notInside:L,notMatches:cn,numberEquals:ln,numberNotEquals:pn,shorterThan:dn,shorterThanOrEquals:gn,startsWith:hn},{allOf:v,anyOf:d,noneOf:g,oneOf:b,optional:O},{shape:Sn,loose:Tn,isArrayOf:Cn});function xn(n){return On[n]}function wn(n){for(var t in On){var r=xn(t);e(r)&&n(t,r)}}function Pn(){return"function"==typeof Proxy}function kn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return Fn(n),K(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function Fn(n){K(n)||n&&K(n.pass)||yn("Incorrect return value for rule: "+JSON.stringify(n))}function In(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=kn.apply(void 0,t([bn.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!z(o.message))throw o.message;yn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Pn())return wn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=xn(t))return r(u,n,t)}});return u}function An(n){var r,e=[];return function n(o){return function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var c=xn(o);e.push((function(n){return kn.apply(void 0,t([c.apply(void 0,t([n],a)),o,n],a))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=bn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Pn()?p=new Proxy(p,{get:function(t,r){return xn(r)?n(r):t[r]}}):(wn((function(t){p[t]=n(t)})),p)}}(n)}function Wn(n){var t,r={};for(t in n)r[t]=Xn.optional(n[t]);return r}var Rn,Un,Xn=(Rn=n({context:function(){return bn.useX()},extend:function(n){r(On,n)}},{partial:Wn}),Pn()?new Proxy(r(In,Rn),{get:function(n,t){return t in n?n[t]:xn(t)?An(t):void 0}}):(wn((function(n){Rn[n]=An(n)})),Rn)),Dn=function(n){return function(){return""+n++}}(0);function Ln(n){return[].concat(n)}function Gn(n){return(n=Ln(n))[n.length-1]}function jn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Gn(t)},getCursor:function(){return Ln(t)},next:function(){return t[t.length-1]++,Gn(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.GROUP=4]="GROUP"}(Un||(Un={}));var qn=Nn((function(n,t){return t?null:r({},{isolate:{type:Un.DEFAULT},testCursor:jn(),exclusion:{tests:{},groups:{}}},n)}));function Bn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];U(u)?r.push(Bn(u,t)):(u=t(u),C(u)&&r.push(u))}return r}function _n(n,t,r){return Hn(n,t)[Gn(t)]=r,n}function Kn(n){return Ln(n).reduce((function(n,t){return U(t)?n.concat(Kn(t)):Ln(n).concat(t)}),[])}function Hn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function Mn(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),N(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Jn(){return qn.useX().stateRef}function Vn(){return Jn().suiteId()}function zn(){return Jn().testCallbacks()}function Yn(){return Jn().optionalFields()}function Qn(){return Jn().testObjects()}function Zn(){(0,Qn()[1])((function(n){return{prev:n.prev,current:Ln(n.current)}}))}function $n(n){(0,Qn()[1])((function(t){return{prev:t.prev,current:Ln(n(t.current))}}))}function nt(){return Kn(Bn(Qn()[0].current,(function(n){return n.isPending()?n:null})))}var tt=Mn();function rt(){var n=Qn()[0].current;return tt([n],(function(){return Kn(n)}))}function et(){return qn.useX().testCursor.getCursor()}function ut(){return qn.useX().testCursor.cursorAt()}function it(){return qn.useX().testCursor.next()}function ot(n,t){if(n=void 0===(n=n.type)?Un.DEFAULT:n,e(t)){var r=et();return qn.run({isolate:{type:n}},(function(){qn.useX().testCursor.addLevel(),$n((function(n){return _n(n,r,[])}));var n=t();return qn.useX().testCursor.removeLevel(),it(),n}))}}function st(n,t){return!!t&&!at(n,t)}function at(n,t){return!(!t||n.fieldName!==t)}function ft(){var n=Yn()[0];if(!z(n)){var t={};$n((function(r){return Bn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function ct(n){var t=nt();return!z(t)&&(n?t.some((function(t){return at(t,n)})):Y(t))}function lt(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function pt(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function vt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||st(n,e)||pt(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function dt(n,t){return t?n[t]:n}function gt(n){return mt("errors",n)}function ht(n){return mt("warnings",n)}function mt(n,t){return dt(n=vt(n,rt(),{fieldName:t}),t)}function yt(n,t){return dt(n=bt("errors",n,t),t)}function Nt(n,t){return dt(n=bt("warnings",n,t),t)}function bt(n,t,r){return t||yn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vt(n,rt(),{group:t,fieldName:r})}function Et(n,t,r){return!(!n.hasFailures()||st(n,r)||pt(t,n))}function Ct(n){return St("errors",n)}function Tt(n){return St("warnings",n)}function St(n,t){return rt().some((function(r){return Et(r,n,t)}))}function Ot(n,t){return wt("errors",n,t)}function xt(n,t){return wt("warnings",n,t)}function wt(n,t,r){return rt().some((function(e){return t===e.groupName&&Et(e,n,r)}))}function Pt(n,t){return!!function(n){var t=rt().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(z(rt())||function(n,t){return!!t&&z(n.tests[t])}(n,t)||function(n){var t=Yn()[0];return Y(nt().filter((function(r){return!st(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=rt(),r=Yn()[0];return t.every((function(t){return!!st(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var kt=Mn(20);function Ft(){var n=rt(),t={stateRef:Jn()};return kt([n],qn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return rt().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=lt(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=lt(n.groups[e],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:qn.bind(t,gt),getErrorsByGroup:qn.bind(t,yt),getWarnings:qn.bind(t,ht),getWarningsByGroup:qn.bind(t,Nt),hasErrors:qn.bind(t,Ct),hasErrorsByGroup:qn.bind(t,Ot),hasWarnings:qn.bind(t,Tt),hasWarningsByGroup:qn.bind(t,xt),isValid:qn.bind(t,(function(n){return Pt(Ft(),n)}))})})))}var It=Mn(20);function At(){var n=rt(),t={stateRef:Jn()};return It([n],qn.bind(t,(function(){return r({},Ft(),{done:qn.bind(t,Xt)})})))}function Wt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Rt(n){return!(ct()&&(!n||ct(n)))}var Ut,Xt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=At(),Wt(r,n,t))return t;var e=function(){return r(Ft())};return Rt(n)?(e(),t):(Dt(e,n),t)};function Dt(n,t){var r=qn.bind({},n);(0,zn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Lt(n){return n.forEach((function(n){return n()}))}function Gt(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Ut.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=zn()[0].fieldCallbacks;n&&!ct(n)&&U(t[n])&&Lt(t[n])}(n.fieldName),function(){var n=zn()[0].doneCallbacks;ct()||Lt(n)}())})),n}function jt(){var n=qn.useX();return n.bus||yn(),n.bus}(Ut||(Ut={})).TEST_COMPLETED="test_completed";function qt(n){return Kt("only","tests",n)}function Bt(n){return Kt("skip","tests",n)}function _t(n){var t=n.fieldName;n=n.groupName;var r=qn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=qn.useX().exclusion.groups;if(M(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Ht(e)||!1===e[t])}return!u&&Ht(e)}function Kt(n,t,r){var e=qn.useX("hook called outside of a running suite.");r&&Ln(r).forEach((function(r){x(r)&&(e.exclusion[t][r]="only"===n)}))}function Ht(n){for(var t in n)if(!0===n[t])return!0;return!1}qt.group=function(n){return Kt("only","groups",n)},Bt.group=function(n){return Kt("skip","groups",n)};function Mt(n){yn("Wrong arguments passed to group. Group "+n+".")}function Jt(n,t){return T(n)&&x(t)}var Vt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Dn(),this.warns=!1,this.status=zt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Jt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==rr||(this.status=n)},n.prototype.setPending=function(){this.setStatus(nr)},n.prototype.fail=function(){this.setStatus(this.warns?Zt:Qt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus($t)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.setStatus(Yt)},n.prototype.cancel=function(){this.setStatus(tr),Zn()},n.prototype.omit=function(){this.setStatus(rr)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===nr},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===rr},n.prototype.isUntested=function(){return this.status===zt},n.prototype.isFailing=function(){return this.status===Qt},n.prototype.isCanceled=function(){return this.status===tr},n.prototype.isSkipped=function(){return this.status===Yt},n.prototype.isPassing=function(){return this.status===$t},n.prototype.isWarning=function(){return this.status===Zt},n}(),zt="UNTESTED",Yt="SKIPPED",Qt="FAILED",Zt="WARNING",$t="PASSING",nr="PENDING",tr="CANCELED",rr="OMITTED";function er(n){return n&&e(n.then)}function ur(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ir(n){var t=n.asyncTest,r=n.message;if(er(t)){var e=jt().emit,u=Jn(),i=qn.bind({stateRef:u},(function(){Zn(),e(Ut.TEST_COMPLETED,n)}));u=qn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function or(n){var t=jt().emit,r=function(n){return qn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Jt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{er(r)?(n.asyncTest=r,n.setPending(),ir(n)):t(Ut.TEST_COMPLETED,n)}catch(t){yn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}function sr(n){var t=Qn(),r=t[1],e=t[0].prev;if(z(e))return ar(n),n;if(function(n,t){return Y(n)&&!ur(n,t)}(t=function(n){var t=et();return function(n,t){return Hn(n,t)[Gn(t)]}(n,t)}(e),n)){!function(n,t){qn.useX().isolate.type===Un.EACH||function(n,t){setTimeout((function(){yn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Hn(e,et());var u=ut();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return ar(n=o(t,n)),n}function ar(n){var t=et();$n((function(r){return _n(r,t,n)}))}function fr(n){var t=sr(n);return _t(n)?(n.skip(),it(),t):(function(n,t){t!==n&&ur(n,t)&&n.isPending()&&n.cancel()}(t,n),ar(n),it(),function(n){n.isUntested()?or(n):er(n.asyncTest)&&(n.setPending(),ir(n))}(n),n)}function cr(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=qn.useX();return fr(t=new Vt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var lr=r(cr,{each:function(n){return function(r){return U(r)||yn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return ot({type:Un.EACH},(function(){return r.map((function(r){return r=Ln(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(cr),memo:function(n){var t=Mn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Vn()[0];var i=ut(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),E(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):fr(u[1])}}(cr)});exports.VERSION="4.0.0-dev-8851ff",exports.create=function(n){e(n)||yn("Suite initialization error. Expected `tests` to be a function.");var t=Gt(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:Dn()});return r(qn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),ot({type:Un.SUITE},(function(){n.apply(void 0,t)})),ft(),At()})),{get:qn.bind({stateRef:o},Ft),remove:qn.bind({stateRef:o},(function(n){rt().forEach((function(t){at(t,n)&&(t.cancel(),function(n){$n((function(t){return Bn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})},exports.enforce=Xn,exports.group=function(n,t){x(n)||Mt("name must be a string"),e(t)||Mt("callback must be a function"),ot({type:Un.GROUP},(function(){qn.run({groupName:n},t)}))},exports.only=qt,exports.optional=function(n){(0,Yn()[1])((function(t){if(U(n)||x(n))Ln(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=Bt,exports.skipWhen=function(n,t){ot({type:Un.SKIP_WHEN},(function(){qn.run({skipped:i(n)},(function(){return t()}))}))},exports.test=lr,exports.warn=function(){var n=qn.useX("warn hook called outside of a running suite.");n.currentTest||yn("warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function f(){return s(!0)}function c(n){return o(n,a())}function l(n){return o(n,f())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function g(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function h(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function m(n,t){return n.length===Number(t)}var y=h(m);function N(n,t){return n.length>Number(t)}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(m(e,1))}function E(n){return null===n}var C=h(E);function T(n){return void 0===n}var S=h(T);function O(n,t){return T(n)||E(n)?f():p(t,n)}function x(n){return String(n)===n}function w(n,t){return x(n)&&x(t)&&n.endsWith(t)}var P=h(w);function k(n,t){return n===t}var F=h(k);function I(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=h(I);function W(n,t){return I(n)&&I(t)&&Number(n)>Number(t)}function R(n,t){return I(n)&&I(t)&&Number(n)>=Number(t)}function U(n){return!!Array.isArray(n)}var X=h(U);function D(n,t){return!!(U(t)||x(t)&&x(n))&&-1!==t.indexOf(n)}var L=h(D);function G(n,t){return I(n)&&I(t)&&Number(n)<=Number(t)}function j(n,t,r){return R(n,t)&&G(n,r)}var q=h(j);function B(n){return x(n)&&!n.trim()}var _=h(B);function K(n){return!!n===n}var H=h(K);function M(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function J(n){return"number"==typeof n}var V=h(J);function z(n){if(n){if(J(n))return 0===n;if(M(n,"length"))return m(n,0);if("object"==typeof n)return m(Object.keys(n),0)}return!0}var Y=h(z),Q=function(n){return!!I(n)&&0==n%2};function Z(n){return Number.isNaN(n)}var $=h(Z);function nn(n){return!!I(n)&&0>Number(n)}var tn=h(nn),rn=function(n){return!!I(n)&&0!=n%2},en=h(x);function un(n){return!!n}var on=h(un);function sn(n,t){return I(n)&&I(t)&&Number(n)<Number(t)}function an(n,t){return n.length>=Number(t)}function fn(n,t){return t instanceof RegExp?t.test(n):!!x(t)&&new RegExp(t).test(n)}var cn=h(fn);function ln(n,t){return I(n)&&I(t)&&Number(n)===Number(t)}var pn=h(ln);function vn(n,t){try{return t(n)}catch(n){return!1}}function dn(n,t){return n.length<Number(t)}function gn(n,t){return n.length<=Number(t)}function hn(n,t){return x(n)&&x(t)&&n.startsWith(t)}var mn=h(hn);function yn(n,t){throw Error(o(t,n))}function Nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:yn(o(n,"Context was used after it was closed"))}}}var bn=Nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:En})}));function En(){return null}function Cn(n,t){return l(u(n,(function(n,r,e){(e=bn.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function Tn(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=bn.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return f()}function Sn(n,t){var r=Tn(n,t);if(!r.pass)return r;for(var e in n)if(!M(t,e))return a();return f()}var On=r({condition:vn,doesNotEndWith:P,doesNotStartWith:mn,endsWith:w,equals:k,greaterThan:W,greaterThanOrEquals:R,gt:W,gte:R,inside:D,isArray:U,isBetween:j,isBlank:B,isBoolean:K,isEmpty:z,isEven:Q,isFalsy:on,isNaN:Z,isNegative:nn,isNotArray:X,isNotBetween:q,isNotBlank:_,isNotBoolean:H,isNotEmpty:Y,isNotNaN:$,isNotNull:C,isNotNumber:V,isNotNumeric:A,isNotString:en,isNotUndefined:S,isNull:E,isNumber:J,isNumeric:I,isOdd:rn,isPositive:tn,isString:x,isTruthy:un,isUndefined:T,lengthEquals:m,lengthNotEquals:y,lessThan:sn,lessThanOrEquals:G,longerThan:N,longerThanOrEquals:an,lt:sn,lte:G,matches:fn,notEquals:F,notInside:L,notMatches:cn,numberEquals:ln,numberNotEquals:pn,shorterThan:dn,shorterThanOrEquals:gn,startsWith:hn},{allOf:v,anyOf:d,noneOf:g,oneOf:b,optional:O},{shape:Sn,loose:Tn,isArrayOf:Cn});function xn(n){return On[n]}function wn(n){for(var t in On){var r=xn(t);e(r)&&n(t,r)}}function Pn(){return"function"==typeof Proxy}function kn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return Fn(n),K(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function Fn(n){K(n)||n&&K(n.pass)||yn("Incorrect return value for rule: "+JSON.stringify(n))}function In(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=kn.apply(void 0,t([bn.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!z(o.message))throw o.message;yn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Pn())return wn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=xn(t))return r(u,n,t)}});return u}function An(n){var r,e=[];return function n(o){return function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var c=xn(o);e.push((function(n){return kn.apply(void 0,t([c.apply(void 0,t([n],a)),o,n],a))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=bn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Pn()?p=new Proxy(p,{get:function(t,r){return xn(r)?n(r):t[r]}}):(wn((function(t){p[t]=n(t)})),p)}}(n)}function Wn(n){var t,r={};for(t in n)r[t]=Xn.optional(n[t]);return r}var Rn,Un,Xn=(Rn=n({context:function(){return bn.useX()},extend:function(n){r(On,n)}},{partial:Wn}),Pn()?new Proxy(r(In,Rn),{get:function(n,t){return t in n?n[t]:xn(t)?An(t):void 0}}):(wn((function(n){Rn[n]=An(n)})),Rn)),Dn=function(n){return function(){return""+n++}}(0);function Ln(n){return[].concat(n)}function Gn(n){return(n=Ln(n))[n.length-1]}function jn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Gn(t)},getCursor:function(){return Ln(t)},next:function(){return t[t.length-1]++,Gn(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.GROUP=4]="GROUP"}(Un||(Un={}));var qn=Nn((function(n,t){return t?null:r({},{isolate:{type:Un.DEFAULT},testCursor:jn(),exclusion:{tests:{},groups:{}}},n)}));function Bn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];U(u)?r.push(Bn(u,t)):(u=t(u),C(u)&&r.push(u))}return r}function _n(n,t,r){return Hn(n,t)[Gn(t)]=r,n}function Kn(n){return Ln(n).reduce((function(n,t){return U(t)?n.concat(Kn(t)):Ln(n).concat(t)}),[])}function Hn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function Mn(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),N(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return m(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Jn(){return qn.useX().stateRef}function Vn(){return Jn().suiteId()}function zn(){return Jn().testCallbacks()}function Yn(){return Jn().optionalFields()}function Qn(){return Jn().testObjects()}function Zn(){(0,Qn()[1])((function(n){return{prev:n.prev,current:Ln(n.current)}}))}function $n(n){(0,Qn()[1])((function(t){return{prev:t.prev,current:Ln(n(t.current))}}))}function nt(){return Kn(Bn(Qn()[0].current,(function(n){return n.isPending()?n:null})))}var tt=Mn();function rt(){var n=Qn()[0].current;return tt([n],(function(){return Kn(n)}))}function et(){return qn.useX().testCursor.getCursor()}function ut(){return qn.useX().testCursor.cursorAt()}function it(){return qn.useX().testCursor.next()}function ot(n,t){if(n=void 0===(n=n.type)?Un.DEFAULT:n,e(t)){var r=et();return qn.run({isolate:{type:n}},(function(){qn.useX().testCursor.addLevel(),$n((function(n){return _n(n,r,[])}));var n=t();return qn.useX().testCursor.removeLevel(),it(),n}))}}function st(n,t){return!!t&&!at(n,t)}function at(n,t){return!(!t||n.fieldName!==t)}function ft(){var n=Yn()[0];if(!z(n)){var t={};$n((function(r){return Bn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function ct(n){var t=nt();return!z(t)&&(n?t.some((function(t){return at(t,n)})):Y(t))}function lt(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function pt(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function vt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||st(n,e)||pt(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function dt(n,t){return t?n[t]:n}function gt(n){return mt("errors",n)}function ht(n){return mt("warnings",n)}function mt(n,t){return dt(n=vt(n,rt(),{fieldName:t}),t)}function yt(n,t){return dt(n=bt("errors",n,t),t)}function Nt(n,t){return dt(n=bt("warnings",n,t),t)}function bt(n,t,r){return t||yn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vt(n,rt(),{group:t,fieldName:r})}function Et(n,t,r){return!(!n.hasFailures()||st(n,r)||pt(t,n))}function Ct(n){return St("errors",n)}function Tt(n){return St("warnings",n)}function St(n,t){return rt().some((function(r){return Et(r,n,t)}))}function Ot(n,t){return wt("errors",n,t)}function xt(n,t){return wt("warnings",n,t)}function wt(n,t,r){return rt().some((function(e){return t===e.groupName&&Et(e,n,r)}))}function Pt(n,t){return!!function(n){var t=rt().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(z(rt())||function(n,t){return!!t&&z(n.tests[t])}(n,t)||function(n){var t=Yn()[0];return Y(nt().filter((function(r){return!st(r,n)&&!0!==t[r.fieldName]})))}(t))&&function(n){var t=rt(),r=Yn()[0];return t.every((function(t){return!!st(t,n)||(!0===r[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var kt=Mn(20);function Ft(){var n=rt(),t={stateRef:Jn()};return kt([n],qn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return rt().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=lt(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=lt(n.groups[e],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:qn.bind(t,gt),getErrorsByGroup:qn.bind(t,yt),getWarnings:qn.bind(t,ht),getWarningsByGroup:qn.bind(t,Nt),hasErrors:qn.bind(t,Ct),hasErrorsByGroup:qn.bind(t,Ot),hasWarnings:qn.bind(t,Tt),hasWarningsByGroup:qn.bind(t,xt),isValid:qn.bind(t,(function(n){return Pt(Ft(),n)}))})})))}var It=Mn(20);function At(){var n=rt(),t={stateRef:Jn()};return It([n],qn.bind(t,(function(){return r({},Ft(),{done:qn.bind(t,Xt)})})))}function Wt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Rt(n){return!(ct()&&(!n||ct(n)))}var Ut,Xt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=At(),Wt(r,n,t))return t;var e=function(){return r(Ft())};return Rt(n)?(e(),t):(Dt(e,n),t)};function Dt(n,t){var r=qn.bind({},n);(0,zn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Lt(n){return n.forEach((function(n){return n()}))}function Gt(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Ut.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=zn()[0].fieldCallbacks;n&&!ct(n)&&U(t[n])&&Lt(t[n])}(n.fieldName),function(){var n=zn()[0].doneCallbacks;ct()||Lt(n)}())})),n}function jt(){var n=qn.useX();return n.bus||yn(),n.bus}(Ut||(Ut={})).TEST_COMPLETED="test_completed";function qt(n){return Kt("only","tests",n)}function Bt(n){return Kt("skip","tests",n)}function _t(n){var t=n.fieldName;n=n.groupName;var r=qn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=qn.useX().exclusion.groups;if(M(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!Ht(e)||!1===e[t])}return!u&&Ht(e)}function Kt(n,t,r){var e=qn.useX("hook called outside of a running suite.");r&&Ln(r).forEach((function(r){x(r)&&(e.exclusion[t][r]="only"===n)}))}function Ht(n){for(var t in n)if(!0===n[t])return!0;return!1}qt.group=function(n){return Kt("only","groups",n)},Bt.group=function(n){return Kt("skip","groups",n)};function Mt(n){yn("Wrong arguments passed to group. Group "+n+".")}function Jt(n,t){return T(n)&&x(t)}var Vt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Dn(),this.warns=!1,this.status=zt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Jt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==rr||(this.status=n)},n.prototype.setPending=function(){this.setStatus(nr)},n.prototype.fail=function(){this.setStatus(this.warns?Zt:Qt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus($t)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(Yt)},n.prototype.cancel=function(){this.setStatus(tr),Zn()},n.prototype.omit=function(){this.setStatus(rr)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===nr},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===rr},n.prototype.isUntested=function(){return this.status===zt},n.prototype.isFailing=function(){return this.status===Qt},n.prototype.isCanceled=function(){return this.status===tr},n.prototype.isSkipped=function(){return this.status===Yt},n.prototype.isPassing=function(){return this.status===$t},n.prototype.isWarning=function(){return this.status===Zt},n}(),zt="UNTESTED",Yt="SKIPPED",Qt="FAILED",Zt="WARNING",$t="PASSING",nr="PENDING",tr="CANCELED",rr="OMITTED";function er(n){return n&&e(n.then)}function ur(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ir(n){var t=n.asyncTest,r=n.message;if(er(t)){var e=jt().emit,u=Jn(),i=qn.bind({stateRef:u},(function(){Zn(),e(Ut.TEST_COMPLETED,n)}));u=qn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:r,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function or(n){var t=jt().emit,r=function(n){return qn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Jt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{er(r)?(n.asyncTest=r,n.setPending(),ir(n)):t(Ut.TEST_COMPLETED,n)}catch(t){yn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}function sr(n){var t=Qn(),r=t[1],e=t[0].prev;if(z(e))return ar(n),n;if(function(n,t){return Y(n)&&!ur(n,t)}(t=function(n){var t=et();return function(n,t){return Hn(n,t)[Gn(t)]}(n,t)}(e),n)){!function(n,t){qn.useX().isolate.type===Un.EACH||function(n,t){setTimeout((function(){yn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Hn(e,et());var u=ut();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return ar(n=o(t,n)),n}function ar(n){var t=et();$n((function(r){return _n(r,t,n)}))}function fr(n){var t=sr(n);return _t(n)?(n.skip(),it(),t):(function(n,t){t!==n&&ur(n,t)&&n.isPending()&&n.cancel()}(t,n),ar(n),it(),function(n){n.isUntested()?or(n):er(n.asyncTest)&&(n.setPending(),ir(n))}(n),n)}function cr(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=qn.useX();return fr(t=new Vt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var lr=r(cr,{each:function(n){return function(r){return U(r)||yn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return ot({type:Un.EACH},(function(){return r.map((function(r){return r=Ln(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(cr),memo:function(n){var t=Mn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Vn()[0];var i=ut(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),E(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):fr(u[1])}}(cr)});exports.VERSION="4.0.0-dev-7acb76",exports.create=function(n){e(n)||yn("Suite initialization error. Expected `tests` to be a function.");var t=Gt(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:Dn()});return r(qn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),ot({type:Un.SUITE},(function(){n.apply(void 0,t)})),ft(),At()})),{get:qn.bind({stateRef:o},Ft),remove:qn.bind({stateRef:o},(function(n){rt().forEach((function(t){at(t,n)&&(t.cancel(),function(n){$n((function(t){return Bn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})},exports.enforce=Xn,exports.group=function(n,t){x(n)||Mt("name must be a string"),e(t)||Mt("callback must be a function"),ot({type:Un.GROUP},(function(){qn.run({groupName:n},t)}))},exports.only=qt,exports.optional=function(n){(0,Yn()[1])((function(t){if(U(n)||x(n))Ln(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},exports.skip=Bt,exports.skipWhen=function(n,t){ot({type:Un.SKIP_WHEN},(function(){qn.run({skipped:i(n)},(function(){return t()}))}))},exports.test=lr,exports.warn=function(){var n=qn.useX("warn hook called outside of a running suite.");n.currentTest||yn("warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -1862,6 +1862,12 @@ var VestTest = /** @class */ (function () {
|
|
|
1862
1862
|
return this.hasFailures() || this.isCanceled() || this.isPassing();
|
|
1863
1863
|
};
|
|
1864
1864
|
VestTest.prototype.skip = function () {
|
|
1865
|
+
if (this.isPending()) {
|
|
1866
|
+
// Without this condition, the test will be marked as skipped even if it is pending.
|
|
1867
|
+
// This means that it will not be counted in "allIncomplete" and its done callbacks
|
|
1868
|
+
// will not be called, or will be called prematurely.
|
|
1869
|
+
return;
|
|
1870
|
+
}
|
|
1865
1871
|
this.setStatus(STATUS_SKIPPED);
|
|
1866
1872
|
};
|
|
1867
1873
|
VestTest.prototype.cancel = function () {
|
|
@@ -2174,6 +2180,6 @@ var test = assign(testBase, {
|
|
|
2174
2180
|
memo: bindTestMemo(testBase)
|
|
2175
2181
|
});
|
|
2176
2182
|
|
|
2177
|
-
var VERSION = "4.0.0-dev-
|
|
2183
|
+
var VERSION = "4.0.0-dev-7acb76";
|
|
2178
2184
|
|
|
2179
2185
|
export { VERSION, create, enforce, group, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)}function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(n,t){try{return n.run(t)}catch(n){return s(!1)}}function c(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}var l=c(f);function p(n,t){return n.length>Number(t)}function v(n){return null===n}var d=c(v);function h(n){return void 0===n}var g=c(h);function m(n){return String(n)===n}function y(n,t){return m(n)&&m(t)&&n.endsWith(t)}var N=c(y);function b(n,t){return n===t}var E=c(b);function C(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var O=c(C);function T(n,t){return C(n)&&C(t)&&Number(n)>Number(t)}function w(n,t){return C(n)&&C(t)&&Number(n)>=Number(t)}function S(n){return!!Array.isArray(n)}var P=c(S);function x(n,t){return!!(S(t)||m(t)&&m(n))&&-1!==t.indexOf(n)}var k=c(x);function F(n,t){return C(n)&&C(t)&&Number(n)<=Number(t)}function A(n,t,r){return w(n,t)&&F(n,r)}var I=c(A);function W(n){return m(n)&&!n.trim()}var X=c(W);function R(n){return!!n===n}var j=c(R);function U(n){return"number"==typeof n}var D=c(U);function L(n){if(n){if(U(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}var G=c(L);function q(n){return Number.isNaN(n)}var B=c(q);function K(n){return!!C(n)&&0>Number(n)}var _=c(K),H=c(m);function M(n){return!!n}var J=c(M);function z(n,t){return C(n)&&C(t)&&Number(n)<Number(t)}function V(n,t){return t instanceof RegExp?t.test(n):!!m(t)&&new RegExp(t).test(n)}var Y=c(V);function Q(n,t){return C(n)&&C(t)&&Number(n)===Number(t)}var Z=c(Q);function $(n,t){return m(n)&&m(t)&&n.startsWith(t)}var nn=c($);function tn(n,t){throw Error(o(t,n))}function rn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:tn(o(n,"Context was used after it was closed"))}}}var en=rn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:un})}));function un(){return null}function on(n,t){function r(r){var e=n[r],u=t[r];if(!(r=en.run({value:e,set:!0,meta:{key:r}},(function(){return a(u,e)}))).pass)return{value:r}}for(var e in t){var u=r(e);if("object"==typeof u)return u.value}return s(!0)}var sn=r({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:N,doesNotStartWith:nn,endsWith:y,equals:b,greaterThan:T,greaterThanOrEquals:w,gt:T,gte:w,inside:x,isArray:S,isBetween:A,isBlank:W,isBoolean:R,isEmpty:L,isEven:function(n){return!!C(n)&&0==n%2},isFalsy:J,isNaN:q,isNegative:K,isNotArray:P,isNotBetween:I,isNotBlank:X,isNotBoolean:j,isNotEmpty:G,isNotNaN:B,isNotNull:d,isNotNumber:D,isNotNumeric:O,isNotString:H,isNotUndefined:g,isNull:v,isNumber:U,isNumeric:C,isOdd:function(n){return!!C(n)&&0!=n%2},isPositive:_,isString:m,isTruthy:M,isUndefined:h,lengthEquals:f,lengthNotEquals:l,lessThan:z,lessThanOrEquals:F,longerThan:p,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:z,lte:F,matches:V,notEquals:E,notInside:k,notMatches:Y,numberEquals:Q,numberNotEquals:Z,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:$},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass||r(t)})),s(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass&&r(t)})),s(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){a(t,n).pass&&r(s(!1))})),s(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(p(e,1))return!1;(t=a(t,n)).pass&&e.push(t)})),s(f(e,1))},optional:function(n,t){return h(n)||null===n?s(!0):a(t,n)}},{shape:function(n,t){var r=on(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return s(!1);return s(!0)},loose:on,isArrayOf:function(n,t){return o(u(n,(function(n,r,e){(e=en.run({value:n,set:!0,meta:{index:e}},(function(){return a(t,n)}))).pass||r(e)})),s(!0))}});function an(n){for(var t in sn){var r=sn[t];e(r)&&n(t,r)}}function cn(){return"function"==typeof Proxy}function fn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return R(n)||n&&R(n.pass)||tn("Incorrect return value for rule: "+JSON.stringify(n)),R(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function ln(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=fn.apply(void 0,t([en.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!L(o.message))throw o.message;tn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!cn())return an((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=sn[t])return r(u,n,t)}});return u}function pn(n){var r,e=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=sn[a];e.push((function(n){return fn.apply(void 0,t([l.apply(void 0,t([n],c)),a,n],c))}));var p={run:function(n){return o(u(e,(function(t,e){var u,o=en.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})),s(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return cn()?p=new Proxy(p,{get:function(t,r){return sn[r]?n(r):t[r]}}):(an((function(t){p[t]=n(t)})),p)}}(n)}function vn(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r}var dn,hn=(dn=n({context:function(){return en.useX()},extend:function(n){r(sn,n)}},{partial:vn}),cn()?new Proxy(r(ln,dn),{get:function(n,t){return t in n?n[t]:sn[t]?pn(t):void 0}}):(an((function(n){dn[n]=pn(n)})),dn)),gn=function(n){return function(){return""+n++}}(0);var mn,yn=mn||(mn={});function Nn(n){return(n=[].concat(n))[n.length-1]}function bn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Nn(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,Nn(t)},removeLevel:function(){t.pop()},reset:n}}yn[yn.DEFAULT=0]="DEFAULT",yn[yn.SUITE=1]="SUITE",yn[yn.EACH=2]="EACH",yn[yn.SKIP_WHEN=3]="SKIP_WHEN",yn[yn.GROUP=4]="GROUP";var En=rn((function(n,t){return t?null:r({},{isolate:{type:mn.DEFAULT},testCursor:bn(),exclusion:{tests:{},groups:{}}},n)}));function Cn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];S(u)?r.push(Cn(u,t)):(u=t(u),d(u)&&r.push(u))}return r}function On(n){return[].concat(n).reduce((function(n,t){return S(t)?n.concat(On(t)):[].concat(n).concat(t)}),[])}function Tn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function wn(n){function t(e,u){var i=t.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),p(r,n)&&(r.length=n),u)}void 0===n&&(n=1);var r=[];return t.invalidate=function(n){var t=r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<t&&r.splice(t,1)},t.get=function(n){return r[r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},t}function Sn(){return En.useX().stateRef}function Pn(){(0,Sn().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function xn(n){(0,Sn().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function kn(){return On(Cn(Sn().testObjects()[0].current,(function(n){return n.isPending()?n:null})))}var Fn=wn();function An(){var n=Sn().testObjects()[0].current;return Fn([n],(function(){return On(n)}))}function In(){return En.useX().testCursor.getCursor()}function Wn(n,t){if(n=void 0===(n=n.type)?mn.DEFAULT:n,e(t)){var r=In();return En.run({isolate:{type:n}},(function(){En.useX().testCursor.addLevel(),xn((function(n){return Tn(n,r)[Nn(r)]=[],n}));var n=t();return En.useX().testCursor.removeLevel(),En.useX().testCursor.next(),n}))}}function Xn(n,t){return!(!t||n.fieldName!==t)}function Rn(){var n=Sn().optionalFields()[0];if(!L(n)){var t={};xn((function(r){return Cn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function jn(n){var t=kn();return!L(t)&&(n?t.some((function(t){return Xn(t,n)})):G(t))}function Un(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function Dn(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return i&&r.groupName!==i||o&&!Xn(r,o)||"warnings"===t!=!!r.warns||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function Ln(n){return qn("errors",n)}function Gn(n){return qn("warnings",n)}function qn(n,t){return n=Dn(n,An(),{fieldName:t}),t?n[t]:n}function Bn(n,t){return n=_n("errors",n,t),t?n[t]:n}function Kn(n,t){return n=_n("warnings",n,t),t?n[t]:n}function _n(n,t,r){return t||tn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),Dn(n,An(),{group:t,fieldName:r})}function Hn(n,t,r){return!(!n.hasFailures()||r&&!Xn(n,r)||"warnings"===t!=!!n.warns)}function Mn(n){return zn("errors",n)}function Jn(n){return zn("warnings",n)}function zn(n,t){return An().some((function(r){return Hn(r,n,t)}))}function Vn(n,t){return Qn("errors",n,t)}function Yn(n,t){return Qn("warnings",n,t)}function Qn(n,t,r){return An().some((function(e){return t===e.groupName&&Hn(e,n,r)}))}var Zn=wn(20);function $n(){var n=An(),t={stateRef:Sn()};return Zn([n],En.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return An().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Un(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Un(n.groups[e],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:En.bind(t,Ln),getErrorsByGroup:En.bind(t,Bn),getWarnings:En.bind(t,Gn),getWarningsByGroup:En.bind(t,Kn),hasErrors:En.bind(t,Mn),hasErrorsByGroup:En.bind(t,Vn),hasWarnings:En.bind(t,Jn),hasWarningsByGroup:En.bind(t,Yn),isValid:En.bind(t,(function(n){var t=$n(),r=An().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(r=!!n&&!!r[n])?n=!0:t.hasErrors(n)?n=!1:n=!(L(r=An())||n&&L(t.tests[n])||function(n){var t=Sn().optionalFields()[0];return G(kn().filter((function(r){return!(n&&!Xn(r,n))&&!0!==t[r.fieldName]})))}(n))&&function(n){var t=An(),r=Sn().optionalFields()[0];return t.every((function(t){return!(!n||Xn(t,n))||!0===r[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n}))})})))}var nt,tt=wn(20);function rt(){var n=An(),t={stateRef:Sn()};return tt([n],En.bind(t,(function(){return r({},$n(),{done:En.bind(t,it)})})))}function et(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function ut(n){return!(jn()&&(!n||jn(n)))}function it(){function n(){return e($n())}for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=(t=t.reverse())[0];return t=t[1],r=rt(),et(e,t,r)?r:ut(t)?(n(),r):(ot(n,t),r)}function ot(n,t){var r=En.bind({},n);(0,Sn().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function st(n){return n.forEach((function(n){return n()}))}function at(){var n=En.useX();return n.bus||tn(),n.bus}function ct(n){return lt("only","tests",n)}function ft(n){return lt("skip","tests",n)}function lt(n,t,r){var e=En.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){m(r)&&(e.exclusion[t][r]="only"===n)}))}function pt(n){for(var t in n)if(!0===n[t])return!0;return!1}function vt(n){tn("Wrong arguments passed to group. Group "+n+".")}(nt||(nt={})).TEST_COMPLETED="test_completed",ct.group=function(n){return lt("only","groups",n)},ft.group=function(n){return lt("skip","groups",n)};var dt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=gn(),this.warns=!1,this.status=ht,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,h(this.message)&&m(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Ct||(this.status=n)},n.prototype.setPending=function(){this.setStatus(bt)},n.prototype.fail=function(){this.setStatus(this.warns?yt:mt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Nt)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.setStatus(gt)},n.prototype.cancel=function(){this.setStatus(Et),Pn()},n.prototype.omit=function(){this.setStatus(Ct)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===bt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Ct},n.prototype.isUntested=function(){return this.status===ht},n.prototype.isFailing=function(){return this.status===mt},n.prototype.isCanceled=function(){return this.status===Et},n.prototype.isSkipped=function(){return this.status===gt},n.prototype.isPassing=function(){return this.status===Nt},n.prototype.isWarning=function(){return this.status===yt},n}(),ht="UNTESTED",gt="SKIPPED",mt="FAILED",yt="WARNING",Nt="PASSING",bt="PENDING",Et="CANCELED",Ct="OMITTED";function Ot(n){var t=n.asyncTest,r=n.message;if(t&&e(t.then)){var u=at().emit,i=Sn(),o=En.bind({stateRef:i},(function(){Pn(),u(nt.TEST_COMPLETED,n)}));i=En.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=m(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Tt(n){var t=Sn().testObjects(),r=t[1],e=t[0].prev;if(L(e))return wt(n),n;if(function(n,t){return G(n)&&!(n.fieldName===t.fieldName&&n.groupName===t.groupName)}(t=function(n){var t=In();return Tn(n,t)[Nn(t)]}(e),n)){!function(n,t){En.useX().isolate.type!==mn.EACH&&function(n,t){setTimeout((function(){tn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Tn(e,In());var u=En.useX().testCursor.cursorAt();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return wt(n=o(t,n)),n}function wt(n){var t=In();xn((function(r){return Tn(r,t)[Nn(t)]=n,r}))}function St(n){var t=Tt(n);if(function(n){var t=n.fieldName;n=n.groupName;var r=En.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=En.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!pt(e)&&!1!==e[t])}return!u&&pt(e)}(n))return n.skip(),En.useX().testCursor.next(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),wt(n),En.useX().testCursor.next(),n.isUntested()){t=at().emit;var r=function(n){return En.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,h(n.message)&&m(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&e(r.then)?(n.asyncTest=r,n.setPending(),Ot(n)):t(nt.TEST_COMPLETED,n)}catch(t){tn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&e(t.then)&&(n.setPending(),Ot(n));return n}function Pt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=En.useX();return St(t=new dt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var xt=r(Pt,{each:function(n){return function(r){return S(r)||tn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return Wn({type:mn.EACH},(function(){return r.map((function(r){return r=[].concat(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(Pt),memo:function(n){var t=wn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Sn().suiteId()[0];var i=En.useX().testCursor.cursorAt(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):St(u[1])}}(Pt)}),kt="4.0.0-dev-8851ff";function Ft(n){e(n)||tn("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(nt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Sn().testCallbacks()[0].fieldCallbacks;n&&!jn(n)&&S(t[n])&&st(t[n]),n=Sn().testCallbacks()[0].doneCallbacks,jn()||st(n)}})),n}(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:gn()});return r(En.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),Wn({type:mn.SUITE},(function(){n.apply(void 0,t)})),Rn(),rt()})),{get:En.bind({stateRef:o},$n),remove:En.bind({stateRef:o},(function(n){An().forEach((function(t){Xn(t,n)&&(t.cancel(),function(n){xn((function(t){return Cn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})}function At(n,t){m(n)||vt("name must be a string"),e(t)||vt("callback must be a function"),Wn({type:mn.GROUP},(function(){En.run({groupName:n},t)}))}function It(n){(0,Sn().optionalFields()[1])((function(t){if(S(n)||m(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))}function Wt(n,t){Wn({type:mn.SKIP_WHEN},(function(){En.run({skipped:i(n)},(function(){return t()}))}))}function Xt(){var n=En.useX("warn hook called outside of a running suite.");n.currentTest||tn("warn called outside of a test."),n.currentTest.warn()}export{kt as VERSION,Ft as create,hn as enforce,At as group,ct as only,It as optional,ft as skip,Wt as skipWhen,xt as test,Xt as warn};
|
|
1
|
+
function n(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)}function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(n,t){try{return n.run(t)}catch(n){return s(!1)}}function c(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}var l=c(f);function p(n,t){return n.length>Number(t)}function v(n){return null===n}var d=c(v);function h(n){return void 0===n}var g=c(h);function m(n){return String(n)===n}function y(n,t){return m(n)&&m(t)&&n.endsWith(t)}var N=c(y);function b(n,t){return n===t}var E=c(b);function C(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var O=c(C);function T(n,t){return C(n)&&C(t)&&Number(n)>Number(t)}function w(n,t){return C(n)&&C(t)&&Number(n)>=Number(t)}function S(n){return!!Array.isArray(n)}var P=c(S);function x(n,t){return!!(S(t)||m(t)&&m(n))&&-1!==t.indexOf(n)}var k=c(x);function F(n,t){return C(n)&&C(t)&&Number(n)<=Number(t)}function A(n,t,r){return w(n,t)&&F(n,r)}var I=c(A);function W(n){return m(n)&&!n.trim()}var X=c(W);function R(n){return!!n===n}var j=c(R);function U(n){return"number"==typeof n}var D=c(U);function L(n){if(n){if(U(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}var G=c(L);function q(n){return Number.isNaN(n)}var B=c(q);function K(n){return!!C(n)&&0>Number(n)}var _=c(K),H=c(m);function M(n){return!!n}var J=c(M);function z(n,t){return C(n)&&C(t)&&Number(n)<Number(t)}function V(n,t){return t instanceof RegExp?t.test(n):!!m(t)&&new RegExp(t).test(n)}var Y=c(V);function Q(n,t){return C(n)&&C(t)&&Number(n)===Number(t)}var Z=c(Q);function $(n,t){return m(n)&&m(t)&&n.startsWith(t)}var nn=c($);function tn(n,t){throw Error(o(t,n))}function rn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:tn(o(n,"Context was used after it was closed"))}}}var en=rn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:un})}));function un(){return null}function on(n,t){function r(r){var e=n[r],u=t[r];if(!(r=en.run({value:e,set:!0,meta:{key:r}},(function(){return a(u,e)}))).pass)return{value:r}}for(var e in t){var u=r(e);if("object"==typeof u)return u.value}return s(!0)}var sn=r({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:N,doesNotStartWith:nn,endsWith:y,equals:b,greaterThan:T,greaterThanOrEquals:w,gt:T,gte:w,inside:x,isArray:S,isBetween:A,isBlank:W,isBoolean:R,isEmpty:L,isEven:function(n){return!!C(n)&&0==n%2},isFalsy:J,isNaN:q,isNegative:K,isNotArray:P,isNotBetween:I,isNotBlank:X,isNotBoolean:j,isNotEmpty:G,isNotNaN:B,isNotNull:d,isNotNumber:D,isNotNumeric:O,isNotString:H,isNotUndefined:g,isNull:v,isNumber:U,isNumeric:C,isOdd:function(n){return!!C(n)&&0!=n%2},isPositive:_,isString:m,isTruthy:M,isUndefined:h,lengthEquals:f,lengthNotEquals:l,lessThan:z,lessThanOrEquals:F,longerThan:p,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:z,lte:F,matches:V,notEquals:E,notInside:k,notMatches:Y,numberEquals:Q,numberNotEquals:Z,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:$},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass||r(t)})),s(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass&&r(t)})),s(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){a(t,n).pass&&r(s(!1))})),s(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(p(e,1))return!1;(t=a(t,n)).pass&&e.push(t)})),s(f(e,1))},optional:function(n,t){return h(n)||null===n?s(!0):a(t,n)}},{shape:function(n,t){var r=on(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return s(!1);return s(!0)},loose:on,isArrayOf:function(n,t){return o(u(n,(function(n,r,e){(e=en.run({value:n,set:!0,meta:{index:e}},(function(){return a(t,n)}))).pass||r(e)})),s(!0))}});function an(n){for(var t in sn){var r=sn[t];e(r)&&n(t,r)}}function cn(){return"function"==typeof Proxy}function fn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return R(n)||n&&R(n.pass)||tn("Incorrect return value for rule: "+JSON.stringify(n)),R(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function ln(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=fn.apply(void 0,t([en.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!L(o.message))throw o.message;tn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!cn())return an((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=sn[t])return r(u,n,t)}});return u}function pn(n){var r,e=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=sn[a];e.push((function(n){return fn.apply(void 0,t([l.apply(void 0,t([n],c)),a,n],c))}));var p={run:function(n){return o(u(e,(function(t,e){var u,o=en.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})),s(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return cn()?p=new Proxy(p,{get:function(t,r){return sn[r]?n(r):t[r]}}):(an((function(t){p[t]=n(t)})),p)}}(n)}function vn(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r}var dn,hn=(dn=n({context:function(){return en.useX()},extend:function(n){r(sn,n)}},{partial:vn}),cn()?new Proxy(r(ln,dn),{get:function(n,t){return t in n?n[t]:sn[t]?pn(t):void 0}}):(an((function(n){dn[n]=pn(n)})),dn)),gn=function(n){return function(){return""+n++}}(0);var mn,yn=mn||(mn={});function Nn(n){return(n=[].concat(n))[n.length-1]}function bn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Nn(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,Nn(t)},removeLevel:function(){t.pop()},reset:n}}yn[yn.DEFAULT=0]="DEFAULT",yn[yn.SUITE=1]="SUITE",yn[yn.EACH=2]="EACH",yn[yn.SKIP_WHEN=3]="SKIP_WHEN",yn[yn.GROUP=4]="GROUP";var En=rn((function(n,t){return t?null:r({},{isolate:{type:mn.DEFAULT},testCursor:bn(),exclusion:{tests:{},groups:{}}},n)}));function Cn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];S(u)?r.push(Cn(u,t)):(u=t(u),d(u)&&r.push(u))}return r}function On(n){return[].concat(n).reduce((function(n,t){return S(t)?n.concat(On(t)):[].concat(n).concat(t)}),[])}function Tn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function wn(n){function t(e,u){var i=t.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),p(r,n)&&(r.length=n),u)}void 0===n&&(n=1);var r=[];return t.invalidate=function(n){var t=r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<t&&r.splice(t,1)},t.get=function(n){return r[r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},t}function Sn(){return En.useX().stateRef}function Pn(){(0,Sn().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function xn(n){(0,Sn().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function kn(){return On(Cn(Sn().testObjects()[0].current,(function(n){return n.isPending()?n:null})))}var Fn=wn();function An(){var n=Sn().testObjects()[0].current;return Fn([n],(function(){return On(n)}))}function In(){return En.useX().testCursor.getCursor()}function Wn(n,t){if(n=void 0===(n=n.type)?mn.DEFAULT:n,e(t)){var r=In();return En.run({isolate:{type:n}},(function(){En.useX().testCursor.addLevel(),xn((function(n){return Tn(n,r)[Nn(r)]=[],n}));var n=t();return En.useX().testCursor.removeLevel(),En.useX().testCursor.next(),n}))}}function Xn(n,t){return!(!t||n.fieldName!==t)}function Rn(){var n=Sn().optionalFields()[0];if(!L(n)){var t={};xn((function(r){return Cn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function jn(n){var t=kn();return!L(t)&&(n?t.some((function(t){return Xn(t,n)})):G(t))}function Un(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function Dn(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return i&&r.groupName!==i||o&&!Xn(r,o)||"warnings"===t!=!!r.warns||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function Ln(n){return qn("errors",n)}function Gn(n){return qn("warnings",n)}function qn(n,t){return n=Dn(n,An(),{fieldName:t}),t?n[t]:n}function Bn(n,t){return n=_n("errors",n,t),t?n[t]:n}function Kn(n,t){return n=_n("warnings",n,t),t?n[t]:n}function _n(n,t,r){return t||tn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),Dn(n,An(),{group:t,fieldName:r})}function Hn(n,t,r){return!(!n.hasFailures()||r&&!Xn(n,r)||"warnings"===t!=!!n.warns)}function Mn(n){return zn("errors",n)}function Jn(n){return zn("warnings",n)}function zn(n,t){return An().some((function(r){return Hn(r,n,t)}))}function Vn(n,t){return Qn("errors",n,t)}function Yn(n,t){return Qn("warnings",n,t)}function Qn(n,t,r){return An().some((function(e){return t===e.groupName&&Hn(e,n,r)}))}var Zn=wn(20);function $n(){var n=An(),t={stateRef:Sn()};return Zn([n],En.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return An().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Un(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Un(n.groups[e],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:En.bind(t,Ln),getErrorsByGroup:En.bind(t,Bn),getWarnings:En.bind(t,Gn),getWarningsByGroup:En.bind(t,Kn),hasErrors:En.bind(t,Mn),hasErrorsByGroup:En.bind(t,Vn),hasWarnings:En.bind(t,Jn),hasWarningsByGroup:En.bind(t,Yn),isValid:En.bind(t,(function(n){var t=$n(),r=An().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(r=!!n&&!!r[n])?n=!0:t.hasErrors(n)?n=!1:n=!(L(r=An())||n&&L(t.tests[n])||function(n){var t=Sn().optionalFields()[0];return G(kn().filter((function(r){return!(n&&!Xn(r,n))&&!0!==t[r.fieldName]})))}(n))&&function(n){var t=An(),r=Sn().optionalFields()[0];return t.every((function(t){return!(!n||Xn(t,n))||!0===r[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n}))})})))}var nt,tt=wn(20);function rt(){var n=An(),t={stateRef:Sn()};return tt([n],En.bind(t,(function(){return r({},$n(),{done:En.bind(t,it)})})))}function et(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function ut(n){return!(jn()&&(!n||jn(n)))}function it(){function n(){return e($n())}for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=(t=t.reverse())[0];return t=t[1],r=rt(),et(e,t,r)?r:ut(t)?(n(),r):(ot(n,t),r)}function ot(n,t){var r=En.bind({},n);(0,Sn().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function st(n){return n.forEach((function(n){return n()}))}function at(){var n=En.useX();return n.bus||tn(),n.bus}function ct(n){return lt("only","tests",n)}function ft(n){return lt("skip","tests",n)}function lt(n,t,r){var e=En.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){m(r)&&(e.exclusion[t][r]="only"===n)}))}function pt(n){for(var t in n)if(!0===n[t])return!0;return!1}function vt(n){tn("Wrong arguments passed to group. Group "+n+".")}(nt||(nt={})).TEST_COMPLETED="test_completed",ct.group=function(n){return lt("only","groups",n)},ft.group=function(n){return lt("skip","groups",n)};var dt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=gn(),this.warns=!1,this.status=ht,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,h(this.message)&&m(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Ct||(this.status=n)},n.prototype.setPending=function(){this.setStatus(bt)},n.prototype.fail=function(){this.setStatus(this.warns?yt:mt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Nt)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(gt)},n.prototype.cancel=function(){this.setStatus(Et),Pn()},n.prototype.omit=function(){this.setStatus(Ct)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===bt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Ct},n.prototype.isUntested=function(){return this.status===ht},n.prototype.isFailing=function(){return this.status===mt},n.prototype.isCanceled=function(){return this.status===Et},n.prototype.isSkipped=function(){return this.status===gt},n.prototype.isPassing=function(){return this.status===Nt},n.prototype.isWarning=function(){return this.status===yt},n}(),ht="UNTESTED",gt="SKIPPED",mt="FAILED",yt="WARNING",Nt="PASSING",bt="PENDING",Et="CANCELED",Ct="OMITTED";function Ot(n){var t=n.asyncTest,r=n.message;if(t&&e(t.then)){var u=at().emit,i=Sn(),o=En.bind({stateRef:i},(function(){Pn(),u(nt.TEST_COMPLETED,n)}));i=En.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=m(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Tt(n){var t=Sn().testObjects(),r=t[1],e=t[0].prev;if(L(e))return wt(n),n;if(function(n,t){return G(n)&&!(n.fieldName===t.fieldName&&n.groupName===t.groupName)}(t=function(n){var t=In();return Tn(n,t)[Nn(t)]}(e),n)){!function(n,t){En.useX().isolate.type!==mn.EACH&&function(n,t){setTimeout((function(){tn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Tn(e,In());var u=En.useX().testCursor.cursorAt();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return wt(n=o(t,n)),n}function wt(n){var t=In();xn((function(r){return Tn(r,t)[Nn(t)]=n,r}))}function St(n){var t=Tt(n);if(function(n){var t=n.fieldName;n=n.groupName;var r=En.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=En.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!pt(e)&&!1!==e[t])}return!u&&pt(e)}(n))return n.skip(),En.useX().testCursor.next(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),wt(n),En.useX().testCursor.next(),n.isUntested()){t=at().emit;var r=function(n){return En.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,h(n.message)&&m(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&e(r.then)?(n.asyncTest=r,n.setPending(),Ot(n)):t(nt.TEST_COMPLETED,n)}catch(t){tn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&e(t.then)&&(n.setPending(),Ot(n));return n}function Pt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=En.useX();return St(t=new dt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var xt=r(Pt,{each:function(n){return function(r){return S(r)||tn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return Wn({type:mn.EACH},(function(){return r.map((function(r){return r=[].concat(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(Pt),memo:function(n){var t=wn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Sn().suiteId()[0];var i=En.useX().testCursor.cursorAt(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):St(u[1])}}(Pt)}),kt="4.0.0-dev-7acb76";function Ft(n){e(n)||tn("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(nt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Sn().testCallbacks()[0].fieldCallbacks;n&&!jn(n)&&S(t[n])&&st(t[n]),n=Sn().testCallbacks()[0].doneCallbacks,jn()||st(n)}})),n}(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:gn()});return r(En.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),Wn({type:mn.SUITE},(function(){n.apply(void 0,t)})),Rn(),rt()})),{get:En.bind({stateRef:o},$n),remove:En.bind({stateRef:o},(function(n){An().forEach((function(t){Xn(t,n)&&(t.cancel(),function(n){xn((function(t){return Cn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})}function At(n,t){m(n)||vt("name must be a string"),e(t)||vt("callback must be a function"),Wn({type:mn.GROUP},(function(){En.run({groupName:n},t)}))}function It(n){(0,Sn().optionalFields()[1])((function(t){if(S(n)||m(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))}function Wt(n,t){Wn({type:mn.SKIP_WHEN},(function(){En.run({skipped:i(n)},(function(){return t()}))}))}function Xt(){var n=En.useX("warn hook called outside of a running suite.");n.currentTest||tn("warn called outside of a test."),n.currentTest.warn()}export{kt as VERSION,Ft as create,hn as enforce,At as group,ct as only,It as optional,ft as skip,Wt as skipWhen,xt as test,Xt as warn};
|
|
@@ -1868,6 +1868,12 @@
|
|
|
1868
1868
|
return this.hasFailures() || this.isCanceled() || this.isPassing();
|
|
1869
1869
|
};
|
|
1870
1870
|
VestTest.prototype.skip = function () {
|
|
1871
|
+
if (this.isPending()) {
|
|
1872
|
+
// Without this condition, the test will be marked as skipped even if it is pending.
|
|
1873
|
+
// This means that it will not be counted in "allIncomplete" and its done callbacks
|
|
1874
|
+
// will not be called, or will be called prematurely.
|
|
1875
|
+
return;
|
|
1876
|
+
}
|
|
1871
1877
|
this.setStatus(STATUS_SKIPPED);
|
|
1872
1878
|
};
|
|
1873
1879
|
VestTest.prototype.cancel = function () {
|
|
@@ -2180,7 +2186,7 @@
|
|
|
2180
2186
|
memo: bindTestMemo(testBase)
|
|
2181
2187
|
});
|
|
2182
2188
|
|
|
2183
|
-
var VERSION = "4.0.0-dev-
|
|
2189
|
+
var VERSION = "4.0.0-dev-7acb76";
|
|
2184
2190
|
|
|
2185
2191
|
exports.VERSION = VERSION;
|
|
2186
2192
|
exports.create = create;
|
|
@@ -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,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}function r(n){return"function"==typeof n}function e(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function u(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function i(n,t){var r;return null!==(r=u(n))&&void 0!==r?r:t}function o(n,t){return n={pass:n},t&&(n.message=t),n}function s(n,t){try{return n.run(t)}catch(n){return o(!1)}}function a(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function c(n,t){return n.length===Number(t)}function f(n,t){return n.length>Number(t)}function l(n){return null===n}function p(n){return void 0===n}function v(n){return String(n)===n}function d(n,t){return v(n)&&v(t)&&n.endsWith(t)}function h(n,t){return n===t}function g(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function m(n,t){return g(n)&&g(t)&&Number(n)>Number(t)}function y(n,t){return g(n)&&g(t)&&Number(n)>=Number(t)}function N(n){return!!Array.isArray(n)}function b(n,t){return!!(N(t)||v(t)&&v(n))&&-1!==t.indexOf(n)}function E(n,t){return g(n)&&g(t)&&Number(n)<=Number(t)}function C(n,t,r){return y(n,t)&&E(n,r)}function O(n){return v(n)&&!n.trim()}function T(n){return!!n===n}function w(n){return"number"==typeof n}function S(n){if(n){if(w(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return c(n,0);if("object"==typeof n)return c(Object.keys(n),0)}return!0}function P(n){return Number.isNaN(n)}function x(n){return!!g(n)&&0>Number(n)}function k(n){return!!n}function F(n,t){return g(n)&&g(t)&&Number(n)<Number(t)}function A(n,t){return t instanceof RegExp?t.test(n):!!v(t)&&new RegExp(t).test(n)}function I(n,t){return g(n)&&g(t)&&Number(n)===Number(t)}function W(n,t){return v(n)&&v(t)&&n.startsWith(t)}function j(n,t){throw Error(i(t,n))}function R(n){function t(t,u){var i,o,s=r();return t=Bn({},s||{},null!==(i=null==n?void 0:n(t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:j(i(n,"Context was used after it was closed"))}}}function X(){return null}function U(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=ct.run({value:e,set:!0,meta:{key:r}},(function(){return s(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return o(!0)}function D(n){for(var t in ft){var e=ft[t];r(e)&&n(t,e)}}function L(){return"function"==typeof Proxy}function G(n,r,e){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return T(n)||n&&T(n.pass)||j("Incorrect return value for rule: "+JSON.stringify(n)),T(n)?o(n):o(n.pass,u.apply(void 0,t([n.message,r,e],i)))}function q(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=G.apply(void 0,t([ct.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!S(o.message))throw o.message;j("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!L())return D((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=ft[t])return r(u,n,t)}});return u}function B(n){var r,s=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=ft[a];s.push((function(n){return G.apply(void 0,t([l.apply(void 0,t([n],c)),a,n],c))}));var p={run:function(n){return i(e(s,(function(t,e){var i,s=ct.run({value:n},(function(){return t(n)}));s.pass||e(o(!!s.pass,null!==(i=u(r,n,s.message))&&void 0!==i?i:s.message))})),o(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return L()?p=new Proxy(p,{get:function(t,r){return ft[r]?n(r):t[r]}}):(D((function(t){p[t]=n(t)})),p)}}(n)}function _(n){var t,r={};for(t in n)r[t]=lt.optional(n[t]);return r}function K(n){return(n=[].concat(n))[n.length-1]}function H(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return K(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,K(t)},removeLevel:function(){t.pop()},reset:n}}function M(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];N(u)?r.push(M(u,t)):(u=t(u),Kn(u)&&r.push(u))}return r}function J(n){return[].concat(n).reduce((function(n,t){return N(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function V(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=i(n[e],[]),n=n[e]}return n}function z(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),f(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Y(){return dt.useX().stateRef}function Q(){(0,Y().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,Y().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return J(M(Y().testObjects()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=Y().testObjects()[0].current;return ht([n],(function(){return J(n)}))}function tn(){return dt.useX().testCursor.getCursor()}function rn(n,t){if(n=void 0===(n=n.type)?Ln.DEFAULT:n,r(t)){var e=tn();return dt.run({isolate:{type:n}},(function(){dt.useX().testCursor.addLevel(),Z((function(n){return V(n,e)[K(e)]=[],n}));var n=t();return dt.useX().testCursor.removeLevel(),dt.useX().testCursor.next(),n}))}}function en(n,t){return!(!t||n.fieldName!==t)}function un(){var n=Y().optionalFields()[0];if(!S(n)){var t={};Z((function(e){return M(e,(function(e){var u=e.fieldName;if(t.hasOwnProperty(u))t[e.fieldName]&&e.omit();else{var i=n[u];r(i)&&(t[u]=i(),t[e.fieldName]&&e.omit())}return e}))}))}}function on(n){var t=$();return!S(t)&&(n?t.some((function(t){return en(t,n)})):tt(t))}function sn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function an(n,t,r){var e;void 0===r&&(r={});var u=(r=r||{}).group,i=r.fieldName;return t.reduce((function(t,r){return u&&r.groupName!==u||i&&!en(r,i)||"warnings"===n!=!!r.warns||!r.hasFailures()||(t[r.fieldName]=(t[r.fieldName]||[]).concat(r.message||[])),t}),qn({},i&&((e={})[i]=[],e)))}function cn(n){return ln("errors",n)}function fn(n){return ln("warnings",n)}function ln(n,t){return n=an(n,nn(),{fieldName:t}),t?n[t]:n}function pn(n,t){return n=dn("errors",n,t),t?n[t]:n}function vn(n,t){return n=dn("warnings",n,t),t?n[t]:n}function dn(n,t,r){return t||j("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),an(n,nn(),{group:t,fieldName:r})}function hn(n,t,r){return!(!n.hasFailures()||r&&!en(n,r)||"warnings"===t!=!!n.warns)}function gn(n){return yn("errors",n)}function mn(n){return yn("warnings",n)}function yn(n,t){return nn().some((function(r){return hn(r,n,t)}))}function Nn(n,t){return En("errors",n,t)}function bn(n,t){return En("warnings",n,t)}function En(n,t,r){return nn().some((function(e){return t===e.groupName&&hn(e,n,r)}))}function Cn(){var n=nn(),t={stateRef:Y()};return gt([n],dt.bind(t,(function(){return Bn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return nn().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=sn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=sn(n.groups[e],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:dt.bind(t,cn),getErrorsByGroup:dt.bind(t,pn),getWarnings:dt.bind(t,fn),getWarningsByGroup:dt.bind(t,vn),hasErrors:dt.bind(t,gn),hasErrorsByGroup:dt.bind(t,Nn),hasWarnings:dt.bind(t,mn),hasWarningsByGroup:dt.bind(t,bn),isValid:dt.bind(t,(function(n){var t=Cn(),r=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(r=!!n&&!!r[n])?n=!0:t.hasErrors(n)?n=!1:n=!(S(r=nn())||n&&S(t.tests[n])||function(n){var t=Y().optionalFields()[0];return tt($().filter((function(r){return!(n&&!en(r,n))&&!0!==t[r.fieldName]})))}(n))&&function(n){var t=nn(),r=Y().optionalFields()[0];return t.every((function(t){return!(!n||en(t,n))||!0===r[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n}))})})))}function On(){var n=nn(),t={stateRef:Y()};return mt([n],dt.bind(t,(function(){return Bn({},Cn(),{done:dt.bind(t,yt)})})))}function Tn(n,t,e){return!(r(n)&&(!t||e.tests[t]&&0!==e.tests[t].testCount))}function wn(n){return!(on()&&(!n||on(n)))}function Sn(n,t){var r=dt.bind({},n);(0,Y().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Pn(n){return n.forEach((function(n){return n()}))}function xn(){var n=dt.useX();return n.bus||j(),n.bus}function kn(n){return An("only","tests",n)}function Fn(n){return An("skip","tests",n)}function An(n,t,r){var e=dt.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){v(r)&&(e.exclusion[t][r]="only"===n)}))}function In(n){for(var t in n)if(!0===n[t])return!0;return!1}function Wn(n){j("Wrong arguments passed to group. Group "+n+".")}function jn(n){var t=n.asyncTest,e=n.message;if(t&&r(t.then)){var u=xn().emit,i=Y(),o=dt.bind({stateRef:i},(function(){Q(),u(vt.TEST_COMPLETED,n)}));i=dt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=v(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Rn(n){var t=Y().testObjects(),r=t[1],e=t[0].prev;if(S(e))return Xn(n),n;if(function(n,t){return tt(n)&&!(n.fieldName===t.fieldName&&n.groupName===t.groupName)}(t=function(n){var t=tn();return V(n,t)[K(t)]}(e),n)){!function(n,t){dt.useX().isolate.type!==Ln.EACH&&function(n,t){setTimeout((function(){j(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=V(e,tn());var u=dt.useX().testCursor.cursorAt();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return Xn(n=i(t,n)),n}function Xn(n){var t=tn();Z((function(r){return V(r,t)[K(t)]=n,r}))}function Un(n){var t=Rn(n);if(function(n){var t=n.fieldName;n=n.groupName;var r=dt.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=dt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!In(e)&&!1!==e[t])}return!u&&In(e)}(n))return n.skip(),dt.useX().testCursor.next(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),Xn(n),dt.useX().testCursor.next(),n.isUntested()){t=xn().emit;var e=function(n){return dt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,p(n.message)&&v(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{e&&r(e.then)?(n.asyncTest=e,n.setPending(),jn(n)):t(vt.TEST_COMPLETED,n)}catch(t){j("Your test function "+n.fieldName+" returned "+JSON.stringify(e)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&r(t.then)&&(n.setPending(),jn(n));return n}function Dn(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=dt.useX();return Un(t=new Nt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var Ln,Gn,qn=function(){return(qn=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},Bn=Object.assign,_n=a(c),Kn=a(l),Hn=a(p),Mn=a(d),Jn=a(h),Vn=a(g),zn=a(N),Yn=a(b),Qn=a(C),Zn=a(O),$n=a(T),nt=a(w),tt=a(S),rt=a(P),et=a(x),ut=a(v),it=a(k),ot=a(A),st=a(I),at=a(W),ct=R((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?Bn(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Bn(r,{parent:X})})),ft=Bn({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Mn,doesNotStartWith:at,endsWith:d,equals:h,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:b,isArray:N,isBetween:C,isBlank:O,isBoolean:T,isEmpty:S,isEven:function(n){return!!g(n)&&0==n%2},isFalsy:it,isNaN:P,isNegative:x,isNotArray:zn,isNotBetween:Qn,isNotBlank:Zn,isNotBoolean:$n,isNotEmpty:tt,isNotNaN:rt,isNotNull:Kn,isNotNumber:nt,isNotNumeric:Vn,isNotString:ut,isNotUndefined:Hn,isNull:l,isNumber:w,isNumeric:g,isOdd:function(n){return!!g(n)&&0!=n%2},isPositive:et,isString:v,isTruthy:k,isUndefined:p,lengthEquals:c,lengthNotEquals:_n,lessThan:F,lessThanOrEquals:E,longerThan:f,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:F,lte:E,matches:A,notEquals:Jn,notInside:Yn,notMatches:ot,numberEquals:I,numberNotEquals:st,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:W},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass||r(t)})),o(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass&&r(t)})),o(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){s(t,n).pass&&r(o(!1))})),o(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(f(e,1))return!1;(t=s(t,n)).pass&&e.push(t)})),o(c(e,1))},optional:function(n,t){return p(n)||null===n?o(!0):s(t,n)}},{shape:function(n,t){var r=U(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return o(!1);return o(!0)},loose:U,isArrayOf:function(n,t){return i(e(n,(function(n,r,e){(e=ct.run({value:n,set:!0,meta:{index:e}},(function(){return s(t,n)}))).pass||r(e)})),o(!0))}}),lt=(Gn=qn({context:function(){return ct.useX()},extend:function(n){Bn(ft,n)}},{partial:_}),L()?new Proxy(Bn(q,Gn),{get:function(n,t){return t in n?n[t]:ft[t]?B(t):void 0}}):(D((function(n){Gn[n]=B(n)})),Gn)),pt=function(n){return function(){return""+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.GROUP=4]="GROUP"}(Ln||(Ln={}));var vt,dt=R((function(n,t){return t?null:Bn({},{isolate:{type:Ln.DEFAULT},testCursor:H(),exclusion:{tests:{},groups:{}}},n)})),ht=z(),gt=z(20),mt=z(20),yt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=On(),Tn(r,n,t))return t;var e=function(){return r(Cn())};return wn(n)?(e(),t):(Sn(e,n),t)};(vt||(vt={})).TEST_COMPLETED="test_completed",kn.group=function(n){return An("only","groups",n)},Fn.group=function(n){return An("skip","groups",n)};var Nt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=pt(),this.warns=!1,this.status=bt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,p(this.message)&&v(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Pt||(this.status=n)},n.prototype.setPending=function(){this.setStatus(wt)},n.prototype.fail=function(){this.setStatus(this.warns?Ot:Ct)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Tt)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.setStatus(Et)},n.prototype.cancel=function(){this.setStatus(St),Q()},n.prototype.omit=function(){this.setStatus(Pt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===wt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Pt},n.prototype.isUntested=function(){return this.status===bt},n.prototype.isFailing=function(){return this.status===Ct},n.prototype.isCanceled=function(){return this.status===St},n.prototype.isSkipped=function(){return this.status===Et},n.prototype.isPassing=function(){return this.status===Tt},n.prototype.isWarning=function(){return this.status===Ot},n}(),bt="UNTESTED",Et="SKIPPED",Ct="FAILED",Ot="WARNING",Tt="PASSING",wt="PENDING",St="CANCELED",Pt="OMITTED",xt=Bn(Dn,{each:function(n){return function(r){return N(r)||j("test.each: Expected table to be an array."),function(e){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var s=(i=i.reverse())[0],a=i[1];return rn({type:Ln.EACH},(function(){return r.map((function(r){return r=[].concat(r),n(u.apply(void 0,t([e],r)),u.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(Dn),memo:function(n){var t=z(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Y().suiteId()[0];var i=dt.useX().testCursor.cursorAt(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):Un(u[1])}}(Dn)});n.VERSION="4.0.0-dev-8851ff",n.create=function(n){r(n)||j("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(vt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Y().testCallbacks()[0].fieldCallbacks;n&&!on(n)&&N(t[n])&&Pn(t[n]),n=Y().testCallbacks()[0].doneCallbacks,on()||Pn(n)}})),n}(),e=function(n){function t(n,t,r){return i.references.push(),e(n,u(t,r)),function(){return[i.references[n],function(t){return e(n,u(t,i.references[n]))}]}}function e(t,e){var u=i.references[t];i.references[t]=e,r(t=o[t][1])&&t(e,u),r(n)&&n()}var i={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=i.references;i.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),i=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(e,{suiteId:pt()});return Bn(dt.bind({stateRef:i,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.reset(),rn({type:Ln.SUITE},(function(){n.apply(void 0,t)})),un(),On()})),{get:dt.bind({stateRef:i},Cn),remove:dt.bind({stateRef:i},(function(n){nn().forEach((function(t){en(t,n)&&(t.cancel(),function(n){Z((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:e.reset})},n.enforce=lt,n.group=function(n,t){v(n)||Wn("name must be a string"),r(t)||Wn("callback must be a function"),rn({type:Ln.GROUP},(function(){dt.run({groupName:n},t)}))},n.only=kn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(N(n)||v(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},n.skip=Fn,n.skipWhen=function(n,t){rn({type:Ln.SKIP_WHEN},(function(){dt.run({skipped:u(n)},(function(){return t()}))}))},n.test=xt,n.warn=function(){var n=dt.useX("warn hook called outside of a running suite.");n.currentTest||j("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,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}function r(n){return"function"==typeof n}function e(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function u(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function i(n,t){var r;return null!==(r=u(n))&&void 0!==r?r:t}function o(n,t){return n={pass:n},t&&(n.message=t),n}function s(n,t){try{return n.run(t)}catch(n){return o(!1)}}function a(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function c(n,t){return n.length===Number(t)}function f(n,t){return n.length>Number(t)}function l(n){return null===n}function p(n){return void 0===n}function v(n){return String(n)===n}function d(n,t){return v(n)&&v(t)&&n.endsWith(t)}function h(n,t){return n===t}function g(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function m(n,t){return g(n)&&g(t)&&Number(n)>Number(t)}function y(n,t){return g(n)&&g(t)&&Number(n)>=Number(t)}function N(n){return!!Array.isArray(n)}function b(n,t){return!!(N(t)||v(t)&&v(n))&&-1!==t.indexOf(n)}function E(n,t){return g(n)&&g(t)&&Number(n)<=Number(t)}function C(n,t,r){return y(n,t)&&E(n,r)}function O(n){return v(n)&&!n.trim()}function T(n){return!!n===n}function w(n){return"number"==typeof n}function S(n){if(n){if(w(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return c(n,0);if("object"==typeof n)return c(Object.keys(n),0)}return!0}function P(n){return Number.isNaN(n)}function x(n){return!!g(n)&&0>Number(n)}function k(n){return!!n}function F(n,t){return g(n)&&g(t)&&Number(n)<Number(t)}function A(n,t){return t instanceof RegExp?t.test(n):!!v(t)&&new RegExp(t).test(n)}function I(n,t){return g(n)&&g(t)&&Number(n)===Number(t)}function W(n,t){return v(n)&&v(t)&&n.startsWith(t)}function j(n,t){throw Error(i(t,n))}function R(n){function t(t,u){var i,o,s=r();return t=Bn({},s||{},null!==(i=null==n?void 0:n(t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:j(i(n,"Context was used after it was closed"))}}}function X(){return null}function U(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=ct.run({value:e,set:!0,meta:{key:r}},(function(){return s(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return o(!0)}function D(n){for(var t in ft){var e=ft[t];r(e)&&n(t,e)}}function L(){return"function"==typeof Proxy}function G(n,r,e){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return T(n)||n&&T(n.pass)||j("Incorrect return value for rule: "+JSON.stringify(n)),T(n)?o(n):o(n.pass,u.apply(void 0,t([n.message,r,e],i)))}function q(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=G.apply(void 0,t([ct.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!S(o.message))throw o.message;j("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!L())return D((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=ft[t])return r(u,n,t)}});return u}function B(n){var r,s=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=ft[a];s.push((function(n){return G.apply(void 0,t([l.apply(void 0,t([n],c)),a,n],c))}));var p={run:function(n){return i(e(s,(function(t,e){var i,s=ct.run({value:n},(function(){return t(n)}));s.pass||e(o(!!s.pass,null!==(i=u(r,n,s.message))&&void 0!==i?i:s.message))})),o(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return L()?p=new Proxy(p,{get:function(t,r){return ft[r]?n(r):t[r]}}):(D((function(t){p[t]=n(t)})),p)}}(n)}function _(n){var t,r={};for(t in n)r[t]=lt.optional(n[t]);return r}function K(n){return(n=[].concat(n))[n.length-1]}function H(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return K(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,K(t)},removeLevel:function(){t.pop()},reset:n}}function M(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];N(u)?r.push(M(u,t)):(u=t(u),Kn(u)&&r.push(u))}return r}function J(n){return[].concat(n).reduce((function(n,t){return N(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function V(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=i(n[e],[]),n=n[e]}return n}function z(n){void 0===n&&(n=1);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),f(t,n)&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Y(){return dt.useX().stateRef}function Q(){(0,Y().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function Z(n){(0,Y().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function $(){return J(M(Y().testObjects()[0].current,(function(n){return n.isPending()?n:null})))}function nn(){var n=Y().testObjects()[0].current;return ht([n],(function(){return J(n)}))}function tn(){return dt.useX().testCursor.getCursor()}function rn(n,t){if(n=void 0===(n=n.type)?Ln.DEFAULT:n,r(t)){var e=tn();return dt.run({isolate:{type:n}},(function(){dt.useX().testCursor.addLevel(),Z((function(n){return V(n,e)[K(e)]=[],n}));var n=t();return dt.useX().testCursor.removeLevel(),dt.useX().testCursor.next(),n}))}}function en(n,t){return!(!t||n.fieldName!==t)}function un(){var n=Y().optionalFields()[0];if(!S(n)){var t={};Z((function(e){return M(e,(function(e){var u=e.fieldName;if(t.hasOwnProperty(u))t[e.fieldName]&&e.omit();else{var i=n[u];r(i)&&(t[u]=i(),t[e.fieldName]&&e.omit())}return e}))}))}}function on(n){var t=$();return!S(t)&&(n?t.some((function(t){return en(t,n)})):tt(t))}function sn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function an(n,t,r){var e;void 0===r&&(r={});var u=(r=r||{}).group,i=r.fieldName;return t.reduce((function(t,r){return u&&r.groupName!==u||i&&!en(r,i)||"warnings"===n!=!!r.warns||!r.hasFailures()||(t[r.fieldName]=(t[r.fieldName]||[]).concat(r.message||[])),t}),qn({},i&&((e={})[i]=[],e)))}function cn(n){return ln("errors",n)}function fn(n){return ln("warnings",n)}function ln(n,t){return n=an(n,nn(),{fieldName:t}),t?n[t]:n}function pn(n,t){return n=dn("errors",n,t),t?n[t]:n}function vn(n,t){return n=dn("warnings",n,t),t?n[t]:n}function dn(n,t,r){return t||j("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),an(n,nn(),{group:t,fieldName:r})}function hn(n,t,r){return!(!n.hasFailures()||r&&!en(n,r)||"warnings"===t!=!!n.warns)}function gn(n){return yn("errors",n)}function mn(n){return yn("warnings",n)}function yn(n,t){return nn().some((function(r){return hn(r,n,t)}))}function Nn(n,t){return En("errors",n,t)}function bn(n,t){return En("warnings",n,t)}function En(n,t,r){return nn().some((function(e){return t===e.groupName&&hn(e,n,r)}))}function Cn(){var n=nn(),t={stateRef:Y()};return gt([n],dt.bind(t,(function(){return Bn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return nn().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=sn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=sn(n.groups[e],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:dt.bind(t,cn),getErrorsByGroup:dt.bind(t,pn),getWarnings:dt.bind(t,fn),getWarningsByGroup:dt.bind(t,vn),hasErrors:dt.bind(t,gn),hasErrorsByGroup:dt.bind(t,Nn),hasWarnings:dt.bind(t,mn),hasWarningsByGroup:dt.bind(t,bn),isValid:dt.bind(t,(function(n){var t=Cn(),r=nn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(r=!!n&&!!r[n])?n=!0:t.hasErrors(n)?n=!1:n=!(S(r=nn())||n&&S(t.tests[n])||function(n){var t=Y().optionalFields()[0];return tt($().filter((function(r){return!(n&&!en(r,n))&&!0!==t[r.fieldName]})))}(n))&&function(n){var t=nn(),r=Y().optionalFields()[0];return t.every((function(t){return!(!n||en(t,n))||!0===r[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n}))})})))}function On(){var n=nn(),t={stateRef:Y()};return mt([n],dt.bind(t,(function(){return Bn({},Cn(),{done:dt.bind(t,yt)})})))}function Tn(n,t,e){return!(r(n)&&(!t||e.tests[t]&&0!==e.tests[t].testCount))}function wn(n){return!(on()&&(!n||on(n)))}function Sn(n,t){var r=dt.bind({},n);(0,Y().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Pn(n){return n.forEach((function(n){return n()}))}function xn(){var n=dt.useX();return n.bus||j(),n.bus}function kn(n){return An("only","tests",n)}function Fn(n){return An("skip","tests",n)}function An(n,t,r){var e=dt.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){v(r)&&(e.exclusion[t][r]="only"===n)}))}function In(n){for(var t in n)if(!0===n[t])return!0;return!1}function Wn(n){j("Wrong arguments passed to group. Group "+n+".")}function jn(n){var t=n.asyncTest,e=n.message;if(t&&r(t.then)){var u=xn().emit,i=Y(),o=dt.bind({stateRef:i},(function(){Q(),u(vt.TEST_COMPLETED,n)}));i=dt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=v(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Rn(n){var t=Y().testObjects(),r=t[1],e=t[0].prev;if(S(e))return Xn(n),n;if(function(n,t){return tt(n)&&!(n.fieldName===t.fieldName&&n.groupName===t.groupName)}(t=function(n){var t=tn();return V(n,t)[K(t)]}(e),n)){!function(n,t){dt.useX().isolate.type!==Ln.EACH&&function(n,t){setTimeout((function(){j(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=V(e,tn());var u=dt.useX().testCursor.cursorAt();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return Xn(n=i(t,n)),n}function Xn(n){var t=tn();Z((function(r){return V(r,t)[K(t)]=n,r}))}function Un(n){var t=Rn(n);if(function(n){var t=n.fieldName;n=n.groupName;var r=dt.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=dt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!In(e)&&!1!==e[t])}return!u&&In(e)}(n))return n.skip(),dt.useX().testCursor.next(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),Xn(n),dt.useX().testCursor.next(),n.isUntested()){t=xn().emit;var e=function(n){return dt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,p(n.message)&&v(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{e&&r(e.then)?(n.asyncTest=e,n.setPending(),jn(n)):t(vt.TEST_COMPLETED,n)}catch(t){j("Your test function "+n.fieldName+" returned "+JSON.stringify(e)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&r(t.then)&&(n.setPending(),jn(n));return n}function Dn(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=dt.useX();return Un(t=new Nt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var Ln,Gn,qn=function(){return(qn=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},Bn=Object.assign,_n=a(c),Kn=a(l),Hn=a(p),Mn=a(d),Jn=a(h),Vn=a(g),zn=a(N),Yn=a(b),Qn=a(C),Zn=a(O),$n=a(T),nt=a(w),tt=a(S),rt=a(P),et=a(x),ut=a(v),it=a(k),ot=a(A),st=a(I),at=a(W),ct=R((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?Bn(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Bn(r,{parent:X})})),ft=Bn({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Mn,doesNotStartWith:at,endsWith:d,equals:h,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:b,isArray:N,isBetween:C,isBlank:O,isBoolean:T,isEmpty:S,isEven:function(n){return!!g(n)&&0==n%2},isFalsy:it,isNaN:P,isNegative:x,isNotArray:zn,isNotBetween:Qn,isNotBlank:Zn,isNotBoolean:$n,isNotEmpty:tt,isNotNaN:rt,isNotNull:Kn,isNotNumber:nt,isNotNumeric:Vn,isNotString:ut,isNotUndefined:Hn,isNull:l,isNumber:w,isNumeric:g,isOdd:function(n){return!!g(n)&&0!=n%2},isPositive:et,isString:v,isTruthy:k,isUndefined:p,lengthEquals:c,lengthNotEquals:_n,lessThan:F,lessThanOrEquals:E,longerThan:f,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:F,lte:E,matches:A,notEquals:Jn,notInside:Yn,notMatches:ot,numberEquals:I,numberNotEquals:st,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:W},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass||r(t)})),o(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass&&r(t)})),o(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){s(t,n).pass&&r(o(!1))})),o(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(f(e,1))return!1;(t=s(t,n)).pass&&e.push(t)})),o(c(e,1))},optional:function(n,t){return p(n)||null===n?o(!0):s(t,n)}},{shape:function(n,t){var r=U(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return o(!1);return o(!0)},loose:U,isArrayOf:function(n,t){return i(e(n,(function(n,r,e){(e=ct.run({value:n,set:!0,meta:{index:e}},(function(){return s(t,n)}))).pass||r(e)})),o(!0))}}),lt=(Gn=qn({context:function(){return ct.useX()},extend:function(n){Bn(ft,n)}},{partial:_}),L()?new Proxy(Bn(q,Gn),{get:function(n,t){return t in n?n[t]:ft[t]?B(t):void 0}}):(D((function(n){Gn[n]=B(n)})),Gn)),pt=function(n){return function(){return""+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.GROUP=4]="GROUP"}(Ln||(Ln={}));var vt,dt=R((function(n,t){return t?null:Bn({},{isolate:{type:Ln.DEFAULT},testCursor:H(),exclusion:{tests:{},groups:{}}},n)})),ht=z(),gt=z(20),mt=z(20),yt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=On(),Tn(r,n,t))return t;var e=function(){return r(Cn())};return wn(n)?(e(),t):(Sn(e,n),t)};(vt||(vt={})).TEST_COMPLETED="test_completed",kn.group=function(n){return An("only","groups",n)},Fn.group=function(n){return An("skip","groups",n)};var Nt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=pt(),this.warns=!1,this.status=bt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,p(this.message)&&v(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Pt||(this.status=n)},n.prototype.setPending=function(){this.setStatus(wt)},n.prototype.fail=function(){this.setStatus(this.warns?Ot:Ct)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Tt)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(Et)},n.prototype.cancel=function(){this.setStatus(St),Q()},n.prototype.omit=function(){this.setStatus(Pt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===wt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Pt},n.prototype.isUntested=function(){return this.status===bt},n.prototype.isFailing=function(){return this.status===Ct},n.prototype.isCanceled=function(){return this.status===St},n.prototype.isSkipped=function(){return this.status===Et},n.prototype.isPassing=function(){return this.status===Tt},n.prototype.isWarning=function(){return this.status===Ot},n}(),bt="UNTESTED",Et="SKIPPED",Ct="FAILED",Ot="WARNING",Tt="PASSING",wt="PENDING",St="CANCELED",Pt="OMITTED",xt=Bn(Dn,{each:function(n){return function(r){return N(r)||j("test.each: Expected table to be an array."),function(e){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var s=(i=i.reverse())[0],a=i[1];return rn({type:Ln.EACH},(function(){return r.map((function(r){return r=[].concat(r),n(u.apply(void 0,t([e],r)),u.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(Dn),memo:function(n){var t=z(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Y().suiteId()[0];var i=dt.useX().testCursor.cursorAt(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):Un(u[1])}}(Dn)});n.VERSION="4.0.0-dev-7acb76",n.create=function(n){r(n)||j("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(vt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Y().testCallbacks()[0].fieldCallbacks;n&&!on(n)&&N(t[n])&&Pn(t[n]),n=Y().testCallbacks()[0].doneCallbacks,on()||Pn(n)}})),n}(),e=function(n){function t(n,t,r){return i.references.push(),e(n,u(t,r)),function(){return[i.references[n],function(t){return e(n,u(t,i.references[n]))}]}}function e(t,e){var u=i.references[t];i.references[t]=e,r(t=o[t][1])&&t(e,u),r(n)&&n()}var i={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=i.references;i.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),i=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(e,{suiteId:pt()});return Bn(dt.bind({stateRef:i,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.reset(),rn({type:Ln.SUITE},(function(){n.apply(void 0,t)})),un(),On()})),{get:dt.bind({stateRef:i},Cn),remove:dt.bind({stateRef:i},(function(n){nn().forEach((function(t){en(t,n)&&(t.cancel(),function(n){Z((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:e.reset})},n.enforce=lt,n.group=function(n,t){v(n)||Wn("name must be a string"),r(t)||Wn("callback must be a function"),rn({type:Ln.GROUP},(function(){dt.run({groupName:n},t)}))},n.only=kn,n.optional=function(n){(0,Y().optionalFields()[1])((function(t){if(N(n)||v(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))},n.skip=Fn,n.skipWhen=function(n,t){rn({type:Ln.SKIP_WHEN},(function(){dt.run({skipped:u(n)},(function(){return t()}))}))},n.test=xt,n.warn=function(){var n=dt.useX("warn hook called outside of a running suite.");n.currentTest||j("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
package/types/vest.d.ts
CHANGED
|
@@ -318,5 +318,5 @@ declare const _default: typeof testBase & {
|
|
|
318
318
|
};
|
|
319
319
|
};
|
|
320
320
|
declare const test: typeof _default;
|
|
321
|
-
declare const VERSION = "4.0.0-dev-
|
|
321
|
+
declare const VERSION = "4.0.0-dev-7acb76";
|
|
322
322
|
export { test, create, only, skip, warn, group, optional$0 as optional, skipWhen, enforce, VERSION };
|