vest 5.4.1 → 5.4.2
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 +26 -34
- package/dist/cjs/vest.development.js.map +1 -1
- package/dist/cjs/vest.production.js +1 -1
- package/dist/cjs/vest.production.js.map +1 -1
- package/dist/es/vest.development.js +26 -34
- package/dist/es/vest.development.js.map +1 -1
- package/dist/es/vest.production.js +1 -1
- package/dist/es/vest.production.js.map +1 -1
- package/dist/umd/vest.development.js +26 -34
- package/dist/umd/vest.development.js.map +1 -1
- package/dist/umd/vest.production.js +1 -1
- package/dist/umd/vest.production.js.map +1 -1
- package/package.json +2 -2
- package/types/SuiteSerializer.d.ts +6 -1
- package/types/SuiteSerializer.d.ts.map +1 -1
- package/types/vest.d.ts +6 -1
- package/types/vest.d.ts.map +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("n4s"),e=require("vest-utils"),n=require("vestjs-runtime"),s=require("context");const i={Each:"Each",Focused:"Focused",Group:"Group",OmitWhen:"OmitWhen",SkipWhen:"SkipWhen",Suite:"Suite",Test:"Test"};class r{static setOptionalField(t,n,s){const i=t.data.optional,r=i[n];e.assign(i,{[n]:e.assign({},r,s(r))})}static getOptionalField(t,e){var n;return null!==(n=r.getOptionalFields(t)[e])&&void 0!==n?n:{}}static getOptionalFields(t){var e,n;return null!==(n=null===(e=t.data)||void 0===e?void 0:e.optional)&&void 0!==n?n:{}}}var a,u;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(a||(a={})),exports.Modes=void 0,(u=exports.Modes||(exports.Modes={})).EAGER="EAGER",u.ALL="ALL",u.ONE="ONE";const o=s.createCascade(((t,n)=>n?null:e.assign({inclusion:{},mode:e.tinyState.createTinyState(exports.Modes.EAGER),suiteParams:[],testMemoCache:d},t)));function c(){return o.useX().inclusion}function l(){return o.useX().mode()}const d=e.cache(10);function E(s){var i;const u=n.VestRuntime.useAvailableRoot(),c=o.useX().suiteParams,l=null!==(i=null==c?void 0:c[0])&&void 0!==i?i:{};if(e.isArray(s)||e.isStringValue(s))e.asArray(s).forEach((n=>{r.setOptionalField(u,n,(()=>({type:a.AUTO,applied:!!e.hasOwnProperty(l,n)&&t.enforce.isBlank().test(null==l?void 0:l[n]),rule:null})))}));else for(const e in s){const n=s[e];r.setOptionalField(u,e,(()=>({type:a.CUSTOM_LOGIC,rule:n,applied:t.enforce.isBlank().test(n)||!0===n})))}}function f(t){var e,s;if(!t)return!1;const i=n.VestRuntime.useAvailableRoot();return null!==(s=null===(e=r.getOptionalField(i,t))||void 0===e?void 0:e.applied)&&void 0!==s&&s}var N;!function(t){t.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",t.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",t.FIELD_NAME_REQUIRED="Field name must be passed",t.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",t.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",t.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",t.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",t.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",t.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',t.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.',t.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",t.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.",t.INCLUDE_SELF="Trying to call include.when on the same field."}(N||(N={}));const g="PENDING",T="INITIAL",S="DONE",p={[g]:g,[T]:T,[S]:S},R={initial:p.INITIAL,states:{[p.DONE]:{},[p.INITIAL]:{[p.PENDING]:p.PENDING,[p.DONE]:p.DONE},[p.PENDING]:{[p.DONE]:p.DONE}}},I=e.StateMachine(R),m={[g]:g,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},_="RESET",D={initial:m.UNTESTED,states:{"*":{[m.OMITTED]:m.OMITTED,[_]:m.UNTESTED},[m.UNTESTED]:{[m.CANCELED]:m.CANCELED,[m.FAILED]:m.FAILED,[m.PASSING]:m.PASSING,[m.PENDING]:m.PENDING,[m.SKIPPED]:m.SKIPPED,[m.WARNING]:m.WARNING},[m.PENDING]:{[m.CANCELED]:m.CANCELED,[m.FAILED]:m.FAILED,[m.PASSING]:m.PASSING,[m.SKIPPED]:[m.SKIPPED,t=>!0===t],[m.WARNING]:m.WARNING},[m.SKIPPED]:{},[m.FAILED]:{},[m.WARNING]:{},[m.PASSING]:{},[m.CANCELED]:{},[m.OMITTED]:{}}},O=e.StateMachine(D);var A,v,h,C,P,F;function L(t){return t===A.ERRORS?v.ERROR_COUNT:v.WARN_COUNT}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(A||(A={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(v||(v={})),function(t){t.Error="error",t.Warning="warning"}(h||(h={}));class U{static getStatus(t){var e;return null!==(e=t.status)&&void 0!==e?e:T}static setStatus(t,e,n){t.status=this.stateMachine.staticTransition(U.getStatus(t),e,n)}static statusEquals(t,e){return U.getStatus(t)===e}static setPending(t){this.setStatus(t,g)}static setDone(t){this.setStatus(t,S)}static isPending(t){return U.statusEquals(t,g)}}U.stateMachine=I;class y extends U{static getData(t){return e.invariant(t.data),t.data}static is(t){return n.IsolateSelectors.isIsolateType(t,i.Test)}static isX(t){e.invariant(y.is(t),N.EXPECTED_VEST_TEST)}static cast(t){return y.isX(t),t}static warns(t){return y.getData(t).severity===h.Warning}static isOmitted(t){return y.statusEquals(t,m.OMITTED)}static isUntested(t){return y.statusEquals(t,m.UNTESTED)}static isFailing(t){return y.statusEquals(t,m.FAILED)}static isCanceled(t){return y.statusEquals(t,m.CANCELED)}static isSkipped(t){return y.statusEquals(t,m.SKIPPED)}static isPassing(t){return y.statusEquals(t,m.PASSING)}static isWarning(t){return y.statusEquals(t,m.WARNING)}static hasFailures(t){return y.isFailing(t)||y.isWarning(t)}static isNonActionable(t){return y.isSkipped(t)||y.isOmitted(t)||y.isCanceled(t)}static isTested(t){return y.hasFailures(t)||y.isPassing(t)}static awaitsResolution(t){return y.isSkipped(t)||y.isUntested(t)||y.isPending(t)}static isAsyncTest(t){return e.isPromise(y.getData(t).asyncTest)}static fail(t){y.setStatus(t,y.warns(t)?m.WARNING:m.FAILED)}static pass(t){y.setStatus(t,m.PASSING)}static warn(t){y.setData(t,(t=>Object.assign(Object.assign({},t),{severity:h.Warning})))}static setData(t,n){t.data=e.optionalFunctionValue(n,y.getData(t))}static skip(t,e){y.setStatus(t,m.SKIPPED,e)}static cancel(t){y.setStatus(t,m.CANCELED),n.IsolateMutator.abort(t,m.CANCELED)}static omit(t){y.setStatus(t,m.OMITTED)}static reset(t){y.setStatus(t,_)}}function W(t,e){return!!e&&!G(t,e)}function G(t,e){return!(!e||t.fieldName!==e)}function b(t,e){const{groupName:n}=y.getData(t),{groupName:s,fieldName:i}=y.getData(e);return G(y.getData(t),i)&&n===s&&t.key==e.key}function V(t,s){return n.Isolate.create(i.Focused,e.noop,{focusMode:t,match:e.asArray(s).filter(e.isStringValue),matchAll:!0===s})}y.stateMachine=O,function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(C||(C={}));class M{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===C.SKIP&&(x(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===C.ONLY&&x(t,e)}static isIsolateFocused(t){return n.IsolateSelectors.isIsolateType(t,i.Focused)}}function k(t){return V(C.ONLY,B(t))}function w(t){return V(C.SKIP,B(t))}function B(t){return!1===t?[]:t}function x(t,n){var s,i;return e.isNotEmpty(null==t?void 0:t.data.match)&&(!n||(null===(i=null===(s=null==t?void 0:t.data.match)||void 0===s?void 0:s.includes(n))||void 0===i||i))}class j{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class H extends j{constructor(){super(...arguments),this[P]=[],this[F]=[],this.groups={},this.tests={},this.valid=null}}P=A.ERRORS,F=A.WARNINGS;const K=e.cache(),X=e.cache();function q(){return n.VestRuntime.useXAppData()}function Y(){return q().doneCallbacks()}function z(){return q().fieldCallbacks()}function J(){return q().suiteId}function Q(){q().suiteResultCache.invalidate([J()]),X.invalidate([J()])}function Z(){const[,,t]=Y(),[,,e]=z();t(),e()}function $(t){n.VestRuntime.useLoadRootNode(t),Q()}function tt(t,n,s){return s?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,n,s):function(t,n){const s={},i=L(n);for(const r in t)e.isPositive(t[r][i])&&(s[r]=t[r][n]||[]);return s}(t,n)}function et(t){const n={getError:i,getErrors:function(e){return nt(t,A.ERRORS,e)},getErrorsByGroup:function(e,n){return st(t,A.ERRORS,e,n)},getMessage:function(t){return i(t)||s(t)},getWarning:s,getWarnings:function(e){return nt(t,A.WARNINGS,e)},getWarningsByGroup:function(e,n){return st(t,A.WARNINGS,e,n)},hasErrors:function(e){return at(t,v.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return rt(t,v.ERROR_COUNT,e,n)},hasWarnings:function(e){return at(t,v.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return rt(t,v.WARN_COUNT,e,n)},isPending:function(n){var s;return n?e.greaterThan(null===(s=t.tests[n])||void 0===s?void 0:s.pendingCount,0):e.greaterThan(t.pendingCount,0)},isTested:function(n){var s;return e.isPositive(null===(s=t.tests[n])||void 0===s?void 0:s.testCount)},isValid:function(e){var n;return Boolean(e?null===(n=t.tests[e])||void 0===n?void 0:n.valid:t.valid)},isValidByGroup:function(e,n){const s=t.groups[e];if(!s)return!1;if(n)return it(s,n);for(const t in s)if(!it(s,t))return!1;return!0}};return n;function s(e){return ut(A.WARNINGS,t,e)}function i(e){return ut(A.ERRORS,t,e)}}function nt(t,e,n){return tt(t.tests,e,n)}function st(t,e,n,s){return tt(t.groups[n],e,s)}function it(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function rt(t,n,s,i){var r,a;const u=t.groups[s];if(!u)return!1;if(i)return e.isPositive(null===(r=u[i])||void 0===r?void 0:r[n]);for(const t in u)if(e.isPositive(null===(a=u[t])||void 0===a?void 0:a[n]))return!0;return!1}function at(t,n,s){var i;const r=s?null===(i=t.tests[s])||void 0===i?void 0:i[n]:t[n]||0;return e.isPositive(r)}function ut(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>G(t,n))))||void 0===s?void 0:s.message:i[0]}class ot{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=y.getData(t);return new ot(e,n,s)}}class ct{static hasNoTests(t=ct.defaultRoot()){return!t||!n.Walker.has(t,y.is)}static someTests(t,e=ct.defaultRoot()){return!!e&&n.Walker.some(e,(e=>(y.isX(e),t(e))),y.is)}static everyTest(t,e=ct.defaultRoot()){return!!e&&n.Walker.every(e,(e=>(y.isX(e),t(e))),y.is)}static walkTests(t,e=ct.defaultRoot()){e&&n.Walker.walk(e,((e,n)=>{t(y.cast(e),n)}),y.is)}static reduceTests(t,e,s=ct.defaultRoot()){return s?n.Walker.reduce(s,((e,n,s)=>t(e,y.cast(n),s)),e,y.is):e}static pluckTests(t,e=ct.defaultRoot()){e&&n.Walker.pluck(e,(e=>(y.isX(e),t(e))),y.is)}static resetField(t){ct.walkTests((e=>{G(y.getData(e),t)&&y.reset(e)}),ct.defaultRoot())}static removeTestByFieldName(t,e=ct.defaultRoot()){ct.pluckTests((e=>G(y.getData(e),t)),e)}}ct.defaultRoot=n.VestRuntime.useAvailableRoot;class lt{static useHasPending(t){if(!lt.defaultRoot())return!1;const n=lt.usePreAggs().pending;return!e.isEmpty(n)&&n.some(e.Predicates.all(null==t||t))}static usePreAggs(){return t=dt,(0,q().preAggCache)([J()],t);var t}static useHasRemainingWithTestNameMatching(t){return lt.useHasPending(e.Predicates.any(e.isNullish(t),e.Predicates.all(y.is,(e=>function(t,e){return!e||G(t,e)}(y.getData(e),t)))))}}function dt(){const t=lt.defaultRoot(),e={pending:[],failures:{errors:{},warnings:{}}};return t?n.Walker.reduce(t,((t,e)=>{var n,s;if(U.isPending(e)&&t.pending.push(e),y.is(e)){const i=y.getData(e).fieldName;y.isWarning(e)&&(t.failures.warnings[i]=null!==(n=t.failures.warnings[i])&&void 0!==n?n:[],t.failures.warnings[i].push(e)),y.isFailing(e)&&(t.failures.errors[i]=null!==(s=t.failures.errors[i])&&void 0!==s?s:[],t.failures.errors[i].push(e))}return t}),e):e}lt.defaultRoot=n.VestRuntime.useAvailableRoot;const Et=e.bindNot((function(t,e){return y.getData(t).groupName===e}));function ft(t){return function(t,n){const s=lt.usePreAggs().failures;if(e.isEmpty(s[t]))return!1;if(n)return!e.isEmpty(s[t][n]);return!0}(A.ERRORS,t)}function Nt(t,n,s){return ct.someTests((i=>!Et(i,n)&&function(t,n,s){if(!y.hasFailures(t))return!1;if(W(y.getData(t),s))return!1;if(function(t,n){return e.either(t===A.WARNINGS,y.warns(n))}(n,t))return!1;return!0}(i,t,s)))}function gt(t){return!!f(t)||!ct.hasNoTests()&&(!ft(t)&&(!function(t){return lt.useHasPending(e.Predicates.all(y.is,(e=>!W(y.getData(e),t)),(()=>!f(t))))}(t)&&function(t){return ct.everyTest((e=>St(e,t)))}(t)))}function Tt(t,n){return!!f(n)||!Nt(A.ERRORS,t,n)&&(!function(t,n){return lt.useHasPending(e.Predicates.all(y.is,(e=>!Et(e,t)),(t=>!W(y.getData(t),n)),(()=>!f(n))))}(t,n)&&function(t,e){return ct.everyTest((n=>!!Et(n,t)||St(n,e)))}(t,n))}function St(t,e){return!!W(y.getData(t),e)||(y.isOmitted(t)||y.isTested(t)||function(t){const e=n.VestRuntime.useAvailableRoot(),{fieldName:s}=y.getData(t);return r.getOptionalField(e,s).type===a.AUTO&&y.awaitsResolution(t)}(t))}function pt(){const t=ct.reduceTests(((t,e)=>{const n=y.getData(e).fieldName;return t.tests[n]=function(t,e){const n=y.getData(e).fieldName,s=Rt(t[n],e);return s.valid=!1!==s.valid&>(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=y.getData(e);if(!n)return t;t[n]=t[n]||{};const i=t[n];return i[s]=Rt(i[s],e),i[s].valid=!1!==i[s].valid&&Tt(n,s),t}(t.groups,e),y.isOmitted(e)?t:(!1===t.tests[n].valid&&(t.valid=!1),function(t,e){y.isWarning(t)?(e.warnCount++,e.warnings.push(ot.fromTestObject(t))):y.isFailing(t)&&(e.errorCount++,e.errors.push(ot.fromTestObject(t)));y.isPending(t)&&e.pendingCount++;y.isNonActionable(t)||e.testCount++;return e}(e,t))}),new H);return t.valid=!1!==t.valid&>(),t}function Rt(t,n){const{message:s}=y.getData(n),i=e.defaultTo(t?Object.assign({},t):null,It);return y.isNonActionable(n)||(y.isPending(n)&&i.pendingCount++,y.isFailing(n)?r(A.ERRORS):y.isWarning(n)&&r(A.WARNINGS),i.testCount++),i;function r(t){const e=L(t);i[e]++,s&&(i[t]=(i[t]||[]).concat(s))}}function It(){return e.assign(new j,{errors:[],valid:!0,warnings:[]})}function mt(){return t=()=>{const t=pt(),e=q().suiteName;return Object.freeze(_t(t,e))},(0,q().suiteResultCache)([J()],t);var t}function _t(t,n){return e.assign(t,et(t),{suiteName:n})}function Dt(){const t=_t(new H);return new Proxy(t,{get:(t,e)=>mt()[e]})}function Ot(t,s){n.Isolate.create(i.SkipWhen,(()=>{o.run({skipped:At()||e.optionalFunctionValue(t,Dt())},s)}))}function At(){return function(){var t;return null!==(t=o.useX().skipped)&&void 0!==t&&t}()}function vt(t,s){return e.isNotNullish(n.Walker.findClosest(t,(t=>!!M.isIsolateFocused(t)&&M.isOnlyFocused(t,s))))}function ht(t){const{fieldName:s}=y.getData(t);if(At())return!0;const i=c(),r=function(t){return n.Walker.findClosest(t,(e=>{var n;if(!M.isIsolateFocused(e))return!1;const{fieldName:s}=y.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(M.isSkipFocused(r))return!0;return!M.isOnlyFocused(r)&&(!!vt(t)&&!e.optionalFunctionValue(i[s],t))}function Ct(t){const[e]=l();return e===t}function Pt(t){return Ct(exports.Modes.ONE)?ft():!!Ct(exports.Modes.EAGER)&&ft(t.fieldName)}function Ft(t,s){n.Isolate.create(i.OmitWhen,(()=>{o.run({omitted:Lt()||e.optionalFunctionValue(t,Dt())},s)}))}function Lt(){return function(){var t;return null!==(t=o.useX().omitted)&&void 0!==t&&t}()}function Ut(t,e=t){const n=y.getData(t);return Pt(n)?(s=t,y.skip(s),s):(i=n.fieldName,Lt()||f(i)?function(t){return y.omit(t),t}(t):ht(t)?function(t){return y.skip(t,At()),t}(e):t);var s,i}function yt(t,e){return y.is(e)&&!b(e,t)}const Wt=[class{static match(t,e){return y.is(t)&&y.is(e)}static reconcile(t,s){const i=Ut(t,function(t,s){if(n.IsolateInspector.usesKey(t))return function(t){return y.cast(n.Reconciler.handleIsolateNodeWithKey(t,(e=>!!y.isNonActionable(e)||!ht(t))))}(t);if(n.Reconciler.dropNextNodesOnReorder(yt,t,s))return function(t,s){if(n.IsolateInspector.canReorder(t))return;e.deferThrow(e.text(N.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:y.getData(t).fieldName,prevName:y.is(s)?y.getData(s).fieldName:void 0}))}(t,s),t;if(!y.is(s))return t;if(y.isOmitted(s))return t;return s}(t,s));return function(t,e,n){t===e&&y.is(e)&&(i=e)!==(s=n)&&b(s,i)&&y.isPending(s)&&y.cancel(s);var s,i}(i,t,s),i}}];function Gt(t,e){var n,s;return null!==(s=null===(n=Wt.find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function bt(...t){const[e,s]=t.reverse();return n.Isolate.create(i.Group,(()=>o.run(Object.assign({},s&&{groupName:s}),e)))}function Vt(t){e.invariant(e.isStringValue(t));return c()[t]=!0,{when:function(n){e.invariant(n!==t,N.INCLUDE_SELF);const s=c();s[t]=function(t){return e.isStringValue(n)?vt(t,n):e.optionalFunctionValue(n,e.optionalFunctionValue(mt))}}}}var Mt;function kt(t,e,s){const r=Object.assign(Object.assign({},{severity:h.Error,status:O.initial()}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(r.groupName=e.groupName),e.message&&(r.message=e.message);return n.Isolate.create(i.Test,t,r,null!=s?s:null)}function wt(t){if(Ut(t),y.isUntested(t))return function(t){const s=function(t){return o.run({currentTest:t},(()=>{let n;const{message:s,testFn:i}=y.getData(t);try{n=i({signal:t.abortController.signal})}catch(i){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(s,i)&&(y.getData(t).message=i),n=!1}return!1===n&&y.fail(t),n}))}(t);try{if(e.isPromise(s))return y.getData(t).asyncTest=s,function(t){const{asyncTest:s,message:i}=y.getData(t);if(!e.isPromise(s))return;const r=n.VestRuntime.persist((()=>{Bt(t)})),a=n.VestRuntime.persist((n=>{y.isCanceled(t)||(y.getData(t).message=e.isStringValue(n)?n:i,y.fail(t),r())}));return s.then(r,a)}(t);Bt(t)}catch(n){throw new Error(e.text(N.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t);y.isNonActionable(t)||e.deferThrow(e.text(N.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function Bt(t){y.pass(t)}function xt(t,...s){const[i,r,a]=e.isFunction(s[1])?s:[void 0,...s];!function(t,n){const s="test";e.invariant(e.isStringValue(t),e.text(N.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),e.invariant(e.isFunction(n),e.text(N.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const u={fieldName:t,groupName:o.useX().groupName,message:i,testFn:r};return n.Bus.useEmit(Mt.TEST_RUN_STARTED),kt(wt,u,a)}!function(t){t.TEST_RUN_STARTED="test_run_started",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.RESET_SUITE="reset_suite",t.SUITE_RUN_STARTED="suite_run_started",t.SUITE_CALLBACK_RUN_FINISHED="SUITE_CALLBACK_RUN_FINISHED",t.DONE_TEST_OMISSION_PASS="DONE_TEST_OMISSION_PASS"}(Mt||(Mt={}));const jt=e.assign(xt,{memo:function(t){return function(s,...i){const[r,a,u]=i.reverse();return function(t,s){const i=o.useX().testMemoCache,r=i.get(t);if(e.isNull(r))return i(t,s);const[,a]=r;if(y.isCanceled(a))return i.invalidate(t),i(t,s);return n.VestRuntime.addNodeToHistory(a),a}([J(),s,n.VestRuntime.useCurrentCursor()].concat(r),(function(){return t(s,u,a)}))}}(xt)});function Ht(){return{group:bt,include:Vt,omitWhen:Ft,only:k,optional:E,skip:w,skipWhen:Ot,test:jt}}function Kt(){const t=n.VestRuntime.useAvailableRoot(),s=r.getOptionalFields(t);if(e.isEmpty(s))return;const i=new Set;function a(e){const{fieldName:n}=y.getData(e);i.has(n)&&(y.omit(e),r.setOptionalField(t,n,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}ct.walkTests((n=>{if(y.isPending(n))return;const{fieldName:s}=y.getData(n);i.has(s)?a(n):function(n){const{fieldName:s}=y.getData(n),u=r.getOptionalField(t,s);!0===e.optionalFunctionValue(u.rule)&&i.add(s);a(n)}(n)})),n.Bus.useEmit(Mt.DONE_TEST_OMISSION_PASS)}function Xt(){const t=n.Bus.useBus();return s(Mt.TEST_COMPLETED,(()=>{})),t.on(n.RuntimeEvents.ISOLATE_PENDING,(t=>{y.is(t)&&y.setPending(t),U.setPending(t)})),t.on(n.RuntimeEvents.ISOLATE_DONE,(e=>{y.is(e)&&t.emit(Mt.TEST_COMPLETED,e),U.setDone(e)})),t.on(n.RuntimeEvents.ASYNC_ISOLATE_DONE,(n=>{if(y.is(n)&&!y.isCanceled(n)){const{fieldName:t}=y.getData(n);!function(t){const[n]=z();t&&!lt.useHasRemainingWithTestNameMatching(t)&&e.isArray(n[t])&&e.callEach(n[t])}(t)}lt.useHasPending()||t.emit(Mt.ALL_RUNNING_TESTS_FINISHED)})),s(Mt.DONE_TEST_OMISSION_PASS,(()=>{})),t.on(Mt.ALL_RUNNING_TESTS_FINISHED,(()=>{ct.someTests(y.isAsyncTest)&&Kt(),function(){const[t]=Y();e.callEach(t)}()})),s(Mt.RESET_FIELD,(t=>{ct.resetField(t)})),s(Mt.SUITE_RUN_STARTED,(()=>{Z()})),s(Mt.SUITE_CALLBACK_RUN_FINISHED,(()=>{lt.useHasPending()||t.emit(Mt.ALL_RUNNING_TESTS_FINISHED),Kt()})),s(Mt.REMOVE_FIELD,(t=>{ct.removeTestByFieldName(t)})),s(Mt.RESET_SUITE,(()=>{Z(),n.VestRuntime.reset()})),{subscribe:function(e){return t.on("*",(()=>{e()})).off}};function s(e,n){t.on(e,((...t)=>{Q(),n(...t)}))}}function qt(){return e.freezeAssign({done:n.VestRuntime.persist(Yt)},mt())}function Yt(...t){const[n,s]=t.reverse(),i=qt();if(function(t,n,s){var i,r;return!!(!e.isFunction(t)||n&&e.numberEquals(null!==(r=null===(i=s.tests[n])||void 0===i?void 0:i.testCount)&&void 0!==r?r:0,0))}(n,s,i))return i;const r=()=>n(mt());return lt.useHasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=z(),[,i]=Y();n?s((s=>e.assign(s,{[n]:(s[n]||[]).concat(t)}))):i((e=>e.concat(t)))}(r,s),i):(r(),i)}function zt(...t){const[s,r]=t.reverse();!function(t){e.invariant(e.isFunction(t),N.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const a=function({suiteName:t,VestReconciler:s}){const i={doneCallbacks:e.tinyState.createTinyState((()=>[])),fieldCallbacks:e.tinyState.createTinyState((()=>({}))),preAggCache:X,suiteId:e.seq(),suiteName:t,suiteResultCache:K};return n.VestRuntime.createRef(s,i)}({suiteName:r,VestReconciler:Gt});function u(...t){return o.run({suiteParams:t},(()=>{return n.Bus.useEmit(Mt.SUITE_RUN_STARTED),e=function(t,...e){const s=n.Bus.useEmit();return()=>(t(...e),s(Mt.SUITE_CALLBACK_RUN_FINISHED),qt())}(s,...t),n.Isolate.create(i.Suite,e,{optional:{}});var e})).output}const c=Jt(...t);return n.VestRuntime.Run(a,(()=>{const t=Xt();return e.assign(n.VestRuntime.persist(u),Object.assign(Object.assign({dump:n.VestRuntime.persist((()=>n.VestRuntime.useAvailableRoot())),get:n.VestRuntime.persist(mt),remove:n.Bus.usePrepareEmitter(Mt.REMOVE_FIELD),reset:n.Bus.usePrepareEmitter(Mt.RESET_SUITE),resetField:n.Bus.usePrepareEmitter(Mt.RESET_FIELD),resume:n.VestRuntime.persist($),runStatic:(...t)=>c(...t),subscribe:t.subscribe},(s=n.VestRuntime.persist(mt),{getError:(...t)=>s().getError(...t),getErrors:(...t)=>s().getErrors(...t),getErrorsByGroup:(...t)=>s().getErrorsByGroup(...t),getMessage:(...t)=>s().getMessage(...t),getWarning:(...t)=>s().getWarning(...t),getWarnings:(...t)=>s().getWarnings(...t),getWarningsByGroup:(...t)=>s().getWarningsByGroup(...t),hasErrors:(...t)=>s().hasErrors(...t),hasErrorsByGroup:(...t)=>s().hasErrorsByGroup(...t),hasWarnings:(...t)=>s().hasWarnings(...t),hasWarningsByGroup:(...t)=>s().hasWarningsByGroup(...t),isPending:(...t)=>s().isPending(...t),isTested:(...t)=>s().isTested(...t),isValid:(...t)=>s().isValid(...t),isValidByGroup:(...t)=>s().isValidByGroup(...t)})),Ht()));var s}))}function Jt(...t){return e.assign(((...n)=>{const s=zt(...t),i=s(...n);return e.assign(new Promise((t=>{i.done((e=>{t(r(e))}))})),r(i));function r(t){return e.assign({dump:s.dump},t)}}),Object.assign({},Ht()))}const Qt=N.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.create=zt,exports.each=function(t,s){e.invariant(e.isFunction(s),N.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){n.Isolate.create(i.Each,t,{allowReorder:!0})}((()=>{t.forEach(((t,e)=>{s(t,e)}))}))},exports.group=bt,exports.include=Vt,exports.mode=function(t){const[,e]=l();e(t)},exports.omitWhen=Ft,exports.only=k,exports.optional=E,exports.registerReconciler=function(t){Wt.includes(t)||Wt.push(t)},exports.skip=w,exports.skipWhen=Ot,exports.staticSuite=Jt,exports.suiteSelectors=et,exports.test=jt,exports.warn=function(){const t=(n=N.HOOK_CALLED_OUTSIDE,o.useX(n).currentTest);var n;e.invariant(t,Qt),y.warn(t)};
|
|
1
|
+
"use strict";var t=require("n4s"),e=require("vest-utils"),n=require("vestjs-runtime"),s=require("context");const i={Each:"Each",Focused:"Focused",Group:"Group",OmitWhen:"OmitWhen",SkipWhen:"SkipWhen",Suite:"Suite",Test:"Test"};class r{static setOptionalField(t,n,s){const i=t.data.optional,r=i[n];e.assign(i,{[n]:e.assign({},r,s(r))})}static getOptionalField(t,e){var n;return null!==(n=r.getOptionalFields(t)[e])&&void 0!==n?n:{}}static getOptionalFields(t){var e,n;return null!==(n=null===(e=t.data)||void 0===e?void 0:e.optional)&&void 0!==n?n:{}}}var a,u;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(a||(a={})),exports.Modes=void 0,(u=exports.Modes||(exports.Modes={})).EAGER="EAGER",u.ALL="ALL",u.ONE="ONE";const o=s.createCascade(((t,n)=>n?null:e.assign({inclusion:{},mode:e.tinyState.createTinyState(exports.Modes.EAGER),suiteParams:[],testMemoCache:d},t)));function c(){return o.useX().inclusion}function l(){return o.useX().mode()}const d=e.cache(10);function E(s){var i;const u=n.VestRuntime.useAvailableRoot(),c=o.useX().suiteParams,l=null!==(i=null==c?void 0:c[0])&&void 0!==i?i:{};if(e.isArray(s)||e.isStringValue(s))e.asArray(s).forEach((n=>{r.setOptionalField(u,n,(()=>({type:a.AUTO,applied:!!e.hasOwnProperty(l,n)&&t.enforce.isBlank().test(null==l?void 0:l[n]),rule:null})))}));else for(const e in s){const n=s[e];r.setOptionalField(u,e,(()=>({type:a.CUSTOM_LOGIC,rule:n,applied:t.enforce.isBlank().test(n)||!0===n})))}}function f(t){var e,s;if(!t)return!1;const i=n.VestRuntime.useAvailableRoot();return null!==(s=null===(e=r.getOptionalField(i,t))||void 0===e?void 0:e.applied)&&void 0!==s&&s}var g;!function(t){t.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",t.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",t.FIELD_NAME_REQUIRED="Field name must be passed",t.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",t.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",t.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",t.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",t.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",t.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',t.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.',t.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",t.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.",t.INCLUDE_SELF="Trying to call include.when on the same field."}(g||(g={}));const N="PENDING",T="INITIAL",p="DONE",S={[N]:N,[T]:T,[p]:p},R={initial:S.INITIAL,states:{[S.DONE]:{},[S.INITIAL]:{[S.PENDING]:S.PENDING,[S.DONE]:S.DONE},[S.PENDING]:{[S.DONE]:S.DONE}}},m=e.StateMachine(R),I={[N]:N,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},v="RESET",D={initial:I.UNTESTED,states:{"*":{[I.OMITTED]:I.OMITTED,[v]:I.UNTESTED},[I.UNTESTED]:{[I.CANCELED]:I.CANCELED,[I.FAILED]:I.FAILED,[I.PASSING]:I.PASSING,[I.PENDING]:I.PENDING,[I.SKIPPED]:I.SKIPPED,[I.WARNING]:I.WARNING},[I.PENDING]:{[I.CANCELED]:I.CANCELED,[I.FAILED]:I.FAILED,[I.PASSING]:I.PASSING,[I.SKIPPED]:[I.SKIPPED,t=>!0===t],[I.WARNING]:I.WARNING},[I.SKIPPED]:{},[I.FAILED]:{},[I.WARNING]:{},[I.PASSING]:{},[I.CANCELED]:{},[I.OMITTED]:{}}},O=e.StateMachine(D);var A,_,h,C,P,F;function L(t){return t===A.ERRORS?_.ERROR_COUNT:_.WARN_COUNT}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(A||(A={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(_||(_={})),function(t){t.Error="error",t.Warning="warning"}(h||(h={}));class y{static getStatus(t){var e;return null!==(e=t.status)&&void 0!==e?e:T}static setStatus(t,e,n){t.status=this.stateMachine.staticTransition(y.getStatus(t),e,n)}static statusEquals(t,e){return y.getStatus(t)===e}static setPending(t){this.setStatus(t,N)}static setDone(t){this.setStatus(t,p)}static isPending(t){return y.statusEquals(t,N)}}y.stateMachine=m;class W extends y{static getData(t){return e.invariant(t.data),t.data}static is(t){return n.IsolateSelectors.isIsolateType(t,i.Test)}static isX(t){e.invariant(W.is(t),g.EXPECTED_VEST_TEST)}static cast(t){return W.isX(t),t}static warns(t){return W.getData(t).severity===h.Warning}static isOmitted(t){return W.statusEquals(t,I.OMITTED)}static isUntested(t){return W.statusEquals(t,I.UNTESTED)}static isFailing(t){return W.statusEquals(t,I.FAILED)}static isCanceled(t){return W.statusEquals(t,I.CANCELED)}static isSkipped(t){return W.statusEquals(t,I.SKIPPED)}static isPassing(t){return W.statusEquals(t,I.PASSING)}static isWarning(t){return W.statusEquals(t,I.WARNING)}static hasFailures(t){return W.isFailing(t)||W.isWarning(t)}static isNonActionable(t){return W.isSkipped(t)||W.isOmitted(t)||W.isCanceled(t)}static isTested(t){return W.hasFailures(t)||W.isPassing(t)}static awaitsResolution(t){return W.isSkipped(t)||W.isUntested(t)||W.isPending(t)}static isAsyncTest(t){return e.isPromise(W.getData(t).asyncTest)}static fail(t){W.setStatus(t,W.warns(t)?I.WARNING:I.FAILED)}static pass(t){W.setStatus(t,I.PASSING)}static warn(t){W.setData(t,(t=>Object.assign(Object.assign({},t),{severity:h.Warning})))}static setData(t,n){t.data=e.optionalFunctionValue(n,W.getData(t))}static skip(t,e){W.setStatus(t,I.SKIPPED,e)}static cancel(t){W.setStatus(t,I.CANCELED),n.IsolateMutator.abort(t,I.CANCELED)}static omit(t){W.setStatus(t,I.OMITTED)}static reset(t){W.setStatus(t,v)}}function U(t,e){return!!e&&!G(t,e)}function G(t,e){return!(!e||t.fieldName!==e)}function b(t,e){const{groupName:n}=W.getData(t),{groupName:s,fieldName:i}=W.getData(e);return G(W.getData(t),i)&&n===s&&t.key==e.key}function V(t,s){return n.Isolate.create(i.Focused,e.noop,{focusMode:t,match:e.asArray(s).filter(e.isStringValue),matchAll:!0===s})}W.stateMachine=O,function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(C||(C={}));class M{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===C.SKIP&&(B(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===C.ONLY&&B(t,e)}static isIsolateFocused(t){return n.IsolateSelectors.isIsolateType(t,i.Focused)}}function k(t){return V(C.ONLY,x(t))}function w(t){return V(C.SKIP,x(t))}function x(t){return!1===t?[]:t}function B(t,n){var s,i;return e.isNotEmpty(null==t?void 0:t.data.match)&&(!n||(null===(i=null===(s=null==t?void 0:t.data.match)||void 0===s?void 0:s.includes(n))||void 0===i||i))}class j{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class H extends j{constructor(){super(...arguments),this[P]=[],this[F]=[],this.groups={},this.tests={},this.valid=null}}P=A.ERRORS,F=A.WARNINGS;const K=e.cache(),X=e.cache();function q(){return n.VestRuntime.useXAppData()}function Y(){return q().doneCallbacks()}function z(){return q().fieldCallbacks()}function J(){return q().suiteId}function Q(){q().suiteResultCache.invalidate([J()]),X.invalidate([J()])}function Z(){const[,,t]=Y(),[,,e]=z();t(),e()}function $(t){n.VestRuntime.useSetHistoryRoot(t),Q()}function tt(t,n,s){return s?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,n,s):function(t,n){const s={},i=L(n);for(const r in t)e.isPositive(t[r][i])&&(s[r]=t[r][n]||[]);return s}(t,n)}function et(t){const n={getError:i,getErrors:function(e){return nt(t,A.ERRORS,e)},getErrorsByGroup:function(e,n){return st(t,A.ERRORS,e,n)},getMessage:function(t){return i(t)||s(t)},getWarning:s,getWarnings:function(e){return nt(t,A.WARNINGS,e)},getWarningsByGroup:function(e,n){return st(t,A.WARNINGS,e,n)},hasErrors:function(e){return at(t,_.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return rt(t,_.ERROR_COUNT,e,n)},hasWarnings:function(e){return at(t,_.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return rt(t,_.WARN_COUNT,e,n)},isPending:function(n){var s;return n?e.greaterThan(null===(s=t.tests[n])||void 0===s?void 0:s.pendingCount,0):e.greaterThan(t.pendingCount,0)},isTested:function(n){var s;return e.isPositive(null===(s=t.tests[n])||void 0===s?void 0:s.testCount)},isValid:function(e){var n;return Boolean(e?null===(n=t.tests[e])||void 0===n?void 0:n.valid:t.valid)},isValidByGroup:function(e,n){const s=t.groups[e];if(!s)return!1;if(n)return it(s,n);for(const t in s)if(!it(s,t))return!1;return!0}};return n;function s(e){return ut(A.WARNINGS,t,e)}function i(e){return ut(A.ERRORS,t,e)}}function nt(t,e,n){return tt(t.tests,e,n)}function st(t,e,n,s){return tt(t.groups[n],e,s)}function it(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function rt(t,n,s,i){var r,a;const u=t.groups[s];if(!u)return!1;if(i)return e.isPositive(null===(r=u[i])||void 0===r?void 0:r[n]);for(const t in u)if(e.isPositive(null===(a=u[t])||void 0===a?void 0:a[n]))return!0;return!1}function at(t,n,s){var i;const r=s?null===(i=t.tests[s])||void 0===i?void 0:i[n]:t[n]||0;return e.isPositive(r)}function ut(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>G(t,n))))||void 0===s?void 0:s.message:i[0]}class ot{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=W.getData(t);return new ot(e,n,s)}}class ct{static hasNoTests(t=ct.defaultRoot()){return!t||!n.Walker.has(t,W.is)}static someTests(t,e=ct.defaultRoot()){return!!e&&n.Walker.some(e,(e=>(W.isX(e),t(e))),W.is)}static everyTest(t,e=ct.defaultRoot()){return!!e&&n.Walker.every(e,(e=>(W.isX(e),t(e))),W.is)}static walkTests(t,e=ct.defaultRoot()){e&&n.Walker.walk(e,((e,n)=>{t(W.cast(e),n)}),W.is)}static reduceTests(t,e,s=ct.defaultRoot()){return s?n.Walker.reduce(s,((e,n,s)=>t(e,W.cast(n),s)),e,W.is):e}static pluckTests(t,e=ct.defaultRoot()){e&&n.Walker.pluck(e,(e=>(W.isX(e),t(e))),W.is)}static resetField(t){ct.walkTests((e=>{G(W.getData(e),t)&&W.reset(e)}),ct.defaultRoot())}static removeTestByFieldName(t,e=ct.defaultRoot()){ct.pluckTests((e=>G(W.getData(e),t)),e)}}ct.defaultRoot=n.VestRuntime.useAvailableRoot;class lt{static useHasPending(t){if(!lt.defaultRoot())return!1;const n=lt.usePreAggs().pending;return!e.isEmpty(n)&&n.some(e.Predicates.all(null==t||t))}static usePreAggs(){return t=dt,(0,q().preAggCache)([J()],t);var t}static useHasRemainingWithTestNameMatching(t){return lt.useHasPending(e.Predicates.any(e.isNullish(t),e.Predicates.all(W.is,(e=>function(t,e){return!e||G(t,e)}(W.getData(e),t)))))}}function dt(){const t=lt.defaultRoot(),e={pending:[],failures:{errors:{},warnings:{}}};return t?n.Walker.reduce(t,((t,e)=>{var n,s;if(y.isPending(e)&&t.pending.push(e),W.is(e)){const i=W.getData(e).fieldName;W.isWarning(e)&&(t.failures.warnings[i]=null!==(n=t.failures.warnings[i])&&void 0!==n?n:[],t.failures.warnings[i].push(e)),W.isFailing(e)&&(t.failures.errors[i]=null!==(s=t.failures.errors[i])&&void 0!==s?s:[],t.failures.errors[i].push(e))}return t}),e):e}lt.defaultRoot=n.VestRuntime.useAvailableRoot;const Et=e.bindNot((function(t,e){return W.getData(t).groupName===e}));function ft(t){return function(t,n){const s=lt.usePreAggs().failures;if(e.isEmpty(s[t]))return!1;if(n)return!e.isEmpty(s[t][n]);return!0}(A.ERRORS,t)}function gt(t,n,s){return ct.someTests((i=>!Et(i,n)&&function(t,n,s){if(!W.hasFailures(t))return!1;if(U(W.getData(t),s))return!1;if(function(t,n){return e.either(t===A.WARNINGS,W.warns(n))}(n,t))return!1;return!0}(i,t,s)))}function Nt(t){return!!f(t)||!ct.hasNoTests()&&(!ft(t)&&(!function(t){return lt.useHasPending(e.Predicates.all(W.is,(e=>!U(W.getData(e),t)),(()=>!f(t))))}(t)&&function(t){return ct.everyTest((e=>pt(e,t)))}(t)))}function Tt(t,n){return!!f(n)||!gt(A.ERRORS,t,n)&&(!function(t,n){return lt.useHasPending(e.Predicates.all(W.is,(e=>!Et(e,t)),(t=>!U(W.getData(t),n)),(()=>!f(n))))}(t,n)&&function(t,e){return ct.everyTest((n=>!!Et(n,t)||pt(n,e)))}(t,n))}function pt(t,e){return!!U(W.getData(t),e)||(W.isOmitted(t)||W.isTested(t)||function(t){const e=n.VestRuntime.useAvailableRoot(),{fieldName:s}=W.getData(t);return r.getOptionalField(e,s).type===a.AUTO&&W.awaitsResolution(t)}(t))}function St(){const t=ct.reduceTests(((t,e)=>{const n=W.getData(e).fieldName;return t.tests[n]=function(t,e){const n=W.getData(e).fieldName,s=Rt(t[n],e);return s.valid=!1!==s.valid&&Nt(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=W.getData(e);if(!n)return t;t[n]=t[n]||{};const i=t[n];return i[s]=Rt(i[s],e),i[s].valid=!1!==i[s].valid&&Tt(n,s),t}(t.groups,e),W.isOmitted(e)?t:(!1===t.tests[n].valid&&(t.valid=!1),function(t,e){W.isWarning(t)?(e.warnCount++,e.warnings.push(ot.fromTestObject(t))):W.isFailing(t)&&(e.errorCount++,e.errors.push(ot.fromTestObject(t)));W.isPending(t)&&e.pendingCount++;W.isNonActionable(t)||e.testCount++;return e}(e,t))}),new H);return t.valid=!1!==t.valid&&Nt(),t}function Rt(t,n){const{message:s}=W.getData(n),i=e.defaultTo(t?Object.assign({},t):null,mt);return W.isNonActionable(n)||(W.isPending(n)&&i.pendingCount++,W.isFailing(n)?r(A.ERRORS):W.isWarning(n)&&r(A.WARNINGS),i.testCount++),i;function r(t){const e=L(t);i[e]++,s&&(i[t]=(i[t]||[]).concat(s))}}function mt(){return e.assign(new j,{errors:[],valid:!0,warnings:[]})}function It(){return t=()=>{const t=St(),e=q().suiteName;return Object.freeze(vt(t,e))},(0,q().suiteResultCache)([J()],t);var t}function vt(t,n){return e.assign(t,et(t),{suiteName:n})}function Dt(){const t=vt(new H);return new Proxy(t,{get:(t,e)=>It()[e]})}function Ot(t,s){n.Isolate.create(i.SkipWhen,(()=>{o.run({skipped:At()||e.optionalFunctionValue(t,Dt())},s)}))}function At(){return function(){var t;return null!==(t=o.useX().skipped)&&void 0!==t&&t}()}function _t(t,s){return e.isNotNullish(n.Walker.findClosest(t,(t=>!!M.isIsolateFocused(t)&&M.isOnlyFocused(t,s))))}function ht(t){const{fieldName:s}=W.getData(t);if(At())return!0;const i=c(),r=function(t){return n.Walker.findClosest(t,(e=>{var n;if(!M.isIsolateFocused(e))return!1;const{fieldName:s}=W.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(M.isSkipFocused(r))return!0;return!M.isOnlyFocused(r)&&(!!_t(t)&&!e.optionalFunctionValue(i[s],t))}function Ct(t){const[e]=l();return e===t}function Pt(t){return Ct(exports.Modes.ONE)?ft():!!Ct(exports.Modes.EAGER)&&ft(t.fieldName)}function Ft(t,s){n.Isolate.create(i.OmitWhen,(()=>{o.run({omitted:Lt()||e.optionalFunctionValue(t,Dt())},s)}))}function Lt(){return function(){var t;return null!==(t=o.useX().omitted)&&void 0!==t&&t}()}function yt(t,e=t){const n=W.getData(t);return Pt(n)?(s=t,W.skip(s),s):(i=n.fieldName,Lt()||f(i)?function(t){return W.omit(t),t}(t):ht(t)?function(t){return W.skip(t,At()),t}(e):t);var s,i}function Wt(t,e){return W.is(e)&&!b(e,t)}const Ut=[class{static match(t,e){return W.is(t)&&W.is(e)}static reconcile(t,s){const i=yt(t,function(t,s){if(n.IsolateInspector.usesKey(t))return function(t){return W.cast(n.Reconciler.handleIsolateNodeWithKey(t,(e=>!!W.isNonActionable(e)||!ht(t))))}(t);if(n.Reconciler.dropNextNodesOnReorder(Wt,t,s))return function(t,s){if(n.IsolateInspector.canReorder(t))return;e.deferThrow(e.text(g.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:W.getData(t).fieldName,prevName:W.is(s)?W.getData(s).fieldName:void 0}))}(t,s),t;if(!W.is(s))return t;if(W.isOmitted(s))return t;return s}(t,s));return function(t,e,n){t===e&&W.is(e)&&(i=e)!==(s=n)&&b(s,i)&&W.isPending(s)&&W.cancel(s);var s,i}(i,t,s),i}}];function Gt(t,e){var n,s;return null!==(s=null===(n=Ut.find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function bt(...t){const[e,s]=t.reverse();return n.Isolate.create(i.Group,(()=>o.run(Object.assign({},s&&{groupName:s}),e)))}function Vt(t){e.invariant(e.isStringValue(t));return c()[t]=!0,{when:function(n){e.invariant(n!==t,g.INCLUDE_SELF);const s=c();s[t]=function(t){return e.isStringValue(n)?_t(t,n):e.optionalFunctionValue(n,e.optionalFunctionValue(It))}}}}function Mt(t,e,s){const r=Object.assign(Object.assign({},{severity:h.Error,status:O.initial()}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(r.groupName=e.groupName),e.message&&(r.message=e.message);return n.Isolate.create(i.Test,t,r,null!=s?s:null)}function kt(t){if(yt(t),W.isUntested(t))return function(t){const s=function(t){return o.run({currentTest:t},(()=>{let n;const{message:s,testFn:i}=W.getData(t);try{n=i({signal:t.abortController.signal})}catch(i){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(s,i)&&(W.getData(t).message=i),n=!1}return!1===n&&W.fail(t),n}))}(t);try{if(e.isPromise(s))return W.getData(t).asyncTest=s,function(t){const{asyncTest:s,message:i}=W.getData(t);if(!e.isPromise(s))return;const r=n.VestRuntime.persist((()=>{wt(t)})),a=n.VestRuntime.persist((n=>{W.isCanceled(t)||(W.getData(t).message=e.isStringValue(n)?n:i,W.fail(t),r())}));return s.then(r,a)}(t);wt(t)}catch(n){throw new Error(e.text(g.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t);W.isNonActionable(t)||e.deferThrow(e.text(g.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function wt(t){W.pass(t)}function xt(t,...s){const[i,r,a]=e.isFunction(s[1])?s:[void 0,...s];!function(t,n){const s="test";e.invariant(e.isStringValue(t),e.text(g.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),e.invariant(e.isFunction(n),e.text(g.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const u={fieldName:t,groupName:o.useX().groupName,message:i,testFn:r};return n.Bus.useEmit("TEST_RUN_STARTED"),Mt(kt,u,a)}const Bt=e.assign(xt,{memo:function(t){return function(s,...i){const[r,a,u]=i.reverse();return function(t,s){const i=o.useX().testMemoCache,r=i.get(t);if(e.isNull(r))return i(t,s);const[,a]=r;if(W.isCanceled(a))return i.invalidate(t),i(t,s);return n.VestRuntime.useSetNextIsolateChild(a),a}([J(),s,n.VestRuntime.useCurrentCursor()].concat(r),(function(){return t(s,u,a)}))}}(xt)});function jt(){return{group:bt,include:Vt,omitWhen:Ft,only:k,optional:E,skip:w,skipWhen:Ot,test:Bt}}function Ht(){const t=n.VestRuntime.useAvailableRoot(),s=r.getOptionalFields(t);if(e.isEmpty(s))return;const i=new Set;function a(e){const{fieldName:n}=W.getData(e);i.has(n)&&(W.omit(e),r.setOptionalField(t,n,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}ct.walkTests((n=>{if(W.isPending(n))return;const{fieldName:s}=W.getData(n);i.has(s)?a(n):function(n){const{fieldName:s}=W.getData(n),u=r.getOptionalField(t,s);!0===e.optionalFunctionValue(u.rule)&&i.add(s);a(n)}(n)})),n.Bus.useEmit("DONE_TEST_OMISSION_PASS")}function Kt(){const t=n.Bus.useBus();return s("TEST_COMPLETED",(()=>{})),t.on(n.RuntimeEvents.ISOLATE_PENDING,(t=>{W.is(t)&&W.setPending(t),y.setPending(t)})),t.on(n.RuntimeEvents.ISOLATE_DONE,(e=>{W.is(e)&&t.emit("TEST_COMPLETED",e),y.setDone(e)})),t.on(n.RuntimeEvents.ASYNC_ISOLATE_DONE,(n=>{if(W.is(n)&&!W.isCanceled(n)){const{fieldName:t}=W.getData(n);!function(t){const[n]=z();t&&!lt.useHasRemainingWithTestNameMatching(t)&&e.isArray(n[t])&&e.callEach(n[t])}(t)}lt.useHasPending()||t.emit("ALL_RUNNING_TESTS_FINISHED")})),s("DONE_TEST_OMISSION_PASS",(()=>{})),t.on("ALL_RUNNING_TESTS_FINISHED",(()=>{ct.someTests(W.isAsyncTest)&&Ht(),function(){const[t]=Y();e.callEach(t)}()})),s("RESET_FIELD",(t=>{ct.resetField(t)})),s("SUITE_RUN_STARTED",(()=>{Z()})),s("SUITE_CALLBACK_RUN_FINISHED",(()=>{lt.useHasPending()||t.emit("ALL_RUNNING_TESTS_FINISHED"),Ht()})),s("REMOVE_FIELD",(t=>{ct.removeTestByFieldName(t)})),s("RESET_SUITE",(()=>{Z(),n.VestRuntime.reset()})),{subscribe:function(...e){const[n,s]=e.reverse();return t.on(null!=s?s:"*",(()=>{n()})).off}};function s(e,n){t.on(e,((...t)=>{Q(),n(...t)}))}}function Xt(){return e.freezeAssign({done:n.VestRuntime.persist(qt)},It())}function qt(...t){const[n,s]=t.reverse(),i=Xt();if(function(t,n,s){var i,r;return!!(!e.isFunction(t)||n&&e.numberEquals(null!==(r=null===(i=s.tests[n])||void 0===i?void 0:i.testCount)&&void 0!==r?r:0,0))}(n,s,i))return i;const r=()=>n(It());return lt.useHasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=z(),[,i]=Y();n?s((s=>e.assign(s,{[n]:(s[n]||[]).concat(t)}))):i((e=>e.concat(t)))}(r,s),i):(r(),i)}function Yt(...t){const[s,r]=t.reverse();!function(t){e.invariant(e.isFunction(t),g.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const a=function({suiteName:t,VestReconciler:s}){const i={doneCallbacks:e.tinyState.createTinyState((()=>[])),fieldCallbacks:e.tinyState.createTinyState((()=>({}))),preAggCache:X,suiteId:e.seq(),suiteName:t,suiteResultCache:K};return n.VestRuntime.createRef(s,i)}({suiteName:r,VestReconciler:Gt});function u(...t){return o.run({suiteParams:t},(()=>{return n.Bus.useEmit("SUITE_RUN_STARTED"),e=function(t,...e){const s=n.Bus.useEmit();return()=>(t(...e),s("SUITE_CALLBACK_RUN_FINISHED"),Xt())}(s,...t),n.Isolate.create(i.Suite,e,{optional:{}});var e})).output}const c=zt(...t);return n.VestRuntime.Run(a,(()=>{const t=Kt();return e.assign(n.VestRuntime.persist(u),Object.assign(Object.assign({dump:n.VestRuntime.persist((()=>n.VestRuntime.useAvailableRoot())),get:n.VestRuntime.persist(It),remove:n.Bus.usePrepareEmitter("REMOVE_FIELD"),reset:n.Bus.usePrepareEmitter("RESET_SUITE"),resetField:n.Bus.usePrepareEmitter("RESET_FIELD"),resume:n.VestRuntime.persist($),runStatic:(...t)=>c(...t),subscribe:t.subscribe},(s=n.VestRuntime.persist(It),{getError:(...t)=>s().getError(...t),getErrors:(...t)=>s().getErrors(...t),getErrorsByGroup:(...t)=>s().getErrorsByGroup(...t),getMessage:(...t)=>s().getMessage(...t),getWarning:(...t)=>s().getWarning(...t),getWarnings:(...t)=>s().getWarnings(...t),getWarningsByGroup:(...t)=>s().getWarningsByGroup(...t),hasErrors:(...t)=>s().hasErrors(...t),hasErrorsByGroup:(...t)=>s().hasErrorsByGroup(...t),hasWarnings:(...t)=>s().hasWarnings(...t),hasWarningsByGroup:(...t)=>s().hasWarningsByGroup(...t),isPending:(...t)=>s().isPending(...t),isTested:(...t)=>s().isTested(...t),isValid:(...t)=>s().isValid(...t),isValidByGroup:(...t)=>s().isValidByGroup(...t)})),jt()));var s}))}function zt(...t){return e.assign(((...n)=>{const s=Yt(...t),i=s(...n);return e.assign(new Promise((t=>{i.done((e=>{t(r(e))}))})),r(i));function r(t){return e.assign({dump:s.dump},t)}}),Object.assign({},jt()))}const Jt=g.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.create=Yt,exports.each=function(t,s){e.invariant(e.isFunction(s),g.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){n.Isolate.create(i.Each,t,{allowReorder:!0})}((()=>{t.forEach(((t,e)=>{s(t,e)}))}))},exports.group=bt,exports.include=Vt,exports.mode=function(t){const[,e]=l();e(t)},exports.omitWhen=Ft,exports.only=k,exports.optional=E,exports.registerReconciler=function(t){Ut.includes(t)||Ut.push(t)},exports.skip=w,exports.skipWhen=Ot,exports.staticSuite=zt,exports.suiteSelectors=et,exports.test=Bt,exports.warn=function(){const t=(n=g.HOOK_CALLED_OUTSIDE,o.useX(n).currentTest);var n;e.invariant(t,Jt),W.warn(t)};
|
|
2
2
|
//# sourceMappingURL=vest.production.js.map
|