vest 4.3.3 → 4.4.0
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 +243 -166
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +243 -166
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +1 -1
- package/dist/umd/enforce/compounds.development.js +1 -1
- package/dist/umd/enforce/schema.development.js +1 -1
- package/dist/umd/vest.development.js +221 -144
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/classnames.d.ts +3 -5
- package/types/parser.d.ts +3 -5
- package/types/promisify.d.ts +7 -6
- package/types/vest.d.ts +37 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var C=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function S(){return C.useX().stateRef}function O(t){return S().optionalFields()[0][t]}function T(t,n){(0,S().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function _(){I((function(t){return t}))}function I(t){(0,S().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=S().testObjects()[0].current;return L([t],(function(){return E(t)}))}var U,W=U||(U={});W.Error="error",W.Warning="warning";var P=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=U.Error,this.status=G,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),_()},t.prototype.reset=function(){this.status=G,_()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(G)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),G="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return C.useX().testCursor.getCursor()}function z(){return C.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return C.run({isolate:{type:t,keys:e}},(function(){C.useX().testCursor.addLevel(),e.prev=function(){var t=S().testObjects()[0].prev;return[].concat(g(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),I((function(t){return g(t,r)[v(r)]=[],t}));var t=n();return C.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var rt=u(et);function ut(t,n){return!(!n||t.fieldName!==n)}function it(t,n){return F().some((function(e){return e.hasFailures()?n&&!ut(e,n)?e=!1:(e=e.warns(),e=t===Z.WARNINGS==!!e):e=!1,e}))}function ot(t){if(t)var n,e=!0===(null===(n=O(t))||void 0===n?void 0:n[1]);else e=!1;return!!e||!it(Z.ERRORS,t)&&(!et(e=F())&&!function(t){return rt(k().filter((function(n){return!(t&&!ut(n,t))&&!0!==A(n.fieldName)})))}(t)&&function(t){return F().every((function(n){return!(!t||ut(n,t))||(!0===A(n.fieldName)||n.isTested()||n.isOmitted())}))}(t))}function st(){var t=C.useX().summary;return M(t),t}function at(t,n){function e(t){o[t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function ct(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function ft(t,n){var e,r={};for(e in t)r[e]=t[e][n]||[];return r}function lt(t){return dt(Z.ERRORS,t)}function pt(t){return dt(Z.WARNINGS,t)}function dt(t,n){var e=st().tests;return n?ct(e,t,n):ft(e,t)}function vt(t,n){return Et(t,Z.ERRORS,n)}function ht(t,n){return Et(t,Z.WARNINGS,n)}function Et(t,n,e){return t=st().groups[t],e?ct(t,n,e):ft(t,n)}function gt(t){return mt(tt.ERROR_COUNT,t)}function Nt(t){return mt(tt.WARN_COUNT,t)}function mt(t,n){var e,r=st();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function yt(t,n){return bt(Z.ERRORS,t,n)}function Rt(t,n){return bt(Z.WARNINGS,t,n)}function bt(t,n,e){var r,u,i=st();if(t=t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT,!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function Ct(t){var n,e=st();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var St=c(1);function Ot(){var t=F(),n={stateRef:S()};return St([t],C.bind(n,(function(){var t=function(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=at(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ot(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=at(e[r],n)),t}),n),n.valid=ot(),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)}(),n=S().suiteName()[0],e={summary:t};return i(t,{getErrors:C.bind(e,lt),getErrorsByGroup:C.bind(e,vt),getWarnings:C.bind(e,pt),getWarningsByGroup:C.bind(e,ht),hasErrors:C.bind(e,gt),hasErrorsByGroup:C.bind(e,yt),hasWarnings:C.bind(e,Nt),hasWarningsByGroup:C.bind(e,Rt),isValid:C.bind(e,Ct),suiteName:n})})))}function Tt(t){var n=k();return!et(n)&&(t?n.some((function(n){return ut(n,t)})):rt(n))}var At=c(20);function _t(){var t=F(),n={stateRef:S()};return At([t],C.bind(n,(function(){return i({},Ot(),{done:C.bind(n,Lt)})})))}function It(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!et(e.tests[n].testCount)))}function kt(t){return!(Tt()&&(!t||Tt(t)))}function Lt(){function t(){return r(Ot())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=_t(),It(r,n,e)?e:kt(n)?(t(),e):(Ft(t,n),e)}function Ft(t,n){(0,S().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ut(t){return t.forEach((function(t){return t()}))}function Wt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(Gt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=S().testCallbacks()[0].fieldCallbacks;n&&!Tt(n)&&Array.isArray(e[n])&&Ut(e[n]),Tt()||t.emit(Gt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Gt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!et(S().optionalFields()[0])){var n={};I((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(Gt.ALL_RUNNING_TESTS_FINISHED,(function(){Ut(S().testCallbacks()[0].doneCallbacks)})),t.on(Gt.REMOVE_FIELD,(function(t){F().forEach((function(n){ut(n,t)&&(n.cancel(),function(t){I((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Gt.RESET_FIELD,(function(t){F().forEach((function(n){ut(n,t)&&n.reset()}))})),t}function Pt(){var t=C.useX();return M(t.bus),t.bus}var Gt,Xt=Gt||(Gt={});function wt(t){return xt(0,"tests",t)}function Dt(t){return xt(1,"tests",t)}function xt(t,n,e){var u=C.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function jt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ht(){var t,n=C.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Kt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Mt(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 qt(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Pt().emit,i=S(),o=C.bind({stateRef:i},(function(){_(),u(Gt.TEST_COMPLETED,t)}));i=C.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Bt(t){var n=S().testObjects()[0].prev;if(et(n))return Vt(t),t;var e=J();if(n=g(n,e)[v(e)],!V(t.key)){n=t.key,(e=C.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=C.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Vt(t),t}return!rt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(C.useX().isolate.type===m.EACH||Y("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S().testObjects(),n=t[1],e=t[0].prev;t=g(e,J());var r=C.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Vt(t=d(n,t)),t}function Vt(t){var n=J();I((function(e){return g(e,n)[v(n)]=t,e}))}function Yt(t){var n=R.EAGER;if(n=!(C.useX().mode[0]!==n||!it(Z.ERRORS,t.fieldName)))return t.skip(),Bt(t),z(),t;if(n=Bt(t),C.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,C.useX().skipped)return!0;var e=C.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=C.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Ht())return!0;if(!0===r.groups[t])return!(i||!jt(u)&&!1!==u[n])}return!!(t=!!Ht()&&!t)||!i&&!!jt(u)&&!p(e[n])}(t))return n.skip(!!C.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Vt(t),z(),t.isUntested()){n=Pt();var e=function(t){return C.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),qt(t)):n.emit(Gt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),qt(t));return t}function Jt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:Mt([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),Qt("fieldName","string")),M(l(e),Qt("Test callback","function"));var i=C.useX();return Yt(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Xt.TEST_COMPLETED="test_completed",Xt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Xt.REMOVE_FIELD="remove_field",Xt.RESET_FIELD="reset_field",Xt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",wt.group=function(t){return xt(0,"groups",t)},Dt.group=function(t){return xt(1,"groups",t)};var zt=i(Jt,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=C.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[S().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Yt(r[1])}}(Jt)});function Qt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var Zt="4.3.3";function $t(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Wt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(C.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(Gt.SUITE_CALLBACK_DONE_RUNNING),_t()})),{get:C.bind(t,Ot),remove:C.bind(t,(function(t){u.emit(Gt.REMOVE_FIELD,t)})),reset:o.reset,resetField:C.bind(t,(function(t){u.emit(Gt.RESET_FIELD,t)}))})}function tn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function nn(){var t=R.EAGER;C.useX().mode[0]=t}function en(t,n){M(r(t),Kt("name must be a string")),M(l(n),Kt("callback must be a function")),Q({type:m.GROUP},(function(){C.run({groupName:t},n)}))}function rn(t){var n=C.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=C.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Ot))}}}}function un(t,n){Q({type:m.OMIT_WHEN},(function(){C.run({omitted:!!C.useX().omitted||p(t,p(Ot))},(function(){return n()}))}))}function on(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function sn(t,n){Q({type:m.SKIP_WHEN},(function(){C.run({skipped:!!C.useX().skipped||p(t,p(Ot))},(function(){return n()}))}))}function an(){var t=C.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{Zt as VERSION,C as context,$t as create,tn as each,nn as eager,en as group,rn as include,un as omitWhen,wt as only,on as optional,Dt as skip,sn as skipWhen,zt as test,an as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}return t}var N,m=N||(N={});m[m.DEFAULT=0]="DEFAULT",m[m.SUITE=1]="SUITE",m[m.EACH=2]="EACH",m[m.SKIP_WHEN=3]="SKIP_WHEN",m[m.OMIT_WHEN=4]="OMIT_WHEN",m[m.GROUP=5]="GROUP";var y,R=y||(y={});function b(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function S(){var t=0;return{current:function(){return t},next:function(){t++}}}function O(t){return null==t}function T(t){setTimeout((function(){throw Error(t)}),0)}function C(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,b(l(n));var e=I(t,A());return t=_.run({isolate:e},(function(){return e.keys.prev=function(){var t=k().testObjects()[0].prev;return[].concat(g(t,A())).reduce((function(t,n){return n instanceof j&&!O(n.key)?(t[n.key]=n,t):t}),{})}(),P((function(t){var n=e.path;return g(t,n)[v(n)]=[],t})),n()})),_.useX().isolate.cursor.next(),t}function A(){var t=_.useX().isolate;return t.path.concat(t.cursor.current())}function I(t,n){return void 0===n&&(n=[]),{cursor:S(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var _=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:I(N.DEFAULT),mode:[y.ALL]},t)}));function k(){return _.useX().stateRef}function F(t){return k().optionalFields()[0][t]}function L(t,n){(0,k().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function U(t){var n;return null===(n=F(t))||void 0===n?void 0:n[0]}function G(){P((function(t){return t}))}function P(t){(0,k().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function W(){return D().filter((function(t){return t.isPending()}))}var w=c();function D(){var t=k().testObjects()[0].current;return w([t],(function(){return E(t)}))}var X,x=X||(X={});x.Error="error",x.Warning="warning";var j=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=X.Error,this.status=H,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==J||(this.status=t)},t.prototype.warns=function(){return this.severity===X.Warning},t.prototype.setPending=function(){this.setStatus(V)},t.prototype.fail=function(){this.setStatus(this.warns()?q:M)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(B)},t.prototype.warn=function(){this.severity=X.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(Y),G()},t.prototype.reset=function(){this.status=H,G()},t.prototype.omit=function(){this.setStatus(J)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(V)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(J)},t.prototype.isUntested=function(){return this.statusEquals(H)},t.prototype.isFailing=function(){return this.statusEquals(M)},t.prototype.isCanceled=function(){return this.statusEquals(Y)},t.prototype.isSkipped=function(){return this.statusEquals(K)},t.prototype.isPassing=function(){return this.statusEquals(B)},t.prototype.isWarning=function(){return this.statusEquals(q)},t.prototype.statusEquals=function(t){return this.status===t},t}(),H="UNTESTED",K="SKIPPED",M="FAILED",q="WARNING",B="PASSING",V="PENDING",Y="CANCELED",J="OMITTED";function z(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function Q(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return D().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(D())&&!function(t){return ut(W().filter((function(n){return lt(n,t)})))}(t)&&function(t){return D().every((function(n){return!(!t||it(n,t))||pt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=F(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==U(t.fieldName)}function pt(t,n){return!(!n||it(t,n))||(!0===U(t.fieldName)||t.isTested()||t.isOmitted())}function dt(){var t=_.useX().summary;return b(t),t}function vt(){var t=D(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return D().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(W().filter((function(e){return!ot(e,t)&<(e,n)})))}(u,n)&&function(t,n){return D().every((function(e){return!!ot(e,t)||pt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),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 ht(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function Et(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function gt(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=dt().tests;return n?Et(e,t,n):gt(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=dt().groups[t],e?Et(t,n,e):gt(t,n)}function Ot(t){return Ct(tt.ERROR_COUNT,t)}function Tt(t){return Ct(tt.WARN_COUNT,t)}function Ct(t,n){var e,r=dt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=dt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function kt(t){var n=dt();return t?!!Lt(n.tests,t):n.valid}function Ft(t,n){if(!(t=dt().groups[t]))return!1;if(n)return Lt(t,n);for(var e in t)if(!Lt(t,e))return!1;return!0}function Lt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=D(),n={stateRef:k()};return Ut([t],_.bind(n,(function(){var t=vt(),n=k().suiteName()[0],e={summary:t};return i(t,{getErrors:_.bind(e,Nt),getErrorsByGroup:_.bind(e,Rt),getWarnings:_.bind(e,mt),getWarningsByGroup:_.bind(e,bt),hasErrors:_.bind(e,Ot),hasErrorsByGroup:_.bind(e,At),hasWarnings:_.bind(e,Tt),hasWarningsByGroup:_.bind(e,It),isValid:_.bind(e,kt),isValidByGroup:_.bind(e,Ft),suiteName:n})})))}function Pt(t){var n=W();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function wt(){var t=D(),n={stateRef:k()};return Wt([t],_.bind(n,(function(){return i({},Gt(),{done:_.bind(n,xt)})})))}function Dt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Xt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=wt(),Dt(r,n,e)?e:Xt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,k().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=k().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),L(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(k().optionalFields()[0])){var n={};P((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=U(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(k().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){D().forEach((function(n){it(n,t)&&(n.cancel(),function(t){P((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){D().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=_.useX();return b(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=_.useX("hook called outside of a running suite.");e&&[].concat(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,n=_.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(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 tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=k(),o=_.bind({stateRef:i},(function(){G(),u(qt.TEST_COMPLETED,t)}));i=_.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=k().testObjects()[0].prev;if(rt(n))return en(t),t;var e=A();if(n=g(n,e)[v(e)],!O(t.key)){n=t.key,(e=_.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=_.useX().isolate.keys.current;return O(r[n])?r[n]=e:T('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(_.useX().isolate.type===N.EACH||T("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=k().testObjects(),n=t[1],e=t[0].prev;t=g(e,A());var r=_.useX().isolate.cursor.current();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=d(n,t)),t}function en(t){var n=A();P((function(e){return g(e,n)[v(n)]=t,e}))}function rn(t){var n=_.useX().isolate.cursor,e=y.EAGER;if(e=!(_.useX().mode[0]!==e||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),n.next(),t;if(e=nn(t),_.useX().omitted)return e.omit(),n.next(),e;if(function(t){var n=t.fieldName;if(t=t.groupName,_.useX().skipped)return!0;var e=_.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=_.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!p(e[n])}(t))return e.skip(!!_.useX().skipped),n.next(),e;if(t!==e&&e.fieldName===t.fieldName&&e.groupName===t.groupName&&e.isPending()&&e.cancel(),en(t),t.isUntested()){e=Mt();var r=function(t){return _.run({currentTest:t},(function(){return t.run()}))}(t);try{r&&l(r.then)?(t.asyncTest=r,t.setPending(),tn(t)):e.emit(qt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(e=t.asyncTest)&&l(e.then)&&(t.setPending(),tn(t));return n.next(),t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],b(r(t),sn("fieldName","string")),b(l(e),sn("Test callback","function"));var i=_.useX();return rn(n=new j(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=_.useX().isolate.cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],b(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=z();return t={stateRef:Q(o,{suiteId:e(),suiteName:t}),bus:u},i(_.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),C({type:N.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),wt()})),{get:_.bind(t,Gt),remove:_.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:_.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){b(l(n),"each callback must be a function"),C({type:N.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=y.EAGER;_.useX().mode[0]=t}function pn(t,n){b(r(t),Zt("name must be a string")),b(l(n),Zt("callback must be a function")),C({type:N.GROUP},(function(){_.run({groupName:t},n)}))}function dn(t){var n=_.useX(),e=n.inclusion;return n=n.exclusion,b(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=_.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Gt))}}}}function vn(t,n){C({type:N.OMIT_WHEN},(function(){_.run({omitted:!!_.useX().omitted||p(t,p(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){L(t,[!0,!1])}));else for(var n in t)L(n,[t[n],!1])}function En(t,n){C({type:N.SKIP_WHEN},(function(){_.run({skipped:!!_.useX().skipped||p(t,p(Gt))},(function(){return n()}))}))}function gn(){var t=_.useX("warn hook called outside of a running suite.");b(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,_ as context,cn as create,fn as each,ln as eager,pn as group,dn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,En as skipWhen,on as test,gn as warn};
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
return null;
|
|
508
508
|
}
|
|
509
509
|
|
|
510
|
-
|
|
510
|
+
/******************************************************************************
|
|
511
511
|
Copyright (c) Microsoft Corporation.
|
|
512
512
|
|
|
513
513
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -438,7 +438,7 @@
|
|
|
438
438
|
return null;
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
|
|
441
|
+
/******************************************************************************
|
|
442
442
|
Copyright (c) Microsoft Corporation.
|
|
443
443
|
|
|
444
444
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -775,40 +775,6 @@
|
|
|
775
775
|
return current;
|
|
776
776
|
}
|
|
777
777
|
|
|
778
|
-
function createCursor() {
|
|
779
|
-
var storage = {
|
|
780
|
-
cursor: []
|
|
781
|
-
};
|
|
782
|
-
function addLevel() {
|
|
783
|
-
storage.cursor.push(0);
|
|
784
|
-
}
|
|
785
|
-
function removeLevel() {
|
|
786
|
-
storage.cursor.pop();
|
|
787
|
-
}
|
|
788
|
-
function cursorAt() {
|
|
789
|
-
return last(storage.cursor);
|
|
790
|
-
}
|
|
791
|
-
function getCursor() {
|
|
792
|
-
return asArray(storage.cursor);
|
|
793
|
-
}
|
|
794
|
-
function next() {
|
|
795
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
796
|
-
return last(storage.cursor);
|
|
797
|
-
}
|
|
798
|
-
function reset() {
|
|
799
|
-
storage.cursor = [0];
|
|
800
|
-
}
|
|
801
|
-
reset();
|
|
802
|
-
return {
|
|
803
|
-
addLevel: addLevel,
|
|
804
|
-
cursorAt: cursorAt,
|
|
805
|
-
getCursor: getCursor,
|
|
806
|
-
next: next,
|
|
807
|
-
removeLevel: removeLevel,
|
|
808
|
-
reset: reset
|
|
809
|
-
};
|
|
810
|
-
}
|
|
811
|
-
|
|
812
778
|
var IsolateTypes;
|
|
813
779
|
(function (IsolateTypes) {
|
|
814
780
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -825,6 +791,115 @@
|
|
|
825
791
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
826
792
|
})(Modes || (Modes = {}));
|
|
827
793
|
|
|
794
|
+
function createIsolateCursor() {
|
|
795
|
+
var cursor = {
|
|
796
|
+
value: 0
|
|
797
|
+
};
|
|
798
|
+
return {
|
|
799
|
+
current: current,
|
|
800
|
+
next: next
|
|
801
|
+
};
|
|
802
|
+
/**
|
|
803
|
+
* @returns {number} The current value of the cursor
|
|
804
|
+
*/
|
|
805
|
+
function current() {
|
|
806
|
+
return cursor.value;
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Moves the isolate cursor forward by 1
|
|
810
|
+
*/
|
|
811
|
+
function next() {
|
|
812
|
+
cursor.value++;
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
function deferThrow(message) {
|
|
817
|
+
setTimeout(function () {
|
|
818
|
+
throw new Error(message);
|
|
819
|
+
}, 0);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
function usePrevKeys() {
|
|
823
|
+
var prev = useTestObjects()[0].prev;
|
|
824
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
825
|
+
if (!(testObject instanceof VestTest)) {
|
|
826
|
+
return prevKeys;
|
|
827
|
+
}
|
|
828
|
+
if (isNullish(testObject.key)) {
|
|
829
|
+
return prevKeys;
|
|
830
|
+
}
|
|
831
|
+
prevKeys[testObject.key] = testObject;
|
|
832
|
+
return prevKeys;
|
|
833
|
+
}, {});
|
|
834
|
+
}
|
|
835
|
+
function usePrevTestByKey(key) {
|
|
836
|
+
var prev = context.useX().isolate.keys.prev;
|
|
837
|
+
return prev[key];
|
|
838
|
+
}
|
|
839
|
+
function useRetainTestKey(key, testObject) {
|
|
840
|
+
var context$1 = context.useX();
|
|
841
|
+
var current = context$1.isolate.keys.current;
|
|
842
|
+
if (isNullish(current[key])) {
|
|
843
|
+
current[key] = testObject;
|
|
844
|
+
}
|
|
845
|
+
else {
|
|
846
|
+
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
function isolate(_a, callback) {
|
|
851
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
852
|
+
invariant(isFunction(callback));
|
|
853
|
+
// Generate a new Isolate layer, with its own cursor
|
|
854
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
855
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
856
|
+
isolate.keys.prev = usePrevKeys();
|
|
857
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
858
|
+
var res = callback();
|
|
859
|
+
return res;
|
|
860
|
+
});
|
|
861
|
+
// Move the parent cursor forward once we're done
|
|
862
|
+
useCursor().next();
|
|
863
|
+
return output;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* @returns {Isolate} The current isolate layer
|
|
867
|
+
*/
|
|
868
|
+
function useIsolate() {
|
|
869
|
+
return context.useX().isolate;
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
873
|
+
*/
|
|
874
|
+
function shouldAllowReorder() {
|
|
875
|
+
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
879
|
+
*/
|
|
880
|
+
function useCurrentPath() {
|
|
881
|
+
var isolate = useIsolate();
|
|
882
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
886
|
+
*/
|
|
887
|
+
function useCursor() {
|
|
888
|
+
return useIsolate().cursor;
|
|
889
|
+
}
|
|
890
|
+
function generateIsolate(type, path) {
|
|
891
|
+
if (path === void 0) { path = []; }
|
|
892
|
+
return {
|
|
893
|
+
cursor: createIsolateCursor(),
|
|
894
|
+
keys: {
|
|
895
|
+
current: {},
|
|
896
|
+
prev: {}
|
|
897
|
+
},
|
|
898
|
+
path: path,
|
|
899
|
+
type: type
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
|
|
828
903
|
var context = createContext(function (ctxRef, parentContext) {
|
|
829
904
|
return parentContext
|
|
830
905
|
? null
|
|
@@ -834,15 +909,8 @@
|
|
|
834
909
|
groups: {}
|
|
835
910
|
},
|
|
836
911
|
inclusion: {},
|
|
837
|
-
isolate:
|
|
838
|
-
|
|
839
|
-
keys: {
|
|
840
|
-
current: {},
|
|
841
|
-
prev: {}
|
|
842
|
-
}
|
|
843
|
-
},
|
|
844
|
-
mode: [Modes.ALL],
|
|
845
|
-
testCursor: createCursor()
|
|
912
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
913
|
+
mode: [Modes.ALL]
|
|
846
914
|
}, ctxRef);
|
|
847
915
|
});
|
|
848
916
|
|
|
@@ -1144,83 +1212,6 @@
|
|
|
1144
1212
|
};
|
|
1145
1213
|
}
|
|
1146
1214
|
|
|
1147
|
-
function deferThrow(message) {
|
|
1148
|
-
setTimeout(function () {
|
|
1149
|
-
throw new Error(message);
|
|
1150
|
-
}, 0);
|
|
1151
|
-
}
|
|
1152
|
-
|
|
1153
|
-
function usePath() {
|
|
1154
|
-
var context$1 = context.useX();
|
|
1155
|
-
return context$1.testCursor.getCursor();
|
|
1156
|
-
}
|
|
1157
|
-
function useCursorAt() {
|
|
1158
|
-
var context$1 = context.useX();
|
|
1159
|
-
return context$1.testCursor.cursorAt();
|
|
1160
|
-
}
|
|
1161
|
-
function moveForward() {
|
|
1162
|
-
var context$1 = context.useX();
|
|
1163
|
-
return context$1.testCursor.next();
|
|
1164
|
-
}
|
|
1165
|
-
function addLevel() {
|
|
1166
|
-
var context$1 = context.useX();
|
|
1167
|
-
context$1.testCursor.addLevel();
|
|
1168
|
-
}
|
|
1169
|
-
function removeLevel() {
|
|
1170
|
-
var context$1 = context.useX();
|
|
1171
|
-
context$1.testCursor.removeLevel();
|
|
1172
|
-
}
|
|
1173
|
-
|
|
1174
|
-
function usePrevKeys() {
|
|
1175
|
-
var prev = useTestObjects()[0].prev;
|
|
1176
|
-
return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
|
|
1177
|
-
if (!(testObject instanceof VestTest)) {
|
|
1178
|
-
return prevKeys;
|
|
1179
|
-
}
|
|
1180
|
-
if (isNullish(testObject.key)) {
|
|
1181
|
-
return prevKeys;
|
|
1182
|
-
}
|
|
1183
|
-
prevKeys[testObject.key] = testObject;
|
|
1184
|
-
return prevKeys;
|
|
1185
|
-
}, {});
|
|
1186
|
-
}
|
|
1187
|
-
function usePrevTestByKey(key) {
|
|
1188
|
-
var prev = context.useX().isolate.keys.prev;
|
|
1189
|
-
return prev[key];
|
|
1190
|
-
}
|
|
1191
|
-
function useRetainTestKey(key, testObject) {
|
|
1192
|
-
var context$1 = context.useX();
|
|
1193
|
-
var current = context$1.isolate.keys.current;
|
|
1194
|
-
if (isNullish(current[key])) {
|
|
1195
|
-
current[key] = testObject;
|
|
1196
|
-
}
|
|
1197
|
-
else {
|
|
1198
|
-
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
1199
|
-
}
|
|
1200
|
-
}
|
|
1201
|
-
|
|
1202
|
-
function isolate(_a, callback) {
|
|
1203
|
-
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
1204
|
-
invariant(isFunction(callback));
|
|
1205
|
-
var keys = {
|
|
1206
|
-
current: {},
|
|
1207
|
-
prev: {}
|
|
1208
|
-
};
|
|
1209
|
-
var path = usePath();
|
|
1210
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
1211
|
-
addLevel();
|
|
1212
|
-
keys.prev = usePrevKeys();
|
|
1213
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
1214
|
-
var res = callback();
|
|
1215
|
-
removeLevel();
|
|
1216
|
-
moveForward();
|
|
1217
|
-
return res;
|
|
1218
|
-
});
|
|
1219
|
-
}
|
|
1220
|
-
function shouldAllowReorder() {
|
|
1221
|
-
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
1215
|
var Severity;
|
|
1225
1216
|
(function (Severity) {
|
|
1226
1217
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -1244,6 +1235,11 @@
|
|
|
1244
1235
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
1245
1236
|
}
|
|
1246
1237
|
|
|
1238
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
1239
|
+
function matchingGroupName(testObject, groupName) {
|
|
1240
|
+
return testObject.groupName === groupName;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1247
1243
|
function either(a, b) {
|
|
1248
1244
|
return !!a !== !!b;
|
|
1249
1245
|
}
|
|
@@ -1268,6 +1264,15 @@
|
|
|
1268
1264
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
1269
1265
|
});
|
|
1270
1266
|
}
|
|
1267
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
1268
|
+
var testObjects = useTestsFlat();
|
|
1269
|
+
return testObjects.some(function (testObject) {
|
|
1270
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1271
|
+
return false;
|
|
1272
|
+
}
|
|
1273
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
1274
|
+
});
|
|
1275
|
+
}
|
|
1271
1276
|
/**
|
|
1272
1277
|
* Determines whether a certain test profile has failures.
|
|
1273
1278
|
*/
|
|
@@ -1285,7 +1290,7 @@
|
|
|
1285
1290
|
}
|
|
1286
1291
|
|
|
1287
1292
|
// eslint-disable-next-line max-statements, complexity
|
|
1288
|
-
function
|
|
1293
|
+
function shouldAddValidProperty(fieldName) {
|
|
1289
1294
|
if (fieldIsOmitted(fieldName)) {
|
|
1290
1295
|
return true;
|
|
1291
1296
|
}
|
|
@@ -1296,36 +1301,78 @@
|
|
|
1296
1301
|
if (isEmpty(testObjects)) {
|
|
1297
1302
|
return false;
|
|
1298
1303
|
}
|
|
1304
|
+
// Does the given field have any pending tests that are not optional?
|
|
1299
1305
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
1300
1306
|
return false;
|
|
1301
1307
|
}
|
|
1302
1308
|
return noMissingTests(fieldName);
|
|
1303
1309
|
}
|
|
1310
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
1311
|
+
if (fieldIsOmitted(fieldName)) {
|
|
1312
|
+
return true;
|
|
1313
|
+
}
|
|
1314
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
1315
|
+
return false;
|
|
1316
|
+
}
|
|
1317
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
1318
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
1319
|
+
return false;
|
|
1320
|
+
}
|
|
1321
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
1322
|
+
}
|
|
1304
1323
|
function fieldIsOmitted(fieldName) {
|
|
1305
1324
|
if (!fieldName) {
|
|
1306
1325
|
return false;
|
|
1307
1326
|
}
|
|
1308
1327
|
return useOptionalFieldApplied(fieldName) === true;
|
|
1309
1328
|
}
|
|
1329
|
+
// Does the given field have any pending tests that are not optional?
|
|
1310
1330
|
function hasNonOptionalIncomplete(fieldName) {
|
|
1311
1331
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
1312
|
-
|
|
1332
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
1333
|
+
}));
|
|
1334
|
+
}
|
|
1335
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
1336
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
1337
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
1338
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1313
1339
|
return false;
|
|
1314
1340
|
}
|
|
1315
|
-
return
|
|
1341
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
1316
1342
|
}));
|
|
1317
1343
|
}
|
|
1344
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
1345
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1346
|
+
return false;
|
|
1347
|
+
}
|
|
1348
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
1349
|
+
}
|
|
1318
1350
|
function noMissingTests(fieldName) {
|
|
1319
1351
|
var testObjects = useTestsFlat();
|
|
1320
1352
|
return testObjects.every(function (testObject) {
|
|
1321
1353
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1322
1354
|
return true;
|
|
1323
1355
|
}
|
|
1324
|
-
return (
|
|
1325
|
-
testObject.isTested() ||
|
|
1326
|
-
testObject.isOmitted());
|
|
1356
|
+
return missingTestsLogic(testObject, fieldName);
|
|
1327
1357
|
});
|
|
1328
1358
|
}
|
|
1359
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
1360
|
+
var testObjects = useTestsFlat();
|
|
1361
|
+
return testObjects.every(function (testObject) {
|
|
1362
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1363
|
+
return true;
|
|
1364
|
+
}
|
|
1365
|
+
return missingTestsLogic(testObject, fieldName);
|
|
1366
|
+
});
|
|
1367
|
+
}
|
|
1368
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
1369
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1370
|
+
return true;
|
|
1371
|
+
}
|
|
1372
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
1373
|
+
testObject.isTested() ||
|
|
1374
|
+
testObject.isOmitted());
|
|
1375
|
+
}
|
|
1329
1376
|
|
|
1330
1377
|
function useSummary() {
|
|
1331
1378
|
var summary = context.useX().summary;
|
|
@@ -1347,7 +1394,7 @@
|
|
|
1347
1394
|
appendToGroup(summary.groups, testObject);
|
|
1348
1395
|
return summary;
|
|
1349
1396
|
}, summary);
|
|
1350
|
-
summary.valid =
|
|
1397
|
+
summary.valid = shouldAddValidProperty();
|
|
1351
1398
|
return countFailures(summary);
|
|
1352
1399
|
}
|
|
1353
1400
|
function appendToTest(tests, testObject) {
|
|
@@ -1356,7 +1403,7 @@
|
|
|
1356
1403
|
tests[testObject.fieldName].valid =
|
|
1357
1404
|
tests[testObject.fieldName].valid === false
|
|
1358
1405
|
? false
|
|
1359
|
-
:
|
|
1406
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
1360
1407
|
}
|
|
1361
1408
|
/**
|
|
1362
1409
|
* Appends to a group object if within a group
|
|
@@ -1368,6 +1415,10 @@
|
|
|
1368
1415
|
}
|
|
1369
1416
|
groups[groupName] = groups[groupName] || {};
|
|
1370
1417
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
1418
|
+
groups[groupName][testObject.fieldName].valid =
|
|
1419
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
1420
|
+
? false
|
|
1421
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
1371
1422
|
}
|
|
1372
1423
|
/**
|
|
1373
1424
|
* Counts the failed tests and adds global counters
|
|
@@ -1428,10 +1479,13 @@
|
|
|
1428
1479
|
}
|
|
1429
1480
|
function collectAll(testGroup, severityKey) {
|
|
1430
1481
|
var output = {};
|
|
1482
|
+
var countKey = countKeyBySeverity(severityKey);
|
|
1431
1483
|
for (var field in testGroup) {
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1484
|
+
if (isPositive(testGroup[field][countKey])) {
|
|
1485
|
+
// We will probably never get to the fallback array
|
|
1486
|
+
// leaving it just in case the implementation changes
|
|
1487
|
+
output[field] = testGroup[field][severityKey] || [];
|
|
1488
|
+
}
|
|
1435
1489
|
}
|
|
1436
1490
|
return output;
|
|
1437
1491
|
}
|
|
@@ -1503,9 +1557,30 @@
|
|
|
1503
1557
|
}
|
|
1504
1558
|
|
|
1505
1559
|
function isValid(fieldName) {
|
|
1506
|
-
var _a;
|
|
1507
1560
|
var summary = useSummary();
|
|
1508
|
-
return fieldName
|
|
1561
|
+
return fieldName
|
|
1562
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1563
|
+
: summary.valid;
|
|
1564
|
+
}
|
|
1565
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1566
|
+
var summary = useSummary();
|
|
1567
|
+
var group = summary.groups[groupName];
|
|
1568
|
+
if (!group) {
|
|
1569
|
+
return false;
|
|
1570
|
+
}
|
|
1571
|
+
if (fieldName) {
|
|
1572
|
+
return isFieldValid(group, fieldName);
|
|
1573
|
+
}
|
|
1574
|
+
for (var fieldName_1 in group) {
|
|
1575
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1576
|
+
return false;
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
return true;
|
|
1580
|
+
}
|
|
1581
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1582
|
+
var _a;
|
|
1583
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
1509
1584
|
}
|
|
1510
1585
|
|
|
1511
1586
|
var cache$1 = createCache(1);
|
|
@@ -1526,6 +1601,7 @@
|
|
|
1526
1601
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
1527
1602
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
1528
1603
|
isValid: context.bind(ref, isValid),
|
|
1604
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
1529
1605
|
suiteName: suiteName
|
|
1530
1606
|
});
|
|
1531
1607
|
}));
|
|
@@ -2243,8 +2319,8 @@
|
|
|
2243
2319
|
function removeAllNextTestsInIsolate() {
|
|
2244
2320
|
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
2245
2321
|
var prevTests = testObjects.prev;
|
|
2246
|
-
var current = getCurrent(prevTests,
|
|
2247
|
-
var cursorAt =
|
|
2322
|
+
var current = getCurrent(prevTests, useCurrentPath());
|
|
2323
|
+
var cursorAt = useCursor().current();
|
|
2248
2324
|
current.splice(cursorAt);
|
|
2249
2325
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
2250
2326
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
@@ -2258,13 +2334,13 @@
|
|
|
2258
2334
|
});
|
|
2259
2335
|
}
|
|
2260
2336
|
function useSetTestAtCursor(testObject) {
|
|
2261
|
-
var cursorPath =
|
|
2337
|
+
var cursorPath = useCurrentPath();
|
|
2262
2338
|
useSetTests(function (tests) {
|
|
2263
2339
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
2264
2340
|
});
|
|
2265
2341
|
}
|
|
2266
2342
|
function useGetTestAtCursor(tests) {
|
|
2267
|
-
var cursorPath =
|
|
2343
|
+
var cursorPath = useCurrentPath();
|
|
2268
2344
|
return valueAtPath(tests, cursorPath);
|
|
2269
2345
|
}
|
|
2270
2346
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -2288,16 +2364,17 @@
|
|
|
2288
2364
|
|
|
2289
2365
|
// eslint-disable-next-line max-statements
|
|
2290
2366
|
function registerPrevRunTest(testObject) {
|
|
2367
|
+
var cursor = useCursor();
|
|
2291
2368
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
2292
2369
|
testObject.skip();
|
|
2293
2370
|
useTestAtCursor(testObject);
|
|
2294
|
-
|
|
2371
|
+
cursor.next();
|
|
2295
2372
|
return testObject;
|
|
2296
2373
|
}
|
|
2297
2374
|
var prevRunTest = useTestAtCursor(testObject);
|
|
2298
2375
|
if (isOmitted()) {
|
|
2299
2376
|
prevRunTest.omit();
|
|
2300
|
-
|
|
2377
|
+
cursor.next();
|
|
2301
2378
|
return prevRunTest;
|
|
2302
2379
|
}
|
|
2303
2380
|
if (isExcluded(testObject)) {
|
|
@@ -2306,13 +2383,13 @@
|
|
|
2306
2383
|
// This mostly means that we're probably giving
|
|
2307
2384
|
// up on this async test intentionally.
|
|
2308
2385
|
prevRunTest.skip(isExcludedIndividually());
|
|
2309
|
-
|
|
2386
|
+
cursor.next();
|
|
2310
2387
|
return prevRunTest;
|
|
2311
2388
|
}
|
|
2312
2389
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
2313
2390
|
useSetTestAtCursor(testObject);
|
|
2314
|
-
moveForward();
|
|
2315
2391
|
registerTestObjectByTier(testObject);
|
|
2392
|
+
cursor.next();
|
|
2316
2393
|
return testObject;
|
|
2317
2394
|
}
|
|
2318
2395
|
function registerTestObjectByTier(testObject) {
|
|
@@ -2335,7 +2412,7 @@
|
|
|
2335
2412
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
2336
2413
|
args[_i - 1] = arguments[_i];
|
|
2337
2414
|
}
|
|
2338
|
-
var cursorAt =
|
|
2415
|
+
var cursorAt = useCursor().current();
|
|
2339
2416
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
2340
2417
|
// Implicit dependency for more specificity
|
|
2341
2418
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -2397,7 +2474,7 @@
|
|
|
2397
2474
|
ctx.currentTest.warn();
|
|
2398
2475
|
}
|
|
2399
2476
|
|
|
2400
|
-
var VERSION = "4.
|
|
2477
|
+
var VERSION = "4.4.0";
|
|
2401
2478
|
|
|
2402
2479
|
exports.VERSION = VERSION;
|
|
2403
2480
|
exports.context = context;
|