vest 4.0.0 → 4.0.2-dev-72921c
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 +0 -93
- package/README.md +57 -2
- package/dist/cjs/vest.development.js +36 -5
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +36 -6
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +580 -5
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +618 -14
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +621 -27
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/vest.development.js +691 -129
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/testUtils/itWithContext.ts +1 -0
- package/testUtils/testDummy.ts +1 -0
- package/types/enforce/compose.d.ts +3 -0
- package/types/enforce/compounds.d.ts +3 -0
- package/types/enforce/schema.d.ts +3 -0
- package/types/vest.d.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","context"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t.context)}(this,(function(t,n,e){function r(t){return"function"==typeof t}function u(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return r(t)?t.apply(void 0,n):t}function i(t,n){var e;return null!==(e=u(t))&&void 0!==e?e:n}function o(t,n){throw Error(i(n,t))}function s(t,n){setTimeout((function(){o(t,n)}),0)}function a(t){function n(t,n,r){return i.references.push(),e(t,u(n,r)),function(){return[i.references[t],function(n){return e(t,u(n,i.references[t]))}]}}function e(n,e){var u=i.references[n];i.references[n]=e,r(n=o[n][1])&&n(e,u),r(t)&&t()}var i={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=i.references;i.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function c(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function f(t){return(t=[].concat(t))[t.length-1]}function l(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return f(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,f(n)},removeLevel:function(){n.pop()},reset:t}}function p(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function d(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(d(u,n)):(u=n(u),mt(u)&&e.push(u))}return e}function v(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(v(n)):[].concat(t).concat(n)}),[])}function g(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=i(t[r],[]),t=t[r]}return t}function h(t){return null==t}function m(t){return String(t)===t}function y(t){void 0===t&&(t=1);var n=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),n.unshift([r.concat(),u]),n.length>Number(t)&&(n.length=t),u)};return e.invalidate=function(t){var e=n.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<e&&n.splice(e,1)},e.get=function(t){return n[n.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},e}function E(){return ht.useX().stateRef}function b(){return E().testObjects()}function N(){(0,b()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function C(t){(0,b()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function T(){return v(d(b()[0].current,(function(t){return t.isPending()?t:null})))}function k(){var t=b()[0].current;return yt([t],(function(){return v(t)}))}function O(){return ht.useX().testCursor.getCursor()}function S(){return ht.useX().testCursor.next()}function P(t,n){if(t=void 0===(t=t.type)?lt.DEFAULT:t,r(n)){var e={current:{},prev:{}},u=O();return ht.run({isolate:{type:t,keys:e}},(function(){ht.useX().testCursor.addLevel(),e.prev=function(){var t=b()[0].prev;return[].concat(g(t,O())).reduce((function(t,n){return n instanceof bt&&!h(n.key)?(t[n.key]=n,t):t}),{})}(),C((function(t){return g(t,u)[f(u)]=[],t}));var t=n();return ht.useX().testCursor.removeLevel(),S(),t}))}}function w(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}function I(t,n){return!(!n||t.fieldName!==n)}function F(t){var n=T();return!w(n)&&(t?n.some((function(n){return I(n,t)})):It(n))}function A(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function x(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||n)}function W(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!I(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),Ft({},i&&((r={})[i]=[],r)))}function X(t){return D("errors",t)}function _(t){return D("warnings",t)}function D(t,n){return t=W(t,k(),{fieldName:n}),n?t[n]:t}function L(t,n){return t=M("errors",t,n),n?t[n]:t}function U(t,n){return t=M("warnings",t,n),n?t[n]:t}function M(t,n,e){return n||o("get"+t[0].toUpperCase()+t.slice(1)+"ByGroup requires a group name. Received `"+n+"` instead."),W(t,k(),{group:n,fieldName:e})}function R(t,n,e){return(e=!t.hasFailures()||e&&!I(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function j(t){return H("errors",t)}function G(t){return H("warnings",t)}function H(t,n){return k().some((function(e){return R(e,t,n)}))}function K(t,n){return B("errors",t,n)}function V(t,n){return B("warnings",t,n)}function B(t,n,e){return k().some((function(r){return n===r.groupName&&R(r,t,e)}))}function q(){var t=k(),n={stateRef:E()};return At([t],ht.bind(n,(function(){var t=E().suiteName()[0];return dt(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return k().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=A(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=A(t.groups[r],n))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(t)}(),{getErrors:ht.bind(n,X),getErrorsByGroup:ht.bind(n,L),getWarnings:ht.bind(n,_),getWarningsByGroup:ht.bind(n,U),hasErrors:ht.bind(n,j),hasErrorsByGroup:ht.bind(n,K),hasWarnings:ht.bind(n,G),hasWarningsByGroup:ht.bind(n,V),isValid:ht.bind(n,(function(t){var n=q(),e=k().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(w(e=k())||t&&w(n.tests[t])||function(t){var n=E().optionalFields()[0];return It(T().filter((function(e){return!(t&&!I(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=k(),e=E().optionalFields()[0];return n.every((function(n){return!(!t||I(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}function Y(){var t=k(),n={stateRef:E()};return xt([t],ht.bind(n,(function(){return dt({},q(),{done:ht.bind(n,Wt)})})))}function z(t,n,e){return!(r(t)&&(!n||e.tests[n]&&!w(e.tests[n].testCount)))}function J(t){return!(F()&&(!t||F(t)))}function Q(t,n){var e=ht.bind({},t);(0,E().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Z(t){return t.forEach((function(t){return t()}))}function $(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Et.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=E().testCallbacks()[0].fieldCallbacks;t&&!F(t)&&Array.isArray(n[t])&&Z(n[t]),t=E().testCallbacks()[0].doneCallbacks,F()||Z(t)}})),t.on(Et.SUITE_COMPLETED,(function(){!function(){var t=E().optionalFields()[0];if(!w(t)){var n={};C((function(e){return d(e,(function(e){var u=e.fieldName;if(n.hasOwnProperty(u))n[e.fieldName]&&e.omit();else{var i=t[u];r(i)&&(n[u]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Et.REMOVE_FIELD,(function(t){k().forEach((function(n){I(n,t)&&(n.cancel(),function(t){C((function(n){return d(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t}function tt(){var t=ht.useX();return t.bus||o(),t.bus}function nt(t){return rt(0,"tests",t)}function et(t){return rt(1,"tests",t)}function rt(t,n,e){var r=ht.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){m(e)&&(r.exclusion[n][e]=0===t)}))}function ut(t){for(var n in t)if(!0===t[n])return!0;return!1}function it(t){o("Wrong arguments passed to group. Group "+t+".")}function ot(t){var n=t.asyncTest,e=t.message;if(n&&r(n.then)){var u=tt().emit,i=E(),o=ht.bind({stateRef:i},(function(){N(),u(Et.TEST_COMPLETED,t)}));i=ht.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=m(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function st(t){var n=O();C((function(e){return g(e,n)[f(n)]=t,e}))}function at(t){var n=b()[0].prev;if(w(n))st(t),n=t;else{var e=O();if(n=g(n,e)[f(e)],h(t.key))!It(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(ht.useX().isolate.type!==lt.EACH&&s("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'),function(){var t=b(),n=t[1],e=t[0].prev;t=g(e,O());var r=ht.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),st(n=i(n,t));else{n=t.key;var u=ht.useX().isolate.keys.prev[n];e=t,u&&(e=u),u=e;var a=ht.useX().isolate.keys.current;h(a[n])?a[n]=u:s('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),st(n=e)}}if(ht.useX().omitted)return n.omit(),S(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,ht.useX().skipped)return!0;var e=ht.useX().exclusion,r=e.tests,u=r[n];if(!1===u)return!0;if(u=!0===u,t){t:{var i=ht.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,t))var o=!1===i[t];else{for(o in i)if(!0===i[o]){o=!0;break t}o=!1}}if(o)return!0;if(!0===e.groups[t])return!(u||!ut(r)&&!1!==r[n])}n=ht.useX().exclusion;t:{for(s in(e=ht.useX().exclusion).groups)if(e.groups[s]){var s=!0;break t}s=!1}return!(!s||t&&t in n.groups&&n.groups[t])||!u&&ut(r)}(t))return n.skip(!!ht.useX().skipped),S(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),st(t),S(),t.isUntested()){n=tt(),e=function(t){return ht.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&m(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&r(e.then)?(t.asyncTest=e,t.setPending(),ot(t)):n.emit(Et.TEST_COMPLETED,t)}catch(n){o("Your test function "+t.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(n=t.asyncTest)&&r(n.then)&&(t.setPending(),ot(t));return t}function ct(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=r(n[1])?n:x([void 0],n);n=u[0],e=u[1],u=u[2],Xt(t)&&ft("fieldName","string"),r(e)||ft("Test callback","function");var i=ht.useX();return at(n=new bt(t,e,{message:n,groupName:i.groupName,key:u}))}function ft(t,n){o("Incompatible params passed to test function. "+t+" must be a "+n)}var lt,pt,dt=Object.assign,vt=(pt=0,function(){return""+pt++});!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(lt||(lt={}));var gt,ht=e.createContext((function(t,n){return n?null:dt({},{exclusion:{tests:{},groups:{}},isolate:{type:lt.DEFAULT,keys:{current:{},prev:{}}},testCursor:l()},t)})),mt=p((function(t){return null===t})),yt=y();!function(t){t.Error="error",t.Warning="warning"}(gt||(gt={}));var Et,bt=function(){function t(t,n,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=vt(),this.severity=gt.Error,this.status=Nt,this.fieldName=t,this.testFn=n,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&m(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==wt||(this.status=t)},t.prototype.warns=function(){return this.severity===gt.Warning},t.prototype.setPending=function(){this.setStatus(St)},t.prototype.fail=function(){this.setStatus(this.warns()?kt:Tt)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ot)},t.prototype.warn=function(){this.severity=gt.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(Ct)},t.prototype.cancel=function(){this.setStatus(Pt),N()},t.prototype.omit=function(){this.setStatus(wt)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.status===St},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.status===wt},t.prototype.isUntested=function(){return this.status===Nt},t.prototype.isFailing=function(){return this.status===Tt},t.prototype.isCanceled=function(){return this.status===Pt},t.prototype.isSkipped=function(){return this.status===Ct},t.prototype.isPassing=function(){return this.status===Ot},t.prototype.isWarning=function(){return this.status===kt},t}(),Nt="UNTESTED",Ct="SKIPPED",Tt="FAILED",kt="WARNING",Ot="PASSING",St="PENDING",Pt="CANCELED",wt="OMITTED",It=p(w),Ft=function(){return(Ft=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)},At=y(20),xt=y(20),Wt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];if(t=t[1],n=Y(),z(e,t,n))return n;var r=function(){return e(q())};return J(t)?(r(),n):(Q(r,t),n)};!function(t){t.TEST_COMPLETED="test_completed",t.REMOVE_FIELD="remove_field",t.SUITE_COMPLETED="suite_completed"}(Et||(Et={})),nt.group=function(t){return rt(0,"groups",t)},et.group=function(t){return rt(1,"groups",t)};var Xt=p(m),_t=dt(ct,{memo:function(t){var n=y(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=ht.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[E().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):at(r[1])}}(ct)});Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.VERSION="3.3.0",t.context=ht,t.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],r(e)||o("vest.create: Expected callback to be a function.");var u=$(),i=a();return t={stateRef:c(i,{suiteId:vt(),suiteName:t}),bus:u},dt(ht.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),P({type:lt.SUITE},(function(){e.apply(void 0,t)})),u.emit(Et.SUITE_COMPLETED),Y()})),{get:ht.bind(t,q),reset:i.reset,remove:ht.bind(t,(function(t){u.emit(Et.REMOVE_FIELD,t)}))})},t.each=function(t,n){r(n)||o("callback must be a function"),P({type:lt.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))},t.group=function(t,n){m(t)||it("name must be a string"),r(n)||it("callback must be a function"),P({type:lt.GROUP},(function(){ht.run({groupName:t},n)}))},t.omitWhen=function(t,n){P({type:lt.OMIT_WHEN},(function(){ht.run({omitted:u(t,u(q))},(function(){return n()}))}))},t.only=nt,t.optional=function(t){(0,E().optionalFields()[1])((function(n){if(Array.isArray(t)||m(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))},t.skip=et,t.skipWhen=function(t,n){P({type:lt.SKIP_WHEN},(function(){ht.run({skipped:u(t,u(q))},(function(){return n()}))}))},t.test=_t,t.warn=function(){var t=ht.useX("warn hook called outside of a running suite.");t.currentTest||o("warn called outside of a test."),t.currentTest.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function N(n,t){return n.length===Number(t)}function E(n){if(n){if(y(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return N(n,0);if("object"==typeof n)return N(Object.keys(n),0)}return!0}function b(n){return Number.isNaN(n)}function C(n){return!!c(n)&&0>Number(n)}function T(n){return!!n}function O(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function k(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function w(n,t){return n.length>Number(t)}function S(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function P(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function x(n,t){return o(n)&&o(t)&&n.startsWith(t)}function I(n){for(var e in dt){var r=dt[e];t(r)&&n(e,r)}}function F(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=F(n))&&void 0!==e?e:t}function X(n,t){throw Error(W(t,n))}function A(n,t){setTimeout((function(){X(n,t)}),0)}function _(n){function t(t,u){var i,o,s=e();return t=Hn({},s||{},null!==(i=F(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=r.ctx)&&void 0!==t?t:X(W(n,"Context was used after it was closed"))}}}function D(){return null}function L(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function R(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return m(n)||n&&m(n.pass)||X("Incorrect return value for rule: "+JSON.stringify(n)),m(n)?R(n):R(n.pass,F.apply(void 0,L([n.message,t,e],r)))}function j(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,L([vt.run({value:n},(function(){return e.apply(void 0,L([n],u))})),r,n],u))).pass){if(!E(i.message))throw i.message;X("enforce/"+r+" failed with "+JSON.stringify(n))}return t}}var e={};if(!U())return I((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=dt[e])return t(r,n,e)}});return r}function G(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function q(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=dt[r];e.push((function(n){return M.apply(void 0,L([o.apply(void 0,L([n],u)),r,n],u))}));var s={run:function(n){return W(G(e,(function(e,r){var u,i=vt.run({value:n},(function(){return e(n)}));i.pass||r(R(!!i.pass,null!==(u=F(t,n,i.message))&&void 0!==u?u:i.message))})),R(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return dt[e]?n(e):t[e]}}):(I((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function e(n,t,e){return u.references.push(),r(n,F(t,e)),function(){return[u.references[n],function(t){return r(n,F(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function H(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function K(n){return(n=[].concat(n))[n.length-1]}function V(){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 Y(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(Y(u,t)):(u=t(u),Kn(u)&&e.push(u))}return e}function J(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function z(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Q(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),w(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return N(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function Z(){return Nt.useX().stateRef}function $(){return Z().testObjects()}function nn(){(0,$()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function tn(n){(0,$()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return J(Y($()[0].current,(function(n){return n.isPending()?n:null})))}function rn(){var n=$()[0].current;return Et([n],(function(){return J(n)}))}function un(){return Nt.useX().testCursor.getCursor()}function on(){return Nt.useX().testCursor.next()}function sn(n,e){if(n=void 0===(n=n.type)?qn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=un();return Nt.run({isolate:{type:n,keys:r}},(function(){Nt.useX().testCursor.addLevel(),r.prev=function(){var n=$()[0].prev;return[].concat(z(n,un())).reduce((function(n,t){return t instanceof Ct&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return z(n,u)[K(u)]=[],n}));var n=e();return Nt.useX().testCursor.removeLevel(),on(),n}))}}function an(n,t){return!(!t||n.fieldName!==t)}function cn(n){var t=en();return!E(t)&&(n?t.some((function(t){return an(t,n)})):it(t))}function fn(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!an(e,i)?r=!0:(r=e.warns(),r="warnings"===n!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),ht({},i&&((r={})[i]=[],r)))}function pn(n){return vn("errors",n)}function dn(n){return vn("warnings",n)}function vn(n,t){return n=ln(n,rn(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=mn("errors",n,t),t?n[t]:n}function gn(n,t){return n=mn("warnings",n,t),t?n[t]:n}function mn(n,t,e){return t||X("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),ln(n,rn(),{group:t,fieldName:e})}function yn(n,t,e){return(e=!n.hasFailures()||e&&!an(n,e))||(e="warnings"===t!=!!(n=n.warns())),!e}function Nn(n){return bn("errors",n)}function En(n){return bn("warnings",n)}function bn(n,t){return rn().some((function(e){return yn(e,n,t)}))}function Cn(n,t){return On("errors",n,t)}function Tn(n,t){return On("warnings",n,t)}function On(n,t,e){return rn().some((function(r){return t===r.groupName&&yn(r,n,e)}))}function kn(){var n=rn(),t={stateRef:Z()};return Ft([n],Nt.bind(t,(function(){var n=Z().suiteName()[0];return Hn(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return rn().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=fn(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=fn(n.groups[r],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:Nt.bind(t,pn),getErrorsByGroup:Nt.bind(t,hn),getWarnings:Nt.bind(t,dn),getWarningsByGroup:Nt.bind(t,gn),hasErrors:Nt.bind(t,Nn),hasErrorsByGroup:Nt.bind(t,Cn),hasWarnings:Nt.bind(t,En),hasWarningsByGroup:Nt.bind(t,Tn),isValid:Nt.bind(t,(function(n){var t=kn(),e=rn().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=rn())||n&&E(t.tests[n])||function(n){var t=Z().optionalFields()[0];return it(en().filter((function(e){return!(n&&!an(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=rn(),e=Z().optionalFields()[0];return t.every((function(t){return!(!n||an(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function wn(){var n=rn(),t={stateRef:Z()};return Wt([n],Nt.bind(t,(function(){return Hn({},kn(),{done:Nt.bind(t,Xt)})})))}function Sn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function Pn(n){return!(cn()&&(!n||cn(n)))}function xn(n,t){var e=Nt.bind({},n);(0,Z().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function In(n){return n.forEach((function(n){return n()}))}function Fn(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Z().testCallbacks()[0].fieldCallbacks;n&&!cn(n)&&p(t[n])&&In(t[n]),n=Z().testCallbacks()[0].doneCallbacks,cn()||In(n)}})),n.on(bt.SUITE_COMPLETED,(function(){!function(){var n=Z().optionalFields()[0];if(!E(n)){var e={};tn((function(r){return Y(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(bt.REMOVE_FIELD,(function(n){rn().forEach((function(t){an(t,n)&&(t.cancel(),function(n){tn((function(t){return Y(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n}function Wn(){var n=Nt.useX();return n.bus||X(),n.bus}function Xn(n){return _n(0,"tests",n)}function An(n){return _n(1,"tests",n)}function _n(n,t,e){var r=Nt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Dn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Ln(n){X("Wrong arguments passed to group. Group "+n+".")}function Un(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Wn().emit,i=Z(),s=Nt.bind({stateRef:i},(function(){nn(),u(bt.TEST_COMPLETED,n)}));i=Nt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Rn(n){var t=un();tn((function(e){return z(e,t)[K(t)]=n,e}))}function Mn(n){var e=$()[0].prev;if(E(e))Rn(n),e=n;else{var r=un();if(e=z(e,r)[K(r)],i(n.key))!it(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(Nt.useX().isolate.type!==qn.EACH&&A("Vest Critical Error: Tests called in different order than previous run.\n expected: "+e.fieldName+"\n received: "+n.fieldName+'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'),function(){var n=$(),t=n[1],e=n[0].prev;n=z(e,un());var r=Nt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Rn(e=W(e,n));else{e=n.key;var s=Nt.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=Nt.useX().isolate.keys.current;i(a[e])?a[e]=s:A('Encountered the same test key "'+e+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),Rn(e=r)}}if(Nt.useX().omitted)return e.omit(),on(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Nt.useX().skipped)return!0;var e=Nt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=Nt.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Dn(u)&&!1!==u[t])}r=Nt.useX().exclusion;n:{for(a in(s=Nt.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Dn(u)&&!F(e[t])}(n))return e.skip(!!Nt.useX().skipped),on(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Rn(n),on(),n.isUntested()){e=Wn(),r=function(n){return Nt.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Un(n)):e.emit(bt.TEST_COMPLETED,n)}catch(t){X("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Un(n));return n}function jn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:L([void 0],e);e=u[0],r=u[1],u=u[2],at(n)&&Gn("fieldName","string"),t(r)||Gn("Test callback","function");var i=Nt.useX();return Mn(e=new Ct(n,r,{message:e,groupName:i.groupName,key:u}))}function Gn(n,t){X("Incompatible params passed to test function. "+n+" must be a "+t)}var qn,Bn,Hn=Object.assign,Kn=e(r),Vn=e(u),Yn=e(i),Jn=e(s),zn=e(a),Qn=e(c),Zn=e(p),$n=e(d),nt=e(h),tt=e(g),et=e(m),rt=e(y),ut=e(N),it=e(E),ot=e(b),st=e(C),at=e(o),ct=e(T),ft=e(O),lt=e(S),pt=e(P),dt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Jn,doesNotStartWith:e(x),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:m,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:ct,isNaN:b,isNegative:C,isNotArray:Zn,isNotBetween:nt,isNotBlank:tt,isNotBoolean:et,isNotEmpty:it,isNotNaN:ot,isNotNull:Kn,isNotNullish:Yn,isNotNumber:rt,isNotNumeric:Qn,isNotString:at,isNotUndefined:Vn,isNotValueOf:ft,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:st,isString:o,isTruthy:T,isUndefined:u,isValueOf:O,lengthEquals:N,lengthNotEquals:ut,lessThan:k,lessThanOrEquals:v,longerThan:w,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:k,lte:v,matches:S,notEquals:zn,notInside:$n,notMatches:lt,numberEquals:P,numberNotEquals:pt,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:x},vt=_((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Hn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Hn(e,{parent:D})})),ht=function(){return(ht=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},gt=(Bn={context:function(){return vt.useX()},extend:function(n){Hn(dt,n)}},U()?new Proxy(Hn(j,Bn),{get:function(n,t){return t in n?n[t]:dt[t]?q(t):void 0}}):(I((function(n){Bn[n]=q(n)})),Hn(j,Bn))),mt=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.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(qn||(qn={}));var yt,Nt=_((function(n,t){return t?null:Hn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:qn.DEFAULT,keys:{current:{},prev:{}}},testCursor:V()},n)})),Et=Q();!function(n){n.Error="error",n.Warning="warning"}(yt||(yt={}));var bt,Ct=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=mt(),this.severity=yt.Error,this.status=Tt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==It||(this.status=n)},n.prototype.warns=function(){return this.severity===yt.Warning},n.prototype.setPending=function(){this.setStatus(Pt)},n.prototype.fail=function(){this.setStatus(this.warns()?wt:kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(St)},n.prototype.warn=function(){this.severity=yt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Ot)},n.prototype.cancel=function(){this.setStatus(xt),nn()},n.prototype.omit=function(){this.setStatus(It)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.status===Pt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===It},n.prototype.isUntested=function(){return this.status===Tt},n.prototype.isFailing=function(){return this.status===kt},n.prototype.isCanceled=function(){return this.status===xt},n.prototype.isSkipped=function(){return this.status===Ot},n.prototype.isPassing=function(){return this.status===St},n.prototype.isWarning=function(){return this.status===wt},n}(),Tt="UNTESTED",Ot="SKIPPED",kt="FAILED",wt="WARNING",St="PASSING",Pt="PENDING",xt="CANCELED",It="OMITTED",Ft=Q(20),Wt=Q(20),Xt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=wn(),Sn(e,n,t))return t;var r=function(){return e(kn())};return Pn(n)?(r(),t):(xn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.SUITE_COMPLETED="suite_completed"}(bt||(bt={})),Xn.group=function(n){return _n(0,"groups",n)},An.group=function(n){return _n(1,"groups",n)};var At=Hn(jn,{memo:function(n){var t=Q(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Nt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Z().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):Mn(r[1])}}(jn)});n.VERSION="4.0.2-dev-72921c",n.context=Nt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],t(r)||X("vest.create: Expected callback to be a function.");var u=Fn(),i=B();return n={stateRef:H(i,{suiteId:mt(),suiteName:n}),bus:u},Hn(Nt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:qn.SUITE},(function(){r.apply(void 0,n)})),u.emit(bt.SUITE_COMPLETED),wn()})),{get:Nt.bind(n,kn),reset:i.reset,remove:Nt.bind(n,(function(n){u.emit(bt.REMOVE_FIELD,n)}))})},n.each=function(n,e){t(e)||X("callback must be a function"),sn({type:qn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.enforce=gt,n.group=function(n,e){o(n)||Ln("name must be a string"),t(e)||Ln("callback must be a function"),sn({type:qn.GROUP},(function(){Nt.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=Nt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:F(t,F(kn))}}var e=Nt.useX();return n?(e.inclusion[n]=W(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){sn({type:qn.OMIT_WHEN},(function(){Nt.run({omitted:F(n,F(kn))},(function(){return t()}))}))},n.only=Xn,n.optional=function(n){(0,Z().optionalFields()[1])((function(t){if(p(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=An,n.skipWhen=function(n,t){sn({type:qn.SKIP_WHEN},(function(){Nt.run({skipped:F(n,F(kn))},(function(){return t()}))}))},n.test=At,n.warn=function(){var n=Nt.useX("warn hook called outside of a running suite.");n.currentTest||X("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.
|
|
2
|
+
"version": "4.0.2-dev-72921c",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "
|
|
24
|
-
"n4s": "
|
|
23
|
+
"context": "dev",
|
|
24
|
+
"n4s": "dev"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
package/testUtils/testDummy.ts
CHANGED
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
package/types/vest.d.ts
CHANGED
|
@@ -194,6 +194,7 @@ type CTXType = {
|
|
|
194
194
|
tests: Record<string, boolean>;
|
|
195
195
|
groups: Record<string, boolean>;
|
|
196
196
|
};
|
|
197
|
+
inclusion: Record<string, boolean | (() => boolean)>;
|
|
197
198
|
currentTest?: VestTest;
|
|
198
199
|
groupName?: string;
|
|
199
200
|
skipped?: boolean;
|
|
@@ -253,6 +254,9 @@ declare namespace skip {
|
|
|
253
254
|
* });
|
|
254
255
|
*/
|
|
255
256
|
declare function group(groupName: string, tests: () => void): void;
|
|
257
|
+
declare function include(fieldName: string): {
|
|
258
|
+
when: (condition: string | boolean | ((draft: TDraftResult) => boolean)) => void;
|
|
259
|
+
};
|
|
256
260
|
/**
|
|
257
261
|
* Conditionally omits tests from the suite.
|
|
258
262
|
*
|
|
@@ -310,5 +314,5 @@ declare const test: typeof testBase & {
|
|
|
310
314
|
* Sets a running test to warn only mode.
|
|
311
315
|
*/
|
|
312
316
|
declare function warn(): void;
|
|
313
|
-
declare const VERSION = "
|
|
314
|
-
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context };
|
|
317
|
+
declare const VERSION = "4.0.2-dev-72921c";
|
|
318
|
+
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include };
|