vest 4.2.1-dev-ee64be → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vest.development.js +9 -9
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +9 -9
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +9 -9
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/testUtils/suiteDummy.ts +5 -5
- package/types/classnames.d.ts +7 -7
- package/types/parser.d.ts +7 -7
- package/types/promisify.d.ts +7 -7
- package/types/vest.d.ts +15 -15
|
@@ -953,7 +953,7 @@ function noMissingTests(fieldName) {
|
|
|
953
953
|
}
|
|
954
954
|
|
|
955
955
|
var cache$1 = createCache(20);
|
|
956
|
-
function
|
|
956
|
+
function produceSuiteResult() {
|
|
957
957
|
var testObjects = useTestsFlat();
|
|
958
958
|
var ctxRef = { stateRef: useStateRef() };
|
|
959
959
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
@@ -968,7 +968,7 @@ function produceBase() {
|
|
|
968
968
|
hasWarnings: context.bind(ctxRef, hasWarnings),
|
|
969
969
|
hasWarningsByGroup: context.bind(ctxRef, hasWarningsByGroup),
|
|
970
970
|
isValid: context.bind(ctxRef, function (fieldName) {
|
|
971
|
-
return isValid(
|
|
971
|
+
return isValid(produceSuiteResult(), fieldName);
|
|
972
972
|
}),
|
|
973
973
|
suiteName: suiteName
|
|
974
974
|
});
|
|
@@ -996,7 +996,7 @@ function produceFullResult() {
|
|
|
996
996
|
var testObjects = useTestsFlat();
|
|
997
997
|
var ctxRef = { stateRef: useStateRef() };
|
|
998
998
|
return cache([testObjects], context.bind(ctxRef, function () {
|
|
999
|
-
return assign({},
|
|
999
|
+
return assign({}, produceSuiteResult(), {
|
|
1000
1000
|
done: context.bind(ctxRef, done)
|
|
1001
1001
|
});
|
|
1002
1002
|
}));
|
|
@@ -1029,7 +1029,7 @@ var done = function done() {
|
|
|
1029
1029
|
if (shouldSkipDoneRegistration(callback, fieldName, output)) {
|
|
1030
1030
|
return output;
|
|
1031
1031
|
}
|
|
1032
|
-
var doneCallback = function () { return callback(
|
|
1032
|
+
var doneCallback = function () { return callback(produceSuiteResult()); };
|
|
1033
1033
|
if (shouldRunDoneCallback(fieldName)) {
|
|
1034
1034
|
doneCallback();
|
|
1035
1035
|
return output;
|
|
@@ -1230,7 +1230,7 @@ function create() {
|
|
|
1230
1230
|
// Return the result
|
|
1231
1231
|
return produceFullResult();
|
|
1232
1232
|
}), {
|
|
1233
|
-
get: context.bind(ctxRef,
|
|
1233
|
+
get: context.bind(ctxRef, produceSuiteResult),
|
|
1234
1234
|
remove: context.bind(ctxRef, function (fieldName) {
|
|
1235
1235
|
bus.emit(Events.REMOVE_FIELD, fieldName);
|
|
1236
1236
|
}),
|
|
@@ -1288,7 +1288,7 @@ function skipWhen(conditional, callback) {
|
|
|
1288
1288
|
// we should skip the test if the parent conditional is true.
|
|
1289
1289
|
isExcludedIndividually() ||
|
|
1290
1290
|
// Otherwise, we should skip the test if the conditional is true.
|
|
1291
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
1291
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
1292
1292
|
}, function () { return callback(); });
|
|
1293
1293
|
});
|
|
1294
1294
|
}
|
|
@@ -1488,7 +1488,7 @@ function include(fieldName) {
|
|
|
1488
1488
|
if (isStringValue(condition)) {
|
|
1489
1489
|
return Boolean(exclusion.tests[condition]);
|
|
1490
1490
|
}
|
|
1491
|
-
return optionalFunctionValue(condition, optionalFunctionValue(
|
|
1491
|
+
return optionalFunctionValue(condition, optionalFunctionValue(produceSuiteResult));
|
|
1492
1492
|
};
|
|
1493
1493
|
}
|
|
1494
1494
|
}
|
|
@@ -1545,7 +1545,7 @@ function omitWhen(conditional, callback) {
|
|
|
1545
1545
|
isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
|
|
1546
1546
|
context.run({
|
|
1547
1547
|
omitted: isOmitted() ||
|
|
1548
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
1548
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
1549
1549
|
}, function () { return callback(); });
|
|
1550
1550
|
});
|
|
1551
1551
|
}
|
|
@@ -1877,7 +1877,7 @@ function warn() {
|
|
|
1877
1877
|
ctx.currentTest.warn();
|
|
1878
1878
|
}
|
|
1879
1879
|
|
|
1880
|
-
var VERSION = "4.2.1
|
|
1880
|
+
var VERSION = "4.2.1";
|
|
1881
1881
|
|
|
1882
1882
|
Object.defineProperty(exports, 'enforce', {
|
|
1883
1883
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n,t){return o(n)&&u(t)}function c(n){return[].concat(n)}function a(n,t){return n.length===Number(t)}function f(n){function t(n){return e.findIndex((function(t){var e=t[0];return a(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return n.length>Number(t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function l(n){return!!Array.isArray(n)}function p(n){return null===n}var d=i(p);function v(n){return"function"==typeof n}function g(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return v(n)?n.apply(void 0,t):n}function h(n,t){var e;return null!==(e=g(n))&&void 0!==e?e:t}function E(n){return(n=c(n))[n.length-1]}function m(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];l(u)?e.push(m(u,t)):(u=t(u),d(u)&&e.push(u))}return e}function y(n,t,e){return S(n,t)[E(t)]=e,n}function N(n){return c(n).reduce((function(n,t){return l(t)?n.concat(N(t)):c(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=h(n[r],[]),n=n[r]}return n}var b,C,R=Object.assign;function T(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return E(t)},getCursor:function(){return c(t)},next:function(){return t[t.length-1]++,E(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(b||(b={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(C||(C={}));var I=e.createContext((function(n,t){return t?null:R({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:b.DEFAULT,keys:{current:{},prev:{}}},mode:[C.ALL],testCursor:T()},n)}));function _(){return I.useX().stateRef}function O(){return _().suiteId()[0]}function A(){return _().testCallbacks()}function k(){return _().optionalFields()}function L(){return _().testObjects()}function x(){(0,L()[1])((function(n){return{prev:n.prev,current:c(n.current)}}))}function F(n){(0,L()[1])((function(t){return{prev:t.prev,current:c(n(t.current))}}))}function G(){return N(m(L()[0].current,(function(n){return n.isPending()?n:null})))}var P,W=f();function D(){var n=L()[0].current;return W([n],(function(){return N(n)}))}function U(n){D().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(P||(P={}));var w,X=function(){function n(n,t,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=P.Error,this.status=H,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){s(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Y||(this.status=n)},n.prototype.warns=function(){return this.severity===P.Warning},n.prototype.setPending=function(){this.setStatus(B)},n.prototype.fail=function(){this.setStatus(this.warns()?M:q)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},n.prototype.warn=function(){this.severity=P.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(V),x()},n.prototype.reset=function(){this.status=H,x()},n.prototype.omit=function(){this.setStatus(Y)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(B)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Y)},n.prototype.isUntested=function(){return this.statusEquals(H)},n.prototype.isFailing=function(){return this.statusEquals(q)},n.prototype.isCanceled=function(){return this.statusEquals(V)},n.prototype.isSkipped=function(){return this.statusEquals(K)},n.prototype.isPassing=function(){return this.statusEquals(j)},n.prototype.isWarning=function(){return this.statusEquals(M)},n.prototype.statusEquals=function(n){return this.status===n},n}(),H="UNTESTED",K="SKIPPED",q="FAILED",M="WARNING",j="PASSING",B="PENDING",V="CANCELED",Y="OMITTED";function J(n,t){throw Error(h(t,n))}function z(n,t){setTimeout((function(){J(n,t)}),0)}function Q(n){function t(n,t,u){return r.references.push(),e(n,g(t,u)),function(){return[r.references[n],function(t){return e(n,g(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,v(t=u[t][1])&&t(e,i),v(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function Z(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function $(n){return p(n)||o(n)}function nn(){return I.useX().testCursor.getCursor()}function tn(){return I.useX().testCursor.cursorAt()}function en(){return I.useX().testCursor.next()}function rn(n,t){if(n=void 0===(n=n.type)?b.DEFAULT:n,v(t)){var e={current:{},prev:{}},r=nn();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=c(S(L()[0].prev,nn())).reduce((function(n,t){return t instanceof X&&!$(t.key)?(n[t.key]=t,n):n}),{}),F((function(n){return y(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),en(),n}))}}function un(n,t){function e(n){i[n===w.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(w.ERRORS):t.isWarning()&&e(w.WARNINGS)),i}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(w||(w={}));var on=function(){return(on=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function sn(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function cn(n,t){return!!t&&!an(n,t)}function an(n,t){return!(!t||n.fieldName!==t)}function fn(n,t){return function(n,t){return!!n!=!!t}(n===w.WARNINGS,t.warns())}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||cn(n,r)||fn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),on({},i&&((r={})[i]=[],r)))}function pn(n,t){return t?n[t]:n}function dn(n){return gn(w.ERRORS,n)}function vn(n){return gn(w.WARNINGS,n)}function gn(n,t){return pn(n=ln(n,D(),{fieldName:t}),t)}function hn(n,t){return pn(n=mn(w.ERRORS,n,t),t)}function En(n,t){return pn(n=mn(w.WARNINGS,n,t),t)}function mn(n,t,e){return t||J("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,D(),{group:t,fieldName:e})}function yn(n,t,e){return!(!n.hasFailures()||cn(n,e)||fn(t,n))}function Nn(n){return bn(w.ERRORS,n)}function Sn(n){return bn(w.WARNINGS,n)}function bn(n,t){return D().some((function(e){return yn(e,n,t)}))}function Cn(n,t){return Tn(w.ERRORS,n,t)}function Rn(n,t){return Tn(w.WARNINGS,n,t)}function Tn(n,t,e){return D().some((function(r){return t===r.groupName&&yn(r,n,e)}))}function In(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function _n(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(In(n,"length"))return a(n,0);if("object"==typeof n)return a(Object.keys(n),0)}return!0}var On=i(_n);function An(n,t){return!!function(n){var t=D().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(_n(D())||function(n,t){return!!t&&_n(n.tests[t])}(n,t)||function(n){var t=k()[0];return On(G().filter((function(e){return!cn(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=D(),e=k()[0];return t.every((function(t){return!!cn(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var kn=f(20);function Ln(){var n=D(),t={stateRef:_()};return kn([n],I.bind(t,(function(){var n=_().suiteName()[0];return R(function(){var n=D(),t=R({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=un(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=un(t.groups[r],n))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}(),{getErrors:I.bind(t,dn),getErrorsByGroup:I.bind(t,hn),getWarnings:I.bind(t,vn),getWarningsByGroup:I.bind(t,En),hasErrors:I.bind(t,Nn),hasErrorsByGroup:I.bind(t,Cn),hasWarnings:I.bind(t,Sn),hasWarningsByGroup:I.bind(t,Rn),isValid:I.bind(t,(function(n){return An(Ln(),n)})),suiteName:n})})))}function xn(n){var t=G();return!_n(t)&&(n?t.some((function(t){return an(t,n)})):On(t))}var Fn=f(20);function Gn(){var n=D(),t={stateRef:_()};return Fn([n],I.bind(t,(function(){return R({},Ln(),{done:I.bind(t,Un)})})))}function Pn(n,t,e){return!(v(n)&&(!t||e.tests[t]&&!_n(e.tests[t].testCount)))}function Wn(n){return!(xn()&&(!n||xn(n)))}var Dn,Un=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Gn(),Pn(e,n,t))return t;var r=function(){return e(Ln())};return Wn(n)?(r(),t):(wn(r,n),t)};function wn(n,t){var e=I.bind({},n);(0,A()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Xn(n){return n.forEach((function(n){return n()}))}function Hn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Dn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=A()[0].fieldCallbacks;n&&!xn(n)&&l(t[n])&&Xn(t[n])}(t.fieldName),xn()||n.emit(Dn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Dn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=k()[0];if(!_n(n)){var t={};F((function(e){return m(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];v(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Dn.ALL_RUNNING_TESTS_FINISHED,(function(){Xn(A()[0].doneCallbacks)})),n.on(Dn.REMOVE_FIELD,(function(n){U((function(t){an(t,n)&&(t.cancel(),function(n){F((function(t){return m(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Dn.RESET_FIELD,(function(n){U((function(t){an(t,n)&&t.reset()}))})),n}function Kn(){var n=I.useX();return n.bus||J(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Dn||(Dn={}));function qn(){return!!I.useX().skipped}function Mn(n){return Vn(0,"tests",n)}function jn(n){return Vn(1,"tests",n)}function Bn(n){var t=n.fieldName;if(n=n.groupName,qn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;if(In(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Yn(u)||!1===u[t])}return!!function(n){var t=I.useX().exclusion;return!!function(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Yn(u)&&!g(e[t]))}function Vn(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&c(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function Yn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Jn(n){J("Wrong arguments passed to group. Group ".concat(n,"."))}function zn(n){return!(!function(n){return I.useX().mode[0]===n}(C.EAGER)||!Nn(n.fieldName))}function Qn(){return!!I.useX().omitted}Mn.group=function(n){return Vn(0,"groups",n)},jn.group=function(n){return Vn(1,"groups",n)};var Zn=i(u);function $n(n){return n&&v(n.then)}function nt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function tt(n){var t=n.asyncTest,e=n.message;if($n(t)){var r=Kn().emit,i=_(),o=I.bind({stateRef:i},(function(){x(),r(Dn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function et(n){var t=Kn(),e=function(n){return I.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){s(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{$n(e)?(n.asyncTest=e,n.setPending(),tt(n)):t.emit(Dn.TEST_COMPLETED,n)}catch(t){J("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function rt(n){var t=L()[0].prev;return _n(t)?(ut(n),n):(t=function(n){var t=nn();return function(n,t){return S(n,t)[E(t)]}(n,t)}(t),$(n.key)?(function(n,t){return On(n)&&!nt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===b.EACH||z("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=L(),t=n[1],e=n[0].prev;n=S(e,nn());var r=tn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),ut(n=h(t,n)),n):(ut(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;$(e[n])?e[n]=t:z('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function ut(n){var t=nn();F((function(e){return y(e,t,n)}))}function it(n){var t=rt(n);return zn(n)?(en(),n.skip(),n):Qn()?(t.omit(),en(),t):Bn(n)?(t.skip(qn()),en(),t):(function(n,t){t!==n&&nt(n,t)&&n.isPending()&&n.cancel()}(t,n),ut(n),en(),function(n){n.isUntested()?et(n):$n(n.asyncTest)&&(n.setPending(),tt(n))}(n),n)}function ot(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=v(t[1])?t:sn([void 0],t,!0);t=r[0],e=r[1],r=r[2],Zn(n)&&ct("fieldName","string"),v(e)||ct("Test callback","function");var u=I.useX();return it(t=new X(n,e,{message:t,groupName:u.groupName,key:r}))}var st=R(ot,{memo:function(n){var t=f(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=tn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[O(),e,u].concat(i),p(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):it(r[1])}}(ot)});function ct(n,t){J("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.2.1-dev-ee64be",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],v(e)||J("vest.create: Expected callback to be a function.");var u=Hn(),i=Q();return n={stateRef:Z(i,{suiteId:r(),suiteName:n}),bus:u},R(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),rn({type:b.SUITE},(function(){e.apply(void 0,n)})),u.emit(Dn.SUITE_CALLBACK_DONE_RUNNING),Gn()})),{get:I.bind(n,Ln),remove:I.bind(n,(function(n){u.emit(Dn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Dn.RESET_FIELD,n)}))})},exports.each=function(n,t){v(t)||J("each callback must be a function"),rn({type:b.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(C.EAGER)},exports.group=function(n,t){u(n)||Jn("name must be a string"),v(t)||Jn("callback must be a function"),rn({type:b.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){function t(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return In(r.tests,n)?h(r.tests[n],!0):u(t)?!!r.tests[t]:g(t,g(Ln))}}var e=I.useX();return n?(e.inclusion[n]=h(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,t){rn({type:b.OMIT_WHEN},(function(){I.run({omitted:Qn()||g(n,g(Ln))},(function(){return t()}))}))},exports.only=Mn,exports.optional=function(n){(0,k()[1])((function(t){if(l(n)||u(n))c(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=jn,exports.skipWhen=function(n,t){rn({type:b.SKIP_WHEN},(function(){I.run({skipped:qn()||g(n,g(Ln))},(function(){return t()}))}))},exports.test=st,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");n.currentTest||J("warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n,t){return o(n)&&u(t)}function c(n){return[].concat(n)}function a(n,t){return n.length===Number(t)}function f(n){function t(n){return e.findIndex((function(t){var e=t[0];return a(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return n.length>Number(t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function l(n){return!!Array.isArray(n)}function p(n){return null===n}var d=i(p);function v(n){return"function"==typeof n}function g(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return v(n)?n.apply(void 0,t):n}function h(n,t){var e;return null!==(e=g(n))&&void 0!==e?e:t}function E(n){return(n=c(n))[n.length-1]}function m(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];l(u)?e.push(m(u,t)):(u=t(u),d(u)&&e.push(u))}return e}function y(n,t,e){return S(n,t)[E(t)]=e,n}function N(n){return c(n).reduce((function(n,t){return l(t)?n.concat(N(t)):c(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=h(n[r],[]),n=n[r]}return n}var b,C,R=Object.assign;function T(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return E(t)},getCursor:function(){return c(t)},next:function(){return t[t.length-1]++,E(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(b||(b={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(C||(C={}));var I=e.createContext((function(n,t){return t?null:R({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:b.DEFAULT,keys:{current:{},prev:{}}},mode:[C.ALL],testCursor:T()},n)}));function _(){return I.useX().stateRef}function O(){return _().suiteId()[0]}function A(){return _().testCallbacks()}function k(){return _().optionalFields()}function L(){return _().testObjects()}function x(){(0,L()[1])((function(n){return{prev:n.prev,current:c(n.current)}}))}function F(n){(0,L()[1])((function(t){return{prev:t.prev,current:c(n(t.current))}}))}function G(){return N(m(L()[0].current,(function(n){return n.isPending()?n:null})))}var P,W=f();function D(){var n=L()[0].current;return W([n],(function(){return N(n)}))}function U(n){D().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(P||(P={}));var w,X=function(){function n(n,t,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=P.Error,this.status=H,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){s(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Y||(this.status=n)},n.prototype.warns=function(){return this.severity===P.Warning},n.prototype.setPending=function(){this.setStatus(B)},n.prototype.fail=function(){this.setStatus(this.warns()?M:q)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},n.prototype.warn=function(){this.severity=P.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(K)},n.prototype.cancel=function(){this.setStatus(V),x()},n.prototype.reset=function(){this.status=H,x()},n.prototype.omit=function(){this.setStatus(Y)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(B)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Y)},n.prototype.isUntested=function(){return this.statusEquals(H)},n.prototype.isFailing=function(){return this.statusEquals(q)},n.prototype.isCanceled=function(){return this.statusEquals(V)},n.prototype.isSkipped=function(){return this.statusEquals(K)},n.prototype.isPassing=function(){return this.statusEquals(j)},n.prototype.isWarning=function(){return this.statusEquals(M)},n.prototype.statusEquals=function(n){return this.status===n},n}(),H="UNTESTED",K="SKIPPED",q="FAILED",M="WARNING",j="PASSING",B="PENDING",V="CANCELED",Y="OMITTED";function J(n,t){throw Error(h(t,n))}function z(n,t){setTimeout((function(){J(n,t)}),0)}function Q(n){function t(n,t,u){return r.references.push(),e(n,g(t,u)),function(){return[r.references[n],function(t){return e(n,g(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,v(t=u[t][1])&&t(e,i),v(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function Z(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function $(n){return p(n)||o(n)}function nn(){return I.useX().testCursor.getCursor()}function tn(){return I.useX().testCursor.cursorAt()}function en(){return I.useX().testCursor.next()}function rn(n,t){if(n=void 0===(n=n.type)?b.DEFAULT:n,v(t)){var e={current:{},prev:{}},r=nn();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=c(S(L()[0].prev,nn())).reduce((function(n,t){return t instanceof X&&!$(t.key)?(n[t.key]=t,n):n}),{}),F((function(n){return y(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),en(),n}))}}function un(n,t){function e(n){i[n===w.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(w.ERRORS):t.isWarning()&&e(w.WARNINGS)),i}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(w||(w={}));var on=function(){return(on=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function sn(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function cn(n,t){return!!t&&!an(n,t)}function an(n,t){return!(!t||n.fieldName!==t)}function fn(n,t){return function(n,t){return!!n!=!!t}(n===w.WARNINGS,t.warns())}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||cn(n,r)||fn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),on({},i&&((r={})[i]=[],r)))}function pn(n,t){return t?n[t]:n}function dn(n){return gn(w.ERRORS,n)}function vn(n){return gn(w.WARNINGS,n)}function gn(n,t){return pn(n=ln(n,D(),{fieldName:t}),t)}function hn(n,t){return pn(n=mn(w.ERRORS,n,t),t)}function En(n,t){return pn(n=mn(w.WARNINGS,n,t),t)}function mn(n,t,e){return t||J("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,D(),{group:t,fieldName:e})}function yn(n,t,e){return!(!n.hasFailures()||cn(n,e)||fn(t,n))}function Nn(n){return bn(w.ERRORS,n)}function Sn(n){return bn(w.WARNINGS,n)}function bn(n,t){return D().some((function(e){return yn(e,n,t)}))}function Cn(n,t){return Tn(w.ERRORS,n,t)}function Rn(n,t){return Tn(w.WARNINGS,n,t)}function Tn(n,t,e){return D().some((function(r){return t===r.groupName&&yn(r,n,e)}))}function In(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function _n(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(In(n,"length"))return a(n,0);if("object"==typeof n)return a(Object.keys(n),0)}return!0}var On=i(_n);function An(n,t){return!!function(n){var t=D().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(_n(D())||function(n,t){return!!t&&_n(n.tests[t])}(n,t)||function(n){var t=k()[0];return On(G().filter((function(e){return!cn(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=D(),e=k()[0];return t.every((function(t){return!!cn(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var kn=f(20);function Ln(){var n=D(),t={stateRef:_()};return kn([n],I.bind(t,(function(){var n=_().suiteName()[0];return R(function(){var n=D(),t=R({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=un(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=un(t.groups[r],n))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}(),{getErrors:I.bind(t,dn),getErrorsByGroup:I.bind(t,hn),getWarnings:I.bind(t,vn),getWarningsByGroup:I.bind(t,En),hasErrors:I.bind(t,Nn),hasErrorsByGroup:I.bind(t,Cn),hasWarnings:I.bind(t,Sn),hasWarningsByGroup:I.bind(t,Rn),isValid:I.bind(t,(function(n){return An(Ln(),n)})),suiteName:n})})))}function xn(n){var t=G();return!_n(t)&&(n?t.some((function(t){return an(t,n)})):On(t))}var Fn=f(20);function Gn(){var n=D(),t={stateRef:_()};return Fn([n],I.bind(t,(function(){return R({},Ln(),{done:I.bind(t,Un)})})))}function Pn(n,t,e){return!(v(n)&&(!t||e.tests[t]&&!_n(e.tests[t].testCount)))}function Wn(n){return!(xn()&&(!n||xn(n)))}var Dn,Un=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Gn(),Pn(e,n,t))return t;var r=function(){return e(Ln())};return Wn(n)?(r(),t):(wn(r,n),t)};function wn(n,t){var e=I.bind({},n);(0,A()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Xn(n){return n.forEach((function(n){return n()}))}function Hn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Dn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=A()[0].fieldCallbacks;n&&!xn(n)&&l(t[n])&&Xn(t[n])}(t.fieldName),xn()||n.emit(Dn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Dn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=k()[0];if(!_n(n)){var t={};F((function(e){return m(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];v(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Dn.ALL_RUNNING_TESTS_FINISHED,(function(){Xn(A()[0].doneCallbacks)})),n.on(Dn.REMOVE_FIELD,(function(n){U((function(t){an(t,n)&&(t.cancel(),function(n){F((function(t){return m(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Dn.RESET_FIELD,(function(n){U((function(t){an(t,n)&&t.reset()}))})),n}function Kn(){var n=I.useX();return n.bus||J(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Dn||(Dn={}));function qn(){return!!I.useX().skipped}function Mn(n){return Vn(0,"tests",n)}function jn(n){return Vn(1,"tests",n)}function Bn(n){var t=n.fieldName;if(n=n.groupName,qn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;if(In(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Yn(u)||!1===u[t])}return!!function(n){var t=I.useX().exclusion;return!!function(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Yn(u)&&!g(e[t]))}function Vn(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&c(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function Yn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Jn(n){J("Wrong arguments passed to group. Group ".concat(n,"."))}function zn(n){return!(!function(n){return I.useX().mode[0]===n}(C.EAGER)||!Nn(n.fieldName))}function Qn(){return!!I.useX().omitted}Mn.group=function(n){return Vn(0,"groups",n)},jn.group=function(n){return Vn(1,"groups",n)};var Zn=i(u);function $n(n){return n&&v(n.then)}function nt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function tt(n){var t=n.asyncTest,e=n.message;if($n(t)){var r=Kn().emit,i=_(),o=I.bind({stateRef:i},(function(){x(),r(Dn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function et(n){var t=Kn(),e=function(n){return I.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){s(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{$n(e)?(n.asyncTest=e,n.setPending(),tt(n)):t.emit(Dn.TEST_COMPLETED,n)}catch(t){J("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function rt(n){var t=L()[0].prev;return _n(t)?(ut(n),n):(t=function(n){var t=nn();return function(n,t){return S(n,t)[E(t)]}(n,t)}(t),$(n.key)?(function(n,t){return On(n)&&!nt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===b.EACH||z("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=L(),t=n[1],e=n[0].prev;n=S(e,nn());var r=tn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),ut(n=h(t,n)),n):(ut(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;$(e[n])?e[n]=t:z('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function ut(n){var t=nn();F((function(e){return y(e,t,n)}))}function it(n){var t=rt(n);return zn(n)?(en(),n.skip(),n):Qn()?(t.omit(),en(),t):Bn(n)?(t.skip(qn()),en(),t):(function(n,t){t!==n&&nt(n,t)&&n.isPending()&&n.cancel()}(t,n),ut(n),en(),function(n){n.isUntested()?et(n):$n(n.asyncTest)&&(n.setPending(),tt(n))}(n),n)}function ot(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=v(t[1])?t:sn([void 0],t,!0);t=r[0],e=r[1],r=r[2],Zn(n)&&ct("fieldName","string"),v(e)||ct("Test callback","function");var u=I.useX();return it(t=new X(n,e,{message:t,groupName:u.groupName,key:r}))}var st=R(ot,{memo:function(n){var t=f(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=tn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[O(),e,u].concat(i),p(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):it(r[1])}}(ot)});function ct(n,t){J("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.2.1",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],v(e)||J("vest.create: Expected callback to be a function.");var u=Hn(),i=Q();return n={stateRef:Z(i,{suiteId:r(),suiteName:n}),bus:u},R(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),rn({type:b.SUITE},(function(){e.apply(void 0,n)})),u.emit(Dn.SUITE_CALLBACK_DONE_RUNNING),Gn()})),{get:I.bind(n,Ln),remove:I.bind(n,(function(n){u.emit(Dn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Dn.RESET_FIELD,n)}))})},exports.each=function(n,t){v(t)||J("each callback must be a function"),rn({type:b.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(C.EAGER)},exports.group=function(n,t){u(n)||Jn("name must be a string"),v(t)||Jn("callback must be a function"),rn({type:b.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){function t(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return In(r.tests,n)?h(r.tests[n],!0):u(t)?!!r.tests[t]:g(t,g(Ln))}}var e=I.useX();return n?(e.inclusion[n]=h(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,t){rn({type:b.OMIT_WHEN},(function(){I.run({omitted:Qn()||g(n,g(Ln))},(function(){return t()}))}))},exports.only=Mn,exports.optional=function(n){(0,k()[1])((function(t){if(l(n)||u(n))c(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=jn,exports.skipWhen=function(n,t){rn({type:b.SKIP_WHEN},(function(){I.run({skipped:qn()||g(n,g(Ln))},(function(){return t()}))}))},exports.test=st,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");n.currentTest||J("warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -949,7 +949,7 @@ function noMissingTests(fieldName) {
|
|
|
949
949
|
}
|
|
950
950
|
|
|
951
951
|
var cache$1 = createCache(20);
|
|
952
|
-
function
|
|
952
|
+
function produceSuiteResult() {
|
|
953
953
|
var testObjects = useTestsFlat();
|
|
954
954
|
var ctxRef = { stateRef: useStateRef() };
|
|
955
955
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
@@ -964,7 +964,7 @@ function produceBase() {
|
|
|
964
964
|
hasWarnings: context.bind(ctxRef, hasWarnings),
|
|
965
965
|
hasWarningsByGroup: context.bind(ctxRef, hasWarningsByGroup),
|
|
966
966
|
isValid: context.bind(ctxRef, function (fieldName) {
|
|
967
|
-
return isValid(
|
|
967
|
+
return isValid(produceSuiteResult(), fieldName);
|
|
968
968
|
}),
|
|
969
969
|
suiteName: suiteName
|
|
970
970
|
});
|
|
@@ -992,7 +992,7 @@ function produceFullResult() {
|
|
|
992
992
|
var testObjects = useTestsFlat();
|
|
993
993
|
var ctxRef = { stateRef: useStateRef() };
|
|
994
994
|
return cache([testObjects], context.bind(ctxRef, function () {
|
|
995
|
-
return assign({},
|
|
995
|
+
return assign({}, produceSuiteResult(), {
|
|
996
996
|
done: context.bind(ctxRef, done)
|
|
997
997
|
});
|
|
998
998
|
}));
|
|
@@ -1025,7 +1025,7 @@ var done = function done() {
|
|
|
1025
1025
|
if (shouldSkipDoneRegistration(callback, fieldName, output)) {
|
|
1026
1026
|
return output;
|
|
1027
1027
|
}
|
|
1028
|
-
var doneCallback = function () { return callback(
|
|
1028
|
+
var doneCallback = function () { return callback(produceSuiteResult()); };
|
|
1029
1029
|
if (shouldRunDoneCallback(fieldName)) {
|
|
1030
1030
|
doneCallback();
|
|
1031
1031
|
return output;
|
|
@@ -1226,7 +1226,7 @@ function create() {
|
|
|
1226
1226
|
// Return the result
|
|
1227
1227
|
return produceFullResult();
|
|
1228
1228
|
}), {
|
|
1229
|
-
get: context.bind(ctxRef,
|
|
1229
|
+
get: context.bind(ctxRef, produceSuiteResult),
|
|
1230
1230
|
remove: context.bind(ctxRef, function (fieldName) {
|
|
1231
1231
|
bus.emit(Events.REMOVE_FIELD, fieldName);
|
|
1232
1232
|
}),
|
|
@@ -1284,7 +1284,7 @@ function skipWhen(conditional, callback) {
|
|
|
1284
1284
|
// we should skip the test if the parent conditional is true.
|
|
1285
1285
|
isExcludedIndividually() ||
|
|
1286
1286
|
// Otherwise, we should skip the test if the conditional is true.
|
|
1287
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
1287
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
1288
1288
|
}, function () { return callback(); });
|
|
1289
1289
|
});
|
|
1290
1290
|
}
|
|
@@ -1484,7 +1484,7 @@ function include(fieldName) {
|
|
|
1484
1484
|
if (isStringValue(condition)) {
|
|
1485
1485
|
return Boolean(exclusion.tests[condition]);
|
|
1486
1486
|
}
|
|
1487
|
-
return optionalFunctionValue(condition, optionalFunctionValue(
|
|
1487
|
+
return optionalFunctionValue(condition, optionalFunctionValue(produceSuiteResult));
|
|
1488
1488
|
};
|
|
1489
1489
|
}
|
|
1490
1490
|
}
|
|
@@ -1541,7 +1541,7 @@ function omitWhen(conditional, callback) {
|
|
|
1541
1541
|
isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
|
|
1542
1542
|
context.run({
|
|
1543
1543
|
omitted: isOmitted() ||
|
|
1544
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
1544
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
1545
1545
|
}, function () { return callback(); });
|
|
1546
1546
|
});
|
|
1547
1547
|
}
|
|
@@ -1873,6 +1873,6 @@ function warn() {
|
|
|
1873
1873
|
ctx.currentTest.warn();
|
|
1874
1874
|
}
|
|
1875
1875
|
|
|
1876
|
-
var VERSION = "4.2.1
|
|
1876
|
+
var VERSION = "4.2.1";
|
|
1877
1877
|
|
|
1878
1878
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function i(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>Number(t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var o=u((function(t){return null===t}));function s(t){return"function"==typeof t}function a(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return s(t)?t.apply(void 0,n):t}function c(t,n){var e;return null!==(e=a(t))&&void 0!==e?e:n}function f(t){return(t=[].concat(t))[t.length-1]}function l(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(l(u,n)):(u=n(u),o(u)&&e.push(u))}return e}function p(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(p(n)):[].concat(t).concat(n)}),[])}function d(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=c(t[r],[]),t=t[r]}return t}var v=Object.assign;function h(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return f(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,f(n)},removeLevel:function(){n.pop()},reset:t}}var g,E=g||(g={});E[E.DEFAULT=0]="DEFAULT",E[E.SUITE=1]="SUITE",E[E.EACH=2]="EACH",E[E.SKIP_WHEN=3]="SKIP_WHEN",E[E.OMIT_WHEN=4]="OMIT_WHEN",E[E.GROUP=5]="GROUP";var m,y=m||(m={});y[y.ALL=0]="ALL",y[y.EAGER=1]="EAGER";var N=t((function(t,n){return n?null:v({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[m.ALL],testCursor:h()},t)}));function b(){return N.useX().stateRef}function S(){return b().testObjects()}function C(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function R(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function T(){return p(l(S()[0].current,(function(t){return t.isPending()?t:null})))}var A=i();function I(){var t=S()[0].current;return A([t],(function(){return p(t)}))}var k,O=k||(k={});O.Error="error",O.Warning="warning";var _=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=k.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==D||(this.status=t)},t.prototype.warns=function(){return this.severity===k.Warning},t.prototype.setPending=function(){this.setStatus(X)},t.prototype.fail=function(){this.setStatus(this.warns()?P:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=k.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(F)},t.prototype.cancel=function(){this.setStatus(w),C()},t.prototype.reset=function(){this.status=L,C()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(X)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(w)},t.prototype.isSkipped=function(){return this.statusEquals(F)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",F="SKIPPED",G="FAILED",P="WARNING",W="PASSING",X="PENDING",w="CANCELED",D="OMITTED";function U(t,n){throw Error(c(n,t))}function x(t,n){setTimeout((function(){U(t,n)}),0)}function H(t){function n(t,n,u){return r.references.push(),e(t,a(n,u)),function(){return[r.references[t],function(n){return e(t,a(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,s(n=u[n][1])&&n(e,i),s(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function K(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function j(t){return null==t}function M(){return N.useX().testCursor.getCursor()}function q(){return N.useX().testCursor.next()}function B(t,n){if(t=void 0===(t=t.type)?g.DEFAULT:t,s(n)){var e={current:{},prev:{}},r=M();return N.run({isolate:{type:t,keys:e}},(function(){N.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(d(t,M())).reduce((function(t,n){return n instanceof _&&!j(n.key)?(t[n.key]=n,t):t}),{})}(),R((function(t){return d(t,r)[f(r)]=[],t}));var t=n();return N.useX().testCursor.removeLevel(),q(),t}))}}var V,Y=V||(V={});function J(t,n){function e(t){i[t===V.ERRORS?"errorCount":"warnCount"]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(V.ERRORS):n.isWarning()&&e(V.WARNINGS)),i}function z(){return(z=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Z(t,n){return!(!n||t.fieldName!==n)}function $(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!Z(e,i)?r=!0:(r=e.warns(),r=t===V.WARNINGS!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),z({},i&&((r={})[i]=[],r)))}function tt(t){return et(V.ERRORS,t)}function nt(t){return et(V.WARNINGS,t)}function et(t,n){return t=$(t,I(),{fieldName:n}),n?t[n]:t}function rt(t,n){return t=it(V.ERRORS,t,n),n?t[n]:t}function ut(t,n){return t=it(V.WARNINGS,t,n),n?t[n]:t}function it(t,n,e){return n||U("get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),$(t,I(),{group:n,fieldName:e})}function ot(t,n,e){return(e=!t.hasFailures()||e&&!Z(t,e))||(t=t.warns(),e=n===V.WARNINGS!=!!t),!e}function st(t){return ct(V.ERRORS,t)}function at(t){return ct(V.WARNINGS,t)}function ct(t,n){return I().some((function(e){return ot(e,t,n)}))}function ft(t,n){return pt(V.ERRORS,t,n)}function lt(t,n){return pt(V.WARNINGS,t,n)}function pt(t,n,e){return I().some((function(r){return n===r.groupName&&ot(r,t,e)}))}function dt(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}Y.WARNINGS="warnings",Y.ERRORS="errors";var vt=u(dt);var ht=i(20);function gt(){var t=I(),n={stateRef:b()};return ht([t],N.bind(n,(function(){var t=b().suiteName()[0];return v(function(){var t=I(),n=v({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return t.forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=J(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=J(n.groups[r],t))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}(),{getErrors:N.bind(n,tt),getErrorsByGroup:N.bind(n,rt),getWarnings:N.bind(n,nt),getWarningsByGroup:N.bind(n,ut),hasErrors:N.bind(n,st),hasErrorsByGroup:N.bind(n,ft),hasWarnings:N.bind(n,at),hasWarningsByGroup:N.bind(n,lt),isValid:N.bind(n,(function(t){var n=gt(),e=I().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(dt(e=I())||t&&dt(n.tests[t])||function(t){var n=b().optionalFields()[0];return vt(T().filter((function(e){return!(t&&!Z(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=I(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||Z(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}function Et(t){var n=T();return!dt(n)&&(t?n.some((function(n){return Z(n,t)})):vt(n))}var mt=i(20);function yt(){var t=I(),n={stateRef:b()};return mt([t],N.bind(n,(function(){return v({},gt(),{done:N.bind(n,St)})})))}function Nt(t,n,e){return!(s(t)&&(!n||e.tests[n]&&!dt(e.tests[n].testCount)))}function bt(t){return!(Et()&&(!t||Et(t)))}function St(){function t(){return r(gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=yt(),Nt(r,n,e)?e:bt(n)?(t(),e):(Ct(t,n),e)}function Ct(t,n){var e=N.bind({},t);(0,b().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Rt(t){return t.forEach((function(t){return t()}))}function Tt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(It.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!Et(n)&&Array.isArray(e[n])&&Rt(e[n]),Et()||t.emit(It.ALL_RUNNING_TESTS_FINISHED)}})),t.on(It.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!dt(t)){var n={};R((function(e){return l(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var u=t[r];s(u)&&(n[r]=u(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(It.ALL_RUNNING_TESTS_FINISHED,(function(){Rt(b().testCallbacks()[0].doneCallbacks)})),t.on(It.REMOVE_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&(n.cancel(),function(t){R((function(n){return l(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(It.RESET_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&n.reset()}))})),t}function At(){var t=N.useX();return t.bus||U(),t.bus}var It,kt=It||(It={});function Ot(t){return Lt(0,"tests",t)}function _t(t){return Lt(1,"tests",t)}function Lt(t,n,e){var u=N.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ft(t){for(var n in t)if(!0===t[n])return!0;return!1}function Gt(t){U("Wrong arguments passed to group. Group ".concat(t,"."))}kt.TEST_COMPLETED="test_completed",kt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",kt.REMOVE_FIELD="remove_field",kt.RESET_FIELD="reset_field",kt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Ot.group=function(t){return Lt(0,"groups",t)},_t.group=function(t){return Lt(1,"groups",t)};var Pt=u(r);function Wt(t){var n=t.asyncTest,e=t.message;if(n&&s(n.then)){var u=At().emit,i=b(),o=N.bind({stateRef:i},(function(){C(),u(It.TEST_COMPLETED,t)}));i=N.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=M();R((function(e){return d(e,n)[f(n)]=t,e}))}function wt(t){var n=S()[0].prev;if(dt(n))Xt(t),n=t;else{var e=M();if(n=d(n,e)[f(e)],j(t.key))!vt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(N.useX().isolate.type!==g.EACH&&x("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=d(e,M());var r=N.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=c(n,t));else{n=t.key;var u=N.useX().isolate.keys.prev[n];e=t,u&&(e=u),u=e;var i=N.useX().isolate.keys.current;j(i[n])?i[n]=u:x('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Xt(n=e)}}if(e=m.EAGER,e=!(N.useX().mode[0]!==e||!st(t.fieldName)))return q(),t.skip(),t;if(N.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,N.useX().skipped)return!0;var e=N.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){t:{var o=N.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,t))var s=!1===o[t];else{for(s in o)if(!0===o[s]){s=!0;break t}s=!1}}if(s)return!0;if(!0===r.groups[t])return!(i||!Ft(u)&&!1!==u[n])}r=N.useX().exclusion;t:{for(c in(s=N.useX().exclusion).groups)if(s.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!i&&!!Ft(u)&&!a(e[n])}(t))return n.skip(!!N.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),q(),t.isUntested()){n=At(),e=function(t){return N.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&r(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&s(e.then)?(t.asyncTest=e,t.setPending(),Wt(t)):n.emit(It.TEST_COMPLETED,t)}catch(n){U("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&s(n.then)&&(t.setPending(),Wt(t));return t}function Dt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=s(n[1])?n:Q([void 0],n,!0);n=r[0],e=r[1],r=r[2],Pt(t)&&xt("fieldName","string"),s(e)||xt("Test callback","function");var u=N.useX();return wt(n=new _(t,e,{message:n,groupName:u.groupName,key:r}))}var Ut=v(Dt,{memo:function(t){var n=i(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=N.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):wt(r[1])}}(Dt)});function xt(t,n){U("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ht="4.2.1-dev-ee64be";function Kt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],s(r)||U("vest.create: Expected callback to be a function.");var u=Tt(),i=H();return t={stateRef:K(i,{suiteId:e(),suiteName:t}),bus:u},v(N.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),B({type:g.SUITE},(function(){r.apply(void 0,t)})),u.emit(It.SUITE_CALLBACK_DONE_RUNNING),yt()})),{get:N.bind(t,gt),remove:N.bind(t,(function(t){u.emit(It.REMOVE_FIELD,t)})),reset:i.reset,resetField:N.bind(t,(function(t){u.emit(It.RESET_FIELD,t)}))})}function jt(t,n){s(n)||U("each callback must be a function"),B({type:g.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Mt(){var t=m.EAGER;N.useX().mode[0]=t}function qt(t,n){r(t)||Gt("name must be a string"),s(n)||Gt("callback must be a function"),B({type:g.GROUP},(function(){N.run({groupName:t},n)}))}function Bt(t){function n(n){var e=N.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?c(u.tests[t],!0):r(n)?!!u.tests[n]:a(n,a(gt))}}var e=N.useX();return t?(e.inclusion[t]=c(e.exclusion.tests[t],!0),{when:n}):{when:n}}function Vt(t,n){B({type:g.OMIT_WHEN},(function(){N.run({omitted:!!N.useX().omitted||a(t,a(gt))},(function(){return n()}))}))}function Yt(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Jt(t,n){B({type:g.SKIP_WHEN},(function(){N.run({skipped:!!N.useX().skipped||a(t,a(gt))},(function(){return n()}))}))}function zt(){var t=N.useX("warn hook called outside of a running suite.");t.currentTest||U("warn called outside of a test."),t.currentTest.warn()}export{Ht as VERSION,N as context,Kt as create,jt as each,Mt as eager,qt as group,Bt as include,Vt as omitWhen,Ot as only,Yt as optional,_t as skip,Jt as skipWhen,Ut as test,zt as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function i(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),r.length>Number(t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var o=u((function(t){return null===t}));function s(t){return"function"==typeof t}function a(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return s(t)?t.apply(void 0,n):t}function c(t,n){var e;return null!==(e=a(t))&&void 0!==e?e:n}function f(t){return(t=[].concat(t))[t.length-1]}function l(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(l(u,n)):(u=n(u),o(u)&&e.push(u))}return e}function p(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(p(n)):[].concat(t).concat(n)}),[])}function d(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=c(t[r],[]),t=t[r]}return t}var v=Object.assign;function h(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return f(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,f(n)},removeLevel:function(){n.pop()},reset:t}}var g,E=g||(g={});E[E.DEFAULT=0]="DEFAULT",E[E.SUITE=1]="SUITE",E[E.EACH=2]="EACH",E[E.SKIP_WHEN=3]="SKIP_WHEN",E[E.OMIT_WHEN=4]="OMIT_WHEN",E[E.GROUP=5]="GROUP";var m,y=m||(m={});y[y.ALL=0]="ALL",y[y.EAGER=1]="EAGER";var N=t((function(t,n){return n?null:v({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[m.ALL],testCursor:h()},t)}));function b(){return N.useX().stateRef}function S(){return b().testObjects()}function C(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function R(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function T(){return p(l(S()[0].current,(function(t){return t.isPending()?t:null})))}var A=i();function I(){var t=S()[0].current;return A([t],(function(){return p(t)}))}var k,O=k||(k={});O.Error="error",O.Warning="warning";var _=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=k.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==D||(this.status=t)},t.prototype.warns=function(){return this.severity===k.Warning},t.prototype.setPending=function(){this.setStatus(X)},t.prototype.fail=function(){this.setStatus(this.warns()?P:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=k.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(F)},t.prototype.cancel=function(){this.setStatus(w),C()},t.prototype.reset=function(){this.status=L,C()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(X)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(L)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(w)},t.prototype.isSkipped=function(){return this.statusEquals(F)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.statusEquals=function(t){return this.status===t},t}(),L="UNTESTED",F="SKIPPED",G="FAILED",P="WARNING",W="PASSING",X="PENDING",w="CANCELED",D="OMITTED";function U(t,n){throw Error(c(n,t))}function x(t,n){setTimeout((function(){U(t,n)}),0)}function H(t){function n(t,n,u){return r.references.push(),e(t,a(n,u)),function(){return[r.references[t],function(n){return e(t,a(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,s(n=u[n][1])&&n(e,i),s(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function K(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function j(t){return null==t}function M(){return N.useX().testCursor.getCursor()}function q(){return N.useX().testCursor.next()}function B(t,n){if(t=void 0===(t=t.type)?g.DEFAULT:t,s(n)){var e={current:{},prev:{}},r=M();return N.run({isolate:{type:t,keys:e}},(function(){N.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(d(t,M())).reduce((function(t,n){return n instanceof _&&!j(n.key)?(t[n.key]=n,t):t}),{})}(),R((function(t){return d(t,r)[f(r)]=[],t}));var t=n();return N.useX().testCursor.removeLevel(),q(),t}))}}var V,Y=V||(V={});function J(t,n){function e(t){i[t===V.ERRORS?"errorCount":"warnCount"]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(V.ERRORS):n.isWarning()&&e(V.WARNINGS)),i}function z(){return(z=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function Q(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Z(t,n){return!(!n||t.fieldName!==n)}function $(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!Z(e,i)?r=!0:(r=e.warns(),r=t===V.WARNINGS!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),z({},i&&((r={})[i]=[],r)))}function tt(t){return et(V.ERRORS,t)}function nt(t){return et(V.WARNINGS,t)}function et(t,n){return t=$(t,I(),{fieldName:n}),n?t[n]:t}function rt(t,n){return t=it(V.ERRORS,t,n),n?t[n]:t}function ut(t,n){return t=it(V.WARNINGS,t,n),n?t[n]:t}function it(t,n,e){return n||U("get".concat(t[0].toUpperCase()).concat(t.slice(1),"ByGroup requires a group name. Received `").concat(n,"` instead.")),$(t,I(),{group:n,fieldName:e})}function ot(t,n,e){return(e=!t.hasFailures()||e&&!Z(t,e))||(t=t.warns(),e=n===V.WARNINGS!=!!t),!e}function st(t){return ct(V.ERRORS,t)}function at(t){return ct(V.WARNINGS,t)}function ct(t,n){return I().some((function(e){return ot(e,t,n)}))}function ft(t,n){return pt(V.ERRORS,t,n)}function lt(t,n){return pt(V.WARNINGS,t,n)}function pt(t,n,e){return I().some((function(r){return n===r.groupName&&ot(r,t,e)}))}function dt(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}Y.WARNINGS="warnings",Y.ERRORS="errors";var vt=u(dt);var ht=i(20);function gt(){var t=I(),n={stateRef:b()};return ht([t],N.bind(n,(function(){var t=b().suiteName()[0];return v(function(){var t=I(),n=v({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return t.forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=J(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=J(n.groups[r],t))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}(),{getErrors:N.bind(n,tt),getErrorsByGroup:N.bind(n,rt),getWarnings:N.bind(n,nt),getWarningsByGroup:N.bind(n,ut),hasErrors:N.bind(n,st),hasErrorsByGroup:N.bind(n,ft),hasWarnings:N.bind(n,at),hasWarningsByGroup:N.bind(n,lt),isValid:N.bind(n,(function(t){var n=gt(),e=I().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(dt(e=I())||t&&dt(n.tests[t])||function(t){var n=b().optionalFields()[0];return vt(T().filter((function(e){return!(t&&!Z(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=I(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||Z(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}function Et(t){var n=T();return!dt(n)&&(t?n.some((function(n){return Z(n,t)})):vt(n))}var mt=i(20);function yt(){var t=I(),n={stateRef:b()};return mt([t],N.bind(n,(function(){return v({},gt(),{done:N.bind(n,St)})})))}function Nt(t,n,e){return!(s(t)&&(!n||e.tests[n]&&!dt(e.tests[n].testCount)))}function bt(t){return!(Et()&&(!t||Et(t)))}function St(){function t(){return r(gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=yt(),Nt(r,n,e)?e:bt(n)?(t(),e):(Ct(t,n),e)}function Ct(t,n){var e=N.bind({},t);(0,b().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Rt(t){return t.forEach((function(t){return t()}))}function Tt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(It.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!Et(n)&&Array.isArray(e[n])&&Rt(e[n]),Et()||t.emit(It.ALL_RUNNING_TESTS_FINISHED)}})),t.on(It.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!dt(t)){var n={};R((function(e){return l(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var u=t[r];s(u)&&(n[r]=u(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(It.ALL_RUNNING_TESTS_FINISHED,(function(){Rt(b().testCallbacks()[0].doneCallbacks)})),t.on(It.REMOVE_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&(n.cancel(),function(t){R((function(n){return l(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(It.RESET_FIELD,(function(t){I().forEach((function(n){Z(n,t)&&n.reset()}))})),t}function At(){var t=N.useX();return t.bus||U(),t.bus}var It,kt=It||(It={});function Ot(t){return Lt(0,"tests",t)}function _t(t){return Lt(1,"tests",t)}function Lt(t,n,e){var u=N.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ft(t){for(var n in t)if(!0===t[n])return!0;return!1}function Gt(t){U("Wrong arguments passed to group. Group ".concat(t,"."))}kt.TEST_COMPLETED="test_completed",kt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",kt.REMOVE_FIELD="remove_field",kt.RESET_FIELD="reset_field",kt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Ot.group=function(t){return Lt(0,"groups",t)},_t.group=function(t){return Lt(1,"groups",t)};var Pt=u(r);function Wt(t){var n=t.asyncTest,e=t.message;if(n&&s(n.then)){var u=At().emit,i=b(),o=N.bind({stateRef:i},(function(){C(),u(It.TEST_COMPLETED,t)}));i=N.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Xt(t){var n=M();R((function(e){return d(e,n)[f(n)]=t,e}))}function wt(t){var n=S()[0].prev;if(dt(n))Xt(t),n=t;else{var e=M();if(n=d(n,e)[f(e)],j(t.key))!vt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(N.useX().isolate.type!==g.EACH&&x("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S(),n=t[1],e=t[0].prev;t=d(e,M());var r=N.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Xt(n=c(n,t));else{n=t.key;var u=N.useX().isolate.keys.prev[n];e=t,u&&(e=u),u=e;var i=N.useX().isolate.keys.current;j(i[n])?i[n]=u:x('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Xt(n=e)}}if(e=m.EAGER,e=!(N.useX().mode[0]!==e||!st(t.fieldName)))return q(),t.skip(),t;if(N.useX().omitted)return n.omit(),q(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,N.useX().skipped)return!0;var e=N.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){t:{var o=N.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,t))var s=!1===o[t];else{for(s in o)if(!0===o[s]){s=!0;break t}s=!1}}if(s)return!0;if(!0===r.groups[t])return!(i||!Ft(u)&&!1!==u[n])}r=N.useX().exclusion;t:{for(c in(s=N.useX().exclusion).groups)if(s.groups[c]){var c=!0;break t}c=!1}return!(!c||t&&t in r.groups&&r.groups[t])||!i&&!!Ft(u)&&!a(e[n])}(t))return n.skip(!!N.useX().skipped),q(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Xt(t),q(),t.isUntested()){n=At(),e=function(t){return N.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&r(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&s(e.then)?(t.asyncTest=e,t.setPending(),Wt(t)):n.emit(It.TEST_COMPLETED,t)}catch(n){U("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&s(n.then)&&(t.setPending(),Wt(t));return t}function Dt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=s(n[1])?n:Q([void 0],n,!0);n=r[0],e=r[1],r=r[2],Pt(t)&&xt("fieldName","string"),s(e)||xt("Test callback","function");var u=N.useX();return wt(n=new _(t,e,{message:n,groupName:u.groupName,key:r}))}var Ut=v(Dt,{memo:function(t){var n=i(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=N.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):wt(r[1])}}(Dt)});function xt(t,n){U("Incompatible params passed to test function. ".concat(t," must be a ").concat(n))}var Ht="4.2.1";function Kt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],s(r)||U("vest.create: Expected callback to be a function.");var u=Tt(),i=H();return t={stateRef:K(i,{suiteId:e(),suiteName:t}),bus:u},v(N.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),B({type:g.SUITE},(function(){r.apply(void 0,t)})),u.emit(It.SUITE_CALLBACK_DONE_RUNNING),yt()})),{get:N.bind(t,gt),remove:N.bind(t,(function(t){u.emit(It.REMOVE_FIELD,t)})),reset:i.reset,resetField:N.bind(t,(function(t){u.emit(It.RESET_FIELD,t)}))})}function jt(t,n){s(n)||U("each callback must be a function"),B({type:g.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Mt(){var t=m.EAGER;N.useX().mode[0]=t}function qt(t,n){r(t)||Gt("name must be a string"),s(n)||Gt("callback must be a function"),B({type:g.GROUP},(function(){N.run({groupName:t},n)}))}function Bt(t){function n(n){var e=N.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?c(u.tests[t],!0):r(n)?!!u.tests[n]:a(n,a(gt))}}var e=N.useX();return t?(e.inclusion[t]=c(e.exclusion.tests[t],!0),{when:n}):{when:n}}function Vt(t,n){B({type:g.OMIT_WHEN},(function(){N.run({omitted:!!N.useX().omitted||a(t,a(gt))},(function(){return n()}))}))}function Yt(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Jt(t,n){B({type:g.SKIP_WHEN},(function(){N.run({skipped:!!N.useX().skipped||a(t,a(gt))},(function(){return n()}))}))}function zt(){var t=N.useX("warn hook called outside of a running suite.");t.currentTest||U("warn called outside of a test."),t.currentTest.warn()}export{Ht as VERSION,N as context,Kt as create,jt as each,Mt as eager,qt as group,Bt as include,Vt as omitWhen,Ot as only,Yt as optional,_t as skip,Jt as skipWhen,Ut as test,zt as warn};
|
|
@@ -1497,7 +1497,7 @@
|
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
1499
|
var cache$1 = createCache(20);
|
|
1500
|
-
function
|
|
1500
|
+
function produceSuiteResult() {
|
|
1501
1501
|
var testObjects = useTestsFlat();
|
|
1502
1502
|
var ctxRef = { stateRef: useStateRef() };
|
|
1503
1503
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
@@ -1512,7 +1512,7 @@
|
|
|
1512
1512
|
hasWarnings: context.bind(ctxRef, hasWarnings),
|
|
1513
1513
|
hasWarningsByGroup: context.bind(ctxRef, hasWarningsByGroup),
|
|
1514
1514
|
isValid: context.bind(ctxRef, function (fieldName) {
|
|
1515
|
-
return isValid(
|
|
1515
|
+
return isValid(produceSuiteResult(), fieldName);
|
|
1516
1516
|
}),
|
|
1517
1517
|
suiteName: suiteName
|
|
1518
1518
|
});
|
|
@@ -1540,7 +1540,7 @@
|
|
|
1540
1540
|
var testObjects = useTestsFlat();
|
|
1541
1541
|
var ctxRef = { stateRef: useStateRef() };
|
|
1542
1542
|
return cache([testObjects], context.bind(ctxRef, function () {
|
|
1543
|
-
return assign({},
|
|
1543
|
+
return assign({}, produceSuiteResult(), {
|
|
1544
1544
|
done: context.bind(ctxRef, done)
|
|
1545
1545
|
});
|
|
1546
1546
|
}));
|
|
@@ -1573,7 +1573,7 @@
|
|
|
1573
1573
|
if (shouldSkipDoneRegistration(callback, fieldName, output)) {
|
|
1574
1574
|
return output;
|
|
1575
1575
|
}
|
|
1576
|
-
var doneCallback = function () { return callback(
|
|
1576
|
+
var doneCallback = function () { return callback(produceSuiteResult()); };
|
|
1577
1577
|
if (shouldRunDoneCallback(fieldName)) {
|
|
1578
1578
|
doneCallback();
|
|
1579
1579
|
return output;
|
|
@@ -1774,7 +1774,7 @@
|
|
|
1774
1774
|
// Return the result
|
|
1775
1775
|
return produceFullResult();
|
|
1776
1776
|
}), {
|
|
1777
|
-
get: context.bind(ctxRef,
|
|
1777
|
+
get: context.bind(ctxRef, produceSuiteResult),
|
|
1778
1778
|
remove: context.bind(ctxRef, function (fieldName) {
|
|
1779
1779
|
bus.emit(Events.REMOVE_FIELD, fieldName);
|
|
1780
1780
|
}),
|
|
@@ -1832,7 +1832,7 @@
|
|
|
1832
1832
|
// we should skip the test if the parent conditional is true.
|
|
1833
1833
|
isExcludedIndividually() ||
|
|
1834
1834
|
// Otherwise, we should skip the test if the conditional is true.
|
|
1835
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
1835
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
1836
1836
|
}, function () { return callback(); });
|
|
1837
1837
|
});
|
|
1838
1838
|
}
|
|
@@ -2032,7 +2032,7 @@
|
|
|
2032
2032
|
if (isStringValue(condition)) {
|
|
2033
2033
|
return Boolean(exclusion.tests[condition]);
|
|
2034
2034
|
}
|
|
2035
|
-
return optionalFunctionValue(condition, optionalFunctionValue(
|
|
2035
|
+
return optionalFunctionValue(condition, optionalFunctionValue(produceSuiteResult));
|
|
2036
2036
|
};
|
|
2037
2037
|
}
|
|
2038
2038
|
}
|
|
@@ -2089,7 +2089,7 @@
|
|
|
2089
2089
|
isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
|
|
2090
2090
|
context.run({
|
|
2091
2091
|
omitted: isOmitted() ||
|
|
2092
|
-
optionalFunctionValue(conditional, optionalFunctionValue(
|
|
2092
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceSuiteResult))
|
|
2093
2093
|
}, function () { return callback(); });
|
|
2094
2094
|
});
|
|
2095
2095
|
}
|
|
@@ -2419,7 +2419,7 @@
|
|
|
2419
2419
|
ctx.currentTest.warn();
|
|
2420
2420
|
}
|
|
2421
2421
|
|
|
2422
|
-
var VERSION = "4.2.1
|
|
2422
|
+
var VERSION = "4.2.1";
|
|
2423
2423
|
|
|
2424
2424
|
exports.VERSION = VERSION;
|
|
2425
2425
|
exports.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function N(n){return!!n===n}function m(n){return"number"==typeof n}function y(n,t){return n.length===Number(t)}function E(n){if(n){if(m(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}function b(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return!!c(n)&&0>Number(n)}function C(n){return!!n}function O(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function R(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function I(n,t){return n.length>Number(t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function F(n){for(var e in gt){var r=gt[e];t(r)&&n(e,r)}}function L(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function w(n,t){var e;return null!==(e=L(n))&&void 0!==e?e:t}function P(n,t){throw Error(w(t,n))}function W(n,t){setTimeout((function(){P(n,t)}),0)}function x(n){function t(t,u){var i,o,s=e();return t=Vn({},s||{},null!==(i=L(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=r.ctx)&&void 0!==t?t:P(w(n,"Context was used after it was closed"))}}}function G(){return null}function X(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function D(n,t){return n={pass:n},t&&(n.message=t),n}function q(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return N(n)||n&&N(n.pass)||P("Incorrect return value for rule: "+JSON.stringify(n)),N(n)?D(n):D(n.pass,L.apply(void 0,X([n.message,t,e],r,!1)))}function K(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=q.apply(void 0,X([Nt.run({value:n},(function(){return e.apply(void 0,X([n],u,!1))})),r,n],u,!1))).pass){if(!E(i.message))throw i.message;P("enforce/".concat(r," failed with ").concat(JSON.stringify(n)))}return t}}var e={};if(!U())return F((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=gt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function B(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=gt[r];e.push((function(n){return q.apply(void 0,X([o.apply(void 0,X([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return w(j(e,(function(e,r){var u,i=Nt.run({value:n},(function(){return e(n)}));i.pass||r(D(!!i.pass,null!==(u=L(t,n,i.message))&&void 0!==u?u:i.message))})),D(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return gt[e]?n(e):t[e]}}):(F((function(t){s[t]=n(t)})),s)}}(n)}function H(n){function t(n){return e.findIndex((function(t){var e=t[0];return y(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),I(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function M(n){return(n=[].concat(n))[n.length-1]}function V(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(V(u,t)):(u=t(u),Jn(u)&&e.push(u))}return e}function J(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function Y(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=w(n[r],[]),n=n[r]}return n}function z(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return M(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,M(t)},removeLevel:function(){t.pop()},reset:n}}function Q(){return St.useX().stateRef}function Z(){return Q().testObjects()}function $(){(0,Z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function nn(n){(0,Z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function tn(){return J(V(Z()[0].current,(function(n){return n.isPending()?n:null})))}function en(){var n=Z()[0].current;return Tt([n],(function(){return J(n)}))}function rn(n){function e(n,t,e){return u.references.push(),r(n,L(t,e)),function(){return[u.references[n],function(t){return r(n,L(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function un(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function on(){return St.useX().testCursor.getCursor()}function sn(){return St.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Bn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return St.run({isolate:{type:n,keys:r}},(function(){St.useX().testCursor.addLevel(),r.prev=function(){var n=Z()[0].prev;return[].concat(Y(n,on())).reduce((function(n,t){return t instanceof Ot&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),nn((function(n){return Y(n,u)[M(u)]=[],n}));var n=e();return St.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){function e(n){i[n===Ct.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Ct.ERRORS):t.isWarning()&&e(Ct.WARNINGS)),i}function fn(n,t){return!(!t||n.fieldName!==t)}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!fn(e,i)?r=!0:(r=e.warns(),r=n===Ct.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function pn(n){return vn(Ct.ERRORS,n)}function dn(n){return vn(Ct.WARNINGS,n)}function vn(n,t){return n=ln(n,en(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=Nn(Ct.ERRORS,n,t),t?n[t]:n}function gn(n,t){return n=Nn(Ct.WARNINGS,n,t),t?n[t]:n}function Nn(n,t,e){return t||P("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,en(),{group:t,fieldName:e})}function mn(n,t,e){return(e=!n.hasFailures()||e&&!fn(n,e))||(n=n.warns(),e=t===Ct.WARNINGS!=!!n),!e}function yn(n){return bn(Ct.ERRORS,n)}function En(n){return bn(Ct.WARNINGS,n)}function bn(n,t){return en().some((function(e){return mn(e,n,t)}))}function Sn(n,t){return Cn(Ct.ERRORS,n,t)}function Tn(n,t){return Cn(Ct.WARNINGS,n,t)}function Cn(n,t,e){return en().some((function(r){return t===r.groupName&&mn(r,n,e)}))}function On(){var n=en(),t={stateRef:Q()};return Wt([n],St.bind(t,(function(){var n=Q().suiteName()[0];return Vn(function(){var n=en(),t=Vn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=cn(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=cn(t.groups[r],n))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}(),{getErrors:St.bind(t,pn),getErrorsByGroup:St.bind(t,hn),getWarnings:St.bind(t,dn),getWarningsByGroup:St.bind(t,gn),hasErrors:St.bind(t,yn),hasErrorsByGroup:St.bind(t,Sn),hasWarnings:St.bind(t,En),hasWarningsByGroup:St.bind(t,Tn),isValid:St.bind(t,(function(n){var t=On(),e=en().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=en())||n&&E(t.tests[n])||function(n){var t=Q().optionalFields()[0];return st(tn().filter((function(e){return!(n&&!fn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=en(),e=Q().optionalFields()[0];return t.every((function(t){return!(!n||fn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function Rn(n){var t=tn();return!E(t)&&(n?t.some((function(t){return fn(t,n)})):st(t))}function In(){var n=en(),t={stateRef:Q()};return xt([n],St.bind(t,(function(){return Vn({},On(),{done:St.bind(t,Gt)})})))}function kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function An(n){return!(Rn()&&(!n||Rn(n)))}function _n(n,t){var e=St.bind({},n);(0,Q().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Fn(n){return n.forEach((function(n){return n()}))}function Ln(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Q().testCallbacks()[0].fieldCallbacks;t&&!Rn(t)&&p(e[t])&&Fn(e[t]),Rn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Q().optionalFields()[0];if(!E(n)){var e={};nn((function(r){return V(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){Fn(Q().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&(t.cancel(),function(n){nn((function(t){return V(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&t.reset()}))})),n}function wn(){var n=St.useX();return n.bus||P(),n.bus}function Pn(n){return xn(0,"tests",n)}function Wn(n){return xn(1,"tests",n)}function xn(n,t,e){var r=St.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Xn(n){P("Wrong arguments passed to group. Group ".concat(n,"."))}function Un(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=wn().emit,i=Q(),s=St.bind({stateRef:i},(function(){$(),u(Pt.TEST_COMPLETED,n)}));i=St.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Dn(n){var t=on();nn((function(e){return Y(e,t)[M(t)]=n,e}))}function qn(n){var e=Z()[0].prev;if(E(e))Dn(n),e=n;else{var r=on();if(e=Y(e,r)[M(r)],i(n.key))!st(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(St.useX().isolate.type!==Bn.EACH&&W("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(e.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=Z(),t=n[1],e=n[0].prev;n=Y(e,on());var r=St.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Dn(e=w(e,n));else{e=n.key;var s=St.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=St.useX().isolate.keys.current;i(a[e])?a[e]=s:W('Encountered the same test key "'.concat(e,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Dn(e=r)}}if(r=Mn.EAGER,r=!(St.useX().mode[0]!==r||!yn(n.fieldName)))return sn(),n.skip(),n;if(St.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,St.useX().skipped)return!0;var e=St.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=St.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Gn(u)&&!1!==u[t])}r=St.useX().exclusion;n:{for(a in(s=St.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Gn(u)&&!L(e[t])}(n))return e.skip(!!St.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Dn(n),sn(),n.isUntested()){e=wn(),r=function(n){return St.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Un(n)):e.emit(Pt.TEST_COMPLETED,n)}catch(t){P("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Un(n));return n}function Kn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:X([void 0],e,!0);e=u[0],r=u[1],u=u[2],lt(n)&&jn("fieldName","string"),t(r)||jn("Test callback","function");var i=St.useX();return qn(e=new Ot(n,r,{message:e,groupName:i.groupName,key:u}))}function jn(n,t){P("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var Bn,Hn,Mn,Vn=Object.assign,Jn=e(r),Yn=e(u),zn=e(i),Qn=e(s),Zn=e(a),$n=e(c),nt=e(p),tt=e(d),et=e(h),rt=e(g),ut=e(N),it=e(m),ot=e(y),st=e(E),at=e(b),ct=e(S),ft=e(T),lt=e(o),pt=e(C),dt=e(O),vt=e(k),ht=e(A),gt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Qn,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:N,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:pt,isKeyOf:b,isNaN:S,isNegative:T,isNotArray:nt,isNotBetween:et,isNotBlank:rt,isNotBoolean:ut,isNotEmpty:st,isNotKeyOf:at,isNotNaN:ct,isNotNull:Jn,isNotNullish:zn,isNotNumber:it,isNotNumeric:$n,isNotString:lt,isNotUndefined:Yn,isNotValueOf:dt,isNull:r,isNullish:i,isNumber:m,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:ft,isString:o,isTruthy:C,isUndefined:u,isValueOf:O,lengthEquals:y,lengthNotEquals:ot,lessThan:R,lessThanOrEquals:v,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:R,lte:v,matches:k,notEquals:Zn,notInside:tt,notMatches:vt,numberEquals:A,numberNotEquals:ht,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:_},Nt=x((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Vn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Vn(e,{parent:G})})),mt=function(){return(mt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},yt=(Hn={context:function(){return Nt.useX()},extend:function(n){Vn(gt,n)}},U()?new Proxy(Vn(K,Hn),{get:function(n,t){return t in n?n[t]:gt[t]?B(t):void 0}}):(F((function(n){Hn[n]=B(n)})),Vn(K,Hn))),Et=function(n){return function(){return"".concat(n++)}}(0);!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(Bn||(Bn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Mn||(Mn={}));var bt,St=x((function(n,t){return t?null:Vn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Bn.DEFAULT,keys:{current:{},prev:{}}},mode:[Mn.ALL],testCursor:z()},n)})),Tt=H();!function(n){n.Error="error",n.Warning="warning"}(bt||(bt={}));var Ct,Ot=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Et(),this.severity=bt.Error,this.status=Rt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==wt||(this.status=n)},n.prototype.warns=function(){return this.severity===bt.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?At:kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(_t)},n.prototype.warn=function(){this.severity=bt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(It)},n.prototype.cancel=function(){this.setStatus(Lt),$()},n.prototype.reset=function(){this.status=Rt,$()},n.prototype.omit=function(){this.setStatus(wt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(wt)},n.prototype.isUntested=function(){return this.statusEquals(Rt)},n.prototype.isFailing=function(){return this.statusEquals(kt)},n.prototype.isCanceled=function(){return this.statusEquals(Lt)},n.prototype.isSkipped=function(){return this.statusEquals(It)},n.prototype.isPassing=function(){return this.statusEquals(_t)},n.prototype.isWarning=function(){return this.statusEquals(At)},n.prototype.statusEquals=function(n){return this.status===n},n}(),Rt="UNTESTED",It="SKIPPED",kt="FAILED",At="WARNING",_t="PASSING",Ft="PENDING",Lt="CANCELED",wt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Ct||(Ct={}));var Pt,Wt=H(20),xt=H(20),Gt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=In(),kn(e,n,t))return t;var r=function(){return e(On())};return An(n)?(r(),t):(_n(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Pt||(Pt={})),Pn.group=function(n){return xn(0,"groups",n)},Wn.group=function(n){return xn(1,"groups",n)};var Xt=Vn(Kn,{memo:function(n){var t=H(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=St.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Q().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):qn(r[1])}}(Kn)});n.VERSION="4.2.1-dev-ee64be",n.context=St,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],t(r)||P("vest.create: Expected callback to be a function.");var u=Ln(),i=rn();return n={stateRef:un(i,{suiteId:Et(),suiteName:n}),bus:u},Vn(St.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Bn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),In()})),{get:St.bind(n,On),remove:St.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:St.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){t(e)||P("each callback must be a function"),an({type:Bn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Mn.EAGER;St.useX().mode[0]=n},n.enforce=yt,n.group=function(n,e){o(n)||Xn("name must be a string"),t(e)||Xn("callback must be a function"),an({type:Bn.GROUP},(function(){St.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=St.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?w(r.tests[n],!0):o(t)?!!r.tests[t]:L(t,L(On))}}var e=St.useX();return n?(e.inclusion[n]=w(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Bn.OMIT_WHEN},(function(){St.run({omitted:!!St.useX().omitted||L(n,L(On))},(function(){return t()}))}))},n.only=Pn,n.optional=function(n){(0,Q().optionalFields()[1])((function(t){if(p(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Wn,n.skipWhen=function(n,t){an({type:Bn.SKIP_WHEN},(function(){St.run({skipped:!!St.useX().skipped||L(n,L(On))},(function(){return t()}))}))},n.test=Xt,n.warn=function(){var n=St.useX("warn hook called outside of a running suite.");n.currentTest||P("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)>=Number(t)}function p(n){return!!Array.isArray(n)}function d(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function v(n,t){return c(n)&&c(t)&&Number(n)<=Number(t)}function h(n,t,e){return l(n,t)&&v(n,e)}function g(n){return i(n)||o(n)&&!n.trim()}function N(n){return!!n===n}function m(n){return"number"==typeof n}function y(n,t){return n.length===Number(t)}function E(n){if(n){if(m(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}function b(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return!!c(n)&&0>Number(n)}function C(n){return!!n}function O(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function R(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function I(n,t){return n.length>Number(t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function _(n,t){return o(n)&&o(t)&&n.startsWith(t)}function F(n){for(var e in gt){var r=gt[e];t(r)&&n(e,r)}}function L(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function w(n,t){var e;return null!==(e=L(n))&&void 0!==e?e:t}function P(n,t){throw Error(w(t,n))}function W(n,t){setTimeout((function(){P(n,t)}),0)}function x(n){function t(t,u){var i,o,s=e();return t=Vn({},s||{},null!==(i=L(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=r.ctx)&&void 0!==t?t:P(w(n,"Context was used after it was closed"))}}}function G(){return null}function X(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function U(){try{return t(Proxy)}catch(n){return!1}}function D(n,t){return n={pass:n},t&&(n.message=t),n}function q(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return N(n)||n&&N(n.pass)||P("Incorrect return value for rule: "+JSON.stringify(n)),N(n)?D(n):D(n.pass,L.apply(void 0,X([n.message,t,e],r,!1)))}function K(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=q.apply(void 0,X([Nt.run({value:n},(function(){return e.apply(void 0,X([n],u,!1))})),r,n],u,!1))).pass){if(!E(i.message))throw i.message;P("enforce/".concat(r," failed with ").concat(JSON.stringify(n)))}return t}}var e={};if(!U())return F((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=gt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function B(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=gt[r];e.push((function(n){return q.apply(void 0,X([o.apply(void 0,X([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return w(j(e,(function(e,r){var u,i=Nt.run({value:n},(function(){return e(n)}));i.pass||r(D(!!i.pass,null!==(u=L(t,n,i.message))&&void 0!==u?u:i.message))})),D(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return U()?s=new Proxy(s,{get:function(t,e){return gt[e]?n(e):t[e]}}):(F((function(t){s[t]=n(t)})),s)}}(n)}function H(n){function t(n){return e.findIndex((function(t){var e=t[0];return y(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),I(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function M(n){return(n=[].concat(n))[n.length-1]}function V(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(V(u,t)):(u=t(u),Jn(u)&&e.push(u))}return e}function J(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(J(t)):[].concat(n).concat(t)}),[])}function Y(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=w(n[r],[]),n=n[r]}return n}function z(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return M(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,M(t)},removeLevel:function(){t.pop()},reset:n}}function Q(){return St.useX().stateRef}function Z(){return Q().testObjects()}function $(){(0,Z()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function nn(n){(0,Z()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function tn(){return J(V(Z()[0].current,(function(n){return n.isPending()?n:null})))}function en(){var n=Z()[0].current;return Tt([n],(function(){return J(n)}))}function rn(n){function e(n,t,e){return u.references.push(),r(n,L(t,e)),function(){return[u.references[n],function(t){return r(n,L(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function un(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function on(){return St.useX().testCursor.getCursor()}function sn(){return St.useX().testCursor.next()}function an(n,e){if(n=void 0===(n=n.type)?Bn.DEFAULT:n,t(e)){var r={current:{},prev:{}},u=on();return St.run({isolate:{type:n,keys:r}},(function(){St.useX().testCursor.addLevel(),r.prev=function(){var n=Z()[0].prev;return[].concat(Y(n,on())).reduce((function(n,t){return t instanceof Ot&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),nn((function(n){return Y(n,u)[M(u)]=[],n}));var n=e();return St.useX().testCursor.removeLevel(),sn(),n}))}}function cn(n,t){function e(n){i[n===Ct.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Ct.ERRORS):t.isWarning()&&e(Ct.WARNINGS)),i}function fn(n,t){return!(!t||n.fieldName!==t)}function ln(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){if(u&&e.groupName!==u)var r=!0;else i&&!fn(e,i)?r=!0:(r=e.warns(),r=n===Ct.WARNINGS!=!!r);return r||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mt({},i&&((r={})[i]=[],r)))}function pn(n){return vn(Ct.ERRORS,n)}function dn(n){return vn(Ct.WARNINGS,n)}function vn(n,t){return n=ln(n,en(),{fieldName:t}),t?n[t]:n}function hn(n,t){return n=Nn(Ct.ERRORS,n,t),t?n[t]:n}function gn(n,t){return n=Nn(Ct.WARNINGS,n,t),t?n[t]:n}function Nn(n,t,e){return t||P("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),ln(n,en(),{group:t,fieldName:e})}function mn(n,t,e){return(e=!n.hasFailures()||e&&!fn(n,e))||(n=n.warns(),e=t===Ct.WARNINGS!=!!n),!e}function yn(n){return bn(Ct.ERRORS,n)}function En(n){return bn(Ct.WARNINGS,n)}function bn(n,t){return en().some((function(e){return mn(e,n,t)}))}function Sn(n,t){return Cn(Ct.ERRORS,n,t)}function Tn(n,t){return Cn(Ct.WARNINGS,n,t)}function Cn(n,t,e){return en().some((function(r){return t===r.groupName&&mn(r,n,e)}))}function On(){var n=en(),t={stateRef:Q()};return Wt([n],St.bind(t,(function(){var n=Q().suiteName()[0];return Vn(function(){var n=en(),t=Vn({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=cn(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=cn(t.groups[r],n))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}(),{getErrors:St.bind(t,pn),getErrorsByGroup:St.bind(t,hn),getWarnings:St.bind(t,dn),getWarningsByGroup:St.bind(t,gn),hasErrors:St.bind(t,yn),hasErrorsByGroup:St.bind(t,Sn),hasWarnings:St.bind(t,En),hasWarningsByGroup:St.bind(t,Tn),isValid:St.bind(t,(function(n){var t=On(),e=en().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(e=!!n&&!!e[n])?n=!0:t.hasErrors(n)?n=!1:n=!(E(e=en())||n&&E(t.tests[n])||function(n){var t=Q().optionalFields()[0];return st(tn().filter((function(e){return!(n&&!fn(e,n))&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=en(),e=Q().optionalFields()[0];return t.every((function(t){return!(!n||fn(t,n))||!0===e[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n})),suiteName:n})})))}function Rn(n){var t=tn();return!E(t)&&(n?t.some((function(t){return fn(t,n)})):st(t))}function In(){var n=en(),t={stateRef:Q()};return xt([n],St.bind(t,(function(){return Vn({},On(),{done:St.bind(t,Gt)})})))}function kn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!E(r.tests[e].testCount)))}function An(n){return!(Rn()&&(!n||Rn(n)))}function _n(n,t){var e=St.bind({},n);(0,Q().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Fn(n){return n.forEach((function(n){return n()}))}function Ln(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Pt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=Q().testCallbacks()[0].fieldCallbacks;t&&!Rn(t)&&p(e[t])&&Fn(e[t]),Rn()||n.emit(Pt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Pt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=Q().optionalFields()[0];if(!E(n)){var e={};nn((function(r){return V(r,(function(r){var u=r.fieldName;if(e.hasOwnProperty(u))e[r.fieldName]&&r.omit();else{var i=n[u];t(i)&&(e[u]=i(),e[r.fieldName]&&r.omit())}return r}))}))}}()})),n.on(Pt.ALL_RUNNING_TESTS_FINISHED,(function(){Fn(Q().testCallbacks()[0].doneCallbacks)})),n.on(Pt.REMOVE_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&(t.cancel(),function(n){nn((function(t){return V(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Pt.RESET_FIELD,(function(n){en().forEach((function(t){fn(t,n)&&t.reset()}))})),n}function wn(){var n=St.useX();return n.bus||P(),n.bus}function Pn(n){return xn(0,"tests",n)}function Wn(n){return xn(1,"tests",n)}function xn(n,t,e){var r=St.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Gn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Xn(n){P("Wrong arguments passed to group. Group ".concat(n,"."))}function Un(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=wn().emit,i=Q(),s=St.bind({stateRef:i},(function(){$(),u(Pt.TEST_COMPLETED,n)}));i=St.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Dn(n){var t=on();nn((function(e){return Y(e,t)[M(t)]=n,e}))}function qn(n){var e=Z()[0].prev;if(E(e))Dn(n),e=n;else{var r=on();if(e=Y(e,r)[M(r)],i(n.key))!st(r=e)||r.fieldName===n.fieldName&&r.groupName===n.groupName||(St.useX().isolate.type!==Bn.EACH&&W("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(e.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=Z(),t=n[1],e=n[0].prev;n=Y(e,on());var r=St.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),Dn(e=w(e,n));else{e=n.key;var s=St.useX().isolate.keys.prev[e];r=n,s&&(r=s),s=r;var a=St.useX().isolate.keys.current;i(a[e])?a[e]=s:W('Encountered the same test key "'.concat(e,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Dn(e=r)}}if(r=Mn.EAGER,r=!(St.useX().mode[0]!==r||!yn(n.fieldName)))return sn(),n.skip(),n;if(St.useX().omitted)return e.omit(),sn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,St.useX().skipped)return!0;var e=St.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){n:{var o=St.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,n))var s=!1===o[n];else{for(s in o)if(!0===o[s]){s=!0;break n}s=!1}}if(s)return!0;if(!0===r.groups[n])return!(i||!Gn(u)&&!1!==u[t])}r=St.useX().exclusion;n:{for(a in(s=St.useX().exclusion).groups)if(s.groups[a]){var a=!0;break n}a=!1}return!(!a||n&&n in r.groups&&r.groups[n])||!i&&!!Gn(u)&&!L(e[t])}(n))return e.skip(!!St.useX().skipped),sn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Dn(n),sn(),n.isUntested()){e=wn(),r=function(n){return St.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){t=e,u(n.message)&&o(t)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Un(n)):e.emit(Pt.TEST_COMPLETED,n)}catch(t){P("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Un(n));return n}function Kn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:X([void 0],e,!0);e=u[0],r=u[1],u=u[2],lt(n)&&jn("fieldName","string"),t(r)||jn("Test callback","function");var i=St.useX();return qn(e=new Ot(n,r,{message:e,groupName:i.groupName,key:u}))}function jn(n,t){P("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}var Bn,Hn,Mn,Vn=Object.assign,Jn=e(r),Yn=e(u),zn=e(i),Qn=e(s),Zn=e(a),$n=e(c),nt=e(p),tt=e(d),et=e(h),rt=e(g),ut=e(N),it=e(m),ot=e(y),st=e(E),at=e(b),ct=e(S),ft=e(T),lt=e(o),pt=e(C),dt=e(O),vt=e(k),ht=e(A),gt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:Qn,doesNotStartWith:e(_),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:l,gt:f,gte:l,inside:d,isArray:p,isBetween:h,isBlank:g,isBoolean:N,isEmpty:E,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:pt,isKeyOf:b,isNaN:S,isNegative:T,isNotArray:nt,isNotBetween:et,isNotBlank:rt,isNotBoolean:ut,isNotEmpty:st,isNotKeyOf:at,isNotNaN:ct,isNotNull:Jn,isNotNullish:zn,isNotNumber:it,isNotNumeric:$n,isNotString:lt,isNotUndefined:Yn,isNotValueOf:dt,isNull:r,isNullish:i,isNumber:m,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:ft,isString:o,isTruthy:C,isUndefined:u,isValueOf:O,lengthEquals:y,lengthNotEquals:ot,lessThan:R,lessThanOrEquals:v,longerThan:I,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:R,lte:v,matches:k,notEquals:Zn,notInside:tt,notMatches:vt,numberEquals:A,numberNotEquals:ht,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:_},Nt=x((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?Vn(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:Vn(e,{parent:G})})),mt=function(){return(mt=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},yt=(Hn={context:function(){return Nt.useX()},extend:function(n){Vn(gt,n)}},U()?new Proxy(Vn(K,Hn),{get:function(n,t){return t in n?n[t]:gt[t]?B(t):void 0}}):(F((function(n){Hn[n]=B(n)})),Vn(K,Hn))),Et=function(n){return function(){return"".concat(n++)}}(0);!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(Bn||(Bn={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(Mn||(Mn={}));var bt,St=x((function(n,t){return t?null:Vn({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:Bn.DEFAULT,keys:{current:{},prev:{}}},mode:[Mn.ALL],testCursor:z()},n)})),Tt=H();!function(n){n.Error="error",n.Warning="warning"}(bt||(bt={}));var Ct,Ot=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Et(),this.severity=bt.Error,this.status=Rt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==wt||(this.status=n)},n.prototype.warns=function(){return this.severity===bt.Warning},n.prototype.setPending=function(){this.setStatus(Ft)},n.prototype.fail=function(){this.setStatus(this.warns()?At:kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(_t)},n.prototype.warn=function(){this.severity=bt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(It)},n.prototype.cancel=function(){this.setStatus(Lt),$()},n.prototype.reset=function(){this.status=Rt,$()},n.prototype.omit=function(){this.setStatus(wt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Ft)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(wt)},n.prototype.isUntested=function(){return this.statusEquals(Rt)},n.prototype.isFailing=function(){return this.statusEquals(kt)},n.prototype.isCanceled=function(){return this.statusEquals(Lt)},n.prototype.isSkipped=function(){return this.statusEquals(It)},n.prototype.isPassing=function(){return this.statusEquals(_t)},n.prototype.isWarning=function(){return this.statusEquals(At)},n.prototype.statusEquals=function(n){return this.status===n},n}(),Rt="UNTESTED",It="SKIPPED",kt="FAILED",At="WARNING",_t="PASSING",Ft="PENDING",Lt="CANCELED",wt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Ct||(Ct={}));var Pt,Wt=H(20),xt=H(20),Gt=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=In(),kn(e,n,t))return t;var r=function(){return e(On())};return An(n)?(r(),t):(_n(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Pt||(Pt={})),Pn.group=function(n){return xn(0,"groups",n)},Wn.group=function(n){return xn(1,"groups",n)};var Xt=Vn(Kn,{memo:function(n){var t=H(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=St.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[Q().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):qn(r[1])}}(Kn)});n.VERSION="4.2.1",n.context=St,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],t(r)||P("vest.create: Expected callback to be a function.");var u=Ln(),i=rn();return n={stateRef:un(i,{suiteId:Et(),suiteName:n}),bus:u},Vn(St.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:Bn.SUITE},(function(){r.apply(void 0,n)})),u.emit(Pt.SUITE_CALLBACK_DONE_RUNNING),In()})),{get:St.bind(n,On),remove:St.bind(n,(function(n){u.emit(Pt.REMOVE_FIELD,n)})),reset:i.reset,resetField:St.bind(n,(function(n){u.emit(Pt.RESET_FIELD,n)}))})},n.each=function(n,e){t(e)||P("each callback must be a function"),an({type:Bn.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=Mn.EAGER;St.useX().mode[0]=n},n.enforce=yt,n.group=function(n,e){o(n)||Xn("name must be a string"),t(e)||Xn("callback must be a function"),an({type:Bn.GROUP},(function(){St.run({groupName:n},e)}))},n.include=function(n){function t(t){var e=St.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?w(r.tests[n],!0):o(t)?!!r.tests[t]:L(t,L(On))}}var e=St.useX();return n?(e.inclusion[n]=w(e.exclusion.tests[n],!0),{when:t}):{when:t}},n.omitWhen=function(n,t){an({type:Bn.OMIT_WHEN},(function(){St.run({omitted:!!St.useX().omitted||L(n,L(On))},(function(){return t()}))}))},n.only=Pn,n.optional=function(n){(0,Q().optionalFields()[1])((function(t){if(p(n)||o(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},n.skip=Wn,n.skipWhen=function(n,t){an({type:Bn.SKIP_WHEN},(function(){St.run({skipped:!!St.useX().skipped||L(n,L(On))},(function(){return t()}))}))},n.test=Xt,n.warn=function(){var n=St.useX("warn hook called outside of a running suite.");n.currentTest||P("warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.2.1
|
|
2
|
+
"version": "4.2.1",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "
|
|
24
|
-
"n4s": "
|
|
23
|
+
"context": "^2.0.1",
|
|
24
|
+
"n4s": "^4.1.2"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
package/testUtils/suiteDummy.ts
CHANGED
|
@@ -5,25 +5,25 @@ import { dummyTest } from './testDummy';
|
|
|
5
5
|
import { optional, create, skip } from 'vest';
|
|
6
6
|
|
|
7
7
|
export function failing(failingFields?: string | string[]) {
|
|
8
|
-
return
|
|
8
|
+
return createSuiteRunResult(failingFields, fieldName => {
|
|
9
9
|
dummyTest.failing(fieldName);
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export function warning(failingFields?: string | string[]) {
|
|
14
|
-
return
|
|
14
|
+
return createSuiteRunResult(failingFields, fieldName => {
|
|
15
15
|
dummyTest.failingWarning(fieldName);
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export function failingAsync(failingFields?: string | string[]) {
|
|
20
|
-
return
|
|
20
|
+
return createSuiteRunResult(failingFields, fieldName => {
|
|
21
21
|
dummyTest.failingAsync(fieldName);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export function passing(fields?: string | string[]) {
|
|
26
|
-
return
|
|
26
|
+
return createSuiteRunResult(fields, fieldName => {
|
|
27
27
|
dummyTest.passing(fieldName);
|
|
28
28
|
});
|
|
29
29
|
}
|
|
@@ -87,7 +87,7 @@ export function untested(fields?: string | string[]) {
|
|
|
87
87
|
return suite.get();
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
function
|
|
90
|
+
function createSuiteRunResult(
|
|
91
91
|
fieldNames: string[] | string | undefined,
|
|
92
92
|
callback: (fieldName?: string) => void // eslint-disable-line no-unused-vars
|
|
93
93
|
) {
|
package/types/classnames.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
28
28
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
29
29
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
30
30
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
31
|
-
type
|
|
31
|
+
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
32
32
|
/**
|
|
33
33
|
* Returns whether the suite as a whole is valid.
|
|
34
34
|
* Determined if there are no errors, and if no
|
|
@@ -44,22 +44,22 @@ type ReadOnlySuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
|
44
44
|
getErrorsByGroup: typeof getErrorsByGroup;
|
|
45
45
|
getWarningsByGroup: typeof getWarningsByGroup;
|
|
46
46
|
};
|
|
47
|
-
type
|
|
47
|
+
type SuiteRunResult = SuiteResult & {
|
|
48
48
|
done: IDone;
|
|
49
49
|
};
|
|
50
50
|
interface IDone {
|
|
51
51
|
(...args: [
|
|
52
|
-
cb: (res:
|
|
53
|
-
]):
|
|
52
|
+
cb: (res: SuiteResult) => void
|
|
53
|
+
]): SuiteRunResult;
|
|
54
54
|
(...args: [
|
|
55
55
|
fieldName: string,
|
|
56
|
-
cb: (res:
|
|
57
|
-
]):
|
|
56
|
+
cb: (res: SuiteResult) => void
|
|
57
|
+
]): SuiteRunResult;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Creates a function that returns class names that match the validation result
|
|
61
61
|
*/
|
|
62
|
-
declare function classnames(res:
|
|
62
|
+
declare function classnames(res: SuiteRunResult | SuiteResult, classes?: TSupportedClasses): (fieldName: string) => string;
|
|
63
63
|
type TSupportedClasses = {
|
|
64
64
|
valid?: string;
|
|
65
65
|
tested?: string;
|
package/types/parser.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
28
28
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
29
29
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
30
30
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
31
|
-
type
|
|
31
|
+
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
32
32
|
/**
|
|
33
33
|
* Returns whether the suite as a whole is valid.
|
|
34
34
|
* Determined if there are no errors, and if no
|
|
@@ -44,19 +44,19 @@ type ReadOnlySuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
|
44
44
|
getErrorsByGroup: typeof getErrorsByGroup;
|
|
45
45
|
getWarningsByGroup: typeof getWarningsByGroup;
|
|
46
46
|
};
|
|
47
|
-
type
|
|
47
|
+
type SuiteRunResult = SuiteResult & {
|
|
48
48
|
done: IDone;
|
|
49
49
|
};
|
|
50
50
|
interface IDone {
|
|
51
51
|
(...args: [
|
|
52
|
-
cb: (res:
|
|
53
|
-
]):
|
|
52
|
+
cb: (res: SuiteResult) => void
|
|
53
|
+
]): SuiteRunResult;
|
|
54
54
|
(...args: [
|
|
55
55
|
fieldName: string,
|
|
56
|
-
cb: (res:
|
|
57
|
-
]):
|
|
56
|
+
cb: (res: SuiteResult) => void
|
|
57
|
+
]): SuiteRunResult;
|
|
58
58
|
}
|
|
59
|
-
declare function parse(res:
|
|
59
|
+
declare function parse(res: SuiteRunResult | SuiteResult): {
|
|
60
60
|
valid: (fieldName?: string) => boolean;
|
|
61
61
|
tested: (fieldName?: string) => boolean;
|
|
62
62
|
invalid: (fieldName?: string) => boolean;
|
package/types/promisify.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
28
28
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
29
29
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
30
30
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
31
|
-
type
|
|
31
|
+
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
32
32
|
/**
|
|
33
33
|
* Returns whether the suite as a whole is valid.
|
|
34
34
|
* Determined if there are no errors, and if no
|
|
@@ -44,17 +44,17 @@ type ReadOnlySuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
|
44
44
|
getErrorsByGroup: typeof getErrorsByGroup;
|
|
45
45
|
getWarningsByGroup: typeof getWarningsByGroup;
|
|
46
46
|
};
|
|
47
|
-
type
|
|
47
|
+
type SuiteRunResult = SuiteResult & {
|
|
48
48
|
done: IDone;
|
|
49
49
|
};
|
|
50
50
|
interface IDone {
|
|
51
51
|
(...args: [
|
|
52
|
-
cb: (res:
|
|
53
|
-
]):
|
|
52
|
+
cb: (res: SuiteResult) => void
|
|
53
|
+
]): SuiteRunResult;
|
|
54
54
|
(...args: [
|
|
55
55
|
fieldName: string,
|
|
56
|
-
cb: (res:
|
|
57
|
-
]):
|
|
56
|
+
cb: (res: SuiteResult) => void
|
|
57
|
+
]): SuiteRunResult;
|
|
58
58
|
}
|
|
59
|
-
declare const promisify: (validatorFn: (...args: any[]) =>
|
|
59
|
+
declare const promisify: (validatorFn: (...args: any[]) => SuiteRunResult) => (...args: any[]) => Promise<SuiteResult>;
|
|
60
60
|
export { promisify as default };
|
package/types/vest.d.ts
CHANGED
|
@@ -78,7 +78,7 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
78
78
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
79
79
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
80
80
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
81
|
-
type
|
|
81
|
+
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
82
82
|
/**
|
|
83
83
|
* Returns whether the suite as a whole is valid.
|
|
84
84
|
* Determined if there are no errors, and if no
|
|
@@ -94,27 +94,27 @@ type ReadOnlySuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
|
94
94
|
getErrorsByGroup: typeof getErrorsByGroup;
|
|
95
95
|
getWarningsByGroup: typeof getWarningsByGroup;
|
|
96
96
|
};
|
|
97
|
-
type
|
|
97
|
+
type SuiteRunResult = SuiteResult & {
|
|
98
98
|
done: IDone;
|
|
99
99
|
};
|
|
100
100
|
interface IDone {
|
|
101
101
|
(...args: [
|
|
102
|
-
cb: (res:
|
|
103
|
-
]):
|
|
102
|
+
cb: (res: SuiteResult) => void
|
|
103
|
+
]): SuiteRunResult;
|
|
104
104
|
(...args: [
|
|
105
105
|
fieldName: string,
|
|
106
|
-
cb: (res:
|
|
107
|
-
]):
|
|
106
|
+
cb: (res: SuiteResult) => void
|
|
107
|
+
]): SuiteRunResult;
|
|
108
108
|
}
|
|
109
109
|
type CreateProperties = {
|
|
110
|
-
get: () =>
|
|
110
|
+
get: () => SuiteResult;
|
|
111
111
|
reset: () => void;
|
|
112
112
|
resetField: (fieldName: string) => void;
|
|
113
113
|
remove: (fieldName: string) => void;
|
|
114
114
|
};
|
|
115
115
|
type CB = (...args: any[]) => void;
|
|
116
116
|
type SuiteReturnType<T extends CB> = {
|
|
117
|
-
(...args: Parameters<T>):
|
|
117
|
+
(...args: Parameters<T>): SuiteRunResult;
|
|
118
118
|
} & CreateProperties;
|
|
119
119
|
/**
|
|
120
120
|
* Creates a new validation suite
|
|
@@ -175,8 +175,8 @@ declare function createStateRef(state: TState, { suiteId, suiteName }: {
|
|
|
175
175
|
suiteId: () => TStateHandlerReturn<string>;
|
|
176
176
|
suiteName: () => TStateHandlerReturn<string | void>;
|
|
177
177
|
testCallbacks: () => TStateHandlerReturn<{
|
|
178
|
-
fieldCallbacks: Record<string, ((res:
|
|
179
|
-
doneCallbacks: ((res:
|
|
178
|
+
fieldCallbacks: Record<string, ((res: SuiteResult) => void)[]>;
|
|
179
|
+
doneCallbacks: ((res: SuiteResult) => void)[];
|
|
180
180
|
}>;
|
|
181
181
|
testObjects: () => TStateHandlerReturn<{
|
|
182
182
|
prev: NestedArray<VestTest>;
|
|
@@ -265,7 +265,7 @@ declare namespace skip {
|
|
|
265
265
|
*/
|
|
266
266
|
declare function group(groupName: string, tests: () => void): void;
|
|
267
267
|
declare function include(fieldName: string): {
|
|
268
|
-
when: (condition: string | boolean | ((draft:
|
|
268
|
+
when: (condition: string | boolean | ((draft: SuiteResult) => boolean)) => void;
|
|
269
269
|
};
|
|
270
270
|
/**
|
|
271
271
|
* Sets the suite to "eager" (fail fast) mode.
|
|
@@ -296,7 +296,7 @@ declare function eager(): void;
|
|
|
296
296
|
* test('username', 'User already taken', async () => await doesUserExist(username)
|
|
297
297
|
* });
|
|
298
298
|
*/
|
|
299
|
-
declare function omitWhen(conditional: boolean | ((draft:
|
|
299
|
+
declare function omitWhen(conditional: boolean | ((draft: SuiteResult) => boolean), callback: (...args: any[]) => void): void;
|
|
300
300
|
/**
|
|
301
301
|
* Marks a field as optional, either just by name, or by a given condition.
|
|
302
302
|
*
|
|
@@ -320,7 +320,7 @@ type TOptionalsObject = Record<string, () => boolean>;
|
|
|
320
320
|
* test('username', 'User already taken', async () => await doesUserExist(username)
|
|
321
321
|
* });
|
|
322
322
|
*/
|
|
323
|
-
declare function skipWhen(conditional: boolean | ((draft:
|
|
323
|
+
declare function skipWhen(conditional: boolean | ((draft: SuiteResult) => boolean), callback: (...args: any[]) => void): void;
|
|
324
324
|
declare function testBase(fieldName: string, message: string, cb: TTestFn): VestTest;
|
|
325
325
|
declare function testBase(fieldName: string, cb: TTestFn): VestTest;
|
|
326
326
|
declare function testBase(fieldName: string, message: string, cb: TTestFn, key: string): VestTest;
|
|
@@ -344,6 +344,6 @@ declare const test: typeof testBase & {
|
|
|
344
344
|
* Sets a running test to warn only mode.
|
|
345
345
|
*/
|
|
346
346
|
declare function warn(): void;
|
|
347
|
-
declare const VERSION = "4.2.1
|
|
347
|
+
declare const VERSION = "4.2.1";
|
|
348
348
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
349
|
-
export type {
|
|
349
|
+
export type { SuiteResult, SuiteRunResult, VestTest };
|