vest 5.1.5 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/SuiteSerializer.development.js +45 -2
  2. package/dist/cjs/SuiteSerializer.development.js.map +1 -1
  3. package/dist/cjs/SuiteSerializer.production.js +1 -1
  4. package/dist/cjs/SuiteSerializer.production.js.map +1 -1
  5. package/dist/cjs/vest.development.js +34 -21
  6. package/dist/cjs/vest.development.js.map +1 -1
  7. package/dist/cjs/vest.production.js +1 -1
  8. package/dist/cjs/vest.production.js.map +1 -1
  9. package/dist/es/SuiteSerializer.development.js +45 -2
  10. package/dist/es/SuiteSerializer.development.js.map +1 -1
  11. package/dist/es/SuiteSerializer.production.js +1 -1
  12. package/dist/es/SuiteSerializer.production.js.map +1 -1
  13. package/dist/es/vest.development.js +36 -23
  14. package/dist/es/vest.development.js.map +1 -1
  15. package/dist/es/vest.production.js +1 -1
  16. package/dist/es/vest.production.js.map +1 -1
  17. package/dist/umd/SuiteSerializer.development.js +48 -6
  18. package/dist/umd/SuiteSerializer.development.js.map +1 -1
  19. package/dist/umd/SuiteSerializer.production.js +1 -1
  20. package/dist/umd/SuiteSerializer.production.js.map +1 -1
  21. package/dist/umd/vest.development.js +34 -21
  22. package/dist/umd/vest.development.js.map +1 -1
  23. package/dist/umd/vest.production.js +1 -1
  24. package/dist/umd/vest.production.js.map +1 -1
  25. package/package.json +6 -6
  26. package/types/SuiteSerializer.d.ts +1 -1
  27. package/types/SuiteSerializer.d.ts.map +1 -1
  28. package/types/classnames.d.ts +1 -1
  29. package/types/classnames.d.ts.map +1 -1
  30. package/types/parser.d.ts +1 -1
  31. package/types/parser.d.ts.map +1 -1
  32. package/types/promisify.d.ts +1 -1
  33. package/types/promisify.d.ts.map +1 -1
  34. package/types/vest.d.ts +4 -3
  35. package/types/vest.d.ts.map +1 -1
@@ -1,2 +1,2 @@
1
- import{enforce as t}from"n4s";export{enforce}from"n4s";import{assign as e,tinyState as n,cache as s,isArray as r,isStringValue as i,asArray as a,hasOwnProperty as o,seq as u,StateMachine as c,invariant as l,isPromise as E,optionalFunctionValue as f,Predicates as d,isNullish as N,isEmpty as T,callEach as I,bindNot as S,either as g,isPositive as R,greaterThan as _,defaultTo as D,noop as O,isNotEmpty as m,isNotNullish as p,deferThrow as A,text as C,isUndefined as v,isNull as h,isFunction as P,numberEquals as L}from"vest-utils";import{Isolate as U,VestRuntime as F,IsolateSelectors as G,Walker as b,Bus as y,RuntimeEvents as W,IsolateInspector as M,Reconciler as w}from"vestjs-runtime";import{createCascade as B}from"context";const k="Each",j="Focused",K="Group",V="OmitWhen",X="SkipWhen",x="Suite",H="Test";class q{static setOptionalField(t,n,s){const r=t.data.optional,i=r[n];e(r,{[n]:e({},i,s(i))})}static getOptionalField(t,e){var n;return null!==(n=t.data.optional[e])&&void 0!==n?n:{}}static getOptionalFields(t){return t.data.optional}}var Y,z;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(Y||(Y={})),function(t){t.EAGER="EAGER",t.ALL="ALL",t.ONE="ONE"}(z||(z={}));const J=B(((t,s)=>s?null:e({inclusion:{},mode:n.createTinyState(z.EAGER),suiteParams:[],testMemoCache:$},t)));function Q(){return J.useX().inclusion}function Z(){return J.useX().mode()}const $=s(10);function tt(e){var n;const s=F.useAvailableRoot(),u=J.useX().suiteParams,c=null!==(n=null==u?void 0:u[0])&&void 0!==n?n:{};if(r(e)||i(e))a(e).forEach((e=>{q.setOptionalField(s,e,(()=>({type:Y.AUTO,applied:!!o(c,e)&&t.isBlank().test(null==c?void 0:c[e]),rule:null})))}));else for(const n in e){const r=e[n];q.setOptionalField(s,n,(()=>({type:Y.CUSTOM_LOGIC,rule:r,applied:t.isBlank().test(r)||!0===r})))}}function et(t){var e,n;if(!t)return!1;const s=F.useAvailableRoot();return null!==(n=null===(e=q.getOptionalField(s,t))||void 0===e?void 0:e.applied)&&void 0!==n&&n}var nt;!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"}(nt||(nt={}));const st=s();function rt(){return F.useXAppData()}function it(){return rt().doneCallbacks()}function at(){return rt().fieldCallbacks()}function ot(){return rt().suiteId}function ut(){rt().suiteResultCache.invalidate([ot()])}function ct(){const[,,t]=it(),[,,e]=at();t(),e()}function lt(t){F.useLoadRootNode(t),ut()}const Et="PENDING",ft={[Et]:Et,INITIAL:"INITIAL",DONE:"DONE"};function dt(t,e){return Nt.staticTransition(null!=t?t:ft.INITIAL,e)}const Nt=c({initial:ft.INITIAL,states:{[ft.DONE]:{},[ft.INITIAL]:{[ft.PENDING]:ft.PENDING,[ft.DONE]:ft.DONE},[ft.PENDING]:{[ft.DONE]:ft.DONE}}});var Tt;!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."}(Tt||(Tt={}));const It={[Et]:Et,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},St="RESET",gt=c({initial:It.UNTESTED,states:{"*":{[It.OMITTED]:It.OMITTED,[St]:It.UNTESTED},[It.UNTESTED]:{[It.CANCELED]:It.CANCELED,[It.FAILED]:It.FAILED,[It.PASSING]:It.PASSING,[It.PENDING]:It.PENDING,[It.SKIPPED]:It.SKIPPED,[It.WARNING]:It.WARNING},[It.PENDING]:{[It.CANCELED]:It.CANCELED,[It.FAILED]:It.FAILED,[It.PASSING]:It.PASSING,[It.SKIPPED]:[It.SKIPPED,t=>!0===t],[It.WARNING]:It.WARNING},[It.SKIPPED]:{},[It.FAILED]:{},[It.WARNING]:{},[It.PASSING]:{},[It.CANCELED]:{},[It.OMITTED]:{}}});var Rt,_t,Dt;function Ot(t){return t===Rt.ERRORS?_t.ERROR_COUNT:_t.WARN_COUNT}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(Rt||(Rt={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(_t||(_t={})),function(t){t.Error="error",t.Warning="warning"}(Dt||(Dt={}));class mt{static getData(t){return l(t.data),t.data}static is(t){return G.isIsolateType(t,H)}static isX(t){l(mt.is(t),Tt.EXPECTED_VEST_TEST)}static cast(t){return mt.isX(t),t}static warns(t){return mt.getData(t).severity===Dt.Warning}static isPending(t){return mt.statusEquals(t,It.PENDING)}static isOmitted(t){return mt.statusEquals(t,It.OMITTED)}static isUntested(t){return mt.statusEquals(t,It.UNTESTED)}static isFailing(t){return mt.statusEquals(t,It.FAILED)}static isCanceled(t){return mt.statusEquals(t,It.CANCELED)}static isSkipped(t){return mt.statusEquals(t,It.SKIPPED)}static isPassing(t){return mt.statusEquals(t,It.PASSING)}static isWarning(t){return mt.statusEquals(t,It.WARNING)}static hasFailures(t){return mt.isFailing(t)||mt.isWarning(t)}static isNonActionable(t){return mt.isSkipped(t)||mt.isOmitted(t)||mt.isCanceled(t)}static isTested(t){return mt.hasFailures(t)||mt.isPassing(t)}static awaitsResolution(t){return mt.isSkipped(t)||mt.isUntested(t)||mt.isPending(t)}static isAsyncTest(t){return E(mt.getData(t).asyncTest)}static statusEquals(t,e){return t.status===e}static setPending(t){mt.setStatus(t,It.PENDING)}static fail(t){mt.setStatus(t,mt.warns(t)?It.WARNING:It.FAILED)}static pass(t){mt.setStatus(t,It.PASSING)}static warn(t){mt.setData(t,(t=>Object.assign(Object.assign({},t),{severity:Dt.Warning})))}static setData(t,e){t.data=f(e,mt.getData(t))}static skip(t,e){mt.setStatus(t,It.SKIPPED,e)}static cancel(t){mt.setStatus(t,It.CANCELED),mt.getData(t).abortController.abort(It.CANCELED)}static omit(t){mt.setStatus(t,It.OMITTED)}static reset(t){mt.setStatus(t,St)}static setStatus(t,e,n){t.status=gt.staticTransition(t.status,e,n)}}function pt(t,e){return!!e&&!At(t,e)}function At(t,e){return!(!e||t.fieldName!==e)}class Ct{static hasPending(t){const e=Ct.defaultRoot();return!!e&&b.some(e,d.all(vt,null==t||t))}static hasRemainingWithTestNameMatching(t){return Ct.hasPending(d.any(N(t),d.all(mt.is,(e=>function(t,e){return!e||At(t,e)}(mt.getData(e),t)))))}}function vt(t){return t.status===Et}Ct.defaultRoot=F.useAvailableRoot;class ht{static hasNoTests(t=ht.defaultRoot()){return!t||!b.has(t,mt.is)}static someTests(t,e=ht.defaultRoot()){return!!e&&b.some(e,(e=>(mt.isX(e),t(e))),mt.is)}static everyTest(t,e=ht.defaultRoot()){return!!e&&b.every(e,(e=>(mt.isX(e),t(e))),mt.is)}static walkTests(t,e=ht.defaultRoot()){e&&b.walk(e,((e,n)=>{t(mt.cast(e),n)}),mt.is)}static pluckTests(t,e=ht.defaultRoot()){e&&b.pluck(e,(e=>(mt.isX(e),t(e))),mt.is)}static resetField(t){ht.walkTests((e=>{At(mt.getData(e),t)&&mt.reset(e)}),ht.defaultRoot())}static removeTestByFieldName(t,e=ht.defaultRoot()){ht.pluckTests((e=>At(mt.getData(e),t)),e)}}function Pt(){const t=F.useAvailableRoot(),e=q.getOptionalFields(t);if(T(e))return;const n=new Set;function s(e){const{fieldName:s}=mt.getData(e);n.has(s)&&(mt.omit(e),q.setOptionalField(t,s,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}ht.walkTests((e=>{if(mt.isPending(e))return;const{fieldName:r}=mt.getData(e);n.has(r)?s(e):function(e){const{fieldName:r}=mt.getData(e),i=q.getOptionalField(t,r);!0===f(i.rule)&&n.add(r);s(e)}(e)})),y.useEmit(nt.DONE_TEST_OMISSION_PASS)}function Lt(){const t=y.useBus();return e(nt.TEST_COMPLETED,(t=>{if(mt.isCanceled(t))return;const{fieldName:e}=mt.getData(t);!function(t){const[e]=at();t&&!Ct.hasRemainingWithTestNameMatching(t)&&r(e[t])&&I(e[t])}(e)})),e(nt.TEST_RUN_STARTED,(()=>{})),e(W.ISOLATE_PENDING,(t=>{mt.is(t)&&mt.setPending(t),function(t){t.status=dt(t.status,ft.PENDING)}(t)})),e(W.ISOLATE_DONE,(e=>{mt.is(e)&&t.emit(nt.TEST_COMPLETED,e),function(t){t.status=dt(t.status,ft.DONE)}(e),Ct.hasPending()||t.emit(nt.ALL_RUNNING_TESTS_FINISHED)})),e(nt.DONE_TEST_OMISSION_PASS,(()=>{})),e(nt.ALL_RUNNING_TESTS_FINISHED,(()=>{ht.someTests(mt.isAsyncTest)&&Pt(),function(){const[t]=it();I(t)}()})),e(nt.RESET_FIELD,(t=>{ht.resetField(t)})),e(nt.SUITE_RUN_STARTED,(()=>{ct()})),e(nt.SUITE_CALLBACK_RUN_FINISHED,(()=>{Pt()})),e(nt.REMOVE_FIELD,(t=>{ht.removeTestByFieldName(t)})),e(nt.RESET_SUITE,(()=>{ct(),F.reset()})),{subscribe:function(e){return t.on("*",(()=>{e()})).off}};function e(e,n){t.on(e,((...t)=>{ut(),n(...t)}))}}ht.defaultRoot=F.useAvailableRoot;function Ut(t,e){const{groupName:n}=mt.getData(t),{groupName:s,fieldName:r}=mt.getData(e);return At(mt.getData(t),r)&&n===s&&t.key===e.key}const Ft=S((function(t,e){return mt.getData(t).groupName===e}));function Gt(t){return function(t,e){return ht.someTests((n=>bt(n,t,e)))}(Rt.ERRORS,t)}function bt(t,e,n){return!!mt.hasFailures(t)&&(!pt(mt.getData(t),n)&&!function(t,e){return g(t===Rt.WARNINGS,mt.warns(e))}(e,t))}function yt(t){const[,e]=Z();e(t)}function Wt(t){const[e]=Z();return e===t}function Mt(t){return Wt(z.ONE)?Gt():!!Wt(z.EAGER)&&Gt(t.fieldName)}function wt(t,e,n){return n?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,e,n):function(t,e){const n={},s=Ot(e);for(const r in t)R(t[r][s])&&(n[r]=t[r][e]||[]);return n}(t,e)}function Bt(t){const e={getError:function(e){return xt(Rt.ERRORS,t,e)},getErrors:function(e){return kt(t,Rt.ERRORS,e)},getErrorsByGroup:function(e,n){return jt(t,Rt.ERRORS,e,n)},getWarning:function(e){return xt(Rt.WARNINGS,t,e)},getWarnings:function(e){return kt(t,Rt.WARNINGS,e)},getWarningsByGroup:function(e,n){return jt(t,Rt.WARNINGS,e,n)},hasErrors:function(e){return Xt(t,_t.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return Vt(t,_t.ERROR_COUNT,e,n)},hasWarnings:function(e){return Xt(t,_t.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return Vt(t,_t.WARN_COUNT,e,n)},isPending:function(e){var n;return _(e?null===(n=t.tests[e])||void 0===n?void 0:n.pendingCount:t.pendingCount,0)},isValid:function(e){var n;return e?Boolean(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 Kt(s,n);for(const t in s)if(!Kt(s,t))return!1;return!0}};return e}function kt(t,e,n){return wt(t.tests,e,n)}function jt(t,e,n,s){return wt(t.groups[n],e,s)}function Kt(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function Vt(t,e,n,s){var r,i;const a=t.groups[n];if(!a)return!1;if(s)return R(null===(r=a[s])||void 0===r?void 0:r[e]);for(const t in a)if(R(null===(i=a[t])||void 0===i?void 0:i[e]))return!0;return!1}function Xt(t,e,n){var s;const r=n?null===(s=t.tests[n])||void 0===s?void 0:s[e]:t[e]||0;return R(r)}function xt(t,e,n){var s;const r=e[t];return n?null===(s=r.find((t=>At(t,n))))||void 0===s?void 0:s.message:r[0]}var Ht,qt,Yt;class zt{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class Jt extends zt{constructor(){super(...arguments),this[Ht]=[],this[qt]=[],this.groups={},this.tests={},this.valid=!1}}Ht=Rt.ERRORS,qt=Rt.WARNINGS;class Qt{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=mt.getData(t);return new Qt(e,n,s)}}function Zt(t){return!!et(t)||!ht.hasNoTests()&&(!Gt(t)&&(!function(t){return Ct.hasPending(d.all(mt.is,(e=>!pt(mt.getData(e),t)),(()=>!et(t))))}(t)&&function(t){return ht.everyTest((e=>te(e,t)))}(t)))}function $t(t,e){return!!et(e)||!function(t,e,n){return ht.someTests((s=>!Ft(s,e)&&bt(s,t,n)))}(Rt.ERRORS,t,e)&&(!function(t,e){return Ct.hasPending(d.all(mt.is,(e=>!Ft(e,t)),(t=>!pt(mt.getData(t),e)),(()=>!et(e))))}(t,e)&&function(t,e){return ht.everyTest((n=>!!Ft(n,t)||te(n,e)))}(t,e))}function te(t,e){return!!pt(mt.getData(t),e)||(mt.isOmitted(t)||mt.isTested(t)||function(t){const e=F.useAvailableRoot(),{fieldName:n}=mt.getData(t);return q.getOptionalField(e,n).type===Y.AUTO&&mt.awaitsResolution(t)}(t))}function ee(){const t=new Jt;return ht.walkTests((e=>{t.tests=function(t,e){const n=mt.getData(e).fieldName,s=Object.assign({},t);return s[n]=se(s[n],e),s[n].valid=!1!==s[n].valid&&Zt(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=mt.getData(e);if(!n)return t;const r=Object.assign({},t);return r[n]=r[n]||{},r[n][s]=se(r[n][s],e),r[n][s].valid=!1!==r[n][s].valid&&$t(n,s),r}(t.groups,e),t.errors=ne(Rt.ERRORS,t.errors,e),t.warnings=ne(Rt.WARNINGS,t.warnings,e)})),t.valid=Zt(),function(t){for(const e in t.tests)t.errorCount+=t.tests[e].errorCount,t.warnCount+=t.tests[e].warnCount,t.testCount+=t.tests[e].testCount,t.pendingCount+=t.tests[e].pendingCount;return t}(t)}function ne(t,e,n){if(mt.isOmitted(n))return e;return(t===Rt.WARNINGS?mt.isWarning(n):mt.isFailing(n))?e.concat(Qt.fromTestObject(n)):e}function se(t,e){const{message:n}=mt.getData(e),s=D(t?Object.assign({},t):null,re);return mt.isNonActionable(e)||(mt.isPending(e)&&s.pendingCount++,mt.isFailing(e)?r(Rt.ERRORS):mt.isWarning(e)&&r(Rt.WARNINGS),s.testCount++),s;function r(t){const e=Ot(t);s[e]++,n&&(s[t]=(s[t]||[]).concat(n))}}function re(){return e(new zt,{errors:[],valid:!0,warnings:[]})}function ie(){return t=()=>{const t=ee(),n=rt().suiteName;return Object.freeze(e(t,Bt(t),{suiteName:n}))},(0,rt().suiteResultCache)([ot()],t);var t}function ae(t,e){U.create(V,(()=>{J.run({omitted:oe()||f(t,f(ie))},e)}))}function oe(){return function(){var t;return null!==(t=J.useX().omitted)&&void 0!==t&&t}()}function ue(t,e){U.create(X,(()=>{J.run({skipped:ce()||f(t,f(ie))},e)}))}function ce(){return function(){var t;return null!==(t=J.useX().skipped)&&void 0!==t&&t}()}function le(t,e){return U.create(j,O,{focusMode:t,match:a(e).filter(i),matchAll:!0===e})}!function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(Yt||(Yt={}));class Ee{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===Yt.SKIP&&(Te(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===Yt.ONLY&&Te(t,e)}static isIsolateFocused(t){return G.isIsolateType(t,j)}}function fe(t){return le(Yt.ONLY,Ne(t))}function de(t){return le(Yt.SKIP,Ne(t))}function Ne(t){return!1===t?[]:t}function Te(t,e){var n,s;return m(null==t?void 0:t.data.match)&&(!e||(null===(s=null===(n=null==t?void 0:t.data.match)||void 0===n?void 0:n.includes(e))||void 0===s||s))}function Ie(t,e){return p(b.findClosest(t,(t=>!!Ee.isIsolateFocused(t)&&Ee.isOnlyFocused(t,e))))}function Se(t){const{fieldName:e}=mt.getData(t);if(ce())return!0;const n=Q(),s=function(t){return b.findClosest(t,(e=>{var n;if(!Ee.isIsolateFocused(e))return!1;const{fieldName:s}=mt.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(Ee.isSkipFocused(s))return!0;return!Ee.isOnlyFocused(s)&&(!!Ie(t)&&!f(n[e],t))}function ge(t,e=t){const n=mt.getData(t);return Mt(n)?(s=t,mt.skip(s),s):(r=n.fieldName,oe()||et(r)?function(t){return mt.omit(t),t}(t):Se(t)?function(t){return mt.skip(t,ce()),t}(e):t);var s,r}class Re extends class{static match(t,e){return!1}static reconcile(t,e){return null!=t?t:e}}{static match(t,e){return mt.is(t)&&mt.is(e)}static reconcile(t,e){const n=function(t,e){const n=function(t,e){if(M.usesKey(t))return mt.cast(w.handleIsolateNodeWithKey(t));if(w.dropNextNodesOnReorder(_e,t,e))return function(t,e){if(M.canReorder(t))return;A(C(Tt.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:mt.getData(t).fieldName,prevName:mt.is(e)?mt.getData(e).fieldName:void 0}))}(t,e),t;if(!mt.is(e))return t;if(mt.isOmitted(e))return t;return e}(e,t);return ge(e,n)}(e,t);return function(t,e,n){t===e&&mt.is(e)&&(r=e)!==(s=n)&&Ut(s,r)&&mt.isPending(s)&&mt.cancel(s);var s,r}(n,t,e),n}}function _e(t,e){return mt.is(e)&&!Ut(e,t)}function De(t,e){var n,s;return null!==(s=null===(n=[Re].find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function Oe(...t){const[e,n]=t.reverse();return U.create(K,(()=>J.run(Object.assign({},n&&{groupName:n}),e)))}function me(t){l(i(t));return Q()[t]=!0,{when:function(e){l(e!==t,Tt.INCLUDE_SELF);Q()[t]=function(t){return i(e)?Ie(t,e):f(e,f(ie))}}}}function pe(t,e,n){const s=Object.assign(Object.assign({},{severity:Dt.Error,status:gt.initial(),abortController:new AbortController}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(s.groupName=e.groupName),e.message&&(s.message=e.message);return U.create(H,t,s,null!=n?n:null)}function Ae(t){if(ge(t),mt.isUntested(t))return function(t){const e=function(t){return J.run({currentTest:t},(()=>{let e;const{message:n,testFn:s,abortController:r}=mt.getData(t);try{e=s({signal:r.signal})}catch(s){(function(t,e){return v(t)&&i(e)})(n,s)&&(mt.getData(t).message=s),e=!1}return!1===e&&mt.fail(t),e}))}(t);try{if(E(e))return mt.getData(t).asyncTest=e,function(t){const{asyncTest:e,message:n}=mt.getData(t);if(!E(e))return;const s=F.persist((()=>{Ce(t)})),r=F.persist((e=>{mt.isCanceled(t)||(mt.getData(t).message=i(e)?e:n,mt.fail(t),s())}));return e.then(s,r)}(t);Ce(t)}catch(e){throw new Error(C(Tt.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t);mt.isNonActionable(t)||A(C(Tt.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function Ce(t){mt.pass(t)}function ve(t,...e){const[n,s,r]=P(e[1])?e:[void 0,...e];!function(t,e){const n="test";l(i(t),C(Tt.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"fieldName",expected:"string"})),l(P(e),C(Tt.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"callback",expected:"function"}))}(t,s);const a={fieldName:t,groupName:J.useX().groupName,message:n,testFn:s};return y.useEmit(nt.TEST_RUN_STARTED),pe(Ae,a,r)}const he=e(ve,{memo:function(t){return function(e,...n){const[s,r,i]=n.reverse();return function(t,e){const n=J.useX().testMemoCache,s=n.get(t);if(h(s))return n(t,e);const[,r]=s;if(mt.isCanceled(r))return n.invalidate(t),n(t,e);return F.addNodeToHistory(r),r}([ot(),e,F.useCurrentCursor()].concat(s),(function(){return t(e,i,r)}))}}(ve)});function Pe(){return{group:Oe,include:me,omitWhen:ae,only:fe,optional:tt,skip:de,skipWhen:ue,test:he}}function Le(){return Object.freeze(e({done:F.persist(Ue)},ie()))}function Ue(...t){const[n,s]=t.reverse(),r=Le();if(function(t,e,n){var s,r;return!!(!P(t)||e&&L(null!==(r=null===(s=n.tests[e])||void 0===s?void 0:s.testCount)&&void 0!==r?r:0,0))}(n,s,r))return r;const i=()=>n(ie());return Ct.hasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=at(),[,r]=it();n?s((s=>e(s,{[n]:(s[n]||[]).concat(t)}))):r((e=>e.concat(t)))}(i,s),r):(i(),r)}function Fe(...t){const[s,r]=t.reverse();!function(t){l(P(t),Tt.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const i=function({suiteName:t,VestReconciler:e}){const s={doneCallbacks:n.createTinyState((()=>[])),fieldCallbacks:n.createTinyState((()=>({}))),suiteId:u(),suiteName:t,suiteResultCache:st};return F.createRef(e,s)}({suiteName:r,VestReconciler:De});function a(...t){return J.run({suiteParams:t},(()=>{return y.useEmit(nt.SUITE_RUN_STARTED),e=function(t,...e){const n=y.useEmit();return()=>(t(...e),n(nt.SUITE_CALLBACK_RUN_FINISHED),Le())}(s,...t),U.create(x,e,{optional:{}});var e})).output}return F.Run(i,(()=>{const t=Lt();return e(F.persist(a),Object.assign(Object.assign({dump:F.persist((()=>F.useAvailableRoot())),get:F.persist(ie),remove:y.usePrepareEmitter(nt.REMOVE_FIELD),reset:y.usePrepareEmitter(nt.RESET_SUITE),resetField:y.usePrepareEmitter(nt.RESET_FIELD),resume:F.persist(lt),subscribe:t.subscribe},(n=F.persist(ie),{getError:(...t)=>n().getError(...t),getErrors:(...t)=>n().getErrors(...t),getErrorsByGroup:(...t)=>n().getErrorsByGroup(...t),getWarning:(...t)=>n().getWarning(...t),getWarnings:(...t)=>n().getWarnings(...t),getWarningsByGroup:(...t)=>n().getWarningsByGroup(...t),hasErrors:(...t)=>n().hasErrors(...t),hasErrorsByGroup:(...t)=>n().hasErrorsByGroup(...t),hasWarnings:(...t)=>n().hasWarnings(...t),hasWarningsByGroup:(...t)=>n().hasWarningsByGroup(...t),isPending:(...t)=>n().isPending(...t),isValid:(...t)=>n().isValid(...t),isValidByGroup:(...t)=>n().isValidByGroup(...t)})),Pe()));var n}))}function Ge(t,e){l(P(e),Tt.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){U.create(k,t,{allowReorder:!0})}((()=>{t.forEach(((t,n)=>{e(t,n)}))}))}function be(t){return e(((...n)=>{const s=Fe(t),r=s(...n);return Object.freeze(e({dump:s.dump},r))}),Object.assign({},Pe()))}const ye=Tt.WARN_MUST_BE_CALLED_FROM_TEST;function We(){const t=(e=Tt.HOOK_CALLED_OUTSIDE,J.useX(e).currentTest);var e;l(t,ye),mt.warn(t)}export{z as Modes,Fe as create,Ge as each,Oe as group,me as include,yt as mode,ae as omitWhen,fe as only,tt as optional,de as skip,ue as skipWhen,be as staticSuite,Bt as suiteSelectors,he as test,We as warn};
1
+ import{enforce as t}from"n4s";export{enforce}from"n4s";import{assign as e,tinyState as n,cache as s,isArray as i,isStringValue as r,asArray as a,hasOwnProperty as o,seq as u,StateMachine as c,nonnullish as l,invariant as E,isPromise as d,optionalFunctionValue as f,Predicates as N,isNullish as T,isEmpty as S,callEach as g,bindNot as I,either as R,isPositive as _,greaterThan as D,defaultTo as O,noop as m,isNotEmpty as p,isNotNullish as A,deferThrow as v,text as C,isUndefined as h,isNull as P,isFunction as L,numberEquals as U}from"vest-utils";import{Isolate as F,VestRuntime as G,IsolateSelectors as b,IsolateMutator as y,Walker as W,Bus as M,RuntimeEvents as w,IsolateInspector as B,Reconciler as k}from"vestjs-runtime";import{createCascade as j}from"context";const K="Each",V="Focused",X="Group",x="OmitWhen",H="SkipWhen",q="Suite",Y="Test";class z{static setOptionalField(t,n,s){const i=t.data.optional,r=i[n];e(i,{[n]:e({},r,s(r))})}static getOptionalField(t,e){var n;return null!==(n=t.data.optional[e])&&void 0!==n?n:{}}static getOptionalFields(t){return t.data.optional}}var J,Q;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(J||(J={})),function(t){t.EAGER="EAGER",t.ALL="ALL",t.ONE="ONE"}(Q||(Q={}));const Z=j(((t,s)=>s?null:e({inclusion:{},mode:n.createTinyState(Q.EAGER),suiteParams:[],testMemoCache:et},t)));function $(){return Z.useX().inclusion}function tt(){return Z.useX().mode()}const et=s(10);function nt(e){var n;const s=G.useAvailableRoot(),u=Z.useX().suiteParams,c=null!==(n=null==u?void 0:u[0])&&void 0!==n?n:{};if(i(e)||r(e))a(e).forEach((e=>{z.setOptionalField(s,e,(()=>({type:J.AUTO,applied:!!o(c,e)&&t.isBlank().test(null==c?void 0:c[e]),rule:null})))}));else for(const n in e){const i=e[n];z.setOptionalField(s,n,(()=>({type:J.CUSTOM_LOGIC,rule:i,applied:t.isBlank().test(i)||!0===i})))}}function st(t){var e,n;if(!t)return!1;const s=G.useAvailableRoot();return null!==(n=null===(e=z.getOptionalField(s,t))||void 0===e?void 0:e.applied)&&void 0!==n&&n}var it;!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"}(it||(it={}));const rt=s();function at(){return G.useXAppData()}function ot(){return at().doneCallbacks()}function ut(){return at().fieldCallbacks()}function ct(){return at().suiteId}function lt(){at().suiteResultCache.invalidate([ct()])}function Et(){const[,,t]=ot(),[,,e]=ut();t(),e()}function dt(t){G.useLoadRootNode(t),lt()}const ft="PENDING",Nt={[ft]:ft,INITIAL:"INITIAL",DONE:"DONE"};function Tt(t,e){return St.staticTransition(null!=t?t:Nt.INITIAL,e)}const St=c({initial:Nt.INITIAL,states:{[Nt.DONE]:{},[Nt.INITIAL]:{[Nt.PENDING]:Nt.PENDING,[Nt.DONE]:Nt.DONE},[Nt.PENDING]:{[Nt.DONE]:Nt.DONE}}});class gt{static getStatus(t){return l(t.status)}static setStatus(t,e,n){t.status=this.stateMachine.staticTransition(gt.getStatus(t),e,n)}static statusEquals(t,e){return gt.getStatus(t)===e}static setPending(t){this.setStatus(t,ft)}static isPending(t){return gt.statusEquals(t,ft)}}var It;gt.stateMachine=St,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."}(It||(It={}));const Rt={[ft]:ft,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},_t="RESET",Dt=c({initial:Rt.UNTESTED,states:{"*":{[Rt.OMITTED]:Rt.OMITTED,[_t]:Rt.UNTESTED},[Rt.UNTESTED]:{[Rt.CANCELED]:Rt.CANCELED,[Rt.FAILED]:Rt.FAILED,[Rt.PASSING]:Rt.PASSING,[Rt.PENDING]:Rt.PENDING,[Rt.SKIPPED]:Rt.SKIPPED,[Rt.WARNING]:Rt.WARNING},[Rt.PENDING]:{[Rt.CANCELED]:Rt.CANCELED,[Rt.FAILED]:Rt.FAILED,[Rt.PASSING]:Rt.PASSING,[Rt.SKIPPED]:[Rt.SKIPPED,t=>!0===t],[Rt.WARNING]:Rt.WARNING},[Rt.SKIPPED]:{},[Rt.FAILED]:{},[Rt.WARNING]:{},[Rt.PASSING]:{},[Rt.CANCELED]:{},[Rt.OMITTED]:{}}});var Ot,mt,pt;function At(t){return t===Ot.ERRORS?mt.ERROR_COUNT:mt.WARN_COUNT}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(Ot||(Ot={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(mt||(mt={})),function(t){t.Error="error",t.Warning="warning"}(pt||(pt={}));class vt extends gt{static getData(t){return E(t.data),t.data}static is(t){return b.isIsolateType(t,Y)}static isX(t){E(vt.is(t),It.EXPECTED_VEST_TEST)}static cast(t){return vt.isX(t),t}static warns(t){return vt.getData(t).severity===pt.Warning}static isOmitted(t){return vt.statusEquals(t,Rt.OMITTED)}static isUntested(t){return vt.statusEquals(t,Rt.UNTESTED)}static isFailing(t){return vt.statusEquals(t,Rt.FAILED)}static isCanceled(t){return vt.statusEquals(t,Rt.CANCELED)}static isSkipped(t){return vt.statusEquals(t,Rt.SKIPPED)}static isPassing(t){return vt.statusEquals(t,Rt.PASSING)}static isWarning(t){return vt.statusEquals(t,Rt.WARNING)}static hasFailures(t){return vt.isFailing(t)||vt.isWarning(t)}static isNonActionable(t){return vt.isSkipped(t)||vt.isOmitted(t)||vt.isCanceled(t)}static isTested(t){return vt.hasFailures(t)||vt.isPassing(t)}static awaitsResolution(t){return vt.isSkipped(t)||vt.isUntested(t)||vt.isPending(t)}static isAsyncTest(t){return d(vt.getData(t).asyncTest)}static fail(t){vt.setStatus(t,vt.warns(t)?Rt.WARNING:Rt.FAILED)}static pass(t){vt.setStatus(t,Rt.PASSING)}static warn(t){vt.setData(t,(t=>Object.assign(Object.assign({},t),{severity:pt.Warning})))}static setData(t,e){t.data=f(e,vt.getData(t))}static skip(t,e){vt.setStatus(t,Rt.SKIPPED,e)}static cancel(t){vt.setStatus(t,Rt.CANCELED),y.abort(t,Rt.CANCELED)}static omit(t){vt.setStatus(t,Rt.OMITTED)}static reset(t){vt.setStatus(t,_t)}}function Ct(t,e){return!!e&&!ht(t,e)}function ht(t,e){return!(!e||t.fieldName!==e)}vt.stateMachine=Dt;class Pt{static hasPending(t){const e=Pt.defaultRoot();return!!e&&W.some(e,N.all(gt.isPending,null==t||t))}static hasRemainingWithTestNameMatching(t){return Pt.hasPending(N.any(T(t),N.all(vt.is,(e=>function(t,e){return!e||ht(t,e)}(vt.getData(e),t)))))}}Pt.defaultRoot=G.useAvailableRoot;class Lt{static hasNoTests(t=Lt.defaultRoot()){return!t||!W.has(t,vt.is)}static someTests(t,e=Lt.defaultRoot()){return!!e&&W.some(e,(e=>(vt.isX(e),t(e))),vt.is)}static everyTest(t,e=Lt.defaultRoot()){return!!e&&W.every(e,(e=>(vt.isX(e),t(e))),vt.is)}static walkTests(t,e=Lt.defaultRoot()){e&&W.walk(e,((e,n)=>{t(vt.cast(e),n)}),vt.is)}static pluckTests(t,e=Lt.defaultRoot()){e&&W.pluck(e,(e=>(vt.isX(e),t(e))),vt.is)}static resetField(t){Lt.walkTests((e=>{ht(vt.getData(e),t)&&vt.reset(e)}),Lt.defaultRoot())}static removeTestByFieldName(t,e=Lt.defaultRoot()){Lt.pluckTests((e=>ht(vt.getData(e),t)),e)}}function Ut(){const t=G.useAvailableRoot(),e=z.getOptionalFields(t);if(S(e))return;const n=new Set;function s(e){const{fieldName:s}=vt.getData(e);n.has(s)&&(vt.omit(e),z.setOptionalField(t,s,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}Lt.walkTests((e=>{if(vt.isPending(e))return;const{fieldName:i}=vt.getData(e);n.has(i)?s(e):function(e){const{fieldName:i}=vt.getData(e),r=z.getOptionalField(t,i);!0===f(r.rule)&&n.add(i);s(e)}(e)})),M.useEmit(it.DONE_TEST_OMISSION_PASS)}function Ft(){const t=M.useBus();return e(it.TEST_COMPLETED,(t=>{if(vt.isCanceled(t))return;const{fieldName:e}=vt.getData(t);!function(t){const[e]=ut();t&&!Pt.hasRemainingWithTestNameMatching(t)&&i(e[t])&&g(e[t])}(e)})),e(it.TEST_RUN_STARTED,(()=>{})),e(w.ISOLATE_PENDING,(t=>{vt.is(t)&&vt.setPending(t),function(t){t.status=Tt(t.status,Nt.PENDING)}(t)})),e(w.ISOLATE_DONE,(e=>{vt.is(e)&&t.emit(it.TEST_COMPLETED,e),function(t){t.status=Tt(t.status,Nt.DONE)}(e),Pt.hasPending()||t.emit(it.ALL_RUNNING_TESTS_FINISHED)})),e(it.DONE_TEST_OMISSION_PASS,(()=>{})),e(it.ALL_RUNNING_TESTS_FINISHED,(()=>{Lt.someTests(vt.isAsyncTest)&&Ut(),function(){const[t]=ot();g(t)}()})),e(it.RESET_FIELD,(t=>{Lt.resetField(t)})),e(it.SUITE_RUN_STARTED,(()=>{Et()})),e(it.SUITE_CALLBACK_RUN_FINISHED,(()=>{Ut()})),e(it.REMOVE_FIELD,(t=>{Lt.removeTestByFieldName(t)})),e(it.RESET_SUITE,(()=>{Et(),G.reset()})),{subscribe:function(e){return t.on("*",(()=>{e()})).off}};function e(e,n){t.on(e,((...t)=>{lt(),n(...t)}))}}Lt.defaultRoot=G.useAvailableRoot;function Gt(t,e){const{groupName:n}=vt.getData(t),{groupName:s,fieldName:i}=vt.getData(e);return ht(vt.getData(t),i)&&n===s&&t.key===e.key}const bt=I((function(t,e){return vt.getData(t).groupName===e}));function yt(t){return function(t,e){return Lt.someTests((n=>Wt(n,t,e)))}(Ot.ERRORS,t)}function Wt(t,e,n){return!!vt.hasFailures(t)&&(!Ct(vt.getData(t),n)&&!function(t,e){return R(t===Ot.WARNINGS,vt.warns(e))}(e,t))}function Mt(t){const[,e]=tt();e(t)}function wt(t){const[e]=tt();return e===t}function Bt(t){return wt(Q.ONE)?yt():!!wt(Q.EAGER)&&yt(t.fieldName)}function kt(t,e,n){return n?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,e,n):function(t,e){const n={},s=At(e);for(const i in t)_(t[i][s])&&(n[i]=t[i][e]||[]);return n}(t,e)}function jt(t){const e={getError:function(e){return qt(Ot.ERRORS,t,e)},getErrors:function(e){return Kt(t,Ot.ERRORS,e)},getErrorsByGroup:function(e,n){return Vt(t,Ot.ERRORS,e,n)},getWarning:function(e){return qt(Ot.WARNINGS,t,e)},getWarnings:function(e){return Kt(t,Ot.WARNINGS,e)},getWarningsByGroup:function(e,n){return Vt(t,Ot.WARNINGS,e,n)},hasErrors:function(e){return Ht(t,mt.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return xt(t,mt.ERROR_COUNT,e,n)},hasWarnings:function(e){return Ht(t,mt.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return xt(t,mt.WARN_COUNT,e,n)},isPending:function(e){var n;return D(e?null===(n=t.tests[e])||void 0===n?void 0:n.pendingCount:t.pendingCount,0)},isTested:function(e){var n;return _(null===(n=t.tests[e])||void 0===n?void 0:n.testCount)},isValid:function(e){var n;return e?Boolean(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 Xt(s,n);for(const t in s)if(!Xt(s,t))return!1;return!0}};return e}function Kt(t,e,n){return kt(t.tests,e,n)}function Vt(t,e,n,s){return kt(t.groups[n],e,s)}function Xt(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function xt(t,e,n,s){var i,r;const a=t.groups[n];if(!a)return!1;if(s)return _(null===(i=a[s])||void 0===i?void 0:i[e]);for(const t in a)if(_(null===(r=a[t])||void 0===r?void 0:r[e]))return!0;return!1}function Ht(t,e,n){var s;const i=n?null===(s=t.tests[n])||void 0===s?void 0:s[e]:t[e]||0;return _(i)}function qt(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>ht(t,n))))||void 0===s?void 0:s.message:i[0]}var Yt,zt,Jt;class Qt{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class Zt extends Qt{constructor(){super(...arguments),this[Yt]=[],this[zt]=[],this.groups={},this.tests={},this.valid=!1}}Yt=Ot.ERRORS,zt=Ot.WARNINGS;class $t{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=vt.getData(t);return new $t(e,n,s)}}function te(t){return!!st(t)||!Lt.hasNoTests()&&(!yt(t)&&(!function(t){return Pt.hasPending(N.all(vt.is,(e=>!Ct(vt.getData(e),t)),(()=>!st(t))))}(t)&&function(t){return Lt.everyTest((e=>ne(e,t)))}(t)))}function ee(t,e){return!!st(e)||!function(t,e,n){return Lt.someTests((s=>!bt(s,e)&&Wt(s,t,n)))}(Ot.ERRORS,t,e)&&(!function(t,e){return Pt.hasPending(N.all(vt.is,(e=>!bt(e,t)),(t=>!Ct(vt.getData(t),e)),(()=>!st(e))))}(t,e)&&function(t,e){return Lt.everyTest((n=>!!bt(n,t)||ne(n,e)))}(t,e))}function ne(t,e){return!!Ct(vt.getData(t),e)||(vt.isOmitted(t)||vt.isTested(t)||function(t){const e=G.useAvailableRoot(),{fieldName:n}=vt.getData(t);return z.getOptionalField(e,n).type===J.AUTO&&vt.awaitsResolution(t)}(t))}function se(){const t=new Zt;return Lt.walkTests((e=>{t.tests=function(t,e){const n=vt.getData(e).fieldName,s=Object.assign({},t);return s[n]=re(s[n],e),s[n].valid=!1!==s[n].valid&&te(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=vt.getData(e);if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=re(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&ee(n,s),i}(t.groups,e),t.errors=ie(Ot.ERRORS,t.errors,e),t.warnings=ie(Ot.WARNINGS,t.warnings,e)})),t.valid=te(),function(t){for(const e in t.tests)t.errorCount+=t.tests[e].errorCount,t.warnCount+=t.tests[e].warnCount,t.testCount+=t.tests[e].testCount,t.pendingCount+=t.tests[e].pendingCount;return t}(t)}function ie(t,e,n){if(vt.isOmitted(n))return e;return(t===Ot.WARNINGS?vt.isWarning(n):vt.isFailing(n))?e.concat($t.fromTestObject(n)):e}function re(t,e){const{message:n}=vt.getData(e),s=O(t?Object.assign({},t):null,ae);return vt.isNonActionable(e)||(vt.isPending(e)&&s.pendingCount++,vt.isFailing(e)?i(Ot.ERRORS):vt.isWarning(e)&&i(Ot.WARNINGS),s.testCount++),s;function i(t){const e=At(t);s[e]++,n&&(s[t]=(s[t]||[]).concat(n))}}function ae(){return e(new Qt,{errors:[],valid:!0,warnings:[]})}function oe(){return t=()=>{const t=se(),n=at().suiteName;return Object.freeze(e(t,jt(t),{suiteName:n}))},(0,at().suiteResultCache)([ct()],t);var t}function ue(t,e){F.create(x,(()=>{Z.run({omitted:ce()||f(t,f(oe))},e)}))}function ce(){return function(){var t;return null!==(t=Z.useX().omitted)&&void 0!==t&&t}()}function le(t,e){F.create(H,(()=>{Z.run({skipped:Ee()||f(t,f(oe))},e)}))}function Ee(){return function(){var t;return null!==(t=Z.useX().skipped)&&void 0!==t&&t}()}function de(t,e){return F.create(V,m,{focusMode:t,match:a(e).filter(r),matchAll:!0===e})}!function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(Jt||(Jt={}));class fe{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===Jt.SKIP&&(ge(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===Jt.ONLY&&ge(t,e)}static isIsolateFocused(t){return b.isIsolateType(t,V)}}function Ne(t){return de(Jt.ONLY,Se(t))}function Te(t){return de(Jt.SKIP,Se(t))}function Se(t){return!1===t?[]:t}function ge(t,e){var n,s;return p(null==t?void 0:t.data.match)&&(!e||(null===(s=null===(n=null==t?void 0:t.data.match)||void 0===n?void 0:n.includes(e))||void 0===s||s))}function Ie(t,e){return A(W.findClosest(t,(t=>!!fe.isIsolateFocused(t)&&fe.isOnlyFocused(t,e))))}function Re(t){const{fieldName:e}=vt.getData(t);if(Ee())return!0;const n=$(),s=function(t){return W.findClosest(t,(e=>{var n;if(!fe.isIsolateFocused(e))return!1;const{fieldName:s}=vt.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(fe.isSkipFocused(s))return!0;return!fe.isOnlyFocused(s)&&(!!Ie(t)&&!f(n[e],t))}function _e(t,e=t){const n=vt.getData(t);return Bt(n)?(s=t,vt.skip(s),s):(i=n.fieldName,ce()||st(i)?function(t){return vt.omit(t),t}(t):Re(t)?function(t){return vt.skip(t,Ee()),t}(e):t);var s,i}class De extends class{static match(t,e){return!1}static reconcile(t,e){return null!=t?t:e}}{static match(t,e){return vt.is(t)&&vt.is(e)}static reconcile(t,e){const n=function(t,e){const n=function(t,e){if(B.usesKey(t))return vt.cast(k.handleIsolateNodeWithKey(t));if(k.dropNextNodesOnReorder(Oe,t,e))return function(t,e){if(B.canReorder(t))return;v(C(It.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:vt.getData(t).fieldName,prevName:vt.is(e)?vt.getData(e).fieldName:void 0}))}(t,e),t;if(!vt.is(e))return t;if(vt.isOmitted(e))return t;return e}(e,t);return _e(e,n)}(e,t);return function(t,e,n){t===e&&vt.is(e)&&(i=e)!==(s=n)&&Gt(s,i)&&vt.isPending(s)&&vt.cancel(s);var s,i}(n,t,e),n}}function Oe(t,e){return vt.is(e)&&!Gt(e,t)}function me(t,e){var n,s;return null!==(s=null===(n=[De].find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function pe(...t){const[e,n]=t.reverse();return F.create(X,(()=>Z.run(Object.assign({},n&&{groupName:n}),e)))}function Ae(t){E(r(t));return $()[t]=!0,{when:function(e){E(e!==t,It.INCLUDE_SELF);$()[t]=function(t){return r(e)?Ie(t,e):f(e,f(oe))}}}}function ve(t,e,n){const s=Object.assign(Object.assign({},{severity:pt.Error,status:Dt.initial()}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(s.groupName=e.groupName),e.message&&(s.message=e.message);return F.create(Y,t,s,null!=n?n:null)}function Ce(t){if(_e(t),vt.isUntested(t))return function(t){const e=function(t){return Z.run({currentTest:t},(()=>{let e;const{message:n,testFn:s}=vt.getData(t);try{e=s({signal:t.abortController.signal})}catch(s){(function(t,e){return h(t)&&r(e)})(n,s)&&(vt.getData(t).message=s),e=!1}return!1===e&&vt.fail(t),e}))}(t);try{if(d(e))return vt.getData(t).asyncTest=e,function(t){const{asyncTest:e,message:n}=vt.getData(t);if(!d(e))return;const s=G.persist((()=>{he(t)})),i=G.persist((e=>{vt.isCanceled(t)||(vt.getData(t).message=r(e)?e:n,vt.fail(t),s())}));return e.then(s,i)}(t);he(t)}catch(e){throw new Error(C(It.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t);vt.isNonActionable(t)||v(C(It.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function he(t){vt.pass(t)}function Pe(t,...e){const[n,s,i]=L(e[1])?e:[void 0,...e];!function(t,e){const n="test";E(r(t),C(It.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"fieldName",expected:"string"})),E(L(e),C(It.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"callback",expected:"function"}))}(t,s);const a={fieldName:t,groupName:Z.useX().groupName,message:n,testFn:s};return M.useEmit(it.TEST_RUN_STARTED),ve(Ce,a,i)}const Le=e(Pe,{memo:function(t){return function(e,...n){const[s,i,r]=n.reverse();return function(t,e){const n=Z.useX().testMemoCache,s=n.get(t);if(P(s))return n(t,e);const[,i]=s;if(vt.isCanceled(i))return n.invalidate(t),n(t,e);return G.addNodeToHistory(i),i}([ct(),e,G.useCurrentCursor()].concat(s),(function(){return t(e,r,i)}))}}(Pe)});function Ue(){return{group:pe,include:Ae,omitWhen:ue,only:Ne,optional:nt,skip:Te,skipWhen:le,test:Le}}function Fe(){return Object.freeze(e({done:G.persist(Ge)},oe()))}function Ge(...t){const[n,s]=t.reverse(),i=Fe();if(function(t,e,n){var s,i;return!!(!L(t)||e&&U(null!==(i=null===(s=n.tests[e])||void 0===s?void 0:s.testCount)&&void 0!==i?i:0,0))}(n,s,i))return i;const r=()=>n(oe());return Pt.hasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=ut(),[,i]=ot();n?s((s=>e(s,{[n]:(s[n]||[]).concat(t)}))):i((e=>e.concat(t)))}(r,s),i):(r(),i)}function be(...t){const[s,i]=t.reverse();!function(t){E(L(t),It.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const r=function({suiteName:t,VestReconciler:e}){const s={doneCallbacks:n.createTinyState((()=>[])),fieldCallbacks:n.createTinyState((()=>({}))),suiteId:u(),suiteName:t,suiteResultCache:rt};return G.createRef(e,s)}({suiteName:i,VestReconciler:me});function a(...t){return Z.run({suiteParams:t},(()=>{return M.useEmit(it.SUITE_RUN_STARTED),e=function(t,...e){const n=M.useEmit();return()=>(t(...e),n(it.SUITE_CALLBACK_RUN_FINISHED),Fe())}(s,...t),F.create(q,e,{optional:{}});var e})).output}return G.Run(r,(()=>{const t=Ft();return e(G.persist(a),Object.assign(Object.assign({dump:G.persist((()=>G.useAvailableRoot())),get:G.persist(oe),remove:M.usePrepareEmitter(it.REMOVE_FIELD),reset:M.usePrepareEmitter(it.RESET_SUITE),resetField:M.usePrepareEmitter(it.RESET_FIELD),resume:G.persist(dt),subscribe:t.subscribe},(n=G.persist(oe),{getError:(...t)=>n().getError(...t),getErrors:(...t)=>n().getErrors(...t),getErrorsByGroup:(...t)=>n().getErrorsByGroup(...t),getWarning:(...t)=>n().getWarning(...t),getWarnings:(...t)=>n().getWarnings(...t),getWarningsByGroup:(...t)=>n().getWarningsByGroup(...t),hasErrors:(...t)=>n().hasErrors(...t),hasErrorsByGroup:(...t)=>n().hasErrorsByGroup(...t),hasWarnings:(...t)=>n().hasWarnings(...t),hasWarningsByGroup:(...t)=>n().hasWarningsByGroup(...t),isPending:(...t)=>n().isPending(...t),isTested:(...t)=>n().isTested(...t),isValid:(...t)=>n().isValid(...t),isValidByGroup:(...t)=>n().isValidByGroup(...t)})),Ue()));var n}))}function ye(t,e){E(L(e),It.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){F.create(K,t,{allowReorder:!0})}((()=>{t.forEach(((t,n)=>{e(t,n)}))}))}function We(t){return e(((...n)=>{const s=be(t),i=s(...n);return Object.freeze(e({dump:s.dump},i))}),Object.assign({},Ue()))}const Me=It.WARN_MUST_BE_CALLED_FROM_TEST;function we(){const t=(e=It.HOOK_CALLED_OUTSIDE,Z.useX(e).currentTest);var e;E(t,Me),vt.warn(t)}export{Q as Modes,be as create,ye as each,pe as group,Ae as include,Mt as mode,ue as omitWhen,Ne as only,nt as optional,Te as skip,le as skipWhen,We as staticSuite,jt as suiteSelectors,Le as test,we as warn};
2
2
  //# sourceMappingURL=vest.production.js.map