vest 4.4.0-dev-08ec91 → 4.4.2-dev-afe5de
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/classnames.development.js +9 -60
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +6 -53
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +16 -71
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +6 -58
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +8 -59
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/promisify.development.js +2 -26
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +176 -390
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +1 -52
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +4 -51
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +11 -66
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +2 -54
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +1 -52
- package/dist/es/parser.production.js +1 -1
- package/dist/es/promisify.development.js +1 -25
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +101 -315
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +13 -13
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +122 -122
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +181 -185
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +133 -133
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +13 -13
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +361 -376
- package/dist/umd/vest.production.js +1 -1
- package/package.json +4 -3
- package/testUtils/mockThrowError.ts +2 -1
- package/testUtils/suiteDummy.ts +1 -1
- package/testUtils/testObjects.ts +2 -17
- package/types/enforce/compose.d.ts +14 -30
- package/types/enforce/compounds.d.ts +14 -30
- package/types/enforce/schema.d.ts +14 -30
- package/types/vest.d.ts +14 -15
- package/testUtils/itWithContext.ts +0 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function c(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return d(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function E(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Lt){var r=Lt[e];t(r)&&n(e,r)}}function w(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=at({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function X(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(E(n)||n&&E(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),E(n)?G(n):G(n.pass,w.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([wt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Lt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Lt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=wt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Lt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return xt.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return at(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function on(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function sn(n){setTimeout((function(){throw Error(n)}),0)}function cn(){return xt.useX().testCursor.getCursor()}function an(){return xt.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=cn();return xt.run({isolate:{type:n,keys:r}},(function(){xt.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,cn())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return xt.useX().testCursor.removeLevel(),an(),n}))}function ln(n){return n===Xt.ERRORS?Gt.ERROR_COUNT:Gt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return rn().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Xt.WARNINGS!=!!n),!e}function hn(n){return!!gn(n)||!pn(Xt.ERRORS,n)&&(!R(rn())&&!function(n){return St(en().filter((function(t){return Nn(t,n)})))}(n)&&function(n){return rn().every((function(t){return!(!n||dn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);var t}function Nn(n,t){return!(t&&!dn(n,t))&&!0!==$(n.fieldName)}function mn(n,t){return!(!t||dn(n,t))||(!0===$(n.fieldName)||n.isTested()||n.isOmitted())}function En(){var n=xt.useX().summary;return F(n),n}function yn(){var n=rn(),t=at({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!gn(t=t.fieldName)||!function(n,t,e){return rn().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Xt.ERRORS,u,t)&&!function(n,t){return St(en().filter((function(e){return!zt(e,n)&&Nn(e,t)})))}(u,t)&&function(n,t){return rn().every((function(e){return!!zt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=hn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||at({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Xt.ERRORS):t.isWarning()&&e(Xt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Xt.ERRORS,n)}function Tn(n){return Cn(Xt.WARNINGS,n)}function Cn(n,t){var e=En().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return An(n,Xt.ERRORS,t)}function _n(n,t){return An(n,Xt.WARNINGS,t)}function An(n,t,e){return n=En().groups[n],e?Rn(n,t,e):On(n,t)}function kn(n){return wn(Gt.ERROR_COUNT,n)}function Ln(n){return wn(Gt.WARN_COUNT,n)}function wn(n,t){var e,r=En();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Pn(Xt.ERRORS,n,t)}function Fn(n,t){return Pn(Xt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=En();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t=En();return n?!!Xn(t.tests,n):t.valid}function Un(n,t){if(!(n=En().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Gn(){var n=rn(),t={stateRef:z()};return Qt([n],xt.bind(t,(function(){var n=yn(),t=z().suiteName()[0],e={summary:n};return at(n,{getErrors:xt.bind(e,Sn),getErrorsByGroup:xt.bind(e,In),getWarnings:xt.bind(e,Tn),getWarningsByGroup:xt.bind(e,_n),hasErrors:xt.bind(e,kn),hasErrorsByGroup:xt.bind(e,Wn),hasWarnings:xt.bind(e,Ln),hasWarningsByGroup:xt.bind(e,Fn),isValid:xt.bind(e,xn),isValidByGroup:xt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=en();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=rn(),t={stateRef:z()};return Zt([n],xt.bind(t,(function(){return at({},Gn(),{done:xt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Hn(n){return n.forEach((function(n){return n()}))}function Mn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(z().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=xt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=xt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=xt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=z(),s=xt.bind({stateRef:i},(function(){nn(),u(Yt.TEST_COMPLETED,n)}));i=xt.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 tt(n){var t=z().testObjects()[0].prev;if(R(t))return et(n),n;var e=cn();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=xt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=xt.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(xt.useX().isolate.type===ot.EACH||sn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=z().testObjects(),t=n[1],e=n[0].prev;n=J(e,cn());var r=xt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=cn();tn((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=ct.EAGER;if(e=!(xt.useX().mode[0]!==e||!pn(Xt.ERRORS,n.fieldName)))return n.skip(),tt(n),an(),n;if(e=tt(n),xt.useX().omitted)return e.omit(),an(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,xt.useX().skipped)return!0;var e=xt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=xt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!w(e[t])}(n))return e.skip(!!xt.useX().skipped),an(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),et(n),an(),n.isUntested()){e=Vn();var r=function(n){return xt.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),nt(n)):e.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),nt(n));return n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=xt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,ct,at=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(c),ht=e(a),gt=e(l),Nt=e(p),mt=e(v),Et=e(N),yt=e(m),bt=e(E),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),At=e(I),kt=e(A),Lt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(k),endsWith:s,equals:c,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:N,isBlank:m,isBoolean:E,isEmpty:R,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:Nt,isNotBetween:Et,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:g,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:g,matches:A,notEquals:vt,notInside:mt,notMatches:kt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:k},wt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?at(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:at(e,{parent:x})})),Wt=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),at(q,t)}var t={context:function(){return wt.useX()},extend:function(t){at(Lt,t),n()}};return n(),new Proxy(at(q,t),{get:function(n,t){return t in n?n[t]:Lt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!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"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,xt=P((function(n,t){return t?null:at({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:ot.DEFAULT,keys:{current:{},prev:{}}},mode:[ct.ALL],testCursor:Y()},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Xt,Gt,Dt=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=Ft(),this.severity=Pt.Error,this.status=qt,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!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),nn()},n.prototype.reset=function(){this.status=qt,nn()},n.prototype.omit=function(){this.setStatus(Jt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Xt||(Xt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Gt||(Gt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=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=qn(),jn(e,n,t))return t;var r=function(){return e(Gn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=at(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=xt.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)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0-dev-08ec91",n.context=xt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=un();return n={stateRef:on(i,{suiteId:Ft(),suiteName:n}),bus:u},at(xt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:xt.bind(n,Gn),remove:xt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:xt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=ct.EAGER;xt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),fn({type:ot.GROUP},(function(){xt.run({groupName:n},e)}))},n.include=function(n){var t=xt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=xt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(Gn))}}}},n.omitWhen=function(n,t){fn({type:ot.OMIT_WHEN},(function(){xt.run({omitted:!!xt.useX().omitted||w(n,w(Gn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){fn({type:ot.SKIP_WHEN},(function(){xt.run({skipped:!!xt.useX().skipped||w(n,w(Gn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=xt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function e(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function r(n,t){return e(n)&&e(t)&&Number(n)===Number(t)}function u(n,t){return r(n.length,t)}function i(n,t){return e(n)&&e(t)&&Number(n)>Number(t)}function o(n,t){return i(n.length,t)}function s(n){function t(n){return e.findIndex((function(t){var e=t[0];return u(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),o(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function a(n){return null===n}function c(n){return void 0===n}function f(n){return null===n||c(n)}function l(n){return"function"==typeof n}function d(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return l(n)?n.apply(void 0,t):n}function p(n,t){var e;return null!==(e=d(n))&&void 0!==e?e:d(t)}function v(n){return!!Array.isArray(n)}function h(n){return(n=[].concat(n))[n.length-1]}function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];v(u)?e.push(N(u,t)):(u=t(u),pt(u)&&e.push(u))}return e}function g(n){return[].concat(n).reduce((function(n,t){return v(t)?n.concat(g(t)):[].concat(n).concat(t)}),[])}function E(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=p(n[r],[]),n=n[r]}return n}function m(n){return n.forEach((function(n){return n()}))}function y(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?d(t):t)}function b(n){return String(n)===n}function R(n){return!!n===n}function S(n){setTimeout((function(){throw Error(n)}),0)}function O(n,t){function e(n,t){n&&(r=!0,u=t)}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function T(n){return!n||(Object.prototype.hasOwnProperty.call(n,"length")?u(n,0):"object"==typeof n&&u(Object.keys(n),0))}function C(n){return i(n,0)}function I(n,t){return b(n)&&b(t)&&n.endsWith(t)}function _(n,t){return n===t}function k(n,t){return r(n,t)||i(n,t)}function A(n,t){return!!(v(t)||b(t)&&b(n))&&-1!==t.indexOf(n)}function w(n,t){return e(n)&&e(t)&&Number(n)<Number(t)}function W(n,t){return r(n,t)||w(n,t)}function x(n,t,e){return k(n,t)&&W(n,e)}function F(n){return f(n)||b(n)&&!n.trim()}function L(n,t){return n in t}function P(n){return Number.isNaN(n)}function U(n){return"number"==typeof n}function G(n){return!!n}function D(n,t){if(f(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function X(n,t){return t instanceof RegExp?t.test(n):!!b(t)&&new RegExp(t).test(n)}function q(n,t){return b(n)&&b(t)&&n.startsWith(t)}function j(n){for(var t in xt){var e=xt[t];l(e)&&n(t,e)}}function K(n){function t(t,u){var i,o,s=e();return t=gt({},s||{},null!==(i=d(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=e();return y(t,p(n,"Context was used after it was closed")),t}}}function B(){return null}function H(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 M(){try{return l(Proxy)}catch(n){return!1}}function V(n,t){return n={pass:n},t&&(n.message=t),n}function J(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return y(R(n)||n&&R(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),R(n)?V(n):V(n.pass,d.apply(void 0,H([n.message,t,e],r,!1)))}function Y(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return y((i=Ft.run({value:n},(function(){return J.apply(void 0,H([e.apply(void 0,H([n],u,!1)),r,n],u,!1))}))).pass,f(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(d(i.message))),t}}var e={};if(!M())return j((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=xt[e])return t(r,n,e)}});return r}function z(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=xt[r];e.push((function(n){return J.apply(void 0,H([o.apply(void 0,H([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return p(O(e,(function(e,r){var u,i=Ft.run({value:n},(function(){return e(n)}));r(!i.pass,V(!!i.pass,null!==(u=d(t,n,i.message))&&void 0!==u?u:i.message))})),V(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return M()?s=new Proxy(s,{get:function(t,e){return xt[e]?n(e):t[e]}}):(j((function(t){s[t]=n(t)})),s)}}(n)}function Q(){var n=0;return{current:function(){return n},next:function(){n++}}}function Z(n,t){return void 0===t&&(t=[]),{cursor:Q(),keys:{current:{},prev:{}},path:t,type:n}}function $(){return Ut.useX().stateRef}function nn(n){return $().optionalFields()[0][n]}function tn(n,t){(0,$().optionalFields()[1])((function(e){var r;return gt(e,((r={})[n]=d(t,e[n]),r))}))}function en(n){var t;return null===(t=nn(n))||void 0===t?void 0:t[0]}function rn(){un((function(n){return n}))}function un(n){(0,$().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function on(){return sn().filter((function(n){return n.isPending()}))}function sn(){var n=$().testObjects()[0].current;return Gt([n],(function(){return g(n)}))}function an(n){function t(n,t,u){return r.references.push(),e(n,d(t,u)),function(){return[r.references[n],function(t){return e(n,d(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,l(t=u[t][1])&&t(e,i),l(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function cn(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 fn(n,t){n=void 0===(n=n.type)?st.DEFAULT:n,y(l(t));var e=Z(n,dn());return n=Ut.run({isolate:e},(function(){return e.keys.prev=function(){var n=$().testObjects()[0].prev;return[].concat(E(n,dn())).reduce((function(n,t){return t instanceof qt&&!f(t.key)?(n[t.key]=t,n):n}),{})}(),un((function(n){var t=e.path;return E(n,t)[h(t)]=[],n})),t()})),ln().cursor.next(),n}function ln(){return Ut.useX().isolate}function dn(){var n=ln();return n.path.concat(n.cursor.current())}function pn(n){return n===Dt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function vn(n,t){return!(!t||n.fieldName!==t)}function hn(n,t){return sn().some((function(e){return Nn(e,n,t)}))}function Nn(n,t,e){return(e=!n.hasFailures()||e&&!vn(n,e))||(n=n.warns(),e=t===Dt.WARNINGS!=!!n),!e}function gn(n){return!!En(n)||!hn(Dt.ERRORS,n)&&(!T(sn())&&!function(n){return mt(on().filter((function(t){return mn(t,n)})))}(n)&&function(n){return sn().every((function(t){return!(!n||vn(t,n))||yn(t,n)}))}(n))}function En(n){return!!n&&!0===(null===(t=nn(n))||void 0===t?void 0:t[1]);var t}function mn(n,t){return!(t&&!vn(n,t))&&!0!==en(n.fieldName)}function yn(n,t){return!(!t||vn(n,t))||(!0===en(n.fieldName)||n.isTested()||n.isOmitted())}function bn(){var n=Ut.useX().summary;return y(n),n}function Rn(){var n=sn(),t=gt({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=Sn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&gn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=Sn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!En(t=t.fieldName)||!function(n,t,e){return sn().some((function(r){return!Qt(r,t)&&Nn(r,n,e)}))}(Dt.ERRORS,u,t)&&!function(n,t){return mt(on().filter((function(e){return!Qt(e,n)&&mn(e,t)})))}(u,t)&&function(n,t){return sn().every((function(e){return!!Qt(e,n)||yn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=gn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function Sn(n,t){function e(n){var t=pn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||gt({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Dt.ERRORS):t.isWarning()&&e(Dt.WARNINGS)),i}function On(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function Tn(n,t){var e,r={},u=pn(t);for(e in n)C(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Cn(n){return _n(Dt.ERRORS,n)}function In(n){return _n(Dt.WARNINGS,n)}function _n(n,t){var e=bn().tests;return t?On(e,n,t):Tn(e,n)}function kn(n,t){return wn(n,Dt.ERRORS,t)}function An(n,t){return wn(n,Dt.WARNINGS,t)}function wn(n,t,e){return n=bn().groups[n],e?On(n,t,e):Tn(n,t)}function Wn(n){return Fn(Xt.ERROR_COUNT,n)}function xn(n){return Fn(Xt.WARN_COUNT,n)}function Fn(n,t){var e,r=bn();return C(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Ln(n,t){return Un(Dt.ERRORS,n,t)}function Pn(n,t){return Un(Dt.WARNINGS,n,t)}function Un(n,t,e){var r,u,i=bn();if(n=pn(n),!(t=i.groups[t]))return!1;if(e)return C(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(C(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Gn(n){var t=bn();return n?!!Xn(t.tests,n):t.valid}function Dn(n,t){if(!(n=bn().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function qn(){var n=sn(),t={stateRef:$()};return Zt([n],Ut.bind(t,(function(){var n=Rn(),t=$().suiteName()[0],e={summary:n};return gt(n,{getErrors:Ut.bind(e,Cn),getErrorsByGroup:Ut.bind(e,kn),getWarnings:Ut.bind(e,In),getWarningsByGroup:Ut.bind(e,An),hasErrors:Ut.bind(e,Wn),hasErrorsByGroup:Ut.bind(e,Ln),hasWarnings:Ut.bind(e,xn),hasWarningsByGroup:Ut.bind(e,Pn),isValid:Ut.bind(e,Gn),isValidByGroup:Ut.bind(e,Dn),suiteName:t})})))}function jn(n){var t=on();return!T(t)&&(n?t.some((function(t){return vn(t,n)})):mt(t))}function Kn(){var n=sn(),t={stateRef:$()};return $t([n],Ut.bind(t,(function(){return gt({},qn(),{done:Ut.bind(t,ne)})})))}function Bn(n,t,e){return!(l(n)&&(!t||e.tests[t]&&!T(e.tests[t].testCount)))}function Hn(n){return!(jn()&&(!n||jn(n)))}function Mn(n,t){(0,$().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Vn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(zt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=$().testCallbacks()[0].fieldCallbacks;t&&!jn(t)&&v(e[t])&&m(e[t]),jn()||n.emit(zt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(zt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),tn(n.fieldName,(function(n){return[n[0],!0]})))}if(!T($().optionalFields()[0])){var t={};un((function(e){return N(e,(function(e){if(Object.prototype.hasOwnProperty.call(t,e.fieldName))n(e);else{var r=en(e.fieldName);l(r)&&(t[e.fieldName]=r(),n(e))}return e}))}))}}()})),n.on(zt.ALL_RUNNING_TESTS_FINISHED,(function(){m($().testCallbacks()[0].doneCallbacks)})),n.on(zt.REMOVE_FIELD,(function(n){sn().forEach((function(t){vn(t,n)&&(t.cancel(),function(n){un((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(zt.RESET_FIELD,(function(n){sn().forEach((function(t){vn(t,n)&&t.reset()}))})),n}function Jn(){var n=Ut.useX();return y(n.bus),n.bus}function Yn(n){return Qn(0,"tests",n)}function zn(n){return Qn(1,"tests",n)}function Qn(n,t,e){var r=Ut.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){b(e)&&(r.exclusion[t][e]=0===n)}))}function Zn(n){for(var t in n)if(!0===n[t])return!0;return!1}function $n(){var n,t=Ut.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function nt(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function tt(n){var t=n.asyncTest,e=n.message;if(t&&l(t.then)){var r=Jn().emit,u=$(),i=Ut.bind({stateRef:u},(function(){rn(),r(zt.TEST_COMPLETED,n)}));u=Ut.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=b(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function et(n){var t=$().testObjects()[0].prev;if(T(t))return rt(n),n;var e=dn();if(t=E(t,e)[h(e)],!f(n.key)){t=n.key,(e=ln().keys.prev[t])&&(n=e),e=n;var r=ln().keys.current;return f(r[t])?r[t]=e:S('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),rt(n),n}return!mt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(ln().type===st.EACH||S("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=ln().cursor.current();un((function(t){return t.splice(n),t}))}(),t=null),rt(n=p(t,n)),n}function rt(n){var t=dn();un((function(e){return E(e,t)[h(t)]=n,e}))}function ut(n){var t=ln().cursor,e=ct.EAGER;if(Ut.useX().mode[0]===e&&hn(Dt.ERRORS,n.fieldName))return n.skip(),et(n),t.next(),n;if(e=et(n),Ut.useX().omitted)return e.omit(),t.next(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,Ut.useX().skipped)return!0;var e=Ut.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=Ut.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:$n())return!0;if(!0===r.groups[n])return!(i||!Zn(u)&&!1!==u[t])}return!!(n=!!$n()&&!n)||!i&&!!Zn(u)&&!d(e[t])}(n))return e.skip(!!Ut.useX().skipped),t.next(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),rt(n),n.isUntested()){e=Jn();var r=function(n){return Ut.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&l(r.then)?(n.asyncTest=r,n.setPending(),tt(n)):e.emit(zt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&l(e.then)&&(n.setPending(),tt(n));return t.next(),n}function it(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=l(t[1])?t:H([void 0],t,!0);t=r[0],e=r[1],r=r[2],y(b(n),ot("fieldName","string")),y(l(e),ot("Test callback","function"));var u=Ut.useX();return ut(t=new qt(n,e,{message:t,groupName:u.groupName,key:r}))}function ot(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var st,at,ct,ft=t(e),lt=t(r),dt=t(u),pt=t(a),vt=t(c),ht=t(f),Nt=t(v),gt=Object.assign,Et=(at=0,function(){return"".concat(at++)}),mt=t(T),yt=t(I),bt=t(_),Rt=t(A),St=t(x),Ot=t(F),Tt=t(R),Ct=t(L),It=t(P),_t=t(U),kt=t(b),At=t(G),wt=t(D),Wt=t(X),xt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:yt,doesNotStartWith:t(q),endsWith:I,equals:_,greaterThan:i,greaterThanOrEquals:k,gt:i,gte:k,inside:A,isArray:v,isBetween:x,isBlank:F,isBoolean:R,isEmpty:T,isEven:function(n){return!!e(n)&&0==n%2},isFalsy:At,isKeyOf:L,isNaN:P,isNegative:function(n){return w(n,0)},isNotArray:Nt,isNotBetween:St,isNotBlank:Ot,isNotBoolean:Tt,isNotEmpty:mt,isNotKeyOf:Ct,isNotNaN:It,isNotNull:pt,isNotNullish:ht,isNotNumber:_t,isNotNumeric:ft,isNotString:kt,isNotUndefined:vt,isNotValueOf:wt,isNull:a,isNullish:f,isNumber:U,isNumeric:e,isOdd:function(n){return!!e(n)&&0!=n%2},isPositive:C,isString:b,isTruthy:G,isUndefined:c,isValueOf:D,lengthEquals:u,lengthNotEquals:dt,lessThan:w,lessThanOrEquals:W,longerThan:o,longerThanOrEquals:function(n,t){return k(n.length,t)},lt:w,lte:W,matches:X,notEquals:bt,notInside:Rt,notMatches:Wt,numberEquals:r,numberNotEquals:lt,shorterThan:function(n,t){return w(n.length,t)},shorterThanOrEquals:function(n,t){return W(n.length,t)},startsWith:q},Ft=K((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?gt(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:gt(e,{parent:B})})),Lt=function(){function n(){if(!M())return j((function(n){t[n]=z(n)})),gt(Y,t)}var t={context:function(){return Ft.useX()},extend:function(t){gt(xt,t),n()}};return n(),new Proxy(gt(Y,t),{get:function(n,t){return t in n?n[t]:xt[t]?z(t):void 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"}(st||(st={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,Ut=K((function(n,t){return t?null:gt({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:Z(st.DEFAULT),mode:[ct.ALL]},n)})),Gt=s();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Dt,Xt,qt=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=Et(),this.severity=Pt.Error,this.status=jt,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,c(this.message)&&b(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Yt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Vt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ht:Bt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Mt)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Kt)},n.prototype.cancel=function(){this.setStatus(Jt),rn()},n.prototype.reset=function(){this.status=jt,rn()},n.prototype.omit=function(){this.setStatus(Yt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Vt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Yt)},n.prototype.isUntested=function(){return this.statusEquals(jt)},n.prototype.isFailing=function(){return this.statusEquals(Bt)},n.prototype.isCanceled=function(){return this.statusEquals(Jt)},n.prototype.isSkipped=function(){return this.statusEquals(Kt)},n.prototype.isPassing=function(){return this.statusEquals(Mt)},n.prototype.isWarning=function(){return this.statusEquals(Ht)},n.prototype.statusEquals=function(n){return this.status===n},n}(),jt="UNTESTED",Kt="SKIPPED",Bt="FAILED",Ht="WARNING",Mt="PASSING",Vt="PENDING",Jt="CANCELED",Yt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Dt||(Dt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Xt||(Xt={}));var zt,Qt=t((function(n,t){return n.groupName===t})),Zt=s(1),$t=s(20),ne=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=Kn(),Bn(e,n,t))return t;var r=function(){return e(qn())};return Hn(n)?(r(),t):(Mn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(zt||(zt={})),Yn.group=function(n){return Qn(0,"groups",n)},zn.group=function(n){return Qn(1,"groups",n)};var te=gt(it,{memo:function(n){var t=s(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=ln().cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[$().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):ut(r[1])}}(it)});n.VERSION="4.4.2-dev-afe5de",n.context=Ut,n.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],y(l(e),"vest.create: Expected callback to be a function.");var r=Vn(),u=an();return n={stateRef:cn(u,{suiteId:Et(),suiteName:n}),bus:r},gt(Ut.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return u.reset(),fn({type:st.SUITE},(function(){e.apply(void 0,n)})),r.emit(zt.SUITE_CALLBACK_DONE_RUNNING),Kn()})),{get:Ut.bind(n,qn),remove:Ut.bind(n,(function(n){r.emit(zt.REMOVE_FIELD,n)})),reset:u.reset,resetField:Ut.bind(n,(function(n){r.emit(zt.RESET_FIELD,n)}))})},n.each=function(n,t){y(l(t),"each callback must be a function"),fn({type:st.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},n.eager=function(){var n=ct.EAGER;Ut.useX().mode[0]=n},n.enforce=Lt,n.group=function(n,t){y(b(n),nt("name must be a string")),y(l(t),nt("callback must be a function")),fn({type:st.GROUP},(function(){Ut.run({groupName:n},t)}))},n.include=function(n){var t=Ut.useX(),e=t.inclusion;return t=t.exclusion,y(b(n)),e[n]=p(t.tests[n],!0),{when:function(t){var e=Ut.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?p(r.tests[n],!0):b(t)?!!r.tests[t]:d(t,d(qn))}}}},n.omitWhen=function(n,t){fn({type:st.OMIT_WHEN},(function(){Ut.run({omitted:!!Ut.useX().omitted||d(n,d(qn))},(function(){return t()}))}))},n.only=Yn,n.optional=function(n){if(v(n)||b(n))[].concat(n).forEach((function(n){tn(n,[!0,!1])}));else for(var t in n)tn(t,[n[t],!1])},n.skip=zn,n.skipWhen=function(n,t){fn({type:st.SKIP_WHEN},(function(){Ut.run({skipped:!!Ut.useX().skipped||d(n,d(qn))},(function(){return t()}))}))},n.test=te,n.warn=function(){var n=Ut.useX("warn hook called outside of a running suite.");y(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.4.
|
|
2
|
+
"version": "4.4.2-dev-afe5de",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "dev",
|
|
24
|
-
"n4s": "dev"
|
|
23
|
+
"context": "^2.0.7-dev-afe5de",
|
|
24
|
+
"n4s": "^4.1.8-dev-afe5de",
|
|
25
|
+
"vest-utils": "^0.0.4-dev-afe5de"
|
|
25
26
|
},
|
|
26
27
|
"homepage": "https://vestjs.dev/",
|
|
27
28
|
"exports": {
|
package/testUtils/suiteDummy.ts
CHANGED
package/testUtils/testObjects.ts
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import VestTest from 'VestTest';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export function emptyTestObjects(): void {
|
|
5
|
-
const [, setTestObjects] = useTestObjects();
|
|
6
|
-
setTestObjects(({ prev }) => ({ prev, current: [] }));
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function setTestObjects(...args: VestTest[]): void {
|
|
10
|
-
const [, setTestObjects] = useTestObjects();
|
|
11
|
-
setTestObjects(({ prev }) => ({ prev, current: [...args] }));
|
|
12
|
-
}
|
|
2
|
+
import { useSetTests } from 'stateHooks';
|
|
13
3
|
|
|
14
4
|
export function addTestObject(addedTests: VestTest[] | VestTest): void {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
setTestObjects(({ prev, current }) => ({
|
|
18
|
-
prev,
|
|
19
|
-
current: current.concat(addedTests),
|
|
20
|
-
}));
|
|
5
|
+
useSetTests(tests => tests.concat(addedTests));
|
|
21
6
|
}
|
|
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
17
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
18
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
19
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
20
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
21
|
declare function inside(value: unknown, arg1: string | unknown[]): boolean;
|
|
23
|
-
// The module is named "isArrayValue" since it
|
|
24
|
-
// is conflicting with a nested npm dependency.
|
|
25
|
-
// We may need to revisit this in the future.
|
|
26
|
-
declare function isArray(value: unknown): value is Array<unknown>;
|
|
27
22
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
23
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
24
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
25
|
declare function isNaN(value: unknown): boolean;
|
|
33
26
|
declare function isNegative(value: number | string): boolean;
|
|
34
|
-
declare function isNull(value: unknown): value is null;
|
|
35
|
-
declare function isNullish(value: any): value is null | undefined;
|
|
36
27
|
declare function isNumber(value: unknown): value is number;
|
|
37
|
-
declare function isNumeric(value: string | number): boolean;
|
|
38
|
-
declare function isPositive(value: number | string): boolean;
|
|
39
|
-
declare function isStringValue(v: unknown): v is string;
|
|
40
28
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): boolean;
|
|
42
29
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
30
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
31
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
32
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
33
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
34
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
35
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
36
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +40,16 @@ declare const baseRules: {
|
|
|
56
40
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
41
|
endsWith: typeof endsWith;
|
|
58
42
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
43
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
44
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
45
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
46
|
gte: typeof greaterThanOrEquals;
|
|
63
47
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
48
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
49
|
isBetween: typeof isBetween;
|
|
66
50
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
51
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
52
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
53
|
isEven: (value: any) => boolean;
|
|
70
54
|
isFalsy: (value: unknown) => boolean;
|
|
71
55
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +69,21 @@ declare const baseRules: {
|
|
|
85
69
|
isNotString: (v: unknown) => boolean;
|
|
86
70
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
71
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
72
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
73
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
74
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
75
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
76
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
77
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
78
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
79
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
80
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
81
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
82
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
83
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
84
|
lessThan: typeof lessThan;
|
|
101
85
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
86
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
87
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
88
|
lt: typeof lessThan;
|
|
105
89
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,7 +91,7 @@ declare const baseRules: {
|
|
|
107
91
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
92
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
93
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
94
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
95
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
96
|
shorterThan: typeof shorterThan;
|
|
113
97
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
17
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
18
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
19
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
20
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
21
|
declare function inside(value: unknown, arg1: string | unknown[]): boolean;
|
|
23
|
-
// The module is named "isArrayValue" since it
|
|
24
|
-
// is conflicting with a nested npm dependency.
|
|
25
|
-
// We may need to revisit this in the future.
|
|
26
|
-
declare function isArray(value: unknown): value is Array<unknown>;
|
|
27
22
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
23
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
24
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
25
|
declare function isNaN(value: unknown): boolean;
|
|
33
26
|
declare function isNegative(value: number | string): boolean;
|
|
34
|
-
declare function isNull(value: unknown): value is null;
|
|
35
|
-
declare function isNullish(value: any): value is null | undefined;
|
|
36
27
|
declare function isNumber(value: unknown): value is number;
|
|
37
|
-
declare function isNumeric(value: string | number): boolean;
|
|
38
|
-
declare function isPositive(value: number | string): boolean;
|
|
39
|
-
declare function isStringValue(v: unknown): v is string;
|
|
40
28
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): boolean;
|
|
42
29
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
30
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
31
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
32
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
33
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
34
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
35
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
36
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +40,16 @@ declare const baseRules: {
|
|
|
56
40
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
41
|
endsWith: typeof endsWith;
|
|
58
42
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
43
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
44
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
45
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
46
|
gte: typeof greaterThanOrEquals;
|
|
63
47
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
48
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
49
|
isBetween: typeof isBetween;
|
|
66
50
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
51
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
52
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
53
|
isEven: (value: any) => boolean;
|
|
70
54
|
isFalsy: (value: unknown) => boolean;
|
|
71
55
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +69,21 @@ declare const baseRules: {
|
|
|
85
69
|
isNotString: (v: unknown) => boolean;
|
|
86
70
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
71
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
72
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
73
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
74
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
75
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
76
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
77
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
78
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
79
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
80
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
81
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
82
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
83
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
84
|
lessThan: typeof lessThan;
|
|
101
85
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
86
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
87
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
88
|
lt: typeof lessThan;
|
|
105
89
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,7 +91,7 @@ declare const baseRules: {
|
|
|
107
91
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
92
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
93
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
94
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
95
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
96
|
shorterThan: typeof shorterThan;
|
|
113
97
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
|
@@ -17,36 +17,20 @@ type KBaseRules = keyof BaseRules;
|
|
|
17
17
|
declare function condition(value: any, callback: (value: any) => RuleReturn): RuleReturn;
|
|
18
18
|
declare function endsWith(value: string, arg1: string): boolean;
|
|
19
19
|
declare function equals(value: unknown, arg1: unknown): boolean;
|
|
20
|
-
declare function greaterThan(value: number | string, gt: number | string): boolean;
|
|
21
20
|
declare function greaterThanOrEquals(value: string | number, gte: string | number): boolean;
|
|
22
21
|
declare function inside(value: unknown, arg1: string | unknown[]): boolean;
|
|
23
|
-
// The module is named "isArrayValue" since it
|
|
24
|
-
// is conflicting with a nested npm dependency.
|
|
25
|
-
// We may need to revisit this in the future.
|
|
26
|
-
declare function isArray(value: unknown): value is Array<unknown>;
|
|
27
22
|
declare function isBetween(value: number | string, min: number | string, max: number | string): boolean;
|
|
28
23
|
declare function isBlank(value: unknown): boolean;
|
|
29
|
-
declare function isBoolean(value: unknown): value is boolean;
|
|
30
|
-
declare function isEmpty(value: unknown): boolean;
|
|
31
24
|
declare function isKeyOf(key: string | symbol | number, obj: any): boolean;
|
|
32
25
|
declare function isNaN(value: unknown): boolean;
|
|
33
26
|
declare function isNegative(value: number | string): boolean;
|
|
34
|
-
declare function isNull(value: unknown): value is null;
|
|
35
|
-
declare function isNullish(value: any): value is null | undefined;
|
|
36
27
|
declare function isNumber(value: unknown): value is number;
|
|
37
|
-
declare function isNumeric(value: string | number): boolean;
|
|
38
|
-
declare function isPositive(value: number | string): boolean;
|
|
39
|
-
declare function isStringValue(v: unknown): v is string;
|
|
40
28
|
declare function isTruthy(value: unknown): boolean;
|
|
41
|
-
declare function isUndefined(value?: unknown): boolean;
|
|
42
29
|
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
43
|
-
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
44
30
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
45
31
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
46
|
-
declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
|
|
47
32
|
declare function longerThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
48
33
|
declare function matches(value: string, regex: RegExp | string): boolean;
|
|
49
|
-
declare function numberEquals(value: string | number, eq: string | number): boolean;
|
|
50
34
|
declare function shorterThan(value: string | unknown[], arg1: string | number): boolean;
|
|
51
35
|
declare function shorterThanOrEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
52
36
|
declare function startsWith(value: string, arg1: string): boolean;
|
|
@@ -56,16 +40,16 @@ declare const baseRules: {
|
|
|
56
40
|
doesNotStartWith: (value: string, arg1: string) => boolean;
|
|
57
41
|
endsWith: typeof endsWith;
|
|
58
42
|
equals: typeof equals;
|
|
59
|
-
greaterThan: typeof greaterThan;
|
|
43
|
+
greaterThan: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
60
44
|
greaterThanOrEquals: typeof greaterThanOrEquals;
|
|
61
|
-
gt: typeof greaterThan;
|
|
45
|
+
gt: typeof import("packages/vest-utils/types/vest-utils").greaterThan;
|
|
62
46
|
gte: typeof greaterThanOrEquals;
|
|
63
47
|
inside: typeof inside;
|
|
64
|
-
isArray: typeof isArray;
|
|
48
|
+
isArray: typeof import("packages/vest-utils/types/vest-utils").isArray;
|
|
65
49
|
isBetween: typeof isBetween;
|
|
66
50
|
isBlank: typeof isBlank;
|
|
67
|
-
isBoolean: typeof isBoolean;
|
|
68
|
-
isEmpty: typeof isEmpty;
|
|
51
|
+
isBoolean: typeof import("packages/vest-utils/types/vest-utils").isBoolean;
|
|
52
|
+
isEmpty: typeof import("packages/vest-utils/types/vest-utils").isEmpty;
|
|
69
53
|
isEven: (value: any) => boolean;
|
|
70
54
|
isFalsy: (value: unknown) => boolean;
|
|
71
55
|
isKeyOf: typeof isKeyOf;
|
|
@@ -85,21 +69,21 @@ declare const baseRules: {
|
|
|
85
69
|
isNotString: (v: unknown) => boolean;
|
|
86
70
|
isNotUndefined: (value?: unknown) => boolean;
|
|
87
71
|
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
88
|
-
isNull: typeof isNull;
|
|
89
|
-
isNullish: typeof isNullish;
|
|
72
|
+
isNull: typeof import("packages/vest-utils/types/vest-utils").isNull;
|
|
73
|
+
isNullish: typeof import("packages/vest-utils/types/vest-utils").isNullish;
|
|
90
74
|
isNumber: typeof isNumber;
|
|
91
|
-
isNumeric: typeof isNumeric;
|
|
75
|
+
isNumeric: typeof import("packages/vest-utils/types/vest-utils").isNumeric;
|
|
92
76
|
isOdd: (value: any) => boolean;
|
|
93
|
-
isPositive: typeof isPositive;
|
|
94
|
-
isString: typeof isStringValue;
|
|
77
|
+
isPositive: typeof import("packages/vest-utils/types/vest-utils").isPositive;
|
|
78
|
+
isString: typeof import("packages/vest-utils/types/vest-utils").isStringValue;
|
|
95
79
|
isTruthy: typeof isTruthy;
|
|
96
|
-
isUndefined: typeof isUndefined;
|
|
80
|
+
isUndefined: typeof import("packages/vest-utils/types/vest-utils").isUndefined;
|
|
97
81
|
isValueOf: typeof isValueOf;
|
|
98
|
-
lengthEquals: typeof lengthEquals;
|
|
82
|
+
lengthEquals: typeof import("packages/vest-utils/types/vest-utils").lengthEquals;
|
|
99
83
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
100
84
|
lessThan: typeof lessThan;
|
|
101
85
|
lessThanOrEquals: typeof lessThanOrEquals;
|
|
102
|
-
longerThan: typeof longerThan;
|
|
86
|
+
longerThan: typeof import("packages/vest-utils/types/vest-utils").longerThan;
|
|
103
87
|
longerThanOrEquals: typeof longerThanOrEquals;
|
|
104
88
|
lt: typeof lessThan;
|
|
105
89
|
lte: typeof lessThanOrEquals;
|
|
@@ -107,7 +91,7 @@ declare const baseRules: {
|
|
|
107
91
|
notEquals: (value: unknown, arg1: unknown) => boolean;
|
|
108
92
|
notInside: (value: unknown, arg1: string | unknown[]) => boolean;
|
|
109
93
|
notMatches: (value: string, regex: string | RegExp) => boolean;
|
|
110
|
-
numberEquals: typeof numberEquals;
|
|
94
|
+
numberEquals: typeof import("packages/vest-utils/types/vest-utils").numberEquals;
|
|
111
95
|
numberNotEquals: (value: string | number, eq: string | number) => boolean;
|
|
112
96
|
shorterThan: typeof shorterThan;
|
|
113
97
|
shorterThanOrEquals: typeof shorterThanOrEquals;
|
package/types/vest.d.ts
CHANGED
|
@@ -138,13 +138,9 @@ type Suite<T extends CB> = {
|
|
|
138
138
|
*/
|
|
139
139
|
declare function create<T extends CB>(suiteName: string, suiteCallback: T): Suite<T>;
|
|
140
140
|
declare function create<T extends CB>(suiteCallback: T): Suite<T>;
|
|
141
|
-
type
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
getCursor: () => number[];
|
|
145
|
-
next: () => number;
|
|
146
|
-
removeLevel: () => void;
|
|
147
|
-
reset: () => void;
|
|
141
|
+
type IsolateCursor = {
|
|
142
|
+
current: () => number;
|
|
143
|
+
next: () => void;
|
|
148
144
|
};
|
|
149
145
|
declare enum IsolateTypes {
|
|
150
146
|
DEFAULT = 0,
|
|
@@ -158,6 +154,12 @@ type IsolateKeys = {
|
|
|
158
154
|
current: Record<string, VestTest>;
|
|
159
155
|
prev: Record<string, VestTest>;
|
|
160
156
|
};
|
|
157
|
+
type Isolate = {
|
|
158
|
+
type: IsolateTypes;
|
|
159
|
+
keys: IsolateKeys;
|
|
160
|
+
path: number[];
|
|
161
|
+
cursor: IsolateCursor;
|
|
162
|
+
};
|
|
161
163
|
declare enum Modes {
|
|
162
164
|
ALL = 0,
|
|
163
165
|
EAGER = 1
|
|
@@ -186,9 +188,10 @@ type TestCallbacks = {
|
|
|
186
188
|
doneCallbacks: Array<(res: SuiteResult) => void>;
|
|
187
189
|
};
|
|
188
190
|
type TestObjects = {
|
|
189
|
-
prev:
|
|
190
|
-
current:
|
|
191
|
+
prev: VestTests;
|
|
192
|
+
current: VestTests;
|
|
191
193
|
};
|
|
194
|
+
type VestTests = NestedArray<VestTest>;
|
|
192
195
|
declare const _default: {
|
|
193
196
|
run: <R>(ctxRef: Partial<CTXType>, fn: (context: CTXType) => R) => R;
|
|
194
197
|
bind: <Fn extends (...args: any[]) => any>(ctxRef: Partial<CTXType>, fn: Fn) => Fn;
|
|
@@ -196,11 +199,7 @@ declare const _default: {
|
|
|
196
199
|
useX: (errorMessage?: string | undefined) => CTXType;
|
|
197
200
|
};
|
|
198
201
|
type CTXType = {
|
|
199
|
-
isolate:
|
|
200
|
-
type: IsolateTypes;
|
|
201
|
-
keys: IsolateKeys;
|
|
202
|
-
};
|
|
203
|
-
testCursor: Cursor;
|
|
202
|
+
isolate: Isolate;
|
|
204
203
|
stateRef?: StateRef;
|
|
205
204
|
exclusion: {
|
|
206
205
|
tests: Record<string, boolean>;
|
|
@@ -350,6 +349,6 @@ declare const test: typeof testBase & {
|
|
|
350
349
|
* Sets a running test to warn only mode.
|
|
351
350
|
*/
|
|
352
351
|
declare function warn(): void;
|
|
353
|
-
declare const VERSION = "4.4.
|
|
352
|
+
declare const VERSION = "4.4.2-dev-afe5de";
|
|
354
353
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
355
354
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jest/valid-title */
|
|
2
|
-
import optionalFunctionValue from 'optionalFunctionValue';
|
|
3
|
-
|
|
4
|
-
import runCreateRef from './runCreateRef';
|
|
5
|
-
|
|
6
|
-
import context from 'ctx';
|
|
7
|
-
import { initBus } from 'vestBus';
|
|
8
|
-
|
|
9
|
-
export default function itWithContext(
|
|
10
|
-
str: string,
|
|
11
|
-
cb: () => void,
|
|
12
|
-
getCTX?: () => Record<string, any>
|
|
13
|
-
): void {
|
|
14
|
-
return it(str, () =>
|
|
15
|
-
context.run(
|
|
16
|
-
optionalFunctionValue(getCTX) ?? {
|
|
17
|
-
stateRef: runCreateRef(),
|
|
18
|
-
bus: initBus(),
|
|
19
|
-
},
|
|
20
|
-
cb
|
|
21
|
-
)
|
|
22
|
-
);
|
|
23
|
-
}
|