vest 4.0.0-dev-392d56 → 4.0.0-dev-deabb8
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 +3 -2
- package/dist/cjs/vest.development.js +18 -9
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +18 -9
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +18 -9
- package/dist/umd/vest.production.js +1 -1
- package/package.json +1 -1
- package/types/vest.d.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
## 4.0.0 - 2021-10-
|
|
7
|
+
## 4.0.0 - 2021-10-02
|
|
8
8
|
### Changed or removed
|
|
9
9
|
- 0e3af10 major(context): used named export in context (ealush)
|
|
10
10
|
- 1897164 major(vest, enforce): setup next major version (ealush)
|
|
@@ -19,7 +19,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
|
19
19
|
- f41a444 feat(n4s): context propagation within enforce (undefined)
|
|
20
20
|
|
|
21
21
|
### Fixed and improved
|
|
22
|
-
-
|
|
22
|
+
- deabb8e patch(vest): add cache invalidation for canceled tests (ealush)
|
|
23
|
+
- fd1e31e types(vest): add safeguard around shouldUseErrorAsMessage (ealush)
|
|
23
24
|
- 8321a36 patch(vest): some cleanups (ealush)
|
|
24
25
|
- 8320956 patch(vest): remove duplicate code handling perv test registration (ealush)
|
|
25
26
|
- 7e3fffb vx: use context directly from published package (ealush)
|
|
@@ -895,10 +895,6 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
895
895
|
function createCache(maxSize) {
|
|
896
896
|
if (maxSize === void 0) { maxSize = 10; }
|
|
897
897
|
var cacheStorage = [];
|
|
898
|
-
/**
|
|
899
|
-
* @param {any[]} deps dependency array.
|
|
900
|
-
* @param {Function} cache action function.
|
|
901
|
-
*/
|
|
902
898
|
var cache = function (deps, cacheAction) {
|
|
903
899
|
var cacheHit = cache.get(deps);
|
|
904
900
|
// cache hit is not null
|
|
@@ -911,10 +907,17 @@ function createCache(maxSize) {
|
|
|
911
907
|
}
|
|
912
908
|
return result;
|
|
913
909
|
};
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
910
|
+
// invalidate an item in the cache by its dependencies
|
|
911
|
+
cache.invalidate = function (deps) {
|
|
912
|
+
var index = cacheStorage.findIndex(function (_a) {
|
|
913
|
+
var cachedDeps = _a[0];
|
|
914
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
915
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
916
|
+
});
|
|
917
|
+
if (index > -1)
|
|
918
|
+
cacheStorage.splice(index, 1);
|
|
919
|
+
};
|
|
920
|
+
// Retrieves an item from the cache.
|
|
918
921
|
cache.get = function (deps) {
|
|
919
922
|
return cacheStorage[cacheStorage.findIndex(function (_a) {
|
|
920
923
|
var cachedDeps = _a[0];
|
|
@@ -1854,6 +1857,7 @@ function bindTestEach(test) {
|
|
|
1854
1857
|
// eslint-disable-next-line max-lines-per-function
|
|
1855
1858
|
function bindTestMemo(test) {
|
|
1856
1859
|
var cache = createCache(100); // arbitrary cache size
|
|
1860
|
+
// eslint-disable-next-line max-statements
|
|
1857
1861
|
function memo(fieldName) {
|
|
1858
1862
|
var args = [];
|
|
1859
1863
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -1869,6 +1873,11 @@ function bindTestMemo(test) {
|
|
|
1869
1873
|
// cache miss
|
|
1870
1874
|
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1871
1875
|
}
|
|
1876
|
+
if (cached[1].isCanceled()) {
|
|
1877
|
+
// cache hit, but test is canceled
|
|
1878
|
+
cache.invalidate(dependencies);
|
|
1879
|
+
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1880
|
+
}
|
|
1872
1881
|
return registerPrevRunTest(cached[1]);
|
|
1873
1882
|
}
|
|
1874
1883
|
return memo;
|
|
@@ -1892,7 +1901,7 @@ var test = assign(testBase, {
|
|
|
1892
1901
|
memo: bindTestMemo(testBase)
|
|
1893
1902
|
});
|
|
1894
1903
|
|
|
1895
|
-
var VERSION = "4.0.0-dev-
|
|
1904
|
+
var VERSION = "4.0.0-dev-deabb8";
|
|
1896
1905
|
|
|
1897
1906
|
exports.VERSION = VERSION;
|
|
1898
1907
|
exports.create = create;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},n.apply(this,arguments)};function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function f(){return s(!0)}function c(n){return o(n,a())}function l(n){return o(n,f())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function g(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function h(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function y(n,t){return n.length===Number(t)}var m=h(y);function N(n,t){return n.length>Number(t)}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(y(e,1))}function E(n){return null===n}var C=h(E);function O(n){return void 0===n}var x=h(O);function w(n,t){return O(n)||E(n)?f():p(t,n)}function S(n){return String(n)===n}function T(n,t){return S(n)&&S(t)&&n.endsWith(t)}var P=h(T);function k(n,t){return n===t}var F=h(k);function W(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=h(W);function j(n,t){return W(n)&&W(t)&&Number(n)>Number(t)}function R(n,t){return W(n)&&W(t)&&Number(n)>=Number(t)}function I(n,t){return!!(Array.isArray(t)||S(t)&&S(n))&&-1!==t.indexOf(n)}var q=h(I);function B(n){return!!Array.isArray(n)}var D=h(B);function G(n,t){return W(n)&&W(t)&&Number(n)<=Number(t)}function X(n,t,r){return R(n,t)&&G(n,r)}var K=h(X);function _(n){return!!n===n}var L=h(_);function M(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function U(n){return"number"==typeof n}var J=h(U);function z(n){if(n){if(U(n))return 0===n;if(M(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}var V=h(z),Y=function(n){return!!W(n)&&0==n%2};function H(n){return Number.isNaN(n)}var Q=h(H);function Z(n){return!!W(n)&&0>Number(n)}var $=h(Z),nn=function(n){return!!W(n)&&0!=n%2},tn=h(S);function rn(n){return!!n}var en=h(rn);function un(n,t){return W(n)&&W(t)&&Number(n)<Number(t)}function on(n,t){return n.length>=Number(t)}function sn(n,t){return t instanceof RegExp?t.test(n):!!S(t)&&new RegExp(t).test(n)}var an=h(sn);function fn(n,t){return W(n)&&W(t)&&Number(n)===Number(t)}var cn=h(fn);function ln(n,t){try{return t(n)}catch(n){return!1}}function pn(n,t){return n.length<Number(t)}function vn(n,t){return n.length<=Number(t)}function gn(n,t){return S(n)&&S(t)&&n.startsWith(t)}var dn=h(gn);function hn(n,t){throw Error(o(t,n))}function yn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:hn(o(n,"Context was used after it was closed"))}}}var mn=yn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:Nn})}));function Nn(){return null}function bn(n,t){return l(u(n,(function(n,r,e){(e=mn.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function En(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=mn.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return f()}function Cn(n,t){var r=En(n,t);if(!r.pass)return r;for(var e in n)if(!M(t,e))return a();return f()}var On=r({condition:ln,doesNotEndWith:P,doesNotStartWith:dn,endsWith:T,equals:k,greaterThan:j,greaterThanOrEquals:R,gt:j,gte:R,inside:I,isArray:B,isBetween:X,isBoolean:_,isEmpty:z,isEven:Y,isFalsy:en,isNaN:H,isNegative:Z,isNotArray:D,isNotBetween:K,isNotBoolean:L,isNotEmpty:V,isNotNaN:Q,isNotNull:C,isNotNumber:J,isNotNumeric:A,isNotString:tn,isNotUndefined:x,isNull:E,isNumber:U,isNumeric:W,isOdd:nn,isPositive:$,isString:S,isTruthy:rn,isUndefined:O,lengthEquals:y,lengthNotEquals:m,lessThan:un,lessThanOrEquals:G,longerThan:N,longerThanOrEquals:on,lt:un,lte:G,matches:sn,notEquals:F,notInside:q,notMatches:an,numberEquals:fn,numberNotEquals:cn,shorterThan:pn,shorterThanOrEquals:vn,startsWith:gn},{allOf:v,anyOf:g,noneOf:d,oneOf:b,optional:w},{shape:Cn,loose:En,isArrayOf:bn});function xn(n){return On[n]}function wn(n){for(var t in On){var r=xn(t);e(r)&&n(t,r)}}function Sn(){return"function"==typeof Proxy}function Tn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return Pn(n),_(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u,!1)))}function Pn(n){_(n)||n&&_(n.pass)||hn("Incorrect return value for rule: "+JSON.stringify(n))}function kn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=Tn.apply(void 0,t([mn.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!z(o.message))throw o.message;hn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Sn())return wn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=xn(t))return r(u,n,t)}});return u}function Fn(n){var r,e=[];return function n(o){return function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var c=xn(o);e.push((function(n){return Tn.apply(void 0,t([c.apply(void 0,t([n],a,!1)),o,n],a,!1))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=mn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Sn()?p=new Proxy(p,{get:function(t,r){return xn(r)?n(r):t[r]}}):(wn((function(t){p[t]=n(t)})),p)}}(n)}function Wn(n){var t,r={};for(t in n)r[t]=jn.optional(n[t]);return r}var An,jn=(An=n({context:function(){return mn.useX()},extend:function(n){r(On,n)}},{partial:Wn}),Sn()?new Proxy(r(kn,An),{get:function(n,t){return t in n?n[t]:xn(t)?Fn(t):void 0}}):(wn((function(n){An[n]=Fn(n)})),An));function Rn(n){return[].concat(n)}var In=function(n){return function(){return""+n++}}(0);var qn=yn((function(n,t){return t?null:r({},{exclusion:{tests:{},groups:{}}},n)}));function Bn(n,t){return!!t&&!Dn(n,t)}function Dn(n,t){return!(!t||n.fieldName!==t)}function Gn(n){void 0===n&&(n=10);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),t.length>n&&(t.length=n),u)};return r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return y(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Xn(){return Ln().suiteId()}function Kn(){return Ln().testCallbacks()}function _n(){return Ln().optionalFields()}function Ln(){return qn.useX().stateRef}function Mn(){return Ln().testObjects()}function Un(){return Ln().prevTestObjects()}function Jn(n){var t=Vn()[0],r=Mn();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function zn(){(0,Vn()[1])((function(n){return n+1}))}function Vn(){return Ln().testObjectsCursor()}function Yn(n){return!!_n()[0][n]}function Hn(){return Mn()[0].filter((function(n){return n.isPending()}))}function Qn(n){var t=Hn();return!z(t)&&(n?t.some((function(t){return Dn(t,n)})):V(t))}function Zn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function $n(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function nt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||Bn(n,e)||$n(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function tt(n,t){return t?n[t]:n}function rt(n){return ut("errors",n)}function et(n){return ut("warnings",n)}function ut(n,t){return tt(n=nt(n,Mn()[0],{fieldName:t}),t)}function it(n,t){return tt(n=st("errors",n,t),t)}function ot(n,t){return tt(n=st("warnings",n,t),t)}function st(n,t,r){return t||hn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),nt(n,Mn()[0],{group:t,fieldName:r})}function at(n,t,r){return!(!n.hasFailures()||Bn(n,r)||$n(t,n))}function ft(n){return lt("errors",n)}function ct(n){return lt("warnings",n)}function lt(n,t){return Mn()[0].some((function(r){return at(r,n,t)}))}function pt(n,t){return gt("errors",n,t)}function vt(n,t){return gt("warnings",n,t)}function gt(n,t,r){return Mn()[0].some((function(e){return t===e.groupName&&at(e,n,r)}))}function dt(n,t){return!n.hasErrors(t)&&(!(z(Mn()[0])||function(n,t){return!!t&&z(n.tests[t])}(n,t)||V(Hn().filter((function(n){return!Bn(n,t)&&!Yn(n.fieldName)}))))&&function(n){return Mn()[0].every((function(t){return!(!Bn(t,n)&&!Yn(t.fieldName))||t.isTested()}))}(t))}var ht=Gn(20);function yt(){var n=Mn()[0],t={stateRef:Ln()};return ht([n],qn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return Mn()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Zn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Zn(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:qn.bind(t,rt),getErrorsByGroup:qn.bind(t,it),getWarnings:qn.bind(t,et),getWarningsByGroup:qn.bind(t,ot),hasErrors:qn.bind(t,ft),hasErrorsByGroup:qn.bind(t,pt),hasWarnings:qn.bind(t,ct),hasWarningsByGroup:qn.bind(t,vt),isValid:qn.bind(t,(function(n){return dt(yt(),n)}))})})))}var mt=Gn(20);function Nt(){var n=Mn()[0],t={stateRef:Ln()};return mt([n],qn.bind(t,(function(){return r({},yt(),{done:qn.bind(t,Ot)})})))}function bt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Et(n){return!(Qn()&&(!n||Qn(n)))}var Ct,Ot=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Nt(),bt(r,n,t))return t;var e=function(){return r(yt())};return Et(n)?(e(),t):(xt(e,n),t)};function xt(n,t){var r=qn.bind({},n);(0,Kn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function wt(n){return n.forEach((function(n){return n()}))}function St(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Ct.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=Kn()[0].fieldCallbacks;n&&!Qn(n)&&Array.isArray(t[n])&&wt(t[n])}(n.fieldName),function(){var n=Kn()[0].doneCallbacks;Qn()||wt(n)}())})),n}function Tt(){var n=qn.useX();return n.bus||hn(),n.bus}(Ct||(Ct={})).TEST_COMPLETED="test_completed";function Pt(n){return Wt("only","tests",n)}function kt(n){return Wt("skip","tests",n)}function Ft(n){var t=n.fieldName;n=n.groupName;var r=qn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=qn.useX().exclusion.groups;if(M(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!At(e)||!1===e[t])}return!u&&At(e)}function Wt(n,t,r){var e=qn.useX("hook called outside of a running suite.");r&&Rn(r).forEach((function(r){S(r)&&(e.exclusion[t][r]="only"===n)}))}function At(n){for(var t in n)if(!0===n[t])return!0;return!1}Pt.group=function(n){return Wt("only","groups",n)},kt.group=function(n){return Wt("skip","groups",n)};function jt(n){hn("Wrong arguments passed to group. Group "+n+".")}function Rt(n,t){return O(n)&&S(t)}var It=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=In(),this.warns=!1,this.status=qt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){Rt(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(Kt)},n.prototype.fail=function(){this.setStatus(this.warns?Gt:Dt)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(Xt)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(Bt)},n.prototype.cancel=function(){this.setStatus(_t),function(n){(0,Mn()[1])((function(t){return Rn(function(n,t){return-1!==(t=n.indexOf(t))&&n.splice(t,1),n}(t,n))}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===Kt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===qt},n.prototype.isFailing=function(){return this.status===Dt},n.prototype.isCanceled=function(){return this.status===_t},n.prototype.isSkipped=function(){return this.status===Bt},n.prototype.isPassing=function(){return this.status===Xt},n.prototype.isWarning=function(){return this.status===Gt},n}(),qt="UNTESTED",Bt="SKIPPED",Dt="FAILED",Gt="WARNING",Xt="PASSING",Kt="PENDING",_t="CANCELED";function Lt(n){return n&&e(n.then)}function Mt(n){var t=n.asyncTest,r=n.message;if(Lt(t)){var e=Tt().emit,u=Ln(),i=qn.bind({stateRef:u},(function(){e(Ct.TEST_COMPLETED,n)}));u=qn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=S(t)?t:r,n.fail(),(0,Mn()[1])((function(n){return n.slice(0)})),i())}));try{t.then(i,u)}catch(n){u()}}}function Ut(n){var t=Tt().emit,r=function(n){return qn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){Rt(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{Lt(r)?(n.asyncTest=r,n.setPending(),Mt(n)):t(Ct.TEST_COMPLETED,n)}catch(t){hn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}function Jt(n){var t=function(n){var t=Vn()[0];return Jn(n=o(Un()[0][t],n)),n}(n);return Ft(n)?(n.skip(),zn(),t):(function(n,t){t!==n&&function(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}(n,t)&&n.isPending()&&n.cancel()}(t,n),Jn(n),zn(),function(n){n.isUntested()?Ut(n):Lt(n.asyncTest)&&(n.setPending(),Mt(n))}(n),n)}function zt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=qn.useX();return Jt(t=new It(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var Vt=r(zt,{each:function(n){return function(r){return Array.isArray(r)||hn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return r.map((function(r){return r=Rn(r),n(i.apply(void 0,t([e],r,!1)),i.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(zt),memo:function(n){var t=Gn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Xn()[0];var i=Vn()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),E(u=t.get(e))?t(e,(function(){return n(r,s,o)})):Jt(u[1])}}(zt)});exports.VERSION="4.0.0-dev-392d56",exports.create=function(n){e(n)||hn("Suite initialization error. Expected `tests` to be a function.");var t=St(),u=function(n){function t(n,t){return u.references.push(),r(n,i(t)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){u.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),o=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(u,{suiteId:In()});return r(qn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=Mn()[0];return r=Un()[1],u.reset(),r((function(){return e})),n.apply(void 0,t),Nt()})),{get:qn.bind({stateRef:o},yt),remove:qn.bind({stateRef:o},(function(n){Rn(Mn()[0]).forEach((function(t){Dn(t,n)&&t.cancel()}))})),reset:u.reset})},exports.enforce=jn,exports.group=function(n,t){S(n)||jt("name must be a string"),e(t)||jt("callback must be a function"),qn.run({groupName:n},t)},exports.only=Pt,exports.optional=function(n){(0,_n()[1])((function(t){return Rn(n).forEach((function(n){t[n]=!0})),t}))},exports.skip=kt,exports.skipWhen=function(n,t){qn.run({skipped:i(n)},(function(){return t()}))},exports.test=Vt,exports.warn=function(){var n=qn.useX("warn hook called outside of a running suite.");n.currentTest||hn("warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){return n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},n.apply(this,arguments)};function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(){return s(!1)}function f(){return s(!0)}function c(n){return o(n,a())}function l(n){return o(n,f())}function p(n,t){try{return n.run(t)}catch(n){return a()}}function v(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){(t=p(t,n)).pass||r(t)})))}function g(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return c(u(t,(function(t,r){(t=p(t,n)).pass&&r(t)})))}function d(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return l(u(t,(function(t,r){p(t,n).pass&&r(a())})))}function h(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function y(n,t){return n.length===Number(t)}var m=h(y);function N(n,t){return n.length>Number(t)}function b(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(N(e,1))return!1;(t=p(t,n)).pass&&e.push(t)})),s(y(e,1))}function E(n){return null===n}var C=h(E);function O(n){return void 0===n}var x=h(O);function w(n,t){return O(n)||E(n)?f():p(t,n)}function S(n){return String(n)===n}function T(n,t){return S(n)&&S(t)&&n.endsWith(t)}var P=h(T);function k(n,t){return n===t}var F=h(k);function W(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var A=h(W);function j(n,t){return W(n)&&W(t)&&Number(n)>Number(t)}function I(n,t){return W(n)&&W(t)&&Number(n)>=Number(t)}function R(n,t){return!!(Array.isArray(t)||S(t)&&S(n))&&-1!==t.indexOf(n)}var q=h(R);function B(n){return!!Array.isArray(n)}var D=h(B);function G(n,t){return W(n)&&W(t)&&Number(n)<=Number(t)}function X(n,t,r){return I(n,t)&&G(n,r)}var K=h(X);function _(n){return!!n===n}var L=h(_);function M(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function U(n){return"number"==typeof n}var J=h(U);function z(n){if(n){if(U(n))return 0===n;if(M(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}var V=h(z),Y=function(n){return!!W(n)&&0==n%2};function H(n){return Number.isNaN(n)}var Q=h(H);function Z(n){return!!W(n)&&0>Number(n)}var $=h(Z),nn=function(n){return!!W(n)&&0!=n%2},tn=h(S);function rn(n){return!!n}var en=h(rn);function un(n,t){return W(n)&&W(t)&&Number(n)<Number(t)}function on(n,t){return n.length>=Number(t)}function sn(n,t){return t instanceof RegExp?t.test(n):!!S(t)&&new RegExp(t).test(n)}var an=h(sn);function fn(n,t){return W(n)&&W(t)&&Number(n)===Number(t)}var cn=h(fn);function ln(n,t){try{return t(n)}catch(n){return!1}}function pn(n,t){return n.length<Number(t)}function vn(n,t){return n.length<=Number(t)}function gn(n,t){return S(n)&&S(t)&&n.startsWith(t)}var dn=h(gn);function hn(n,t){throw Error(o(t,n))}function yn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:hn(o(n,"Context was used after it was closed"))}}}var mn=yn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:Nn})}));function Nn(){return null}function bn(n,t){return l(u(n,(function(n,r,e){(e=mn.run({value:n,set:!0,meta:{index:e}},(function(){return p(t,n)}))).pass||r(e)})))}function En(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=mn.run({value:e,set:!0,meta:{key:r}},(function(){return p(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return f()}function Cn(n,t){var r=En(n,t);if(!r.pass)return r;for(var e in n)if(!M(t,e))return a();return f()}var On=r({condition:ln,doesNotEndWith:P,doesNotStartWith:dn,endsWith:T,equals:k,greaterThan:j,greaterThanOrEquals:I,gt:j,gte:I,inside:R,isArray:B,isBetween:X,isBoolean:_,isEmpty:z,isEven:Y,isFalsy:en,isNaN:H,isNegative:Z,isNotArray:D,isNotBetween:K,isNotBoolean:L,isNotEmpty:V,isNotNaN:Q,isNotNull:C,isNotNumber:J,isNotNumeric:A,isNotString:tn,isNotUndefined:x,isNull:E,isNumber:U,isNumeric:W,isOdd:nn,isPositive:$,isString:S,isTruthy:rn,isUndefined:O,lengthEquals:y,lengthNotEquals:m,lessThan:un,lessThanOrEquals:G,longerThan:N,longerThanOrEquals:on,lt:un,lte:G,matches:sn,notEquals:F,notInside:q,notMatches:an,numberEquals:fn,numberNotEquals:cn,shorterThan:pn,shorterThanOrEquals:vn,startsWith:gn},{allOf:v,anyOf:g,noneOf:d,oneOf:b,optional:w},{shape:Cn,loose:En,isArrayOf:bn});function xn(n){return On[n]}function wn(n){for(var t in On){var r=xn(t);e(r)&&n(t,r)}}function Sn(){return"function"==typeof Proxy}function Tn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return Pn(n),_(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u,!1)))}function Pn(n){_(n)||n&&_(n.pass)||hn("Incorrect return value for rule: "+JSON.stringify(n))}function kn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=Tn.apply(void 0,t([mn.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!z(o.message))throw o.message;hn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!Sn())return wn((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=xn(t))return r(u,n,t)}});return u}function Fn(n){var r,e=[];return function n(o){return function(){for(var a=[],f=0;f<arguments.length;f++)a[f]=arguments[f];var c=xn(o);e.push((function(n){return Tn.apply(void 0,t([c.apply(void 0,t([n],a,!1)),o,n],a,!1))}));var p={run:function(n){return l(u(e,(function(t,e){var u,o=mn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return Sn()?p=new Proxy(p,{get:function(t,r){return xn(r)?n(r):t[r]}}):(wn((function(t){p[t]=n(t)})),p)}}(n)}function Wn(n){var t,r={};for(t in n)r[t]=jn.optional(n[t]);return r}var An,jn=(An=n({context:function(){return mn.useX()},extend:function(n){r(On,n)}},{partial:Wn}),Sn()?new Proxy(r(kn,An),{get:function(n,t){return t in n?n[t]:xn(t)?Fn(t):void 0}}):(wn((function(n){An[n]=Fn(n)})),An));function In(n){return[].concat(n)}var Rn=function(n){return function(){return""+n++}}(0);var qn=yn((function(n,t){return t?null:r({},{exclusion:{tests:{},groups:{}}},n)}));function Bn(n,t){return!!t&&!Dn(n,t)}function Dn(n,t){return!(!t||n.fieldName!==t)}function Gn(n){void 0===n&&(n=10);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),t.length>n&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return y(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return y(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function Xn(){return Ln().suiteId()}function Kn(){return Ln().testCallbacks()}function _n(){return Ln().optionalFields()}function Ln(){return qn.useX().stateRef}function Mn(){return Ln().testObjects()}function Un(){return Ln().prevTestObjects()}function Jn(n){var t=Vn()[0],r=Mn();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function zn(){(0,Vn()[1])((function(n){return n+1}))}function Vn(){return Ln().testObjectsCursor()}function Yn(n){return!!_n()[0][n]}function Hn(){return Mn()[0].filter((function(n){return n.isPending()}))}function Qn(n){var t=Hn();return!z(t)&&(n?t.some((function(t){return Dn(t,n)})):V(t))}function Zn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function $n(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns)}function nt(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return function(n,t,r,e){return!!(function(n,t){return!(!t||n.groupName===t)}(n,r)||Bn(n,e)||$n(t,n))}(r,t,i,o)||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function tt(n,t){return t?n[t]:n}function rt(n){return ut("errors",n)}function et(n){return ut("warnings",n)}function ut(n,t){return tt(n=nt(n,Mn()[0],{fieldName:t}),t)}function it(n,t){return tt(n=st("errors",n,t),t)}function ot(n,t){return tt(n=st("warnings",n,t),t)}function st(n,t,r){return t||hn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),nt(n,Mn()[0],{group:t,fieldName:r})}function at(n,t,r){return!(!n.hasFailures()||Bn(n,r)||$n(t,n))}function ft(n){return lt("errors",n)}function ct(n){return lt("warnings",n)}function lt(n,t){return Mn()[0].some((function(r){return at(r,n,t)}))}function pt(n,t){return gt("errors",n,t)}function vt(n,t){return gt("warnings",n,t)}function gt(n,t,r){return Mn()[0].some((function(e){return t===e.groupName&&at(e,n,r)}))}function dt(n,t){return!n.hasErrors(t)&&(!(z(Mn()[0])||function(n,t){return!!t&&z(n.tests[t])}(n,t)||V(Hn().filter((function(n){return!Bn(n,t)&&!Yn(n.fieldName)}))))&&function(n){return Mn()[0].every((function(t){return!(!Bn(t,n)&&!Yn(t.fieldName))||t.isTested()}))}(t))}var ht=Gn(20);function yt(){var n=Mn()[0],t={stateRef:Ln()};return ht([n],qn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return Mn()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Zn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Zn(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:qn.bind(t,rt),getErrorsByGroup:qn.bind(t,it),getWarnings:qn.bind(t,et),getWarningsByGroup:qn.bind(t,ot),hasErrors:qn.bind(t,ft),hasErrorsByGroup:qn.bind(t,pt),hasWarnings:qn.bind(t,ct),hasWarningsByGroup:qn.bind(t,vt),isValid:qn.bind(t,(function(n){return dt(yt(),n)}))})})))}var mt=Gn(20);function Nt(){var n=Mn()[0],t={stateRef:Ln()};return mt([n],qn.bind(t,(function(){return r({},yt(),{done:qn.bind(t,Ot)})})))}function bt(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function Et(n){return!(Qn()&&(!n||Qn(n)))}var Ct,Ot=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Nt(),bt(r,n,t))return t;var e=function(){return r(yt())};return Et(n)?(e(),t):(xt(e,n),t)};function xt(n,t){var r=qn.bind({},n);(0,Kn()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function wt(n){return n.forEach((function(n){return n()}))}function St(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Ct.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=Kn()[0].fieldCallbacks;n&&!Qn(n)&&Array.isArray(t[n])&&wt(t[n])}(n.fieldName),function(){var n=Kn()[0].doneCallbacks;Qn()||wt(n)}())})),n}function Tt(){var n=qn.useX();return n.bus||hn(),n.bus}(Ct||(Ct={})).TEST_COMPLETED="test_completed";function Pt(n){return Wt("only","tests",n)}function kt(n){return Wt("skip","tests",n)}function Ft(n){var t=n.fieldName;n=n.groupName;var r=qn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){if(function(n){var t=qn.useX().exclusion.groups;if(M(t,n))return!1===t[n];for(var r in t)if(!0===t[r])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!u&&(!!At(e)||!1===e[t])}return!u&&At(e)}function Wt(n,t,r){var e=qn.useX("hook called outside of a running suite.");r&&In(r).forEach((function(r){S(r)&&(e.exclusion[t][r]="only"===n)}))}function At(n){for(var t in n)if(!0===n[t])return!0;return!1}Pt.group=function(n){return Wt("only","groups",n)},kt.group=function(n){return Wt("skip","groups",n)};function jt(n){hn("Wrong arguments passed to group. Group "+n+".")}function It(n,t){return O(n)&&S(t)}var Rt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=Rn(),this.warns=!1,this.status=qt,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){It(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(Kt)},n.prototype.fail=function(){this.setStatus(this.warns?Gt:Dt)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(Xt)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(Bt)},n.prototype.cancel=function(){this.setStatus(_t),function(n){(0,Mn()[1])((function(t){return In(function(n,t){return-1!==(t=n.indexOf(t))&&n.splice(t,1),n}(t,n))}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===Kt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===qt},n.prototype.isFailing=function(){return this.status===Dt},n.prototype.isCanceled=function(){return this.status===_t},n.prototype.isSkipped=function(){return this.status===Bt},n.prototype.isPassing=function(){return this.status===Xt},n.prototype.isWarning=function(){return this.status===Gt},n}(),qt="UNTESTED",Bt="SKIPPED",Dt="FAILED",Gt="WARNING",Xt="PASSING",Kt="PENDING",_t="CANCELED";function Lt(n){return n&&e(n.then)}function Mt(n){var t=n.asyncTest,r=n.message;if(Lt(t)){var e=Tt().emit,u=Ln(),i=qn.bind({stateRef:u},(function(){e(Ct.TEST_COMPLETED,n)}));u=qn.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=S(t)?t:r,n.fail(),(0,Mn()[1])((function(n){return n.slice(0)})),i())}));try{t.then(i,u)}catch(n){u()}}}function Ut(n){var t=Tt().emit,r=function(n){return qn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){It(n.message,r)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{Lt(r)?(n.asyncTest=r,n.setPending(),Mt(n)):t(Ct.TEST_COMPLETED,n)}catch(t){hn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}function Jt(n){var t=function(n){var t=Vn()[0];return Jn(n=o(Un()[0][t],n)),n}(n);return Ft(n)?(n.skip(),zn(),t):(function(n,t){t!==n&&function(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}(n,t)&&n.isPending()&&n.cancel()}(t,n),Jn(n),zn(),function(n){n.isUntested()?Ut(n):Lt(n.asyncTest)&&(n.setPending(),Mt(n))}(n),n)}function zt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=qn.useX();return Jt(t=new Rt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var Vt=r(zt,{each:function(n){return function(r){return Array.isArray(r)||hn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return r.map((function(r){return r=In(r),n(i.apply(void 0,t([e],r,!1)),i.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(zt),memo:function(n){var t=Gn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Xn()[0];var i=Vn()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),E(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):Jt(u[1])}}(zt)});exports.VERSION="4.0.0-dev-deabb8",exports.create=function(n){e(n)||hn("Suite initialization error. Expected `tests` to be a function.");var t=St(),u=function(n){function t(n,t){return u.references.push(),r(n,i(t)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){u.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),o=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(u,{suiteId:Rn()});return r(qn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=Mn()[0];return r=Un()[1],u.reset(),r((function(){return e})),n.apply(void 0,t),Nt()})),{get:qn.bind({stateRef:o},yt),remove:qn.bind({stateRef:o},(function(n){In(Mn()[0]).forEach((function(t){Dn(t,n)&&t.cancel()}))})),reset:u.reset})},exports.enforce=jn,exports.group=function(n,t){S(n)||jt("name must be a string"),e(t)||jt("callback must be a function"),qn.run({groupName:n},t)},exports.only=Pt,exports.optional=function(n){(0,_n()[1])((function(t){return In(n).forEach((function(n){t[n]=!0})),t}))},exports.skip=kt,exports.skipWhen=function(n,t){qn.run({skipped:i(n)},(function(){return t()}))},exports.test=Vt,exports.warn=function(){var n=qn.useX("warn hook called outside of a running suite.");n.currentTest||hn("warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -891,10 +891,6 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
891
891
|
function createCache(maxSize) {
|
|
892
892
|
if (maxSize === void 0) { maxSize = 10; }
|
|
893
893
|
var cacheStorage = [];
|
|
894
|
-
/**
|
|
895
|
-
* @param {any[]} deps dependency array.
|
|
896
|
-
* @param {Function} cache action function.
|
|
897
|
-
*/
|
|
898
894
|
var cache = function (deps, cacheAction) {
|
|
899
895
|
var cacheHit = cache.get(deps);
|
|
900
896
|
// cache hit is not null
|
|
@@ -907,10 +903,17 @@ function createCache(maxSize) {
|
|
|
907
903
|
}
|
|
908
904
|
return result;
|
|
909
905
|
};
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
906
|
+
// invalidate an item in the cache by its dependencies
|
|
907
|
+
cache.invalidate = function (deps) {
|
|
908
|
+
var index = cacheStorage.findIndex(function (_a) {
|
|
909
|
+
var cachedDeps = _a[0];
|
|
910
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
911
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
912
|
+
});
|
|
913
|
+
if (index > -1)
|
|
914
|
+
cacheStorage.splice(index, 1);
|
|
915
|
+
};
|
|
916
|
+
// Retrieves an item from the cache.
|
|
914
917
|
cache.get = function (deps) {
|
|
915
918
|
return cacheStorage[cacheStorage.findIndex(function (_a) {
|
|
916
919
|
var cachedDeps = _a[0];
|
|
@@ -1850,6 +1853,7 @@ function bindTestEach(test) {
|
|
|
1850
1853
|
// eslint-disable-next-line max-lines-per-function
|
|
1851
1854
|
function bindTestMemo(test) {
|
|
1852
1855
|
var cache = createCache(100); // arbitrary cache size
|
|
1856
|
+
// eslint-disable-next-line max-statements
|
|
1853
1857
|
function memo(fieldName) {
|
|
1854
1858
|
var args = [];
|
|
1855
1859
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -1865,6 +1869,11 @@ function bindTestMemo(test) {
|
|
|
1865
1869
|
// cache miss
|
|
1866
1870
|
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1867
1871
|
}
|
|
1872
|
+
if (cached[1].isCanceled()) {
|
|
1873
|
+
// cache hit, but test is canceled
|
|
1874
|
+
cache.invalidate(dependencies);
|
|
1875
|
+
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1876
|
+
}
|
|
1868
1877
|
return registerPrevRunTest(cached[1]);
|
|
1869
1878
|
}
|
|
1870
1879
|
return memo;
|
|
@@ -1888,6 +1897,6 @@ var test = assign(testBase, {
|
|
|
1888
1897
|
memo: bindTestMemo(testBase)
|
|
1889
1898
|
});
|
|
1890
1899
|
|
|
1891
|
-
var VERSION = "4.0.0-dev-
|
|
1900
|
+
var VERSION = "4.0.0-dev-deabb8";
|
|
1892
1901
|
|
|
1893
1902
|
export { VERSION, create, enforce, group, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(){return n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},n.apply(this,arguments)}function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(n,t){try{return n.run(t)}catch(n){return s(!1)}}function c(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}var l=c(f);function p(n,t){return n.length>Number(t)}function v(n){return null===n}var g=c(v);function d(n){return void 0===n}var h=c(d);function y(n){return String(n)===n}function m(n,t){return y(n)&&y(t)&&n.endsWith(t)}var N=c(m);function b(n,t){return n===t}var E=c(b);function C(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var O=c(C);function w(n,t){return C(n)&&C(t)&&Number(n)>Number(t)}function T(n,t){return C(n)&&C(t)&&Number(n)>=Number(t)}function S(n,t){return!!(Array.isArray(t)||y(t)&&y(n))&&-1!==t.indexOf(n)}var k=c(S);function P(n){return!!Array.isArray(n)}var x=c(P);function j(n,t){return C(n)&&C(t)&&Number(n)<=Number(t)}function F(n,t,r){return T(n,t)&&j(n,r)}var A=c(F);function W(n){return!!n===n}var R=c(W);function I(n){return"number"==typeof n}var q=c(I);function B(n){if(n){if(I(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}var D=c(B);function G(n){return Number.isNaN(n)}var X=c(G);function K(n){return!!C(n)&&0>Number(n)}var L=c(K),U=c(y);function M(n){return!!n}var _=c(M);function J(n,t){return C(n)&&C(t)&&Number(n)<Number(t)}function z(n,t){return t instanceof RegExp?t.test(n):!!y(t)&&new RegExp(t).test(n)}var V=c(z);function Y(n,t){return C(n)&&C(t)&&Number(n)===Number(t)}var H=c(Y);function Q(n,t){return y(n)&&y(t)&&n.startsWith(t)}var Z=c(Q);function $(n,t){throw Error(o(t,n))}function nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:$(o(n,"Context was used after it was closed"))}}}var tn=nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:rn})}));function rn(){return null}function en(n,t){function r(r){var e=n[r],u=t[r];if(!(r=tn.run({value:e,set:!0,meta:{key:r}},(function(){return a(u,e)}))).pass)return{value:r}}for(var e in t){var u=r(e);if("object"==typeof u)return u.value}return s(!0)}var un=r({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:N,doesNotStartWith:Z,endsWith:m,equals:b,greaterThan:w,greaterThanOrEquals:T,gt:w,gte:T,inside:S,isArray:P,isBetween:F,isBoolean:W,isEmpty:B,isEven:function(n){return!!C(n)&&0==n%2},isFalsy:_,isNaN:G,isNegative:K,isNotArray:x,isNotBetween:A,isNotBoolean:R,isNotEmpty:D,isNotNaN:X,isNotNull:g,isNotNumber:q,isNotNumeric:O,isNotString:U,isNotUndefined:h,isNull:v,isNumber:I,isNumeric:C,isOdd:function(n){return!!C(n)&&0!=n%2},isPositive:L,isString:y,isTruthy:M,isUndefined:d,lengthEquals:f,lengthNotEquals:l,lessThan:J,lessThanOrEquals:j,longerThan:p,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:J,lte:j,matches:z,notEquals:E,notInside:k,notMatches:V,numberEquals:Y,numberNotEquals:H,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:Q},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass||r(t)})),s(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass&&r(t)})),s(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){a(t,n).pass&&r(s(!1))})),s(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(p(e,1))return!1;(t=a(t,n)).pass&&e.push(t)})),s(f(e,1))},optional:function(n,t){return d(n)||null===n?s(!0):a(t,n)}},{shape:function(n,t){var r=en(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return s(!1);return s(!0)},loose:en,isArrayOf:function(n,t){return o(u(n,(function(n,r,e){(e=tn.run({value:n,set:!0,meta:{index:e}},(function(){return a(t,n)}))).pass||r(e)})),s(!0))}});function on(n){for(var t in un){var r=un[t];e(r)&&n(t,r)}}function sn(){return"function"==typeof Proxy}function an(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return W(n)||n&&W(n.pass)||$("Incorrect return value for rule: "+JSON.stringify(n)),W(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u,!1)))}function cn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=an.apply(void 0,t([tn.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!B(o.message))throw o.message;$("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!sn())return on((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=un[t])return r(u,n,t)}});return u}function fn(n){var r,e=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=un[a];e.push((function(n){return an.apply(void 0,t([l.apply(void 0,t([n],c,!1)),a,n],c,!1))}));var p={run:function(n){return o(u(e,(function(t,e){var u,o=tn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})),s(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return sn()?p=new Proxy(p,{get:function(t,r){return un[r]?n(r):t[r]}}):(on((function(t){p[t]=n(t)})),p)}}(n)}function ln(n){var t,r={};for(t in n)r[t]=vn.optional(n[t]);return r}var pn,vn=(pn=n({context:function(){return tn.useX()},extend:function(n){r(un,n)}},{partial:ln}),sn()?new Proxy(r(cn,pn),{get:function(n,t){return t in n?n[t]:un[t]?fn(t):void 0}}):(on((function(n){pn[n]=fn(n)})),pn)),gn=function(n){return function(){return""+n++}}(0);var dn=nn((function(n,t){return t?null:r({},{exclusion:{tests:{},groups:{}}},n)}));function hn(n,t){return!(!t||n.fieldName!==t)}function yn(n){function t(e,u){var i=t.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>n&&(r.length=n),u)}void 0===n&&(n=10);var r=[];return t.get=function(n){return r[r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},t}function mn(){return dn.useX().stateRef}function Nn(){return mn().testObjects()}function bn(n){var t=mn().testObjectsCursor()[0],r=Nn();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function En(){(0,mn().testObjectsCursor()[1])((function(n){return n+1}))}function Cn(n){return!!mn().optionalFields()[0][n]}function On(){return Nn()[0].filter((function(n){return n.isPending()}))}function wn(n){var t=On();return!B(t)&&(n?t.some((function(t){return hn(t,n)})):D(t))}function Tn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function Sn(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return i&&r.groupName!==i||o&&!hn(r,o)||"warnings"===t!=!!r.warns||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function kn(n){return xn("errors",n)}function Pn(n){return xn("warnings",n)}function xn(n,t){return n=Sn(n,Nn()[0],{fieldName:t}),t?n[t]:n}function jn(n,t){return n=An("errors",n,t),t?n[t]:n}function Fn(n,t){return n=An("warnings",n,t),t?n[t]:n}function An(n,t,r){return t||$("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),Sn(n,Nn()[0],{group:t,fieldName:r})}function Wn(n,t,r){return!(!n.hasFailures()||r&&!hn(n,r)||"warnings"===t!=!!n.warns)}function Rn(n){return qn("errors",n)}function In(n){return qn("warnings",n)}function qn(n,t){return Nn()[0].some((function(r){return Wn(r,n,t)}))}function Bn(n,t){return Gn("errors",n,t)}function Dn(n,t){return Gn("warnings",n,t)}function Gn(n,t,r){return Nn()[0].some((function(e){return t===e.groupName&&Wn(e,n,r)}))}function Xn(n,t){return!n.hasErrors(t)&&(!(B(Nn()[0])||t&&B(n.tests[t])||D(On().filter((function(n){return!(t&&!hn(n,t))&&!Cn(n.fieldName)}))))&&function(n){return Nn()[0].every((function(t){return!!(n&&!hn(t,n)||Cn(t.fieldName))||t.isTested()}))}(t))}var Kn=yn(20);function Ln(){var n=Nn()[0],t={stateRef:mn()};return Kn([n],dn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return Nn()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Tn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Tn(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:dn.bind(t,kn),getErrorsByGroup:dn.bind(t,jn),getWarnings:dn.bind(t,Pn),getWarningsByGroup:dn.bind(t,Fn),hasErrors:dn.bind(t,Rn),hasErrorsByGroup:dn.bind(t,Bn),hasWarnings:dn.bind(t,In),hasWarningsByGroup:dn.bind(t,Dn),isValid:dn.bind(t,(function(n){return Xn(Ln(),n)}))})})))}var Un,Mn=yn(20);function _n(){var n=Nn()[0],t={stateRef:mn()};return Mn([n],dn.bind(t,(function(){return r({},Ln(),{done:dn.bind(t,Vn)})})))}function Jn(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function zn(n){return!(wn()&&(!n||wn(n)))}function Vn(){function n(){return e(Ln())}for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=(t=t.reverse())[0];return t=t[1],r=_n(),Jn(e,t,r)?r:zn(t)?(n(),r):(Yn(n,t),r)}function Yn(n,t){var r=dn.bind({},n);(0,mn().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Hn(n){return n.forEach((function(n){return n()}))}function Qn(){var n=dn.useX();return n.bus||$(),n.bus}function Zn(n){return nt("only","tests",n)}function $n(n){return nt("skip","tests",n)}function nt(n,t,r){var e=dn.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){y(r)&&(e.exclusion[t][r]="only"===n)}))}function tt(n){for(var t in n)if(!0===n[t])return!0;return!1}function rt(n){$("Wrong arguments passed to group. Group "+n+".")}(Un||(Un={})).TEST_COMPLETED="test_completed",Zn.group=function(n){return nt("only","groups",n)},$n.group=function(n){return nt("skip","groups",n)};var et=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=gn(),this.warns=!1,this.status=ut,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,d(this.message)&&y(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(ct)},n.prototype.fail=function(){this.setStatus(this.warns?st:ot)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(at)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(it)},n.prototype.cancel=function(){this.setStatus(ft),function(n){(0,Nn()[1])((function(t){var r=t.indexOf(n);return-1!==r&&t.splice(r,1),[].concat(t)}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===ct},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===ut},n.prototype.isFailing=function(){return this.status===ot},n.prototype.isCanceled=function(){return this.status===ft},n.prototype.isSkipped=function(){return this.status===it},n.prototype.isPassing=function(){return this.status===at},n.prototype.isWarning=function(){return this.status===st},n}(),ut="UNTESTED",it="SKIPPED",ot="FAILED",st="WARNING",at="PASSING",ct="PENDING",ft="CANCELED";function lt(n){var t=n.asyncTest,r=n.message;if(t&&e(t.then)){var u=Qn().emit,i=mn(),o=dn.bind({stateRef:i},(function(){u(Un.TEST_COMPLETED,n)}));i=dn.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=y(t)?t:r,n.fail(),(0,Nn()[1])((function(n){return n.slice(0)})),o())}));try{t.then(o,i)}catch(n){i()}}}function pt(n){var t=mn().testObjectsCursor()[0],r=mn().prevTestObjects()[0];if(bn(t=o(r[t],n)),function(n){var t=n.fieldName;n=n.groupName;var r=dn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=dn.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!tt(e)&&!1!==e[t])}return!u&&tt(e)}(n))return n.skip(),En(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),bn(n),En(),n.isUntested()){t=Qn().emit,r=function(n){return dn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,d(n.message)&&y(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&e(r.then)?(n.asyncTest=r,n.setPending(),lt(n)):t(Un.TEST_COMPLETED,n)}catch(t){$("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&e(t.then)&&(n.setPending(),lt(n));return n}function vt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=dn.useX();return pt(t=new et(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var gt=r(vt,{each:function(n){return function(r){return Array.isArray(r)||$("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return r.map((function(r){return r=[].concat(r),n(i.apply(void 0,t([e],r,!1)),i.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(vt),memo:function(n){var t=yn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=mn().suiteId()[0];var i=mn().testObjectsCursor()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):pt(u[1])}}(vt)}),dt="4.0.0-dev-392d56";function ht(n){e(n)||$("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Un.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=mn().testCallbacks()[0].fieldCallbacks;n&&!wn(n)&&Array.isArray(t[n])&&Hn(t[n]),n=mn().testCallbacks()[0].doneCallbacks,wn()||Hn(n)}})),n}(),u=function(n){function t(n,t){return u.references.push(),r(n,i(t)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){u.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),o=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(u,{suiteId:gn()});return r(dn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=Nn()[0];return r=mn().prevTestObjects()[1],u.reset(),r((function(){return e})),n.apply(void 0,t),_n()})),{get:dn.bind({stateRef:o},Ln),remove:dn.bind({stateRef:o},(function(n){var t=Nn()[0];[].concat(t).forEach((function(t){hn(t,n)&&t.cancel()}))})),reset:u.reset})}function yt(n,t){y(n)||rt("name must be a string"),e(t)||rt("callback must be a function"),dn.run({groupName:n},t)}function mt(n){(0,mn().optionalFields()[1])((function(t){return[].concat(n).forEach((function(n){t[n]=!0})),t}))}function Nt(n,t){dn.run({skipped:i(n)},(function(){return t()}))}function bt(){var n=dn.useX("warn hook called outside of a running suite.");n.currentTest||$("warn called outside of a test."),n.currentTest.warn()}export{dt as VERSION,ht as create,vn as enforce,yt as group,Zn as only,mt as optional,$n as skip,Nt as skipWhen,gt as test,bt as warn};
|
|
1
|
+
function n(){return n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},n.apply(this,arguments)}function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(n,t){try{return n.run(t)}catch(n){return s(!1)}}function c(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}var l=c(f);function p(n,t){return n.length>Number(t)}function v(n){return null===n}var g=c(v);function d(n){return void 0===n}var h=c(d);function y(n){return String(n)===n}function m(n,t){return y(n)&&y(t)&&n.endsWith(t)}var b=c(m);function N(n,t){return n===t}var E=c(N);function C(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var O=c(C);function w(n,t){return C(n)&&C(t)&&Number(n)>Number(t)}function T(n,t){return C(n)&&C(t)&&Number(n)>=Number(t)}function S(n,t){return!!(Array.isArray(t)||y(t)&&y(n))&&-1!==t.indexOf(n)}var k=c(S);function x(n){return!!Array.isArray(n)}var P=c(x);function j(n,t){return C(n)&&C(t)&&Number(n)<=Number(t)}function F(n,t,r){return T(n,t)&&j(n,r)}var A=c(F);function W(n){return!!n===n}var I=c(W);function R(n){return"number"==typeof n}var q=c(R);function B(n){if(n){if(R(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}var D=c(B);function G(n){return Number.isNaN(n)}var X=c(G);function K(n){return!!C(n)&&0>Number(n)}var L=c(K),U=c(y);function M(n){return!!n}var _=c(M);function J(n,t){return C(n)&&C(t)&&Number(n)<Number(t)}function z(n,t){return t instanceof RegExp?t.test(n):!!y(t)&&new RegExp(t).test(n)}var V=c(z);function Y(n,t){return C(n)&&C(t)&&Number(n)===Number(t)}var H=c(Y);function Q(n,t){return y(n)&&y(t)&&n.startsWith(t)}var Z=c(Q);function $(n,t){throw Error(o(t,n))}function nn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:$(o(n,"Context was used after it was closed"))}}}var tn=nn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:rn})}));function rn(){return null}function en(n,t){function r(r){var e=n[r],u=t[r];if(!(r=tn.run({value:e,set:!0,meta:{key:r}},(function(){return a(u,e)}))).pass)return{value:r}}for(var e in t){var u=r(e);if("object"==typeof u)return u.value}return s(!0)}var un=r({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:b,doesNotStartWith:Z,endsWith:m,equals:N,greaterThan:w,greaterThanOrEquals:T,gt:w,gte:T,inside:S,isArray:x,isBetween:F,isBoolean:W,isEmpty:B,isEven:function(n){return!!C(n)&&0==n%2},isFalsy:_,isNaN:G,isNegative:K,isNotArray:P,isNotBetween:A,isNotBoolean:I,isNotEmpty:D,isNotNaN:X,isNotNull:g,isNotNumber:q,isNotNumeric:O,isNotString:U,isNotUndefined:h,isNull:v,isNumber:R,isNumeric:C,isOdd:function(n){return!!C(n)&&0!=n%2},isPositive:L,isString:y,isTruthy:M,isUndefined:d,lengthEquals:f,lengthNotEquals:l,lessThan:J,lessThanOrEquals:j,longerThan:p,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:J,lte:j,matches:z,notEquals:E,notInside:k,notMatches:V,numberEquals:Y,numberNotEquals:H,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:Q},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass||r(t)})),s(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass&&r(t)})),s(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){a(t,n).pass&&r(s(!1))})),s(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(p(e,1))return!1;(t=a(t,n)).pass&&e.push(t)})),s(f(e,1))},optional:function(n,t){return d(n)||null===n?s(!0):a(t,n)}},{shape:function(n,t){var r=en(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return s(!1);return s(!0)},loose:en,isArrayOf:function(n,t){return o(u(n,(function(n,r,e){(e=tn.run({value:n,set:!0,meta:{index:e}},(function(){return a(t,n)}))).pass||r(e)})),s(!0))}});function on(n){for(var t in un){var r=un[t];e(r)&&n(t,r)}}function sn(){return"function"==typeof Proxy}function an(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return W(n)||n&&W(n.pass)||$("Incorrect return value for rule: "+JSON.stringify(n)),W(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u,!1)))}function cn(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=an.apply(void 0,t([tn.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!B(o.message))throw o.message;$("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!sn())return on((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=un[t])return r(u,n,t)}});return u}function fn(n){var r,e=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=un[a];e.push((function(n){return an.apply(void 0,t([l.apply(void 0,t([n],c,!1)),a,n],c,!1))}));var p={run:function(n){return o(u(e,(function(t,e){var u,o=tn.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})),s(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return sn()?p=new Proxy(p,{get:function(t,r){return un[r]?n(r):t[r]}}):(on((function(t){p[t]=n(t)})),p)}}(n)}function ln(n){var t,r={};for(t in n)r[t]=vn.optional(n[t]);return r}var pn,vn=(pn=n({context:function(){return tn.useX()},extend:function(n){r(un,n)}},{partial:ln}),sn()?new Proxy(r(cn,pn),{get:function(n,t){return t in n?n[t]:un[t]?fn(t):void 0}}):(on((function(n){pn[n]=fn(n)})),pn)),gn=function(n){return function(){return""+n++}}(0);var dn=nn((function(n,t){return t?null:r({},{exclusion:{tests:{},groups:{}}},n)}));function hn(n,t){return!(!t||n.fieldName!==t)}function yn(n){function t(e,u){var i=t.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>n&&(r.length=n),u)}void 0===n&&(n=10);var r=[];return t.invalidate=function(n){var t=r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<t&&r.splice(t,1)},t.get=function(n){return r[r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},t}function mn(){return dn.useX().stateRef}function bn(){return mn().testObjects()}function Nn(n){var t=mn().testObjectsCursor()[0],r=bn();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function En(){(0,mn().testObjectsCursor()[1])((function(n){return n+1}))}function Cn(n){return!!mn().optionalFields()[0][n]}function On(){return bn()[0].filter((function(n){return n.isPending()}))}function wn(n){var t=On();return!B(t)&&(n?t.some((function(t){return hn(t,n)})):D(t))}function Tn(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function Sn(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return i&&r.groupName!==i||o&&!hn(r,o)||"warnings"===t!=!!r.warns||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function kn(n){return Pn("errors",n)}function xn(n){return Pn("warnings",n)}function Pn(n,t){return n=Sn(n,bn()[0],{fieldName:t}),t?n[t]:n}function jn(n,t){return n=An("errors",n,t),t?n[t]:n}function Fn(n,t){return n=An("warnings",n,t),t?n[t]:n}function An(n,t,r){return t||$("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),Sn(n,bn()[0],{group:t,fieldName:r})}function Wn(n,t,r){return!(!n.hasFailures()||r&&!hn(n,r)||"warnings"===t!=!!n.warns)}function In(n){return qn("errors",n)}function Rn(n){return qn("warnings",n)}function qn(n,t){return bn()[0].some((function(r){return Wn(r,n,t)}))}function Bn(n,t){return Gn("errors",n,t)}function Dn(n,t){return Gn("warnings",n,t)}function Gn(n,t,r){return bn()[0].some((function(e){return t===e.groupName&&Wn(e,n,r)}))}function Xn(n,t){return!n.hasErrors(t)&&(!(B(bn()[0])||t&&B(n.tests[t])||D(On().filter((function(n){return!(t&&!hn(n,t))&&!Cn(n.fieldName)}))))&&function(n){return bn()[0].every((function(t){return!!(n&&!hn(t,n)||Cn(t.fieldName))||t.isTested()}))}(t))}var Kn=yn(20);function Ln(){var n=bn()[0],t={stateRef:mn()};return Kn([n],dn.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return bn()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Tn(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Tn(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:dn.bind(t,kn),getErrorsByGroup:dn.bind(t,jn),getWarnings:dn.bind(t,xn),getWarningsByGroup:dn.bind(t,Fn),hasErrors:dn.bind(t,In),hasErrorsByGroup:dn.bind(t,Bn),hasWarnings:dn.bind(t,Rn),hasWarningsByGroup:dn.bind(t,Dn),isValid:dn.bind(t,(function(n){return Xn(Ln(),n)}))})})))}var Un,Mn=yn(20);function _n(){var n=bn()[0],t={stateRef:mn()};return Mn([n],dn.bind(t,(function(){return r({},Ln(),{done:dn.bind(t,Vn)})})))}function Jn(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function zn(n){return!(wn()&&(!n||wn(n)))}function Vn(){function n(){return e(Ln())}for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=(t=t.reverse())[0];return t=t[1],r=_n(),Jn(e,t,r)?r:zn(t)?(n(),r):(Yn(n,t),r)}function Yn(n,t){var r=dn.bind({},n);(0,mn().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Hn(n){return n.forEach((function(n){return n()}))}function Qn(){var n=dn.useX();return n.bus||$(),n.bus}function Zn(n){return nt("only","tests",n)}function $n(n){return nt("skip","tests",n)}function nt(n,t,r){var e=dn.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){y(r)&&(e.exclusion[t][r]="only"===n)}))}function tt(n){for(var t in n)if(!0===n[t])return!0;return!1}function rt(n){$("Wrong arguments passed to group. Group "+n+".")}(Un||(Un={})).TEST_COMPLETED="test_completed",Zn.group=function(n){return nt("only","groups",n)},$n.group=function(n){return nt("skip","groups",n)};var et=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=gn(),this.warns=!1,this.status=ut,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,d(this.message)&&y(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(ct)},n.prototype.fail=function(){this.setStatus(this.warns?st:ot)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(at)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(it)},n.prototype.cancel=function(){this.setStatus(ft),function(n){(0,bn()[1])((function(t){var r=t.indexOf(n);return-1!==r&&t.splice(r,1),[].concat(t)}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===ct},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===ut},n.prototype.isFailing=function(){return this.status===ot},n.prototype.isCanceled=function(){return this.status===ft},n.prototype.isSkipped=function(){return this.status===it},n.prototype.isPassing=function(){return this.status===at},n.prototype.isWarning=function(){return this.status===st},n}(),ut="UNTESTED",it="SKIPPED",ot="FAILED",st="WARNING",at="PASSING",ct="PENDING",ft="CANCELED";function lt(n){var t=n.asyncTest,r=n.message;if(t&&e(t.then)){var u=Qn().emit,i=mn(),o=dn.bind({stateRef:i},(function(){u(Un.TEST_COMPLETED,n)}));i=dn.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=y(t)?t:r,n.fail(),(0,bn()[1])((function(n){return n.slice(0)})),o())}));try{t.then(o,i)}catch(n){i()}}}function pt(n){var t=mn().testObjectsCursor()[0],r=mn().prevTestObjects()[0];if(Nn(t=o(r[t],n)),function(n){var t=n.fieldName;n=n.groupName;var r=dn.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=dn.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!tt(e)&&!1!==e[t])}return!u&&tt(e)}(n))return n.skip(),En(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),Nn(n),En(),n.isUntested()){t=Qn().emit,r=function(n){return dn.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,d(n.message)&&y(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&e(r.then)?(n.asyncTest=r,n.setPending(),lt(n)):t(Un.TEST_COMPLETED,n)}catch(t){$("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&e(t.then)&&(n.setPending(),lt(n));return n}function vt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=dn.useX();return pt(t=new et(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var gt=r(vt,{each:function(n){return function(r){return Array.isArray(r)||$("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return r.map((function(r){return r=[].concat(r),n(i.apply(void 0,t([e],r,!1)),i.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(vt),memo:function(n){var t=yn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=mn().suiteId()[0];var i=mn().testObjectsCursor()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):pt(u[1])}}(vt)}),dt="4.0.0-dev-deabb8";function ht(n){e(n)||$("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(Un.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=mn().testCallbacks()[0].fieldCallbacks;n&&!wn(n)&&Array.isArray(t[n])&&Hn(t[n]),n=mn().testCallbacks()[0].doneCallbacks,wn()||Hn(n)}})),n}(),u=function(n){function t(n,t){return u.references.push(),r(n,i(t)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){u.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),o=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(u,{suiteId:gn()});return r(dn.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=bn()[0];return r=mn().prevTestObjects()[1],u.reset(),r((function(){return e})),n.apply(void 0,t),_n()})),{get:dn.bind({stateRef:o},Ln),remove:dn.bind({stateRef:o},(function(n){var t=bn()[0];[].concat(t).forEach((function(t){hn(t,n)&&t.cancel()}))})),reset:u.reset})}function yt(n,t){y(n)||rt("name must be a string"),e(t)||rt("callback must be a function"),dn.run({groupName:n},t)}function mt(n){(0,mn().optionalFields()[1])((function(t){return[].concat(n).forEach((function(n){t[n]=!0})),t}))}function bt(n,t){dn.run({skipped:i(n)},(function(){return t()}))}function Nt(){var n=dn.useX("warn hook called outside of a running suite.");n.currentTest||$("warn called outside of a test."),n.currentTest.warn()}export{dt as VERSION,ht as create,vn as enforce,yt as group,Zn as only,mt as optional,$n as skip,bt as skipWhen,gt as test,Nt as warn};
|
|
@@ -897,10 +897,6 @@
|
|
|
897
897
|
function createCache(maxSize) {
|
|
898
898
|
if (maxSize === void 0) { maxSize = 10; }
|
|
899
899
|
var cacheStorage = [];
|
|
900
|
-
/**
|
|
901
|
-
* @param {any[]} deps dependency array.
|
|
902
|
-
* @param {Function} cache action function.
|
|
903
|
-
*/
|
|
904
900
|
var cache = function (deps, cacheAction) {
|
|
905
901
|
var cacheHit = cache.get(deps);
|
|
906
902
|
// cache hit is not null
|
|
@@ -913,10 +909,17 @@
|
|
|
913
909
|
}
|
|
914
910
|
return result;
|
|
915
911
|
};
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
912
|
+
// invalidate an item in the cache by its dependencies
|
|
913
|
+
cache.invalidate = function (deps) {
|
|
914
|
+
var index = cacheStorage.findIndex(function (_a) {
|
|
915
|
+
var cachedDeps = _a[0];
|
|
916
|
+
return lengthEquals(deps, cachedDeps.length) &&
|
|
917
|
+
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
918
|
+
});
|
|
919
|
+
if (index > -1)
|
|
920
|
+
cacheStorage.splice(index, 1);
|
|
921
|
+
};
|
|
922
|
+
// Retrieves an item from the cache.
|
|
920
923
|
cache.get = function (deps) {
|
|
921
924
|
return cacheStorage[cacheStorage.findIndex(function (_a) {
|
|
922
925
|
var cachedDeps = _a[0];
|
|
@@ -1856,6 +1859,7 @@
|
|
|
1856
1859
|
// eslint-disable-next-line max-lines-per-function
|
|
1857
1860
|
function bindTestMemo(test) {
|
|
1858
1861
|
var cache = createCache(100); // arbitrary cache size
|
|
1862
|
+
// eslint-disable-next-line max-statements
|
|
1859
1863
|
function memo(fieldName) {
|
|
1860
1864
|
var args = [];
|
|
1861
1865
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -1871,6 +1875,11 @@
|
|
|
1871
1875
|
// cache miss
|
|
1872
1876
|
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1873
1877
|
}
|
|
1878
|
+
if (cached[1].isCanceled()) {
|
|
1879
|
+
// cache hit, but test is canceled
|
|
1880
|
+
cache.invalidate(dependencies);
|
|
1881
|
+
return cache(dependencies, function () { return test(fieldName, msg, testFn); });
|
|
1882
|
+
}
|
|
1874
1883
|
return registerPrevRunTest(cached[1]);
|
|
1875
1884
|
}
|
|
1876
1885
|
return memo;
|
|
@@ -1894,7 +1903,7 @@
|
|
|
1894
1903
|
memo: bindTestMemo(testBase)
|
|
1895
1904
|
});
|
|
1896
1905
|
|
|
1897
|
-
var VERSION = "4.0.0-dev-
|
|
1906
|
+
var VERSION = "4.0.0-dev-deabb8";
|
|
1898
1907
|
|
|
1899
1908
|
exports.VERSION = VERSION;
|
|
1900
1909
|
exports.create = create;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}function r(n){return"function"==typeof n}function e(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function u(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function i(n,t){var r;return null!==(r=u(n))&&void 0!==r?r:t}function o(n,t){return n={pass:n},t&&(n.message=t),n}function s(n,t){try{return n.run(t)}catch(n){return o(!1)}}function a(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}function c(n,t){return n.length>Number(t)}function l(n){return null===n}function p(n){return void 0===n}function d(n){return String(n)===n}function g(n,t){return d(n)&&d(t)&&n.endsWith(t)}function v(n,t){return n===t}function h(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function y(n,t){return h(n)&&h(t)&&Number(n)>Number(t)}function m(n,t){return h(n)&&h(t)&&Number(n)>=Number(t)}function b(n,t){return!!(Array.isArray(t)||d(t)&&d(n))&&-1!==t.indexOf(n)}function N(n){return!!Array.isArray(n)}function E(n,t){return h(n)&&h(t)&&Number(n)<=Number(t)}function C(n,t,r){return m(n,t)&&E(n,r)}function O(n){return!!n===n}function w(n){return"number"==typeof n}function T(n){if(n){if(w(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}function S(n){return Number.isNaN(n)}function k(n){return!!h(n)&&0>Number(n)}function x(n){return!!n}function P(n,t){return h(n)&&h(t)&&Number(n)<Number(t)}function j(n,t){return t instanceof RegExp?t.test(n):!!d(t)&&new RegExp(t).test(n)}function F(n,t){return h(n)&&h(t)&&Number(n)===Number(t)}function W(n,t){return d(n)&&d(t)&&n.startsWith(t)}function A(n,t){throw Error(i(t,n))}function R(n){function t(t,u){var i,o,s=r();return t=An({},s||{},null!==(i=null==n?void 0:n(t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:A(i(n,"Context was used after it was closed"))}}}function I(){return null}function q(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=$n.run({value:e,set:!0,meta:{key:r}},(function(){return s(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return o(!0)}function B(n){for(var t in nt){var e=nt[t];r(e)&&n(t,e)}}function D(){return"function"==typeof Proxy}function G(n,r,e){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return O(n)||n&&O(n.pass)||A("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?o(n):o(n.pass,u.apply(void 0,t([n.message,r,e],i,!1)))}function X(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=G.apply(void 0,t([$n.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!T(o.message))throw o.message;A("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!D())return B((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=nt[t])return r(u,n,t)}});return u}function K(n){var r,s=[];return function n(a){return function(){for(var f=[],c=0;c<arguments.length;c++)f[c]=arguments[c];var l=nt[a];s.push((function(n){return G.apply(void 0,t([l.apply(void 0,t([n],f,!1)),a,n],f,!1))}));var p={run:function(n){return i(e(s,(function(t,e){var i,s=$n.run({value:n},(function(){return t(n)}));s.pass||e(o(!!s.pass,null!==(i=u(r,n,s.message))&&void 0!==i?i:s.message))})),o(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return D()?p=new Proxy(p,{get:function(t,r){return nt[r]?n(r):t[r]}}):(B((function(t){p[t]=n(t)})),p)}}(n)}function _(n){var t,r={};for(t in n)r[t]=tt.optional(n[t]);return r}function L(n,t){return!(!t||n.fieldName!==t)}function M(n){void 0===n&&(n=10);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),t.length>n&&(t.length=n),u)};return r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function U(){return et.useX().stateRef}function J(){return U().testObjects()}function z(n){var t=U().testObjectsCursor()[0],r=J();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function V(){(0,U().testObjectsCursor()[1])((function(n){return n+1}))}function Y(n){return!!U().optionalFields()[0][n]}function H(){return J()[0].filter((function(n){return n.isPending()}))}function Q(n){var t=H();return!T(t)&&(n?t.some((function(t){return L(t,n)})):Un(t))}function Z(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function $(n,t,r){var e;void 0===r&&(r={});var u=(r=r||{}).group,i=r.fieldName;return t.reduce((function(t,r){return u&&r.groupName!==u||i&&!L(r,i)||"warnings"===n!=!!r.warns||!r.hasFailures()||(t[r.fieldName]=(t[r.fieldName]||[]).concat(r.message||[])),t}),Wn({},i&&((e={})[i]=[],e)))}function nn(n){return rn("errors",n)}function tn(n){return rn("warnings",n)}function rn(n,t){return n=$(n,J()[0],{fieldName:t}),t?n[t]:n}function en(n,t){return n=on("errors",n,t),t?n[t]:n}function un(n,t){return n=on("warnings",n,t),t?n[t]:n}function on(n,t,r){return t||A("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),$(n,J()[0],{group:t,fieldName:r})}function sn(n,t,r){return!(!n.hasFailures()||r&&!L(n,r)||"warnings"===t!=!!n.warns)}function an(n){return cn("errors",n)}function fn(n){return cn("warnings",n)}function cn(n,t){return J()[0].some((function(r){return sn(r,n,t)}))}function ln(n,t){return dn("errors",n,t)}function pn(n,t){return dn("warnings",n,t)}function dn(n,t,r){return J()[0].some((function(e){return t===e.groupName&&sn(e,n,r)}))}function gn(n,t){return!n.hasErrors(t)&&(!(T(J()[0])||t&&T(n.tests[t])||Un(H().filter((function(n){return!(t&&!L(n,t))&&!Y(n.fieldName)}))))&&function(n){return J()[0].every((function(t){return!!(n&&!L(t,n)||Y(t.fieldName))||t.isTested()}))}(t))}function vn(){var n=J()[0],t={stateRef:U()};return ut([n],et.bind(t,(function(){return An(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return J()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Z(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Z(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:et.bind(t,nn),getErrorsByGroup:et.bind(t,en),getWarnings:et.bind(t,tn),getWarningsByGroup:et.bind(t,un),hasErrors:et.bind(t,an),hasErrorsByGroup:et.bind(t,ln),hasWarnings:et.bind(t,fn),hasWarningsByGroup:et.bind(t,pn),isValid:et.bind(t,(function(n){return gn(vn(),n)}))})})))}function hn(){var n=J()[0],t={stateRef:U()};return it([n],et.bind(t,(function(){return An({},vn(),{done:et.bind(t,ot)})})))}function yn(n,t,e){return!(r(n)&&(!t||e.tests[t]&&0!==e.tests[t].testCount))}function mn(n){return!(Q()&&(!n||Q(n)))}function bn(n,t){var r=et.bind({},n);(0,U().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Nn(n){return n.forEach((function(n){return n()}))}function En(){var n=et.useX();return n.bus||A(),n.bus}function Cn(n){return wn("only","tests",n)}function On(n){return wn("skip","tests",n)}function wn(n,t,r){var e=et.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){d(r)&&(e.exclusion[t][r]="only"===n)}))}function Tn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Sn(n){A("Wrong arguments passed to group. Group "+n+".")}function kn(n){var t=n.asyncTest,e=n.message;if(t&&r(t.then)){var u=En().emit,i=U(),o=et.bind({stateRef:i},(function(){u(jn.TEST_COMPLETED,n)}));i=et.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=d(t)?t:e,n.fail(),(0,J()[1])((function(n){return n.slice(0)})),o())}));try{t.then(o,i)}catch(n){i()}}}function xn(n){var t=U().testObjectsCursor()[0],e=U().prevTestObjects()[0];if(z(t=i(e[t],n)),function(n){var t=n.fieldName;n=n.groupName;var r=et.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=et.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!Tn(e)&&!1!==e[t])}return!u&&Tn(e)}(n))return n.skip(),V(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),z(n),V(),n.isUntested()){t=En().emit,e=function(n){return et.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,p(n.message)&&d(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{e&&r(e.then)?(n.asyncTest=e,n.setPending(),kn(n)):t(jn.TEST_COMPLETED,n)}catch(t){A("Your test function "+n.fieldName+" returned "+JSON.stringify(e)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&r(t.then)&&(n.setPending(),kn(n));return n}function Pn(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=et.useX();return xn(t=new st(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var jn,Fn,Wn=function(){return Wn=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},Wn.apply(this,arguments)},An=Object.assign,Rn=a(f),In=a(l),qn=a(p),Bn=a(g),Dn=a(v),Gn=a(h),Xn=a(b),Kn=a(N),_n=a(C),Ln=a(O),Mn=a(w),Un=a(T),Jn=a(S),zn=a(k),Vn=a(d),Yn=a(x),Hn=a(j),Qn=a(F),Zn=a(W),$n=R((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?An(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:An(r,{parent:I})})),nt=An({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Bn,doesNotStartWith:Zn,endsWith:g,equals:v,greaterThan:y,greaterThanOrEquals:m,gt:y,gte:m,inside:b,isArray:N,isBetween:C,isBoolean:O,isEmpty:T,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:Yn,isNaN:S,isNegative:k,isNotArray:Kn,isNotBetween:_n,isNotBoolean:Ln,isNotEmpty:Un,isNotNaN:Jn,isNotNull:In,isNotNumber:Mn,isNotNumeric:Gn,isNotString:Vn,isNotUndefined:qn,isNull:l,isNumber:w,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:zn,isString:d,isTruthy:x,isUndefined:p,lengthEquals:f,lengthNotEquals:Rn,lessThan:P,lessThanOrEquals:E,longerThan:c,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:P,lte:E,matches:j,notEquals:Dn,notInside:Xn,notMatches:Hn,numberEquals:F,numberNotEquals:Qn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:W},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass||r(t)})),o(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass&&r(t)})),o(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){s(t,n).pass&&r(o(!1))})),o(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(c(e,1))return!1;(t=s(t,n)).pass&&e.push(t)})),o(f(e,1))},optional:function(n,t){return p(n)||null===n?o(!0):s(t,n)}},{shape:function(n,t){var r=q(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return o(!1);return o(!0)},loose:q,isArrayOf:function(n,t){return i(e(n,(function(n,r,e){(e=$n.run({value:n,set:!0,meta:{index:e}},(function(){return s(t,n)}))).pass||r(e)})),o(!0))}}),tt=(Fn=Wn({context:function(){return $n.useX()},extend:function(n){An(nt,n)}},{partial:_}),D()?new Proxy(An(X,Fn),{get:function(n,t){return t in n?n[t]:nt[t]?K(t):void 0}}):(B((function(n){Fn[n]=K(n)})),Fn)),rt=function(n){return function(){return""+n++}}(0),et=R((function(n,t){return t?null:An({},{exclusion:{tests:{},groups:{}}},n)})),ut=M(20),it=M(20),ot=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=hn(),yn(r,n,t))return t;var e=function(){return r(vn())};return mn(n)?(e(),t):(bn(e,n),t)};(jn||(jn={})).TEST_COMPLETED="test_completed",Cn.group=function(n){return wn("only","groups",n)},On.group=function(n){return wn("skip","groups",n)};var st=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=rt(),this.warns=!1,this.status=at,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,p(this.message)&&d(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(dt)},n.prototype.fail=function(){this.setStatus(this.warns?lt:ct)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(pt)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(ft)},n.prototype.cancel=function(){this.setStatus(gt),function(n){(0,J()[1])((function(t){var r=t.indexOf(n);return-1!==r&&t.splice(r,1),[].concat(t)}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===dt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===at},n.prototype.isFailing=function(){return this.status===ct},n.prototype.isCanceled=function(){return this.status===gt},n.prototype.isSkipped=function(){return this.status===ft},n.prototype.isPassing=function(){return this.status===pt},n.prototype.isWarning=function(){return this.status===lt},n}(),at="UNTESTED",ft="SKIPPED",ct="FAILED",lt="WARNING",pt="PASSING",dt="PENDING",gt="CANCELED",vt=An(Pn,{each:function(n){return function(r){return Array.isArray(r)||A("test.each: Expected table to be an array."),function(e){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var s=(i=i.reverse())[0],a=i[1];return r.map((function(r){return r=[].concat(r),n(u.apply(void 0,t([e],r,!1)),u.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(Pn),memo:function(n){var t=M(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=U().suiteId()[0];var i=U().testObjectsCursor()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):xn(u[1])}}(Pn)});n.VERSION="4.0.0-dev-392d56",n.create=function(n){r(n)||A("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(jn.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=U().testCallbacks()[0].fieldCallbacks;n&&!Q(n)&&Array.isArray(t[n])&&Nn(t[n]),n=U().testCallbacks()[0].doneCallbacks,Q()||Nn(n)}})),n}(),e=function(n){function t(n,t){return i.references.push(),e(n,u(t)),function(){return[i.references[n],function(t){return e(n,u(t,i.references[n]))}]}}function e(t,e){var u=i.references[t];i.references[t]=e,r(t=o[t][1])&&t(e,u),r(n)&&n()}var i={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){i.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),i=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(e,{suiteId:rt()});return An(et.bind({stateRef:i,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var u=J()[0];return r=U().prevTestObjects()[1],e.reset(),r((function(){return u})),n.apply(void 0,t),hn()})),{get:et.bind({stateRef:i},vn),remove:et.bind({stateRef:i},(function(n){var t=J()[0];[].concat(t).forEach((function(t){L(t,n)&&t.cancel()}))})),reset:e.reset})},n.enforce=tt,n.group=function(n,t){d(n)||Sn("name must be a string"),r(t)||Sn("callback must be a function"),et.run({groupName:n},t)},n.only=Cn,n.optional=function(n){(0,U().optionalFields()[1])((function(t){return[].concat(n).forEach((function(n){t[n]=!0})),t}))},n.skip=On,n.skipWhen=function(n,t){et.run({skipped:u(n)},(function(){return t()}))},n.test=vt,n.warn=function(){var n=et.useX("warn hook called outside of a running suite.");n.currentTest||A("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}function r(n){return"function"==typeof n}function e(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function u(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function i(n,t){var r;return null!==(r=u(n))&&void 0!==r?r:t}function o(n,t){return n={pass:n},t&&(n.message=t),n}function s(n,t){try{return n.run(t)}catch(n){return o(!1)}}function a(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function c(n,t){return n.length===Number(t)}function f(n,t){return n.length>Number(t)}function l(n){return null===n}function p(n){return void 0===n}function d(n){return String(n)===n}function g(n,t){return d(n)&&d(t)&&n.endsWith(t)}function v(n,t){return n===t}function h(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function y(n,t){return h(n)&&h(t)&&Number(n)>Number(t)}function m(n,t){return h(n)&&h(t)&&Number(n)>=Number(t)}function b(n,t){return!!(Array.isArray(t)||d(t)&&d(n))&&-1!==t.indexOf(n)}function N(n){return!!Array.isArray(n)}function E(n,t){return h(n)&&h(t)&&Number(n)<=Number(t)}function C(n,t,r){return m(n,t)&&E(n,r)}function O(n){return!!n===n}function w(n){return"number"==typeof n}function T(n){if(n){if(w(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return c(n,0);if("object"==typeof n)return c(Object.keys(n),0)}return!0}function S(n){return Number.isNaN(n)}function x(n){return!!h(n)&&0>Number(n)}function k(n){return!!n}function P(n,t){return h(n)&&h(t)&&Number(n)<Number(t)}function j(n,t){return t instanceof RegExp?t.test(n):!!d(t)&&new RegExp(t).test(n)}function F(n,t){return h(n)&&h(t)&&Number(n)===Number(t)}function W(n,t){return d(n)&&d(t)&&n.startsWith(t)}function A(n,t){throw Error(i(t,n))}function I(n){function t(t,u){var i,o,s=r();return t=An({},s||{},null!==(i=null==n?void 0:n(t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:A(i(n,"Context was used after it was closed"))}}}function R(){return null}function q(n,t){var r,e=function(r){var e=n[r],u=t[r];if(!(r=$n.run({value:e,set:!0,meta:{key:r}},(function(){return s(u,e)}))).pass)return{value:r}};for(r in t){var u=e(r);if("object"==typeof u)return u.value}return o(!0)}function B(n){for(var t in nt){var e=nt[t];r(e)&&n(t,e)}}function D(){return"function"==typeof Proxy}function G(n,r,e){for(var i=[],s=3;s<arguments.length;s++)i[s-3]=arguments[s];return O(n)||n&&O(n.pass)||A("Incorrect return value for rule: "+JSON.stringify(n)),O(n)?o(n):o(n.pass,u.apply(void 0,t([n.message,r,e],i,!1)))}function X(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=G.apply(void 0,t([$n.run({value:n},(function(){return e.apply(void 0,t([n],i,!1))})),u,n],i,!1))).pass){if(!T(o.message))throw o.message;A("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!D())return B((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=nt[t])return r(u,n,t)}});return u}function K(n){var r,s=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=nt[a];s.push((function(n){return G.apply(void 0,t([l.apply(void 0,t([n],c,!1)),a,n],c,!1))}));var p={run:function(n){return i(e(s,(function(t,e){var i,s=$n.run({value:n},(function(){return t(n)}));s.pass||e(o(!!s.pass,null!==(i=u(r,n,s.message))&&void 0!==i?i:s.message))})),o(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return D()?p=new Proxy(p,{get:function(t,r){return nt[r]?n(r):t[r]}}):(B((function(t){p[t]=n(t)})),p)}}(n)}function _(n){var t,r={};for(t in n)r[t]=tt.optional(n[t]);return r}function L(n,t){return!(!t||n.fieldName!==t)}function M(n){void 0===n&&(n=10);var t=[],r=function(e,u){var i=r.get(e);return i?i[1]:(u=u(),t.unshift([e.concat(),u]),t.length>n&&(t.length=n),u)};return r.invalidate=function(n){var r=t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<r&&t.splice(r,1)},r.get=function(n){return t[t.findIndex((function(t){var r=t[0];return c(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},r}function U(){return et.useX().stateRef}function J(){return U().testObjects()}function z(n){var t=U().testObjectsCursor()[0],r=J();n!==r[0][t]&&(0,r[1])((function(r){return(r=r.slice(0))[t]=n,r}))}function V(){(0,U().testObjectsCursor()[1])((function(n){return n+1}))}function Y(n){return!!U().optionalFields()[0][n]}function H(){return J()[0].filter((function(n){return n.isPending()}))}function Q(n){var t=H();return!T(t)&&(n?t.some((function(t){return L(t,n)})):Un(t))}function Z(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function $(n,t,r){var e;void 0===r&&(r={});var u=(r=r||{}).group,i=r.fieldName;return t.reduce((function(t,r){return u&&r.groupName!==u||i&&!L(r,i)||"warnings"===n!=!!r.warns||!r.hasFailures()||(t[r.fieldName]=(t[r.fieldName]||[]).concat(r.message||[])),t}),Wn({},i&&((e={})[i]=[],e)))}function nn(n){return rn("errors",n)}function tn(n){return rn("warnings",n)}function rn(n,t){return n=$(n,J()[0],{fieldName:t}),t?n[t]:n}function en(n,t){return n=on("errors",n,t),t?n[t]:n}function un(n,t){return n=on("warnings",n,t),t?n[t]:n}function on(n,t,r){return t||A("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),$(n,J()[0],{group:t,fieldName:r})}function sn(n,t,r){return!(!n.hasFailures()||r&&!L(n,r)||"warnings"===t!=!!n.warns)}function an(n){return fn("errors",n)}function cn(n){return fn("warnings",n)}function fn(n,t){return J()[0].some((function(r){return sn(r,n,t)}))}function ln(n,t){return dn("errors",n,t)}function pn(n,t){return dn("warnings",n,t)}function dn(n,t,r){return J()[0].some((function(e){return t===e.groupName&&sn(e,n,r)}))}function gn(n,t){return!n.hasErrors(t)&&(!(T(J()[0])||t&&T(n.tests[t])||Un(H().filter((function(n){return!(t&&!L(n,t))&&!Y(n.fieldName)}))))&&function(n){return J()[0].every((function(t){return!!(n&&!L(t,n)||Y(t.fieldName))||t.isTested()}))}(t))}function vn(){var n=J()[0],t={stateRef:U()};return ut([n],et.bind(t,(function(){return An(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return J()[0].forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Z(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Z(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:et.bind(t,nn),getErrorsByGroup:et.bind(t,en),getWarnings:et.bind(t,tn),getWarningsByGroup:et.bind(t,un),hasErrors:et.bind(t,an),hasErrorsByGroup:et.bind(t,ln),hasWarnings:et.bind(t,cn),hasWarningsByGroup:et.bind(t,pn),isValid:et.bind(t,(function(n){return gn(vn(),n)}))})})))}function hn(){var n=J()[0],t={stateRef:U()};return it([n],et.bind(t,(function(){return An({},vn(),{done:et.bind(t,ot)})})))}function yn(n,t,e){return!(r(n)&&(!t||e.tests[t]&&0!==e.tests[t].testCount))}function mn(n){return!(Q()&&(!n||Q(n)))}function bn(n,t){var r=et.bind({},n);(0,U().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function Nn(n){return n.forEach((function(n){return n()}))}function En(){var n=et.useX();return n.bus||A(),n.bus}function Cn(n){return wn("only","tests",n)}function On(n){return wn("skip","tests",n)}function wn(n,t,r){var e=et.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){d(r)&&(e.exclusion[t][r]="only"===n)}))}function Tn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Sn(n){A("Wrong arguments passed to group. Group "+n+".")}function xn(n){var t=n.asyncTest,e=n.message;if(t&&r(t.then)){var u=En().emit,i=U(),o=et.bind({stateRef:i},(function(){u(jn.TEST_COMPLETED,n)}));i=et.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=d(t)?t:e,n.fail(),(0,J()[1])((function(n){return n.slice(0)})),o())}));try{t.then(o,i)}catch(n){i()}}}function kn(n){var t=U().testObjectsCursor()[0],e=U().prevTestObjects()[0];if(z(t=i(e[t],n)),function(n){var t=n.fieldName;n=n.groupName;var r=et.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=et.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!Tn(e)&&!1!==e[t])}return!u&&Tn(e)}(n))return n.skip(),V(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),z(n),V(),n.isUntested()){t=En().emit,e=function(n){return et.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,p(n.message)&&d(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{e&&r(e.then)?(n.asyncTest=e,n.setPending(),xn(n)):t(jn.TEST_COMPLETED,n)}catch(t){A("Your test function "+n.fieldName+" returned "+JSON.stringify(e)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&r(t.then)&&(n.setPending(),xn(n));return n}function Pn(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=et.useX();return kn(t=new st(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var jn,Fn,Wn=function(){return Wn=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n},Wn.apply(this,arguments)},An=Object.assign,In=a(c),Rn=a(l),qn=a(p),Bn=a(g),Dn=a(v),Gn=a(h),Xn=a(b),Kn=a(N),_n=a(C),Ln=a(O),Mn=a(w),Un=a(T),Jn=a(S),zn=a(x),Vn=a(d),Yn=a(k),Hn=a(j),Qn=a(F),Zn=a(W),$n=I((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?An(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:An(r,{parent:R})})),nt=An({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Bn,doesNotStartWith:Zn,endsWith:g,equals:v,greaterThan:y,greaterThanOrEquals:m,gt:y,gte:m,inside:b,isArray:N,isBetween:C,isBoolean:O,isEmpty:T,isEven:function(n){return!!h(n)&&0==n%2},isFalsy:Yn,isNaN:S,isNegative:x,isNotArray:Kn,isNotBetween:_n,isNotBoolean:Ln,isNotEmpty:Un,isNotNaN:Jn,isNotNull:Rn,isNotNumber:Mn,isNotNumeric:Gn,isNotString:Vn,isNotUndefined:qn,isNull:l,isNumber:w,isNumeric:h,isOdd:function(n){return!!h(n)&&0!=n%2},isPositive:zn,isString:d,isTruthy:k,isUndefined:p,lengthEquals:c,lengthNotEquals:In,lessThan:P,lessThanOrEquals:E,longerThan:f,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:P,lte:E,matches:j,notEquals:Dn,notInside:Xn,notMatches:Hn,numberEquals:F,numberNotEquals:Qn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:W},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass||r(t)})),o(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){(t=s(t,n)).pass&&r(t)})),o(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return i(e(t,(function(t,r){s(t,n).pass&&r(o(!1))})),o(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(f(e,1))return!1;(t=s(t,n)).pass&&e.push(t)})),o(c(e,1))},optional:function(n,t){return p(n)||null===n?o(!0):s(t,n)}},{shape:function(n,t){var r=q(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return o(!1);return o(!0)},loose:q,isArrayOf:function(n,t){return i(e(n,(function(n,r,e){(e=$n.run({value:n,set:!0,meta:{index:e}},(function(){return s(t,n)}))).pass||r(e)})),o(!0))}}),tt=(Fn=Wn({context:function(){return $n.useX()},extend:function(n){An(nt,n)}},{partial:_}),D()?new Proxy(An(X,Fn),{get:function(n,t){return t in n?n[t]:nt[t]?K(t):void 0}}):(B((function(n){Fn[n]=K(n)})),Fn)),rt=function(n){return function(){return""+n++}}(0),et=I((function(n,t){return t?null:An({},{exclusion:{tests:{},groups:{}}},n)})),ut=M(20),it=M(20),ot=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=hn(),yn(r,n,t))return t;var e=function(){return r(vn())};return mn(n)?(e(),t):(bn(e,n),t)};(jn||(jn={})).TEST_COMPLETED="test_completed",Cn.group=function(n){return wn("only","groups",n)},On.group=function(n){return wn("skip","groups",n)};var st=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=rt(),this.warns=!1,this.status=at,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,p(this.message)&&d(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isCanceled()||(this.status=n)},n.prototype.setPending=function(){this.setStatus(dt)},n.prototype.fail=function(){this.setStatus(this.warns?lt:ft)},n.prototype.done=function(){this.isWarning()||this.isCanceled()||this.isFailing()||this.setStatus(pt)},n.prototype.warn=function(){this.warns=!0},n.prototype.skip=function(){this.setStatus(ct)},n.prototype.cancel=function(){this.setStatus(gt),function(n){(0,J()[1])((function(t){var r=t.indexOf(n);return-1!==r&&t.splice(r,1),[].concat(t)}))}(this)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===dt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isUntested=function(){return this.status===at},n.prototype.isFailing=function(){return this.status===ft},n.prototype.isCanceled=function(){return this.status===gt},n.prototype.isSkipped=function(){return this.status===ct},n.prototype.isPassing=function(){return this.status===pt},n.prototype.isWarning=function(){return this.status===lt},n}(),at="UNTESTED",ct="SKIPPED",ft="FAILED",lt="WARNING",pt="PASSING",dt="PENDING",gt="CANCELED",vt=An(Pn,{each:function(n){return function(r){return Array.isArray(r)||A("test.each: Expected table to be an array."),function(e){for(var i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];var s=(i=i.reverse())[0],a=i[1];return r.map((function(r){return r=[].concat(r),n(u.apply(void 0,t([e],r,!1)),u.apply(void 0,t([a],r,!1)),(function(){return s.apply(void 0,r)}))}))}}}(Pn),memo:function(n){var t=M(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=U().suiteId()[0];var i=U().testObjectsCursor()[0],o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):kn(u[1])}}(Pn)});n.VERSION="4.0.0-dev-deabb8",n.create=function(n){r(n)||A("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(jn.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=U().testCallbacks()[0].fieldCallbacks;n&&!Q(n)&&Array.isArray(t[n])&&Nn(t[n]),n=U().testCallbacks()[0].doneCallbacks,Q()||Nn(n)}})),n}(),e=function(n){function t(n,t){return i.references.push(),e(n,u(t)),function(){return[i.references[n],function(t){return e(n,u(t,i.references[n]))}]}}function e(t,e){var u=i.references[t];i.references[t]=e,r(t=o[t][1])&&t(e,u),r(n)&&n()}var i={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){i.references=[],o.forEach((function(n,r){return t(r,n[0])}))}}}(),i=function(n,t){var r=t.suiteId;return{optionalFields:n.registerStateKey((function(){return{}})),prevTestObjects:n.registerStateKey((function(){return[]})),suiteId:n.registerStateKey((function(){return r})),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(){return[]})),testObjectsCursor:n.registerStateKey((function(){return 0}))}}(e,{suiteId:rt()});return An(et.bind({stateRef:i,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var u=J()[0];return r=U().prevTestObjects()[1],e.reset(),r((function(){return u})),n.apply(void 0,t),hn()})),{get:et.bind({stateRef:i},vn),remove:et.bind({stateRef:i},(function(n){var t=J()[0];[].concat(t).forEach((function(t){L(t,n)&&t.cancel()}))})),reset:e.reset})},n.enforce=tt,n.group=function(n,t){d(n)||Sn("name must be a string"),r(t)||Sn("callback must be a function"),et.run({groupName:n},t)},n.only=Cn,n.optional=function(n){(0,U().optionalFields()[1])((function(t){return[].concat(n).forEach((function(n){t[n]=!0})),t}))},n.skip=On,n.skipWhen=function(n,t){et.run({skipped:u(n)},(function(){return t()}))},n.test=vt,n.warn=function(){var n=et.useX("warn hook called outside of a running suite.");n.currentTest||A("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
package/types/vest.d.ts
CHANGED
|
@@ -290,7 +290,7 @@ declare function skipWhen(conditional: boolean | ((...args: any[]) => boolean),
|
|
|
290
290
|
/**
|
|
291
291
|
* Runs a group callback.
|
|
292
292
|
*/
|
|
293
|
-
declare function group(groupName: string, tests: () =>
|
|
293
|
+
declare function group(groupName: string, tests: () => void): void;
|
|
294
294
|
declare function optional$0(optionals: string | string[]): void;
|
|
295
295
|
declare function testBase(fieldName: string, ...args: [
|
|
296
296
|
message: string,
|
|
@@ -310,5 +310,5 @@ declare const _default: typeof testBase & {
|
|
|
310
310
|
};
|
|
311
311
|
};
|
|
312
312
|
declare const test: typeof _default;
|
|
313
|
-
declare const VERSION = "4.0.0-dev-
|
|
313
|
+
declare const VERSION = "4.0.0-dev-deabb8";
|
|
314
314
|
export { test, create, only, skip, warn, group, optional$0 as optional, skipWhen, enforce, VERSION };
|