vest 4.6.7 → 4.6.8
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 +5 -5
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +6 -6
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +5 -5
- package/dist/umd/vest.production.js +1 -1
- package/package.json +2 -2
- package/types/vest.d.ts +1 -1
|
@@ -543,18 +543,18 @@ function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
|
543
543
|
}
|
|
544
544
|
// Does the given field have any pending tests that are not optional?
|
|
545
545
|
function hasNonOptionalIncomplete(fieldName) {
|
|
546
|
-
return
|
|
546
|
+
return useAllIncomplete().some(function (testObject) {
|
|
547
547
|
return isTestObjectOptional(testObject, fieldName);
|
|
548
|
-
})
|
|
548
|
+
});
|
|
549
549
|
}
|
|
550
550
|
// Do the given group/field have any pending tests that are not optional?
|
|
551
551
|
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
552
|
-
return
|
|
552
|
+
return useAllIncomplete().some(function (testObject) {
|
|
553
553
|
if (nonMatchingGroupName(testObject, groupName)) {
|
|
554
554
|
return false;
|
|
555
555
|
}
|
|
556
556
|
return isTestObjectOptional(testObject, fieldName);
|
|
557
|
-
})
|
|
557
|
+
});
|
|
558
558
|
}
|
|
559
559
|
function isTestObjectOptional(testObject, fieldName) {
|
|
560
560
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
@@ -1661,7 +1661,7 @@ function warn() {
|
|
|
1661
1661
|
ctx.currentTest.warn();
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
|
-
var VERSION = "4.6.
|
|
1664
|
+
var VERSION = "4.6.8";
|
|
1665
1665
|
|
|
1666
1666
|
Object.defineProperty(exports, 'enforce', {
|
|
1667
1667
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,n,e=require("n4s"),r=require("vast"),i=require("vest-utils"),u=require("context");function o(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function s(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(t||(t={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(n||(n={}));var a=u.createCascade((function(e,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(t.DEFAULT),mode:[n.ALL]},e)}));function c(){return a.useX().isolate}function f(){var t=c();return t.path.concat(t.cursor.current())}function l(){return c().cursor}function p(){return a.useX().stateRef}function d(){return p().suiteId()[0]}function v(){return p().testCallbacks()}function E(){return p().optionalFields()}function h(t,n){(0,E()[1])((function(e){var r;return i.assign(e,((r={})[t]=i.assign({},e[t],n(e[t])),r))}))}function g(t){var n;return null!==(n=E()[0][t])&&void 0!==n?n:{}}function N(){return p().testObjects()}function y(){m((function(t){return t}))}function m(t){(0,N()[1])((function(n){var e=n.current;return{prev:n.prev,current:i.asArray(t(e))}}))}function R(){return C().filter((function(t){return t.isPending()}))}var S,T=i.cache();function C(){var t=N()[0].current;return T([t],(function(){return i.nestedArray.flatten(t)}))}function A(t){C().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(S||(S={}));var _,I,O=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,o=r.groupName,s=r.key;this.key=null,this.id=i.seq(),this.severity=S.Error,this.status=F,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return i.isUndefined(t)&&i.isStringValue(n)})(this.message,n)&&(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===S.Warning},t.prototype.setPending=function(){this.setStatus(L)},t.prototype.fail=function(){this.setStatus(this.warns()?P:k)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=S.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(b)},t.prototype.cancel=function(){this.setStatus(U),y()},t.prototype.reset=function(){this.status=F,y()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(L)},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(F)},t.prototype.isFailing=function(){return this.statusEquals(k)},t.prototype.isCanceled=function(){return this.statusEquals(U)},t.prototype.isSkipped=function(){return this.statusEquals(b)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),F="UNTESTED",b="SKIPPED",k="FAILED",P="WARNING",x="PASSING",L="PENDING",U="CANCELED",D="OMITTED";function W(n,e){var r=n.type,u=void 0===r?t.DEFAULT:r;i.invariant(i.isFunction(e));var o=s(u,f()),c=a.run({isolate:o},(function(){var t;return o.keys.prev=(t=N()[0].prev,i.asArray(i.nestedArray.getCurrent(t,f())).reduce((function(t,n){return n instanceof O?(i.isNullish(n.key)||(t[n.key]=n),t):t}),{})),m((function(t){return i.nestedArray.setValueAtPath(t,o.path,[])})),e()}));return l().next(),c}function w(t){return t===_.ERRORS?I.ERROR_COUNT:I.WARN_COUNT}function G(t,n){return!!n&&!V(t,n)}function V(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(_||(_={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(I||(I={}));var q,X=i.bindNot((function(t,n){return t.groupName===n}));function H(t){return function(t,n){return C().some((function(e){return K(e,t,n)}))}(_.ERRORS,t)}function K(t,n,e){return!!t.hasFailures()&&(!G(t,e)&&!function(t,n){return i.either(t===_.WARNINGS,n.warns())}(n,t))}function M(t){return!!t&&g(t).applied}function B(t){if(M(t))return!0;var n=C();return!i.isEmpty(n)&&(!H(t)&&(!function(t){return i.isNotEmpty(R().filter((function(n){return Y(n,t)})))}(t)&&function(t){return C().every((function(n){return J(n,t)}))}(t)))}function j(t,n){return!!M(n)||!function(t,n,e){return C().some((function(r){return!X(r,n)&&K(r,t,e)}))}(_.ERRORS,t,n)&&(!function(t,n){return i.isNotEmpty(R().filter((function(e){return!X(e,t)&&Y(e,n)})))}(t,n)&&function(t,n){return C().every((function(e){return!!X(e,t)||J(e,n)}))}(t,n))}function Y(t,n){return!G(t,n)&&M(n)}function J(t,n){return!!G(t,n)||(function(t){return g(t.fieldName).type===q.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function z(){var t=C(),n=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Q(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&B(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Q(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&j(e,n.fieldName)}(t.groups,n),t}),n),n.valid=B(),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)}function Q(t,n){var e=n.fieldName,r=n.message;t[e]=t[e]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(_.ERRORS):n.isWarning()&&o(_.WARNINGS)),u;function o(t){var n=w(t);u[n]++,r&&(u[t]=(u[t]||[]).concat(r))}}function Z(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=w(n);for(var u in t)i.isPositive(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function $(t){var n={getErrors:function(n){return tt(t,_.ERRORS,n)},getErrorsByGroup:function(n,e){return nt(t,_.ERRORS,n,e)},getWarnings:function(n){return tt(t,_.WARNINGS,n)},getWarningsByGroup:function(n,e){return nt(t,_.WARNINGS,n,e)},hasErrors:function(n){return it(t,I.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return rt(t,I.ERROR_COUNT,n,e)},hasWarnings:function(n){return it(t,I.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return rt(t,I.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return et(r,e);for(var i in r)if(!et(r,i))return!1;return!0}};return n}function tt(t,n,e){return Z(t.tests,n,e)}function nt(t,n,e,r){return Z(t.groups[e],n,r)}function et(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function rt(t,n,e,r){var u,o,s=t.groups[e];if(!s)return!1;if(r)return i.isPositive(null===(u=s[r])||void 0===u?void 0:u[n]);for(var a in s)if(i.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function it(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return i.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(q||(q={}));var ut=i.cache(1);function ot(){var t=C(),n={stateRef:p()};return ut([t],a.bind(n,(function(){var t=z(),n=p().suiteName()[0];return i.assign(t,$(t),{suiteName:n})})))}function st(t){var n=R();return!i.isEmpty(n)&&(!t||n.some((function(n){return V(n,t)})))}var at=i.cache(20);function ct(){var t=C(),n={stateRef:p()};return at([t],a.bind(n,(function(){return i.assign({},ot(),{done:a.bind(n,dt)})})))}function ft(t,n,e){var r;return!!(!i.isFunction(t)||n&&i.numberEquals(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function lt(t){return!(st()&&(!t||st(t)))}var pt,dt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ct();if(ft(r,i,u))return u;var o=function(){return r(ot())};return lt(i)?(o(),u):(vt(o,i),u)};function vt(t,n){(0,v()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Et(){var t=E()[0];if(!i.isEmpty(t)){var n={};C().forEach((function(t){i.hasOwnProperty(n,t.fieldName)?e(t):function(t){var r=g(t.fieldName);r.type===q.Immediate&&(n[t.fieldName]=i.optionalFunctionValue(r.rule),e(t))}(t)})),y()}function e(t){n[t.fieldName]&&(t.omit(),h(t.fieldName,(function(){return{applied:!0}})))}}function ht(){var t=i.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=v()[0].fieldCallbacks,e&&!st(e)&&i.isArray(r[e])&&i.callEach(r[e]),st()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){Et()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=v()[0].doneCallbacks,i.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){A((function(n){V(n,t)&&(n.cancel(),function(t){m((function(n){return i.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){A((function(n){V(n,t)&&n.reset()}))})),t}function gt(){var t=a.useX();return i.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));function Nt(){return!!a.useX().skipped}function yt(t){return St(0,"tests",t)}function mt(t){return St(1,"tests",t)}function Rt(t){var n=t.fieldName,e=t.groupName;if(Nt())return!0;var r=a.useX(),u=r.exclusion,o=r.inclusion,s=u.tests,c=s[n];if(!1===c)return!0;var f=!0===c;if(e){if(function(t){var n=a.useX().exclusion.groups;if(i.hasOwnProperty(n,t))return!1===n[t];return Ct()}(e))return!0;if(!0===u.groups[e])return!f&&(!!Tt(s)||!1===s[n])}return!!function(t){if(!Ct())return!1;return!t}(e)||!f&&(!!Tt(s)&&!i.optionalFunctionValue(o[n]))}function St(t,n,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[n][e]=0===t)}))}function Tt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ct(){var t=a.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function At(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function _t(t){return e=n.EAGER,a.useX().mode[0]===e&&H(t.fieldName);var e}function It(){return!!a.useX().omitted}function Ot(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function Ft(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function bt(t){var n=t.asyncTest,e=t.message;if(i.isPromise(n)){var r=gt().emit,u=p(),o=a.bind({stateRef:u},(function(){y(),r(pt.TEST_COMPLETED,t)})),s=a.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=i.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,s)}}function kt(t){var n=gt(),e=function(t){return a.run({currentTest:t},(function(){return t.run()}))}(t);try{i.isPromise(e)?(t.asyncTest=e,t.setPending(),bt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Pt(n){var e=N()[0].prev;if(i.isEmpty(e))return xt(n),n;var r,u,o,s=(r=e,u=f(),i.nestedArray.valueAtPath(r,u));if(!i.isNullish(n.key)){var a=function(t,n){var e=function(t){return c().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=c().keys.current;i.isNullish(e[t])?e[t]=n:i.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(n.key,n);return xt(a),a}(function(t,n){return i.isNotEmpty(t)&&!Ft(t,n)})(s,n)&&(!function(n,e){if(c().type===t.EACH)return;i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.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.'))}(s,n),o=l().current(),m((function(t){return t.splice(o),t})),s=null);var p=i.defaultTo(s,n);return xt(p),p}function xt(t){var n=f();m((function(e){return i.nestedArray.setValueAtPath(e,n,t)}))}function Lt(t){var n=l();if(_t(t))return t.skip(),Pt(t),n.next(),t;var e,r,u=Pt(t);return It()||M(t.fieldName)?(u.omit(),n.next(),u):Rt(t)?(u.skip(Nt()),n.next(),u):((r=t)!==(e=u)&&Ft(e,r)&&e.isPending()&&e.cancel(),xt(t),function(t){t.isUntested()?kt(t):i.isPromise(t.asyncTest)&&(t.setPending(),bt(t))}(t),n.next(),t)}function Ut(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=i.isFunction(n[1])?n:Ot([void 0],n,!0),u=r[0],o=r[1],s=r[2];i.invariant(i.isStringValue(t),Wt("fieldName","string")),i.invariant(i.isFunction(o),Wt("Test callback","function"));var c=a.useX(),f=new O(t,o,{message:u,groupName:c.groupName,key:s});return Lt(f)}yt.group=function(t){return St(0,"groups",t)},mt.group=function(t){return St(1,"groups",t)};var Dt=i.assign(Ut,{memo:function(t){var n=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var o=l().current(),s=r.reverse(),a=s[0],c=s[1],f=s[2],p=[d(),e,o].concat(a),v=n.get(p);return i.isNull(v)?n(p,(function(){return t(e,f,c)})):v[1].isCanceled()?(n.invalidate(p),n(p,(function(){return t(e,f,c)}))):Lt(v[1])}}(Ut)});function Wt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.6.7",exports.context=a,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var u=n.reverse(),s=u[0],c=u[1];i.invariant(i.isFunction(s),"vest.create: Expected callback to be a function.");var f=ht(),l=r.createState(),p=o(l,{suiteId:i.seq(),suiteName:c}),d={stateRef:p,bus:f},v=i.assign(a.bind(d,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return l.reset(),W({type:t.SUITE},(function(){s.apply(void 0,n)})),f.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ct()})),{get:a.bind(d,ot),remove:a.bind(d,(function(t){f.emit(pt.REMOVE_FIELD,t)})),reset:l.reset,resetField:a.bind(d,(function(t){f.emit(pt.RESET_FIELD,t)}))});return v},exports.each=function(n,e){i.invariant(i.isFunction(e),"each callback must be a function"),W({type:t.EACH},(function(){n.forEach((function(t,n){e(t,n)}))}))},exports.eager=function(){var t;t=n.EAGER,a.useX().mode[0]=t},exports.group=function(n,e){i.invariant(i.isStringValue(n),At("name must be a string")),i.invariant(i.isFunction(e),At("callback must be a function")),W({type:t.GROUP},(function(){a.run({groupName:n},e)}))},exports.include=function(t){var n=a.useX(),e=n.inclusion,r=n.exclusion;return i.invariant(i.isStringValue(t)),e[t]=i.defaultTo(r.tests[t],!0),{when:function(n){var e=a.useX(),r=e.inclusion,u=e.exclusion;r[t]=function(){return i.hasOwnProperty(u.tests,t)?i.defaultTo(u.tests[t],!0):i.isStringValue(n)?Boolean(u.tests[n]):i.optionalFunctionValue(n,i.optionalFunctionValue(ot))}}}},exports.omitWhen=function(n,e){W({type:t.OMIT_WHEN},(function(){a.run({omitted:It()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.only=yt,exports.optional=function(t){if(i.isArray(t)||i.isStringValue(t))i.asArray(t).forEach((function(t){h(t,(function(){return{type:q.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];h(n,(function(){return{type:q.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},exports.skip=mt,exports.skipWhen=function(n,e){W({type:t.SKIP_WHEN},(function(){a.run({skipped:Nt()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.suiteSelectors=$,exports.test=Dt,exports.warn=function(){var t=a.useX("warn hook called outside of a running suite.");i.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,n,e=require("n4s"),r=require("vast"),i=require("vest-utils"),u=require("context");function o(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function s(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(t||(t={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(n||(n={}));var a=u.createCascade((function(e,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(t.DEFAULT),mode:[n.ALL]},e)}));function c(){return a.useX().isolate}function f(){var t=c();return t.path.concat(t.cursor.current())}function l(){return c().cursor}function p(){return a.useX().stateRef}function d(){return p().suiteId()[0]}function v(){return p().testCallbacks()}function E(){return p().optionalFields()}function h(t,n){(0,E()[1])((function(e){var r;return i.assign(e,((r={})[t]=i.assign({},e[t],n(e[t])),r))}))}function g(t){var n;return null!==(n=E()[0][t])&&void 0!==n?n:{}}function N(){return p().testObjects()}function m(){y((function(t){return t}))}function y(t){(0,N()[1])((function(n){var e=n.current;return{prev:n.prev,current:i.asArray(t(e))}}))}function R(){return C().filter((function(t){return t.isPending()}))}var S,T=i.cache();function C(){var t=N()[0].current;return T([t],(function(){return i.nestedArray.flatten(t)}))}function A(t){C().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(S||(S={}));var _,I,O=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,o=r.groupName,s=r.key;this.key=null,this.id=i.seq(),this.severity=S.Error,this.status=F,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return i.isUndefined(t)&&i.isStringValue(n)})(this.message,n)&&(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===S.Warning},t.prototype.setPending=function(){this.setStatus(L)},t.prototype.fail=function(){this.setStatus(this.warns()?P:k)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=S.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(b)},t.prototype.cancel=function(){this.setStatus(U),m()},t.prototype.reset=function(){this.status=F,m()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(L)},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(F)},t.prototype.isFailing=function(){return this.statusEquals(k)},t.prototype.isCanceled=function(){return this.statusEquals(U)},t.prototype.isSkipped=function(){return this.statusEquals(b)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),F="UNTESTED",b="SKIPPED",k="FAILED",P="WARNING",x="PASSING",L="PENDING",U="CANCELED",D="OMITTED";function W(n,e){var r=n.type,u=void 0===r?t.DEFAULT:r;i.invariant(i.isFunction(e));var o=s(u,f()),c=a.run({isolate:o},(function(){var t;return o.keys.prev=(t=N()[0].prev,i.asArray(i.nestedArray.getCurrent(t,f())).reduce((function(t,n){return n instanceof O?(i.isNullish(n.key)||(t[n.key]=n),t):t}),{})),y((function(t){return i.nestedArray.setValueAtPath(t,o.path,[])})),e()}));return l().next(),c}function w(t){return t===_.ERRORS?I.ERROR_COUNT:I.WARN_COUNT}function G(t,n){return!!n&&!V(t,n)}function V(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(_||(_={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(I||(I={}));var q,X=i.bindNot((function(t,n){return t.groupName===n}));function H(t){return function(t,n){return C().some((function(e){return K(e,t,n)}))}(_.ERRORS,t)}function K(t,n,e){return!!t.hasFailures()&&(!G(t,e)&&!function(t,n){return i.either(t===_.WARNINGS,n.warns())}(n,t))}function M(t){return!!t&&g(t).applied}function B(t){if(M(t))return!0;var n=C();return!i.isEmpty(n)&&(!H(t)&&(!function(t){return R().some((function(n){return Y(n,t)}))}(t)&&function(t){return C().every((function(n){return J(n,t)}))}(t)))}function j(t,n){return!!M(n)||!function(t,n,e){return C().some((function(r){return!X(r,n)&&K(r,t,e)}))}(_.ERRORS,t,n)&&(!function(t,n){return R().some((function(e){return!X(e,t)&&Y(e,n)}))}(t,n)&&function(t,n){return C().every((function(e){return!!X(e,t)||J(e,n)}))}(t,n))}function Y(t,n){return!G(t,n)&&M(n)}function J(t,n){return!!G(t,n)||(function(t){return g(t.fieldName).type===q.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function z(){var t=C(),n=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Q(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&B(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Q(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&j(e,n.fieldName)}(t.groups,n),t}),n),n.valid=B(),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)}function Q(t,n){var e=n.fieldName,r=n.message;t[e]=t[e]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(_.ERRORS):n.isWarning()&&o(_.WARNINGS)),u;function o(t){var n=w(t);u[n]++,r&&(u[t]=(u[t]||[]).concat(r))}}function Z(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=w(n);for(var u in t)i.isPositive(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function $(t){var n={getErrors:function(n){return tt(t,_.ERRORS,n)},getErrorsByGroup:function(n,e){return nt(t,_.ERRORS,n,e)},getWarnings:function(n){return tt(t,_.WARNINGS,n)},getWarningsByGroup:function(n,e){return nt(t,_.WARNINGS,n,e)},hasErrors:function(n){return it(t,I.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return rt(t,I.ERROR_COUNT,n,e)},hasWarnings:function(n){return it(t,I.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return rt(t,I.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return et(r,e);for(var i in r)if(!et(r,i))return!1;return!0}};return n}function tt(t,n,e){return Z(t.tests,n,e)}function nt(t,n,e,r){return Z(t.groups[e],n,r)}function et(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function rt(t,n,e,r){var u,o,s=t.groups[e];if(!s)return!1;if(r)return i.isPositive(null===(u=s[r])||void 0===u?void 0:u[n]);for(var a in s)if(i.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function it(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return i.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(q||(q={}));var ut=i.cache(1);function ot(){var t=C(),n={stateRef:p()};return ut([t],a.bind(n,(function(){var t=z(),n=p().suiteName()[0];return i.assign(t,$(t),{suiteName:n})})))}function st(t){var n=R();return!i.isEmpty(n)&&(!t||n.some((function(n){return V(n,t)})))}var at=i.cache(20);function ct(){var t=C(),n={stateRef:p()};return at([t],a.bind(n,(function(){return i.assign({},ot(),{done:a.bind(n,dt)})})))}function ft(t,n,e){var r;return!!(!i.isFunction(t)||n&&i.numberEquals(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function lt(t){return!(st()&&(!t||st(t)))}var pt,dt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ct();if(ft(r,i,u))return u;var o=function(){return r(ot())};return lt(i)?(o(),u):(vt(o,i),u)};function vt(t,n){(0,v()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Et(){var t=E()[0];if(!i.isEmpty(t)){var n={};C().forEach((function(t){i.hasOwnProperty(n,t.fieldName)?e(t):function(t){var r=g(t.fieldName);r.type===q.Immediate&&(n[t.fieldName]=i.optionalFunctionValue(r.rule),e(t))}(t)})),m()}function e(t){n[t.fieldName]&&(t.omit(),h(t.fieldName,(function(){return{applied:!0}})))}}function ht(){var t=i.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=v()[0].fieldCallbacks,e&&!st(e)&&i.isArray(r[e])&&i.callEach(r[e]),st()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){Et()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=v()[0].doneCallbacks,i.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){A((function(n){V(n,t)&&(n.cancel(),function(t){y((function(n){return i.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){A((function(n){V(n,t)&&n.reset()}))})),t}function gt(){var t=a.useX();return i.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));function Nt(){return!!a.useX().skipped}function mt(t){return St(0,"tests",t)}function yt(t){return St(1,"tests",t)}function Rt(t){var n=t.fieldName,e=t.groupName;if(Nt())return!0;var r=a.useX(),u=r.exclusion,o=r.inclusion,s=u.tests,c=s[n];if(!1===c)return!0;var f=!0===c;if(e){if(function(t){var n=a.useX().exclusion.groups;if(i.hasOwnProperty(n,t))return!1===n[t];return Ct()}(e))return!0;if(!0===u.groups[e])return!f&&(!!Tt(s)||!1===s[n])}return!!function(t){if(!Ct())return!1;return!t}(e)||!f&&(!!Tt(s)&&!i.optionalFunctionValue(o[n]))}function St(t,n,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[n][e]=0===t)}))}function Tt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ct(){var t=a.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function At(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function _t(t){return e=n.EAGER,a.useX().mode[0]===e&&H(t.fieldName);var e}function It(){return!!a.useX().omitted}function Ot(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function Ft(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function bt(t){var n=t.asyncTest,e=t.message;if(i.isPromise(n)){var r=gt().emit,u=p(),o=a.bind({stateRef:u},(function(){m(),r(pt.TEST_COMPLETED,t)})),s=a.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=i.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,s)}}function kt(t){var n=gt(),e=function(t){return a.run({currentTest:t},(function(){return t.run()}))}(t);try{i.isPromise(e)?(t.asyncTest=e,t.setPending(),bt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Pt(n){var e=N()[0].prev;if(i.isEmpty(e))return xt(n),n;var r,u,o,s=(r=e,u=f(),i.nestedArray.valueAtPath(r,u));if(!i.isNullish(n.key)){var a=function(t,n){var e=function(t){return c().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=c().keys.current;i.isNullish(e[t])?e[t]=n:i.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(n.key,n);return xt(a),a}(function(t,n){return i.isNotEmpty(t)&&!Ft(t,n)})(s,n)&&(!function(n,e){if(c().type===t.EACH)return;i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.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.'))}(s,n),o=l().current(),y((function(t){return t.splice(o),t})),s=null);var p=i.defaultTo(s,n);return xt(p),p}function xt(t){var n=f();y((function(e){return i.nestedArray.setValueAtPath(e,n,t)}))}function Lt(t){var n=l();if(_t(t))return t.skip(),Pt(t),n.next(),t;var e,r,u=Pt(t);return It()||M(t.fieldName)?(u.omit(),n.next(),u):Rt(t)?(u.skip(Nt()),n.next(),u):((r=t)!==(e=u)&&Ft(e,r)&&e.isPending()&&e.cancel(),xt(t),function(t){t.isUntested()?kt(t):i.isPromise(t.asyncTest)&&(t.setPending(),bt(t))}(t),n.next(),t)}function Ut(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=i.isFunction(n[1])?n:Ot([void 0],n,!0),u=r[0],o=r[1],s=r[2];i.invariant(i.isStringValue(t),Wt("fieldName","string")),i.invariant(i.isFunction(o),Wt("Test callback","function"));var c=a.useX(),f=new O(t,o,{message:u,groupName:c.groupName,key:s});return Lt(f)}mt.group=function(t){return St(0,"groups",t)},yt.group=function(t){return St(1,"groups",t)};var Dt=i.assign(Ut,{memo:function(t){var n=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var o=l().current(),s=r.reverse(),a=s[0],c=s[1],f=s[2],p=[d(),e,o].concat(a),v=n.get(p);return i.isNull(v)?n(p,(function(){return t(e,f,c)})):v[1].isCanceled()?(n.invalidate(p),n(p,(function(){return t(e,f,c)}))):Lt(v[1])}}(Ut)});function Wt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.6.8",exports.context=a,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var u=n.reverse(),s=u[0],c=u[1];i.invariant(i.isFunction(s),"vest.create: Expected callback to be a function.");var f=ht(),l=r.createState(),p=o(l,{suiteId:i.seq(),suiteName:c}),d={stateRef:p,bus:f},v=i.assign(a.bind(d,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return l.reset(),W({type:t.SUITE},(function(){s.apply(void 0,n)})),f.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ct()})),{get:a.bind(d,ot),remove:a.bind(d,(function(t){f.emit(pt.REMOVE_FIELD,t)})),reset:l.reset,resetField:a.bind(d,(function(t){f.emit(pt.RESET_FIELD,t)}))});return v},exports.each=function(n,e){i.invariant(i.isFunction(e),"each callback must be a function"),W({type:t.EACH},(function(){n.forEach((function(t,n){e(t,n)}))}))},exports.eager=function(){var t;t=n.EAGER,a.useX().mode[0]=t},exports.group=function(n,e){i.invariant(i.isStringValue(n),At("name must be a string")),i.invariant(i.isFunction(e),At("callback must be a function")),W({type:t.GROUP},(function(){a.run({groupName:n},e)}))},exports.include=function(t){var n=a.useX(),e=n.inclusion,r=n.exclusion;return i.invariant(i.isStringValue(t)),e[t]=i.defaultTo(r.tests[t],!0),{when:function(n){var e=a.useX(),r=e.inclusion,u=e.exclusion;r[t]=function(){return i.hasOwnProperty(u.tests,t)?i.defaultTo(u.tests[t],!0):i.isStringValue(n)?Boolean(u.tests[n]):i.optionalFunctionValue(n,i.optionalFunctionValue(ot))}}}},exports.omitWhen=function(n,e){W({type:t.OMIT_WHEN},(function(){a.run({omitted:It()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.only=mt,exports.optional=function(t){if(i.isArray(t)||i.isStringValue(t))i.asArray(t).forEach((function(t){h(t,(function(){return{type:q.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];h(n,(function(){return{type:q.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},exports.skip=yt,exports.skipWhen=function(n,e){W({type:t.SKIP_WHEN},(function(){a.run({skipped:Nt()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.suiteSelectors=$,exports.test=Dt,exports.warn=function(){var t=a.useX("warn hook called outside of a running suite.");i.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { enforce } from 'n4s';
|
|
2
2
|
import { createState } from 'vast';
|
|
3
|
-
import { assign, isUndefined, isStringValue, cache as cache$2, asArray, nestedArray, seq, isNullish, deferThrow, invariant, isFunction, bindNot, either, isArray, optionalFunctionValue, isEmpty,
|
|
3
|
+
import { assign, isUndefined, isStringValue, cache as cache$2, asArray, nestedArray, seq, isNullish, deferThrow, invariant, isFunction, bindNot, either, isArray, optionalFunctionValue, isEmpty, isPositive, numberEquals, hasOwnProperty, callEach, bus, defaultTo, isPromise, isNotEmpty, isNull } from 'vest-utils';
|
|
4
4
|
import { createCascade } from 'context';
|
|
5
5
|
|
|
6
6
|
var IsolateTypes;
|
|
@@ -539,18 +539,18 @@ function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
|
539
539
|
}
|
|
540
540
|
// Does the given field have any pending tests that are not optional?
|
|
541
541
|
function hasNonOptionalIncomplete(fieldName) {
|
|
542
|
-
return
|
|
542
|
+
return useAllIncomplete().some(function (testObject) {
|
|
543
543
|
return isTestObjectOptional(testObject, fieldName);
|
|
544
|
-
})
|
|
544
|
+
});
|
|
545
545
|
}
|
|
546
546
|
// Do the given group/field have any pending tests that are not optional?
|
|
547
547
|
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
548
|
-
return
|
|
548
|
+
return useAllIncomplete().some(function (testObject) {
|
|
549
549
|
if (nonMatchingGroupName(testObject, groupName)) {
|
|
550
550
|
return false;
|
|
551
551
|
}
|
|
552
552
|
return isTestObjectOptional(testObject, fieldName);
|
|
553
|
-
})
|
|
553
|
+
});
|
|
554
554
|
}
|
|
555
555
|
function isTestObjectOptional(testObject, fieldName) {
|
|
556
556
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
@@ -1657,6 +1657,6 @@ function warn() {
|
|
|
1657
1657
|
ctx.currentTest.warn();
|
|
1658
1658
|
}
|
|
1659
1659
|
|
|
1660
|
-
var VERSION = "4.6.
|
|
1660
|
+
var VERSION = "4.6.8";
|
|
1661
1661
|
|
|
1662
1662
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, suiteSelectors, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{enforce}from"n4s";import{createState as t}from"vast";import{assign as n,isUndefined as e,isStringValue as r,cache as u,asArray as i,nestedArray as o,seq as s,isNullish as a,deferThrow as c,invariant as f,isFunction as l,bindNot as d,either as p,isArray as v,optionalFunctionValue as E,isEmpty as m,isNotEmpty as N,isPositive as h,numberEquals as g,hasOwnProperty as y,callEach as R,bus as S,defaultTo as T,isPromise as C,isNull as I}from"vest-utils";import{createCascade as _}from"context";var A,O;function k(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function b(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(A||(A={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(O||(O={}));var L=_((function(t,e){return e?null:n({exclusion:{tests:{},groups:{}},inclusion:{},isolate:b(A.DEFAULT),mode:[O.ALL]},t)}));function U(){return L.useX().isolate}function D(){var t=U();return t.path.concat(t.cursor.current())}function F(){return U().cursor}function P(){return L.useX().stateRef}function W(){return P().suiteId()[0]}function G(){return P().testCallbacks()}function w(){return P().optionalFields()}function x(t,e){(0,w()[1])((function(r){var u;return n(r,((u={})[t]=n({},r[t],e(r[t])),u))}))}function X(t){var n;return null!==(n=w()[0][t])&&void 0!==n?n:{}}function H(){return P().testObjects()}function K(){B((function(t){return t}))}function B(t){(0,H()[1])((function(n){var e=n.current;return{prev:n.prev,current:i(t(e))}}))}function M(){return j().filter((function(t){return t.isPending()}))}var q,V=u();function j(){var t=H()[0].current;return V([t],(function(){return o.flatten(t)}))}function Y(t){j().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(q||(q={}));var J,z,Q=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,i=r.groupName,o=r.key;this.key=null,this.id=s(),this.severity=q.Error,this.status=Z,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),u&&(this.message=u),o&&(this.key=o)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return e(t)&&r(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==it||(this.status=t)},t.prototype.warns=function(){return this.severity===q.Warning},t.prototype.setPending=function(){this.setStatus(rt)},t.prototype.fail=function(){this.setStatus(this.warns()?nt:tt)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(et)},t.prototype.warn=function(){this.severity=q.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus($)},t.prototype.cancel=function(){this.setStatus(ut),K()},t.prototype.reset=function(){this.status=Z,K()},t.prototype.omit=function(){this.setStatus(it)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(rt)},t.prototype.isOmitted=function(){return this.statusEquals(it)},t.prototype.isUntested=function(){return this.statusEquals(Z)},t.prototype.isFailing=function(){return this.statusEquals(tt)},t.prototype.isCanceled=function(){return this.statusEquals(ut)},t.prototype.isSkipped=function(){return this.statusEquals($)},t.prototype.isPassing=function(){return this.statusEquals(et)},t.prototype.isWarning=function(){return this.statusEquals(nt)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),Z="UNTESTED",$="SKIPPED",tt="FAILED",nt="WARNING",et="PASSING",rt="PENDING",ut="CANCELED",it="OMITTED";function ot(t,n){var e=t.type,r=void 0===e?A.DEFAULT:e;f(l(n));var u=b(r,D()),s=L.run({isolate:u},(function(){var t;return u.keys.prev=(t=H()[0].prev,i(o.getCurrent(t,D())).reduce((function(t,n){return n instanceof Q?(a(n.key)||(t[n.key]=n),t):t}),{})),B((function(t){return o.setValueAtPath(t,u.path,[])})),n()}));return F().next(),s}function st(t){return t===J.ERRORS?z.ERROR_COUNT:z.WARN_COUNT}function at(t,n){return!!n&&!ct(t,n)}function ct(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(J||(J={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(z||(z={}));var ft,lt=d((function(t,n){return t.groupName===n}));function dt(t){return function(t,n){return j().some((function(e){return pt(e,t,n)}))}(J.ERRORS,t)}function pt(t,n,e){return!!t.hasFailures()&&(!at(t,e)&&!function(t,n){return p(t===J.WARNINGS,n.warns())}(n,t))}function vt(t){if(v(t)||r(t))i(t).forEach((function(t){x(t,(function(){return{type:ft.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];x(n,(function(){return{type:ft.Immediate,rule:e,applied:E(e)}}))};for(var e in t)n(e)}}function Et(t){return!!t&&X(t).applied}function mt(t){if(Et(t))return!0;var n=j();return!m(n)&&(!dt(t)&&(!function(t){return N(M().filter((function(n){return ht(n,t)})))}(t)&&function(t){return j().every((function(n){return gt(n,t)}))}(t)))}function Nt(t,n){return!!Et(n)||!function(t,n,e){return j().some((function(r){return!lt(r,n)&&pt(r,t,e)}))}(J.ERRORS,t,n)&&(!function(t,n){return N(M().filter((function(e){return!lt(e,t)&&ht(e,n)})))}(t,n)&&function(t,n){return j().every((function(e){return!!lt(e,t)||gt(e,n)}))}(t,n))}function ht(t,n){return!at(t,n)&&Et(n)}function gt(t,n){return!!at(t,n)||(function(t){return X(t.fieldName).type===ft.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function yt(){var t=j(),e=n({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Rt(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&mt(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Rt(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Nt(e,n.fieldName)}(t.groups,n),t}),e),e.valid=mt(),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}(e)}function Rt(t,e){var r=e.fieldName,u=e.message;t[r]=t[r]||n({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return e.isNonActionable()||(t[r].testCount++,e.isFailing()?o(J.ERRORS):e.isWarning()&&o(J.WARNINGS)),i;function o(t){var n=st(t);i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}}function St(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=st(n);for(var u in t)h(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function Tt(t){var n={getErrors:function(n){return Ct(t,J.ERRORS,n)},getErrorsByGroup:function(n,e){return It(t,J.ERRORS,n,e)},getWarnings:function(n){return Ct(t,J.WARNINGS,n)},getWarningsByGroup:function(n,e){return It(t,J.WARNINGS,n,e)},hasErrors:function(n){return Ot(t,z.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return At(t,z.ERROR_COUNT,n,e)},hasWarnings:function(n){return Ot(t,z.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return At(t,z.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return _t(r,e);for(var u in r)if(!_t(r,u))return!1;return!0}};return n}function Ct(t,n,e){return St(t.tests,n,e)}function It(t,n,e,r){return St(t.groups[e],n,r)}function _t(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function At(t,n,e,r){var u,i,o=t.groups[e];if(!o)return!1;if(r)return h(null===(u=o[r])||void 0===u?void 0:u[n]);for(var s in o)if(h(null===(i=o[s])||void 0===i?void 0:i[n]))return!0;return!1}function Ot(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return h(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(ft||(ft={}));var kt=u(1);function bt(){var t=j(),e={stateRef:P()};return kt([t],L.bind(e,(function(){var t=yt(),e=P().suiteName()[0];return n(t,Tt(t),{suiteName:e})})))}function Lt(t){var n=M();return!m(n)&&(!t||n.some((function(n){return ct(n,t)})))}var Ut=u(20);function Dt(){var t=j(),e={stateRef:P()};return Ut([t],L.bind(e,(function(){return n({},bt(),{done:L.bind(e,Gt)})})))}function Ft(t,n,e){var r;return!!(!l(t)||n&&g(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function Pt(t){return!(Lt()&&(!t||Lt(t)))}var Wt,Gt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],u=e[1],i=Dt();if(Ft(r,u,i))return i;var o=function(){return r(bt())};return Pt(u)?(o(),i):(wt(o,u),i)};function wt(t,n){(0,G()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function xt(){var t=w()[0];if(!m(t)){var n={};j().forEach((function(t){y(n,t.fieldName)?e(t):function(t){var r=X(t.fieldName);r.type===ft.Immediate&&(n[t.fieldName]=E(r.rule),e(t))}(t)})),K()}function e(t){n[t.fieldName]&&(t.omit(),x(t.fieldName,(function(){return{applied:!0}})))}}function Xt(){var t=S.createBus();return t.on(Wt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=G()[0].fieldCallbacks,e&&!Lt(e)&&v(r[e])&&R(r[e]),Lt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED))})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){xt()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=G()[0].doneCallbacks,R(t)})),t.on(Wt.REMOVE_FIELD,(function(t){Y((function(n){ct(n,t)&&(n.cancel(),function(t){B((function(n){return o.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){Y((function(n){ct(n,t)&&n.reset()}))})),t}function Ht(){var t=L.useX();return f(t.bus),t.bus}function Kt(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var u=e.reverse(),i=u[0],o=u[1];f(l(i),"vest.create: Expected callback to be a function.");var a=Xt(),c=t(),d=k(c,{suiteId:s(),suiteName:o}),p={stateRef:d,bus:a},v=n(L.bind(p,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return c.reset(),ot({type:A.SUITE},(function(){i.apply(void 0,t)})),a.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:L.bind(p,bt),remove:L.bind(p,(function(t){a.emit(Wt.REMOVE_FIELD,t)})),reset:c.reset,resetField:L.bind(p,(function(t){a.emit(Wt.RESET_FIELD,t)}))});return v}function Bt(t,n){f(l(n),"each callback must be a function"),ot({type:A.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Wt||(Wt={}));function Mt(t,n){ot({type:A.SKIP_WHEN},(function(){L.run({skipped:qt()||E(t,E(bt))},(function(){return n()}))}))}function qt(){return!!L.useX().skipped}function Vt(t){return Jt(0,"tests",t)}function jt(t){return Jt(1,"tests",t)}function Yt(t){var n=t.fieldName,e=t.groupName;if(qt())return!0;var r=L.useX(),u=r.exclusion,i=r.inclusion,o=u.tests,s=o[n];if(!1===s)return!0;var a=!0===s;if(e){if(function(t){var n=L.useX().exclusion.groups;if(y(n,t))return!1===n[t];return Qt()}(e))return!0;if(!0===u.groups[e])return!a&&(!!zt(o)||!1===o[n])}return!!function(t){if(!Qt())return!1;return!t}(e)||!a&&(!!zt(o)&&!E(i[n]))}function Jt(t,n,e){var u=L.useX("hook called outside of a running suite.");e&&i(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t=L.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function Zt(t,n){f(r(t),$t("name must be a string")),f(l(n),$t("callback must be a function")),ot({type:A.GROUP},(function(){L.run({groupName:t},n)}))}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t){var n=L.useX(),e=n.inclusion,u=n.exclusion;return f(r(t)),e[t]=T(u.tests[t],!0),{when:function(n){var e=L.useX(),u=e.inclusion,i=e.exclusion;u[t]=function(){return y(i.tests,t)?T(i.tests[t],!0):r(n)?Boolean(i.tests[n]):E(n,E(bt))}}}}function nn(){var t;t=O.EAGER,L.useX().mode[0]=t}function en(t){return n=O.EAGER,L.useX().mode[0]===n&&dt(t.fieldName);var n}function rn(t,n){ot({type:A.OMIT_WHEN},(function(){L.run({omitted:un()||E(t,E(bt))},(function(){return n()}))}))}function un(){return!!L.useX().omitted}function on(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 sn(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function an(t){var n=t.asyncTest,e=t.message;if(C(n)){var u=Ht().emit,i=P(),o=L.bind({stateRef:i},(function(){K(),u(Wt.TEST_COMPLETED,t)})),s=L.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));n.then(o,s)}}function cn(t){var n=Ht(),e=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{C(e)?(t.asyncTest=e,t.setPending(),an(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function fn(t){var n=H()[0].prev;if(m(n))return ln(t),t;var e,r,u,i=(e=n,r=D(),o.valueAtPath(e,r));if(!a(t.key)){var s=function(t,n){var e=function(t){return U().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=U().keys.current;a(e[t])?e[t]=n:c('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(t.key,t);return ln(s),s}(function(t,n){return N(t)&&!sn(t,n)})(i,t)&&(!function(t,n){if(U().type===A.EACH)return;c("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(i,t),u=F().current(),B((function(t){return t.splice(u),t})),i=null);var f=T(i,t);return ln(f),f}function ln(t){var n=D();B((function(e){return o.setValueAtPath(e,n,t)}))}function dn(t){var n=F();if(en(t))return t.skip(),fn(t),n.next(),t;var e,r,u=fn(t);return un()||Et(t.fieldName)?(u.omit(),n.next(),u):Yt(t)?(u.skip(qt()),n.next(),u):((r=t)!==(e=u)&&sn(e,r)&&e.isPending()&&e.cancel(),ln(t),function(t){t.isUntested()?cn(t):C(t.asyncTest)&&(t.setPending(),an(t))}(t),n.next(),t)}function pn(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:on([void 0],n,!0),i=u[0],o=u[1],s=u[2];f(r(t),En("fieldName","string")),f(l(o),En("Test callback","function"));var a=L.useX(),c=new Q(t,o,{message:i,groupName:a.groupName,key:s});return dn(c)}Vt.group=function(t){return Jt(0,"groups",t)},jt.group=function(t){return Jt(1,"groups",t)};var vn=n(pn,{memo:function(t){var n=u(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var i=F().current(),o=r.reverse(),s=o[0],a=o[1],c=o[2],f=[W(),e,i].concat(s),l=n.get(f);return I(l)?n(f,(function(){return t(e,c,a)})):l[1].isCanceled()?(n.invalidate(f),n(f,(function(){return t(e,c,a)}))):dn(l[1])}}(pn)});function En(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}function mn(){var t=L.useX("warn hook called outside of a running suite.");f(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}var Nn="4.6.7";export{Nn as VERSION,L as context,Kt as create,Bt as each,nn as eager,Zt as group,tn as include,rn as omitWhen,Vt as only,vt as optional,jt as skip,Mt as skipWhen,Tt as suiteSelectors,vn as test,mn as warn};
|
|
1
|
+
export{enforce}from"n4s";import{createState as t}from"vast";import{assign as n,isUndefined as e,isStringValue as r,cache as u,asArray as i,nestedArray as o,seq as s,isNullish as a,deferThrow as c,invariant as f,isFunction as l,bindNot as d,either as p,isArray as v,optionalFunctionValue as E,isEmpty as m,isPositive as N,numberEquals as h,hasOwnProperty as g,callEach as y,bus as R,defaultTo as S,isPromise as T,isNotEmpty as C,isNull as I}from"vest-utils";import{createCascade as _}from"context";var A,O;function k(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function b(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(A||(A={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(O||(O={}));var L=_((function(t,e){return e?null:n({exclusion:{tests:{},groups:{}},inclusion:{},isolate:b(A.DEFAULT),mode:[O.ALL]},t)}));function U(){return L.useX().isolate}function D(){var t=U();return t.path.concat(t.cursor.current())}function F(){return U().cursor}function P(){return L.useX().stateRef}function W(){return P().suiteId()[0]}function G(){return P().testCallbacks()}function w(){return P().optionalFields()}function x(t,e){(0,w()[1])((function(r){var u;return n(r,((u={})[t]=n({},r[t],e(r[t])),u))}))}function X(t){var n;return null!==(n=w()[0][t])&&void 0!==n?n:{}}function H(){return P().testObjects()}function K(){B((function(t){return t}))}function B(t){(0,H()[1])((function(n){var e=n.current;return{prev:n.prev,current:i(t(e))}}))}function M(){return j().filter((function(t){return t.isPending()}))}var q,V=u();function j(){var t=H()[0].current;return V([t],(function(){return o.flatten(t)}))}function Y(t){j().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(q||(q={}));var J,z,Q=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,i=r.groupName,o=r.key;this.key=null,this.id=s(),this.severity=q.Error,this.status=Z,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),u&&(this.message=u),o&&(this.key=o)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return e(t)&&r(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==it||(this.status=t)},t.prototype.warns=function(){return this.severity===q.Warning},t.prototype.setPending=function(){this.setStatus(rt)},t.prototype.fail=function(){this.setStatus(this.warns()?nt:tt)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(et)},t.prototype.warn=function(){this.severity=q.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus($)},t.prototype.cancel=function(){this.setStatus(ut),K()},t.prototype.reset=function(){this.status=Z,K()},t.prototype.omit=function(){this.setStatus(it)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(rt)},t.prototype.isOmitted=function(){return this.statusEquals(it)},t.prototype.isUntested=function(){return this.statusEquals(Z)},t.prototype.isFailing=function(){return this.statusEquals(tt)},t.prototype.isCanceled=function(){return this.statusEquals(ut)},t.prototype.isSkipped=function(){return this.statusEquals($)},t.prototype.isPassing=function(){return this.statusEquals(et)},t.prototype.isWarning=function(){return this.statusEquals(nt)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),Z="UNTESTED",$="SKIPPED",tt="FAILED",nt="WARNING",et="PASSING",rt="PENDING",ut="CANCELED",it="OMITTED";function ot(t,n){var e=t.type,r=void 0===e?A.DEFAULT:e;f(l(n));var u=b(r,D()),s=L.run({isolate:u},(function(){var t;return u.keys.prev=(t=H()[0].prev,i(o.getCurrent(t,D())).reduce((function(t,n){return n instanceof Q?(a(n.key)||(t[n.key]=n),t):t}),{})),B((function(t){return o.setValueAtPath(t,u.path,[])})),n()}));return F().next(),s}function st(t){return t===J.ERRORS?z.ERROR_COUNT:z.WARN_COUNT}function at(t,n){return!!n&&!ct(t,n)}function ct(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(J||(J={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(z||(z={}));var ft,lt=d((function(t,n){return t.groupName===n}));function dt(t){return function(t,n){return j().some((function(e){return pt(e,t,n)}))}(J.ERRORS,t)}function pt(t,n,e){return!!t.hasFailures()&&(!at(t,e)&&!function(t,n){return p(t===J.WARNINGS,n.warns())}(n,t))}function vt(t){if(v(t)||r(t))i(t).forEach((function(t){x(t,(function(){return{type:ft.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];x(n,(function(){return{type:ft.Immediate,rule:e,applied:E(e)}}))};for(var e in t)n(e)}}function Et(t){return!!t&&X(t).applied}function mt(t){if(Et(t))return!0;var n=j();return!m(n)&&(!dt(t)&&(!function(t){return M().some((function(n){return ht(n,t)}))}(t)&&function(t){return j().every((function(n){return gt(n,t)}))}(t)))}function Nt(t,n){return!!Et(n)||!function(t,n,e){return j().some((function(r){return!lt(r,n)&&pt(r,t,e)}))}(J.ERRORS,t,n)&&(!function(t,n){return M().some((function(e){return!lt(e,t)&&ht(e,n)}))}(t,n)&&function(t,n){return j().every((function(e){return!!lt(e,t)||gt(e,n)}))}(t,n))}function ht(t,n){return!at(t,n)&&Et(n)}function gt(t,n){return!!at(t,n)||(function(t){return X(t.fieldName).type===ft.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function yt(){var t=j(),e=n({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Rt(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&mt(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Rt(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Nt(e,n.fieldName)}(t.groups,n),t}),e),e.valid=mt(),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}(e)}function Rt(t,e){var r=e.fieldName,u=e.message;t[r]=t[r]||n({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return e.isNonActionable()||(t[r].testCount++,e.isFailing()?o(J.ERRORS):e.isWarning()&&o(J.WARNINGS)),i;function o(t){var n=st(t);i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}}function St(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=st(n);for(var u in t)N(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function Tt(t){var n={getErrors:function(n){return Ct(t,J.ERRORS,n)},getErrorsByGroup:function(n,e){return It(t,J.ERRORS,n,e)},getWarnings:function(n){return Ct(t,J.WARNINGS,n)},getWarningsByGroup:function(n,e){return It(t,J.WARNINGS,n,e)},hasErrors:function(n){return Ot(t,z.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return At(t,z.ERROR_COUNT,n,e)},hasWarnings:function(n){return Ot(t,z.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return At(t,z.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return _t(r,e);for(var u in r)if(!_t(r,u))return!1;return!0}};return n}function Ct(t,n,e){return St(t.tests,n,e)}function It(t,n,e,r){return St(t.groups[e],n,r)}function _t(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function At(t,n,e,r){var u,i,o=t.groups[e];if(!o)return!1;if(r)return N(null===(u=o[r])||void 0===u?void 0:u[n]);for(var s in o)if(N(null===(i=o[s])||void 0===i?void 0:i[n]))return!0;return!1}function Ot(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return N(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(ft||(ft={}));var kt=u(1);function bt(){var t=j(),e={stateRef:P()};return kt([t],L.bind(e,(function(){var t=yt(),e=P().suiteName()[0];return n(t,Tt(t),{suiteName:e})})))}function Lt(t){var n=M();return!m(n)&&(!t||n.some((function(n){return ct(n,t)})))}var Ut=u(20);function Dt(){var t=j(),e={stateRef:P()};return Ut([t],L.bind(e,(function(){return n({},bt(),{done:L.bind(e,Gt)})})))}function Ft(t,n,e){var r;return!!(!l(t)||n&&h(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function Pt(t){return!(Lt()&&(!t||Lt(t)))}var Wt,Gt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],u=e[1],i=Dt();if(Ft(r,u,i))return i;var o=function(){return r(bt())};return Pt(u)?(o(),i):(wt(o,u),i)};function wt(t,n){(0,G()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function xt(){var t=w()[0];if(!m(t)){var n={};j().forEach((function(t){g(n,t.fieldName)?e(t):function(t){var r=X(t.fieldName);r.type===ft.Immediate&&(n[t.fieldName]=E(r.rule),e(t))}(t)})),K()}function e(t){n[t.fieldName]&&(t.omit(),x(t.fieldName,(function(){return{applied:!0}})))}}function Xt(){var t=R.createBus();return t.on(Wt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=G()[0].fieldCallbacks,e&&!Lt(e)&&v(r[e])&&y(r[e]),Lt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED))})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){xt()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=G()[0].doneCallbacks,y(t)})),t.on(Wt.REMOVE_FIELD,(function(t){Y((function(n){ct(n,t)&&(n.cancel(),function(t){B((function(n){return o.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){Y((function(n){ct(n,t)&&n.reset()}))})),t}function Ht(){var t=L.useX();return f(t.bus),t.bus}function Kt(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var u=e.reverse(),i=u[0],o=u[1];f(l(i),"vest.create: Expected callback to be a function.");var a=Xt(),c=t(),d=k(c,{suiteId:s(),suiteName:o}),p={stateRef:d,bus:a},v=n(L.bind(p,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return c.reset(),ot({type:A.SUITE},(function(){i.apply(void 0,t)})),a.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:L.bind(p,bt),remove:L.bind(p,(function(t){a.emit(Wt.REMOVE_FIELD,t)})),reset:c.reset,resetField:L.bind(p,(function(t){a.emit(Wt.RESET_FIELD,t)}))});return v}function Bt(t,n){f(l(n),"each callback must be a function"),ot({type:A.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Wt||(Wt={}));function Mt(t,n){ot({type:A.SKIP_WHEN},(function(){L.run({skipped:qt()||E(t,E(bt))},(function(){return n()}))}))}function qt(){return!!L.useX().skipped}function Vt(t){return Jt(0,"tests",t)}function jt(t){return Jt(1,"tests",t)}function Yt(t){var n=t.fieldName,e=t.groupName;if(qt())return!0;var r=L.useX(),u=r.exclusion,i=r.inclusion,o=u.tests,s=o[n];if(!1===s)return!0;var a=!0===s;if(e){if(function(t){var n=L.useX().exclusion.groups;if(g(n,t))return!1===n[t];return Qt()}(e))return!0;if(!0===u.groups[e])return!a&&(!!zt(o)||!1===o[n])}return!!function(t){if(!Qt())return!1;return!t}(e)||!a&&(!!zt(o)&&!E(i[n]))}function Jt(t,n,e){var u=L.useX("hook called outside of a running suite.");e&&i(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t=L.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function Zt(t,n){f(r(t),$t("name must be a string")),f(l(n),$t("callback must be a function")),ot({type:A.GROUP},(function(){L.run({groupName:t},n)}))}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t){var n=L.useX(),e=n.inclusion,u=n.exclusion;return f(r(t)),e[t]=S(u.tests[t],!0),{when:function(n){var e=L.useX(),u=e.inclusion,i=e.exclusion;u[t]=function(){return g(i.tests,t)?S(i.tests[t],!0):r(n)?Boolean(i.tests[n]):E(n,E(bt))}}}}function nn(){var t;t=O.EAGER,L.useX().mode[0]=t}function en(t){return n=O.EAGER,L.useX().mode[0]===n&&dt(t.fieldName);var n}function rn(t,n){ot({type:A.OMIT_WHEN},(function(){L.run({omitted:un()||E(t,E(bt))},(function(){return n()}))}))}function un(){return!!L.useX().omitted}function on(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 sn(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function an(t){var n=t.asyncTest,e=t.message;if(T(n)){var u=Ht().emit,i=P(),o=L.bind({stateRef:i},(function(){K(),u(Wt.TEST_COMPLETED,t)})),s=L.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));n.then(o,s)}}function cn(t){var n=Ht(),e=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{T(e)?(t.asyncTest=e,t.setPending(),an(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function fn(t){var n=H()[0].prev;if(m(n))return ln(t),t;var e,r,u,i=(e=n,r=D(),o.valueAtPath(e,r));if(!a(t.key)){var s=function(t,n){var e=function(t){return U().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=U().keys.current;a(e[t])?e[t]=n:c('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(t.key,t);return ln(s),s}(function(t,n){return C(t)&&!sn(t,n)})(i,t)&&(!function(t,n){if(U().type===A.EACH)return;c("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(i,t),u=F().current(),B((function(t){return t.splice(u),t})),i=null);var f=S(i,t);return ln(f),f}function ln(t){var n=D();B((function(e){return o.setValueAtPath(e,n,t)}))}function dn(t){var n=F();if(en(t))return t.skip(),fn(t),n.next(),t;var e,r,u=fn(t);return un()||Et(t.fieldName)?(u.omit(),n.next(),u):Yt(t)?(u.skip(qt()),n.next(),u):((r=t)!==(e=u)&&sn(e,r)&&e.isPending()&&e.cancel(),ln(t),function(t){t.isUntested()?cn(t):T(t.asyncTest)&&(t.setPending(),an(t))}(t),n.next(),t)}function pn(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:on([void 0],n,!0),i=u[0],o=u[1],s=u[2];f(r(t),En("fieldName","string")),f(l(o),En("Test callback","function"));var a=L.useX(),c=new Q(t,o,{message:i,groupName:a.groupName,key:s});return dn(c)}Vt.group=function(t){return Jt(0,"groups",t)},jt.group=function(t){return Jt(1,"groups",t)};var vn=n(pn,{memo:function(t){var n=u(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var i=F().current(),o=r.reverse(),s=o[0],a=o[1],c=o[2],f=[W(),e,i].concat(s),l=n.get(f);return I(l)?n(f,(function(){return t(e,c,a)})):l[1].isCanceled()?(n.invalidate(f),n(f,(function(){return t(e,c,a)}))):dn(l[1])}}(pn)});function En(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}function mn(){var t=L.useX("warn hook called outside of a running suite.");f(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}var Nn="4.6.8";export{Nn as VERSION,L as context,Kt as create,Bt as each,nn as eager,Zt as group,tn as include,rn as omitWhen,Vt as only,vt as optional,jt as skip,Mt as skipWhen,Tt as suiteSelectors,vn as test,mn as warn};
|
|
@@ -540,18 +540,18 @@
|
|
|
540
540
|
}
|
|
541
541
|
// Does the given field have any pending tests that are not optional?
|
|
542
542
|
function hasNonOptionalIncomplete(fieldName) {
|
|
543
|
-
return
|
|
543
|
+
return useAllIncomplete().some(function (testObject) {
|
|
544
544
|
return isTestObjectOptional(testObject, fieldName);
|
|
545
|
-
})
|
|
545
|
+
});
|
|
546
546
|
}
|
|
547
547
|
// Do the given group/field have any pending tests that are not optional?
|
|
548
548
|
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
549
|
-
return
|
|
549
|
+
return useAllIncomplete().some(function (testObject) {
|
|
550
550
|
if (nonMatchingGroupName(testObject, groupName)) {
|
|
551
551
|
return false;
|
|
552
552
|
}
|
|
553
553
|
return isTestObjectOptional(testObject, fieldName);
|
|
554
|
-
})
|
|
554
|
+
});
|
|
555
555
|
}
|
|
556
556
|
function isTestObjectOptional(testObject, fieldName) {
|
|
557
557
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
@@ -1658,7 +1658,7 @@
|
|
|
1658
1658
|
ctx.currentTest.warn();
|
|
1659
1659
|
}
|
|
1660
1660
|
|
|
1661
|
-
var VERSION = "4.6.
|
|
1661
|
+
var VERSION = "4.6.8";
|
|
1662
1662
|
|
|
1663
1663
|
Object.defineProperty(exports, 'enforce', {
|
|
1664
1664
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vast"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vast","vest-utils","context"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t.vast,t["vest-utils"],t.context)}(this,(function(t,n,e,r,i){"use strict";var u,o;function s(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function a(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(u||(u={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(o||(o={}));var c=i.createCascade((function(t,n){return n?null:r.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:a(u.DEFAULT),mode:[o.ALL]},t)}));function f(){return c.useX().isolate}function l(){var t=f();return t.path.concat(t.cursor.current())}function d(){return f().cursor}function p(){return c.useX().stateRef}function v(){return p().suiteId()[0]}function E(){return p().testCallbacks()}function h(){return p().optionalFields()}function g(t,n){(0,h()[1])((function(e){var i;return r.assign(e,((i={})[t]=r.assign({},e[t],n(e[t])),i))}))}function y(t){var n;return null!==(n=h()[0][t])&&void 0!==n?n:{}}function N(){return p().testObjects()}function m(){R((function(t){return t}))}function R(t){(0,N()[1])((function(n){var e=n.current;return{prev:n.prev,current:r.asArray(t(e))}}))}function S(){return A().filter((function(t){return t.isPending()}))}var T,C=r.cache();function A(){var t=N()[0].current;return C([t],(function(){return r.nestedArray.flatten(t)}))}function _(t){A().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(T||(T={}));var I,O,b=function(){function t(t,n,e){var i=void 0===e?{}:e,u=i.message,o=i.groupName,s=i.key;this.key=null,this.id=r.seq(),this.severity=T.Error,this.status=F,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return r.isUndefined(t)&&r.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==w||(this.status=t)},t.prototype.warns=function(){return this.severity===T.Warning},t.prototype.setPending=function(){this.setStatus(D)},t.prototype.fail=function(){this.setStatus(this.warns()?L:P)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},t.prototype.warn=function(){this.severity=T.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(k)},t.prototype.cancel=function(){this.setStatus(W),m()},t.prototype.reset=function(){this.status=F,m()},t.prototype.omit=function(){this.setStatus(w)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(D)},t.prototype.isOmitted=function(){return this.statusEquals(w)},t.prototype.isUntested=function(){return this.statusEquals(F)},t.prototype.isFailing=function(){return this.statusEquals(P)},t.prototype.isCanceled=function(){return this.statusEquals(W)},t.prototype.isSkipped=function(){return this.statusEquals(k)},t.prototype.isPassing=function(){return this.statusEquals(U)},t.prototype.isWarning=function(){return this.statusEquals(L)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),F="UNTESTED",k="SKIPPED",P="FAILED",L="WARNING",U="PASSING",D="PENDING",W="CANCELED",w="OMITTED";function G(t,n){var e=t.type,i=void 0===e?u.DEFAULT:e;r.invariant(r.isFunction(n));var o=a(i,l()),s=c.run({isolate:o},(function(){var t;return o.keys.prev=(t=N()[0].prev,r.asArray(r.nestedArray.getCurrent(t,l())).reduce((function(t,n){return n instanceof b?(r.isNullish(n.key)||(t[n.key]=n),t):t}),{})),R((function(t){return r.nestedArray.setValueAtPath(t,o.path,[])})),n()}));return d().next(),s}function V(t){return t===I.ERRORS?O.ERROR_COUNT:O.WARN_COUNT}function x(t,n){return!!n&&!q(t,n)}function q(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(I||(I={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(O||(O={}));var X,H=r.bindNot((function(t,n){return t.groupName===n}));function K(t){return function(t,n){return A().some((function(e){return M(e,t,n)}))}(I.ERRORS,t)}function M(t,n,e){return!!t.hasFailures()&&(!x(t,e)&&!function(t,n){return r.either(t===I.WARNINGS,n.warns())}(n,t))}function B(t){return!!t&&y(t).applied}function j(t){if(B(t))return!0;var n=A();return!r.isEmpty(n)&&(!K(t)&&(!function(t){return r.isNotEmpty(S().filter((function(n){return J(n,t)})))}(t)&&function(t){return A().every((function(n){return z(n,t)}))}(t)))}function Y(t,n){return!!B(n)||!function(t,n,e){return A().some((function(r){return!H(r,n)&&M(r,t,e)}))}(I.ERRORS,t,n)&&(!function(t,n){return r.isNotEmpty(S().filter((function(e){return!H(e,t)&&J(e,n)})))}(t,n)&&function(t,n){return A().every((function(e){return!!H(e,t)||z(e,n)}))}(t,n))}function J(t,n){return!x(t,n)&&B(n)}function z(t,n){return!!x(t,n)||(function(t){return y(t.fieldName).type===X.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function Q(){var t=A(),n=r.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Z(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&j(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Z(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Y(e,n.fieldName)}(t.groups,n),t}),n),n.valid=j(),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)}function Z(t,n){var e=n.fieldName,i=n.message;t[e]=t[e]||r.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(I.ERRORS):n.isWarning()&&o(I.WARNINGS)),u;function o(t){var n=V(t);u[n]++,i&&(u[t]=(u[t]||[]).concat(i))}}function $(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},i=V(n);for(var u in t)r.isPositive(t[u][i])&&(e[u]=t[u][n]||[]);return e}(t,n)}function tt(t){var n={getErrors:function(n){return nt(t,I.ERRORS,n)},getErrorsByGroup:function(n,e){return et(t,I.ERRORS,n,e)},getWarnings:function(n){return nt(t,I.WARNINGS,n)},getWarningsByGroup:function(n,e){return et(t,I.WARNINGS,n,e)},hasErrors:function(n){return ut(t,O.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return it(t,O.ERROR_COUNT,n,e)},hasWarnings:function(n){return ut(t,O.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return it(t,O.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return rt(r,e);for(var i in r)if(!rt(r,i))return!1;return!0}};return n}function nt(t,n,e){return $(t.tests,n,e)}function et(t,n,e,r){return $(t.groups[e],n,r)}function rt(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function it(t,n,e,i){var u,o,s=t.groups[e];if(!s)return!1;if(i)return r.isPositive(null===(u=s[i])||void 0===u?void 0:u[n]);for(var a in s)if(r.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function ut(t,n,e){var i,u=e?null===(i=t.tests[e])||void 0===i?void 0:i[n]:t[n]||0;return r.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(X||(X={}));var ot=r.cache(1);function st(){var t=A(),n={stateRef:p()};return ot([t],c.bind(n,(function(){var t=Q(),n=p().suiteName()[0];return r.assign(t,tt(t),{suiteName:n})})))}function at(t){var n=S();return!r.isEmpty(n)&&(!t||n.some((function(n){return q(n,t)})))}var ct=r.cache(20);function ft(){var t=A(),n={stateRef:p()};return ct([t],c.bind(n,(function(){return r.assign({},st(),{done:c.bind(n,vt)})})))}function lt(t,n,e){var i;return!!(!r.isFunction(t)||n&&r.numberEquals(null===(i=e.tests[n])||void 0===i?void 0:i.testCount,0))}function dt(t){return!(at()&&(!t||at(t)))}var pt,vt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ft();if(lt(r,i,u))return u;var o=function(){return r(st())};return dt(i)?(o(),u):(Et(o,i),u)};function Et(t,n){(0,E()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function ht(){var t=h()[0];if(!r.isEmpty(t)){var n={};A().forEach((function(t){r.hasOwnProperty(n,t.fieldName)?e(t):function(t){var i=y(t.fieldName);i.type===X.Immediate&&(n[t.fieldName]=r.optionalFunctionValue(i.rule),e(t))}(t)})),m()}function e(t){n[t.fieldName]&&(t.omit(),g(t.fieldName,(function(){return{applied:!0}})))}}function gt(){var t=r.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,i;n.isCanceled()||(n.done(),e=n.fieldName,i=E()[0].fieldCallbacks,e&&!at(e)&&r.isArray(i[e])&&r.callEach(i[e]),at()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){ht()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=E()[0].doneCallbacks,r.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){_((function(n){q(n,t)&&(n.cancel(),function(t){R((function(n){return r.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){_((function(n){q(n,t)&&n.reset()}))})),t}function yt(){var t=c.useX();return r.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));var Nt="hook called outside of a running suite.";function mt(){return!!c.useX().skipped}function Rt(t){return Ct(0,"tests",t)}function St(t){return Ct(1,"tests",t)}function Tt(t){var n=t.fieldName,e=t.groupName;if(mt())return!0;var i=c.useX(),u=i.exclusion,o=i.inclusion,s=u.tests,a=s[n];if(!1===a)return!0;var f=!0===a;if(e){if(function(t){var n=c.useX().exclusion.groups;if(r.hasOwnProperty(n,t))return!1===n[t];return _t()}(e))return!0;if(!0===u.groups[e])return!f&&(!!At(s)||!1===s[n])}return!!function(t){if(!_t())return!1;return!t}(e)||!f&&(!!At(s)&&!r.optionalFunctionValue(o[n]))}function Ct(t,n,e){var i=c.useX(Nt);e&&r.asArray(e).forEach((function(e){r.isStringValue(e)&&(i.exclusion[n][e]=0===t)}))}function At(t){for(var n in t)if(!0===t[n])return!0;return!1}function _t(){var t=c.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function It(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Ot(t){return n=o.EAGER,c.useX().mode[0]===n&&K(t.fieldName);var n}function bt(){return!!c.useX().omitted}function Ft(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function kt(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function Pt(t){var n=t.asyncTest,e=t.message;if(r.isPromise(n)){var i=yt().emit,u=p(),o=c.bind({stateRef:u},(function(){m(),i(pt.TEST_COMPLETED,t)})),s=c.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=r.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,s)}}function Lt(t){var n=yt(),e=function(t){return c.run({currentTest:t},(function(){return t.run()}))}(t);try{r.isPromise(e)?(t.asyncTest=e,t.setPending(),Pt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Ut(t){var n=N()[0].prev;if(r.isEmpty(n))return Dt(t),t;var e,i,o,s=(e=n,i=l(),r.nestedArray.valueAtPath(e,i));if(!r.isNullish(t.key)){var a=function(t,n){var e=function(t){return f().keys.prev[t]}(t),i=n;e&&(i=e);return function(t,n){var e=f().keys.current;r.isNullish(e[t])?e[t]=n:r.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,i),i}(t.key,t);return Dt(a),a}(function(t,n){return r.isNotEmpty(t)&&!kt(t,n)})(s,t)&&(!function(t,n){if(f().type===u.EACH)return;r.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(s,t),o=d().current(),R((function(t){return t.splice(o),t})),s=null);var c=r.defaultTo(s,t);return Dt(c),c}function Dt(t){var n=l();R((function(e){return r.nestedArray.setValueAtPath(e,n,t)}))}function Wt(t){var n=d();if(Ot(t))return t.skip(),Ut(t),n.next(),t;var e,i,u=Ut(t);return bt()||B(t.fieldName)?(u.omit(),n.next(),u):Tt(t)?(u.skip(mt()),n.next(),u):((i=t)!==(e=u)&&kt(e,i)&&e.isPending()&&e.cancel(),Dt(t),function(t){t.isUntested()?Lt(t):r.isPromise(t.asyncTest)&&(t.setPending(),Pt(t))}(t),n.next(),t)}function wt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var i=r.isFunction(n[1])?n:Ft([void 0],n,!0),u=i[0],o=i[1],s=i[2];r.invariant(r.isStringValue(t),Vt("fieldName","string")),r.invariant(r.isFunction(o),Vt("Test callback","function"));var a=c.useX(),f=new b(t,o,{message:u,groupName:a.groupName,key:s});return Wt(f)}Rt.group=function(t){return Ct(0,"groups",t)},St.group=function(t){return Ct(1,"groups",t)};var Gt=r.assign(wt,{memo:function(t){var n=r.cache(10);return function(e){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];var o=d().current(),s=i.reverse(),a=s[0],c=s[1],f=s[2],l=[v(),e,o].concat(a),p=n.get(l);return r.isNull(p)?n(l,(function(){return t(e,f,c)})):p[1].isCanceled()?(n.invalidate(l),n(l,(function(){return t(e,f,c)}))):Wt(p[1])}}(wt)});function Vt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.VERSION="4.6.7",t.context=c,t.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=t.reverse(),o=i[0],a=i[1];r.invariant(r.isFunction(o),"vest.create: Expected callback to be a function.");var f=gt(),l=e.createState(),d=s(l,{suiteId:r.seq(),suiteName:a}),p={stateRef:d,bus:f},v=r.assign(c.bind(p,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return l.reset(),G({type:u.SUITE},(function(){o.apply(void 0,t)})),f.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ft()})),{get:c.bind(p,st),remove:c.bind(p,(function(t){f.emit(pt.REMOVE_FIELD,t)})),reset:l.reset,resetField:c.bind(p,(function(t){f.emit(pt.RESET_FIELD,t)}))});return v},t.each=function(t,n){r.invariant(r.isFunction(n),"each callback must be a function"),G({type:u.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))},t.eager=function(){var t;t=o.EAGER,c.useX().mode[0]=t},t.group=function(t,n){r.invariant(r.isStringValue(t),It("name must be a string")),r.invariant(r.isFunction(n),It("callback must be a function")),G({type:u.GROUP},(function(){c.run({groupName:t},n)}))},t.include=function(t){var n=c.useX(),e=n.inclusion,i=n.exclusion;return r.invariant(r.isStringValue(t)),e[t]=r.defaultTo(i.tests[t],!0),{when:function(n){var e=c.useX(),i=e.inclusion,u=e.exclusion;i[t]=function(){return r.hasOwnProperty(u.tests,t)?r.defaultTo(u.tests[t],!0):r.isStringValue(n)?Boolean(u.tests[n]):r.optionalFunctionValue(n,r.optionalFunctionValue(st))}}}},t.omitWhen=function(t,n){G({type:u.OMIT_WHEN},(function(){c.run({omitted:bt()||r.optionalFunctionValue(t,r.optionalFunctionValue(st))},(function(){return n()}))}))},t.only=Rt,t.optional=function(t){if(r.isArray(t)||r.isStringValue(t))r.asArray(t).forEach((function(t){g(t,(function(){return{type:X.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];g(n,(function(){return{type:X.Immediate,rule:e,applied:r.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},t.skip=St,t.skipWhen=function(t,n){G({type:u.SKIP_WHEN},(function(){c.run({skipped:mt()||r.optionalFunctionValue(t,r.optionalFunctionValue(st))},(function(){return n()}))}))},t.suiteSelectors=tt,t.test=Gt,t.warn=function(){var t=c.useX("warn "+Nt);r.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("n4s"),require("vast"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vast","vest-utils","context"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={},n.n4s,n.vast,n["vest-utils"],n.context)}(this,(function(n,t,e,r,i){"use strict";var u,o;function s(n,t){var e=t.suiteId,r=t.suiteName;return{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(r),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function a(n,t){return void 0===t&&(t=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:t,type:n};var e}!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"}(u||(u={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(o||(o={}));var c=i.createCascade((function(n,t){return t?null:r.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:a(u.DEFAULT),mode:[o.ALL]},n)}));function f(){return c.useX().isolate}function l(){var n=f();return n.path.concat(n.cursor.current())}function d(){return f().cursor}function p(){return c.useX().stateRef}function v(){return p().suiteId()[0]}function E(){return p().testCallbacks()}function h(){return p().optionalFields()}function g(n,t){(0,h()[1])((function(e){var i;return r.assign(e,((i={})[n]=r.assign({},e[n],t(e[n])),i))}))}function y(n){var t;return null!==(t=h()[0][n])&&void 0!==t?t:{}}function m(){return p().testObjects()}function N(){R((function(n){return n}))}function R(n){(0,m()[1])((function(t){var e=t.current;return{prev:t.prev,current:r.asArray(n(e))}}))}function S(){return A().filter((function(n){return n.isPending()}))}var T,C=r.cache();function A(){var n=m()[0].current;return C([n],(function(){return r.nestedArray.flatten(n)}))}function _(n){A().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(T||(T={}));var I,O,b=function(){function n(n,t,e){var i=void 0===e?{}:e,u=i.message,o=i.groupName,s=i.key;this.key=null,this.id=r.seq(),this.severity=T.Error,this.status=F,this.fieldName=n,this.testFn=t,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return n.prototype.run=function(){var n;try{n=this.testFn()}catch(t){(function(n,t){return r.isUndefined(n)&&r.isStringValue(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==w||(this.status=n)},n.prototype.warns=function(){return this.severity===T.Warning},n.prototype.setPending=function(){this.setStatus(D)},n.prototype.fail=function(){this.setStatus(this.warns()?L:P)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},n.prototype.warn=function(){this.severity=T.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(W),N()},n.prototype.reset=function(){this.status=F,N()},n.prototype.omit=function(){this.setStatus(w)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.isPending=function(){return this.statusEquals(D)},n.prototype.isOmitted=function(){return this.statusEquals(w)},n.prototype.isUntested=function(){return this.statusEquals(F)},n.prototype.isFailing=function(){return this.statusEquals(P)},n.prototype.isCanceled=function(){return this.statusEquals(W)},n.prototype.isSkipped=function(){return this.statusEquals(k)},n.prototype.isPassing=function(){return this.statusEquals(U)},n.prototype.isWarning=function(){return this.statusEquals(L)},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},n.prototype.statusEquals=function(n){return this.status===n},n}(),F="UNTESTED",k="SKIPPED",P="FAILED",L="WARNING",U="PASSING",D="PENDING",W="CANCELED",w="OMITTED";function G(n,t){var e=n.type,i=void 0===e?u.DEFAULT:e;r.invariant(r.isFunction(t));var o=a(i,l()),s=c.run({isolate:o},(function(){var n;return o.keys.prev=(n=m()[0].prev,r.asArray(r.nestedArray.getCurrent(n,l())).reduce((function(n,t){return t instanceof b?(r.isNullish(t.key)||(n[t.key]=t),n):n}),{})),R((function(n){return r.nestedArray.setValueAtPath(n,o.path,[])})),t()}));return d().next(),s}function V(n){return n===I.ERRORS?O.ERROR_COUNT:O.WARN_COUNT}function x(n,t){return!!t&&!q(n,t)}function q(n,t){return!(!t||n.fieldName!==t)}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(I||(I={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(O||(O={}));var X,H=r.bindNot((function(n,t){return n.groupName===t}));function K(n){return function(n,t){return A().some((function(e){return M(e,n,t)}))}(I.ERRORS,n)}function M(n,t,e){return!!n.hasFailures()&&(!x(n,e)&&!function(n,t){return r.either(n===I.WARNINGS,t.warns())}(t,n))}function B(n){return!!n&&y(n).applied}function j(n){if(B(n))return!0;var t=A();return!r.isEmpty(t)&&(!K(n)&&(!function(n){return S().some((function(t){return J(t,n)}))}(n)&&function(n){return A().every((function(t){return z(t,n)}))}(n)))}function Y(n,t){return!!B(t)||!function(n,t,e){return A().some((function(r){return!H(r,t)&&M(r,n,e)}))}(I.ERRORS,n,t)&&(!function(n,t){return S().some((function(e){return!H(e,n)&&J(e,t)}))}(n,t)&&function(n,t){return A().every((function(e){return!!H(e,n)||z(e,t)}))}(n,t))}function J(n,t){return!x(n,t)&&B(t)}function z(n,t){return!!x(n,t)||(function(n){return y(n.fieldName).type===X.Delayed&&n.awaitsResolution()}(n)||n.isTested()||n.isOmitted())}function Q(){var n=A(),t=r.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=Z(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&j(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;if(!e)return;n[e]=n[e]||{},n[e][t.fieldName]=Z(n[e],t),n[e][t.fieldName].valid=!1!==n[e][t.fieldName].valid&&Y(e,t.fieldName)}(n.groups,t),n}),t),t.valid=j(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function Z(n,t){var e=t.fieldName,i=t.message;n[e]=n[e]||r.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=n[e];return t.isNonActionable()||(n[e].testCount++,t.isFailing()?o(I.ERRORS):t.isWarning()&&o(I.WARNINGS)),u;function o(n){var t=V(n);u[t]++,i&&(u[n]=(u[n]||[]).concat(i))}}function $(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e={},i=V(t);for(var u in n)r.isPositive(n[u][i])&&(e[u]=n[u][t]||[]);return e}(n,t)}function nn(n){var t={getErrors:function(t){return tn(n,I.ERRORS,t)},getErrorsByGroup:function(t,e){return en(n,I.ERRORS,t,e)},getWarnings:function(t){return tn(n,I.WARNINGS,t)},getWarningsByGroup:function(t,e){return en(n,I.WARNINGS,t,e)},hasErrors:function(t){return on(n,O.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return un(n,O.ERROR_COUNT,t,e)},hasWarnings:function(t){return on(n,O.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return un(n,O.WARN_COUNT,t,e)},isValid:function(t){var e;return t?Boolean(null===(e=n.tests[t])||void 0===e?void 0:e.valid):n.valid},isValidByGroup:function(t,e){var r=n.groups[t];if(!r)return!1;if(e)return rn(r,e);for(var i in r)if(!rn(r,i))return!1;return!0}};return t}function tn(n,t,e){return $(n.tests,t,e)}function en(n,t,e,r){return $(n.groups[e],t,r)}function rn(n,t){var e;return!!(null===(e=n[t])||void 0===e?void 0:e.valid)}function un(n,t,e,i){var u,o,s=n.groups[e];if(!s)return!1;if(i)return r.isPositive(null===(u=s[i])||void 0===u?void 0:u[t]);for(var a in s)if(r.isPositive(null===(o=s[a])||void 0===o?void 0:o[t]))return!0;return!1}function on(n,t,e){var i,u=e?null===(i=n.tests[e])||void 0===i?void 0:i[t]:n[t]||0;return r.isPositive(u)}!function(n){n[n.Immediate=0]="Immediate",n[n.Delayed=1]="Delayed"}(X||(X={}));var sn=r.cache(1);function an(){var n=A(),t={stateRef:p()};return sn([n],c.bind(t,(function(){var n=Q(),t=p().suiteName()[0];return r.assign(n,nn(n),{suiteName:t})})))}function cn(n){var t=S();return!r.isEmpty(t)&&(!n||t.some((function(t){return q(t,n)})))}var fn=r.cache(20);function ln(){var n=A(),t={stateRef:p()};return fn([n],c.bind(t,(function(){return r.assign({},an(),{done:c.bind(t,En)})})))}function dn(n,t,e){var i;return!!(!r.isFunction(n)||t&&r.numberEquals(null===(i=e.tests[t])||void 0===i?void 0:i.testCount,0))}function pn(n){return!(cn()&&(!n||cn(n)))}var vn,En=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=n.reverse(),r=e[0],i=e[1],u=ln();if(dn(r,i,u))return u;var o=function(){return r(an())};return pn(i)?(o(),u):(hn(o,i),u)};function hn(n,t){(0,E()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function gn(){var n=h()[0];if(!r.isEmpty(n)){var t={};A().forEach((function(n){r.hasOwnProperty(t,n.fieldName)?e(n):function(n){var i=y(n.fieldName);i.type===X.Immediate&&(t[n.fieldName]=r.optionalFunctionValue(i.rule),e(n))}(n)})),N()}function e(n){t[n.fieldName]&&(n.omit(),g(n.fieldName,(function(){return{applied:!0}})))}}function yn(){var n=r.bus.createBus();return n.on(vn.TEST_COMPLETED,(function(t){var e,i;t.isCanceled()||(t.done(),e=t.fieldName,i=E()[0].fieldCallbacks,e&&!cn(e)&&r.isArray(i[e])&&r.callEach(i[e]),cn()||n.emit(vn.ALL_RUNNING_TESTS_FINISHED))})),n.on(vn.SUITE_CALLBACK_DONE_RUNNING,(function(){gn()})),n.on(vn.ALL_RUNNING_TESTS_FINISHED,(function(){var n;n=E()[0].doneCallbacks,r.callEach(n)})),n.on(vn.REMOVE_FIELD,(function(n){_((function(t){q(t,n)&&(t.cancel(),function(n){R((function(t){return r.nestedArray.transform(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(vn.RESET_FIELD,(function(n){_((function(t){q(t,n)&&t.reset()}))})),n}function mn(){var n=c.useX();return r.invariant(n.bus),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"}(vn||(vn={}));var Nn="hook called outside of a running suite.";function Rn(){return!!c.useX().skipped}function Sn(n){return An(0,"tests",n)}function Tn(n){return An(1,"tests",n)}function Cn(n){var t=n.fieldName,e=n.groupName;if(Rn())return!0;var i=c.useX(),u=i.exclusion,o=i.inclusion,s=u.tests,a=s[t];if(!1===a)return!0;var f=!0===a;if(e){if(function(n){var t=c.useX().exclusion.groups;if(r.hasOwnProperty(t,n))return!1===t[n];return In()}(e))return!0;if(!0===u.groups[e])return!f&&(!!_n(s)||!1===s[t])}return!!function(n){if(!In())return!1;return!n}(e)||!f&&(!!_n(s)&&!r.optionalFunctionValue(o[t]))}function An(n,t,e){var i=c.useX(Nn);e&&r.asArray(e).forEach((function(e){r.isStringValue(e)&&(i.exclusion[t][e]=0===n)}))}function _n(n){for(var t in n)if(!0===n[t])return!0;return!1}function In(){var n=c.useX().exclusion;for(var t in n.groups)if(n.groups[t])return!0;return!1}function On(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function bn(n){return t=o.EAGER,c.useX().mode[0]===t&&K(n.fieldName);var t}function Fn(){return!!c.useX().omitted}function kn(n,t,e){if(e||2===arguments.length)for(var r,i=0,u=t.length;i<u;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return n.concat(r||Array.prototype.slice.call(t))}function Pn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Ln(n){var t=n.asyncTest,e=n.message;if(r.isPromise(t)){var i=mn().emit,u=p(),o=c.bind({stateRef:u},(function(){N(),i(vn.TEST_COMPLETED,n)})),s=c.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=r.isStringValue(t)?t:e,n.fail(),o())}));t.then(o,s)}}function Un(n){var t=mn(),e=function(n){return c.run({currentTest:n},(function(){return n.run()}))}(n);try{r.isPromise(e)?(n.asyncTest=e,n.setPending(),Ln(n)):t.emit(vn.TEST_COMPLETED,n)}catch(t){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Dn(n){var t=m()[0].prev;if(r.isEmpty(t))return Wn(n),n;var e,i,o,s=(e=t,i=l(),r.nestedArray.valueAtPath(e,i));if(!r.isNullish(n.key)){var a=function(n,t){var e=function(n){return f().keys.prev[n]}(n),i=t;e&&(i=e);return function(n,t){var e=f().keys.current;r.isNullish(e[n])?e[n]=t:r.deferThrow('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,i),i}(n.key,n);return Wn(a),a}(function(n,t){return r.isNotEmpty(n)&&!Pn(n,t)})(s,n)&&(!function(n,t){if(f().type===u.EACH)return;r.deferThrow("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.'))}(s,n),o=d().current(),R((function(n){return n.splice(o),n})),s=null);var c=r.defaultTo(s,n);return Wn(c),c}function Wn(n){var t=l();R((function(e){return r.nestedArray.setValueAtPath(e,t,n)}))}function wn(n){var t=d();if(bn(n))return n.skip(),Dn(n),t.next(),n;var e,i,u=Dn(n);return Fn()||B(n.fieldName)?(u.omit(),t.next(),u):Cn(n)?(u.skip(Rn()),t.next(),u):((i=n)!==(e=u)&&Pn(e,i)&&e.isPending()&&e.cancel(),Wn(n),function(n){n.isUntested()?Un(n):r.isPromise(n.asyncTest)&&(n.setPending(),Ln(n))}(n),t.next(),n)}function Gn(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var i=r.isFunction(t[1])?t:kn([void 0],t,!0),u=i[0],o=i[1],s=i[2];r.invariant(r.isStringValue(n),xn("fieldName","string")),r.invariant(r.isFunction(o),xn("Test callback","function"));var a=c.useX(),f=new b(n,o,{message:u,groupName:a.groupName,key:s});return wn(f)}Sn.group=function(n){return An(0,"groups",n)},Tn.group=function(n){return An(1,"groups",n)};var Vn=r.assign(Gn,{memo:function(n){var t=r.cache(10);return function(e){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];var o=d().current(),s=i.reverse(),a=s[0],c=s[1],f=s[2],l=[v(),e,o].concat(a),p=t.get(l);return r.isNull(p)?t(l,(function(){return n(e,f,c)})):p[1].isCanceled()?(t.invalidate(l),t(l,(function(){return n(e,f,c)}))):wn(p[1])}}(Gn)});function xn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(n,"enforce",{enumerable:!0,get:function(){return t.enforce}}),n.VERSION="4.6.8",n.context=c,n.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var i=n.reverse(),o=i[0],a=i[1];r.invariant(r.isFunction(o),"vest.create: Expected callback to be a function.");var f=yn(),l=e.createState(),d=s(l,{suiteId:r.seq(),suiteName:a}),p={stateRef:d,bus:f},v=r.assign(c.bind(p,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return l.reset(),G({type:u.SUITE},(function(){o.apply(void 0,n)})),f.emit(vn.SUITE_CALLBACK_DONE_RUNNING),ln()})),{get:c.bind(p,an),remove:c.bind(p,(function(n){f.emit(vn.REMOVE_FIELD,n)})),reset:l.reset,resetField:c.bind(p,(function(n){f.emit(vn.RESET_FIELD,n)}))});return v},n.each=function(n,t){r.invariant(r.isFunction(t),"each callback must be a function"),G({type:u.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},n.eager=function(){var n;n=o.EAGER,c.useX().mode[0]=n},n.group=function(n,t){r.invariant(r.isStringValue(n),On("name must be a string")),r.invariant(r.isFunction(t),On("callback must be a function")),G({type:u.GROUP},(function(){c.run({groupName:n},t)}))},n.include=function(n){var t=c.useX(),e=t.inclusion,i=t.exclusion;return r.invariant(r.isStringValue(n)),e[n]=r.defaultTo(i.tests[n],!0),{when:function(t){var e=c.useX(),i=e.inclusion,u=e.exclusion;i[n]=function(){return r.hasOwnProperty(u.tests,n)?r.defaultTo(u.tests[n],!0):r.isStringValue(t)?Boolean(u.tests[t]):r.optionalFunctionValue(t,r.optionalFunctionValue(an))}}}},n.omitWhen=function(n,t){G({type:u.OMIT_WHEN},(function(){c.run({omitted:Fn()||r.optionalFunctionValue(n,r.optionalFunctionValue(an))},(function(){return t()}))}))},n.only=Sn,n.optional=function(n){if(r.isArray(n)||r.isStringValue(n))r.asArray(n).forEach((function(n){g(n,(function(){return{type:X.Delayed,applied:!1,rule:null}}))}));else{var t=function(t){var e=n[t];g(t,(function(){return{type:X.Immediate,rule:e,applied:r.optionalFunctionValue(e)}}))};for(var e in n)t(e)}},n.skip=Tn,n.skipWhen=function(n,t){G({type:u.SKIP_WHEN},(function(){c.run({skipped:Rn()||r.optionalFunctionValue(n,r.optionalFunctionValue(an))},(function(){return t()}))}))},n.suiteSelectors=nn,n.test=Vn,n.warn=function(){var n=c.useX("warn "+Nn);r.invariant(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.6.
|
|
2
|
+
"version": "4.6.8",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"context": "^3.0.4",
|
|
37
|
-
"n4s": "^4.3.
|
|
37
|
+
"n4s": "^4.3.4",
|
|
38
38
|
"vast": "^1.0.14",
|
|
39
39
|
"vest-utils": "^0.0.4"
|
|
40
40
|
},
|
package/types/vest.d.ts
CHANGED
|
@@ -334,7 +334,7 @@ declare const test: typeof testBase & {
|
|
|
334
334
|
* Sets a running test to warn only mode.
|
|
335
335
|
*/
|
|
336
336
|
declare function warn(): void;
|
|
337
|
-
declare const VERSION = "4.6.
|
|
337
|
+
declare const VERSION = "4.6.8";
|
|
338
338
|
export { suiteSelectors, test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
339
339
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|
|
340
340
|
//# sourceMappingURL=vest.d.ts.map
|