vest 5.2.8 → 5.2.10
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/SuiteSerializer.development.js.map +1 -1
- package/dist/cjs/SuiteSerializer.production.js.map +1 -1
- package/dist/cjs/vest.development.js +1049 -1061
- 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/SuiteSerializer.development.js.map +1 -1
- package/dist/es/SuiteSerializer.production.js.map +1 -1
- package/dist/es/vest.development.js +1050 -1062
- 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/SuiteSerializer.development.js.map +1 -1
- package/dist/umd/SuiteSerializer.production.js.map +1 -1
- package/dist/umd/vest.development.js +1049 -1061
- 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 +6 -6
- package/types/SuiteSerializer.d.ts +12 -5
- package/types/SuiteSerializer.d.ts.map +1 -1
- package/types/vest.d.ts +28 -25
- 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",r="Focused",a="Group",o="OmitWhen",u="SkipWhen",c="Suite",l="Test";class E{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=E.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 d,f;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(d||(d={})),exports.Modes=void 0,(f=exports.Modes||(exports.Modes={})).EAGER="EAGER",f.ALL="ALL",f.ONE="ONE";const N=s.createCascade(((t,n)=>n?null:e.assign({inclusion:{},mode:e.tinyState.createTinyState(exports.Modes.EAGER),suiteParams:[],testMemoCache:S},t)));function T(){return N.useX().inclusion}function g(){return N.useX().mode()}const S=e.cache(10);function R(s){var i;const r=n.VestRuntime.useAvailableRoot(),a=N.useX().suiteParams,o=null!==(i=null==a?void 0:a[0])&&void 0!==i?i:{};if(e.isArray(s)||e.isStringValue(s))e.asArray(s).forEach((n=>{E.setOptionalField(r,n,(()=>({type:d.AUTO,applied:!!e.hasOwnProperty(o,n)&&t.enforce.isBlank().test(null==o?void 0:o[n]),rule:null})))}));else for(const e in s){const n=s[e];E.setOptionalField(r,e,(()=>({type:d.CUSTOM_LOGIC,rule:n,applied:t.enforce.isBlank().test(n)||!0===n})))}}function I(t){var e,s;if(!t)return!1;const i=n.VestRuntime.useAvailableRoot();return null!==(s=null===(e=E.getOptionalField(i,t))||void 0===e?void 0:e.applied)&&void 0!==s&&s}var p;!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"}(p||(p={}));const m=e.cache();function _(){return n.VestRuntime.useXAppData()}function O(){return _().doneCallbacks()}function D(){return _().fieldCallbacks()}function A(){return _().suiteId}function v(){_().suiteResultCache.invalidate([A()])}function h(){const[,,t]=O(),[,,e]=D();t(),e()}function C(t){n.VestRuntime.useLoadRootNode(t),v()}const P="PENDING",F="INITIAL",L={[P]:P,[F]:F,DONE:"DONE"},U={initial:L.INITIAL,states:{[L.DONE]:{},[L.INITIAL]:{[L.PENDING]:L.PENDING,[L.DONE]:L.DONE},[L.PENDING]:{[L.DONE]:L.DONE}}};function y(t,e){return W.staticTransition(null!=t?t:L.INITIAL,e)}const W=e.StateMachine(U);class G{static getStatus(t){var e;return null!==(e=t.status)&&void 0!==e?e:F}static setStatus(t,e,n){t.status=this.stateMachine.staticTransition(G.getStatus(t),e,n)}static statusEquals(t,e){return G.getStatus(t)===e}static setPending(t){this.setStatus(t,P)}static isPending(t){return G.statusEquals(t,P)}}var b;G.stateMachine=W,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."}(b||(b={}));const V={[P]:P,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},M="RESET",k={initial:V.UNTESTED,states:{"*":{[V.OMITTED]:V.OMITTED,[M]:V.UNTESTED},[V.UNTESTED]:{[V.CANCELED]:V.CANCELED,[V.FAILED]:V.FAILED,[V.PASSING]:V.PASSING,[V.PENDING]:V.PENDING,[V.SKIPPED]:V.SKIPPED,[V.WARNING]:V.WARNING},[V.PENDING]:{[V.CANCELED]:V.CANCELED,[V.FAILED]:V.FAILED,[V.PASSING]:V.PASSING,[V.SKIPPED]:[V.SKIPPED,t=>!0===t],[V.WARNING]:V.WARNING},[V.SKIPPED]:{},[V.FAILED]:{},[V.WARNING]:{},[V.PASSING]:{},[V.CANCELED]:{},[V.OMITTED]:{}}},B=e.StateMachine(k);var w,x,j;function K(t){return t===w.ERRORS?x.ERROR_COUNT:x.WARN_COUNT}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(w||(w={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(x||(x={})),function(t){t.Error="error",t.Warning="warning"}(j||(j={}));class X extends G{static getData(t){return e.invariant(t.data),t.data}static is(t){return n.IsolateSelectors.isIsolateType(t,l)}static isX(t){e.invariant(X.is(t),b.EXPECTED_VEST_TEST)}static cast(t){return X.isX(t),t}static warns(t){return X.getData(t).severity===j.Warning}static isOmitted(t){return X.statusEquals(t,V.OMITTED)}static isUntested(t){return X.statusEquals(t,V.UNTESTED)}static isFailing(t){return X.statusEquals(t,V.FAILED)}static isCanceled(t){return X.statusEquals(t,V.CANCELED)}static isSkipped(t){return X.statusEquals(t,V.SKIPPED)}static isPassing(t){return X.statusEquals(t,V.PASSING)}static isWarning(t){return X.statusEquals(t,V.WARNING)}static hasFailures(t){return X.isFailing(t)||X.isWarning(t)}static isNonActionable(t){return X.isSkipped(t)||X.isOmitted(t)||X.isCanceled(t)}static isTested(t){return X.hasFailures(t)||X.isPassing(t)}static awaitsResolution(t){return X.isSkipped(t)||X.isUntested(t)||X.isPending(t)}static isAsyncTest(t){return e.isPromise(X.getData(t).asyncTest)}static fail(t){X.setStatus(t,X.warns(t)?V.WARNING:V.FAILED)}static pass(t){X.setStatus(t,V.PASSING)}static warn(t){X.setData(t,(t=>Object.assign(Object.assign({},t),{severity:j.Warning})))}static setData(t,n){t.data=e.optionalFunctionValue(n,X.getData(t))}static skip(t,e){X.setStatus(t,V.SKIPPED,e)}static cancel(t){X.setStatus(t,V.CANCELED),n.IsolateMutator.abort(t,V.CANCELED)}static omit(t){X.setStatus(t,V.OMITTED)}static reset(t){X.setStatus(t,M)}}function q(t,e){return!!e&&!H(t,e)}function H(t,e){return!(!e||t.fieldName!==e)}X.stateMachine=B;class Y{static hasPending(t){const s=Y.defaultRoot();return!!s&&n.Walker.some(s,e.Predicates.all(G.isPending,null==t||t))}static hasRemainingWithTestNameMatching(t){return Y.hasPending(e.Predicates.any(e.isNullish(t),e.Predicates.all(X.is,(e=>function(t,e){return!e||H(t,e)}(X.getData(e),t)))))}}Y.defaultRoot=n.VestRuntime.useAvailableRoot;class z{static hasNoTests(t=z.defaultRoot()){return!t||!n.Walker.has(t,X.is)}static someTests(t,e=z.defaultRoot()){return!!e&&n.Walker.some(e,(e=>(X.isX(e),t(e))),X.is)}static everyTest(t,e=z.defaultRoot()){return!!e&&n.Walker.every(e,(e=>(X.isX(e),t(e))),X.is)}static walkTests(t,e=z.defaultRoot()){e&&n.Walker.walk(e,((e,n)=>{t(X.cast(e),n)}),X.is)}static pluckTests(t,e=z.defaultRoot()){e&&n.Walker.pluck(e,(e=>(X.isX(e),t(e))),X.is)}static resetField(t){z.walkTests((e=>{H(X.getData(e),t)&&X.reset(e)}),z.defaultRoot())}static removeTestByFieldName(t,e=z.defaultRoot()){z.pluckTests((e=>H(X.getData(e),t)),e)}}function J(){const t=n.VestRuntime.useAvailableRoot(),s=E.getOptionalFields(t);if(e.isEmpty(s))return;const i=new Set;function r(e){const{fieldName:n}=X.getData(e);i.has(n)&&(X.omit(e),E.setOptionalField(t,n,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}z.walkTests((n=>{if(X.isPending(n))return;const{fieldName:s}=X.getData(n);i.has(s)?r(n):function(n){const{fieldName:s}=X.getData(n),a=E.getOptionalField(t,s);!0===e.optionalFunctionValue(a.rule)&&i.add(s);r(n)}(n)})),n.Bus.useEmit(p.DONE_TEST_OMISSION_PASS)}function Q(){const t=n.Bus.useBus();return s(p.TEST_COMPLETED,(t=>{if(X.isCanceled(t))return;const{fieldName:n}=X.getData(t);!function(t){const[n]=D();t&&!Y.hasRemainingWithTestNameMatching(t)&&e.isArray(n[t])&&e.callEach(n[t])}(n)})),s(p.TEST_RUN_STARTED,(()=>{})),s(n.RuntimeEvents.ISOLATE_PENDING,(t=>{X.is(t)&&X.setPending(t),function(t){t.status=y(t.status,L.PENDING)}(t)})),s(n.RuntimeEvents.ISOLATE_DONE,(e=>{X.is(e)&&t.emit(p.TEST_COMPLETED,e),function(t){t.status=y(t.status,L.DONE)}(e),Y.hasPending()||t.emit(p.ALL_RUNNING_TESTS_FINISHED)})),s(p.DONE_TEST_OMISSION_PASS,(()=>{})),s(p.ALL_RUNNING_TESTS_FINISHED,(()=>{z.someTests(X.isAsyncTest)&&J(),function(){const[t]=O();e.callEach(t)}()})),s(p.RESET_FIELD,(t=>{z.resetField(t)})),s(p.SUITE_RUN_STARTED,(()=>{h()})),s(p.SUITE_CALLBACK_RUN_FINISHED,(()=>{J()})),s(p.REMOVE_FIELD,(t=>{z.removeTestByFieldName(t)})),s(p.RESET_SUITE,(()=>{h(),n.VestRuntime.reset()})),{subscribe:function(e){return t.on("*",(()=>{e()})).off}};function s(e,n){t.on(e,((...t)=>{v(),n(...t)}))}}z.defaultRoot=n.VestRuntime.useAvailableRoot;function Z(t,e){const{groupName:n}=X.getData(t),{groupName:s,fieldName:i}=X.getData(e);return H(X.getData(t),i)&&n===s&&t.key===e.key}const $=e.bindNot((function(t,e){return X.getData(t).groupName===e}));function tt(t){return function(t,e){return z.someTests((n=>et(n,t,e)))}(w.ERRORS,t)}function et(t,n,s){return!!X.hasFailures(t)&&(!q(X.getData(t),s)&&!function(t,n){return e.either(t===w.WARNINGS,X.warns(n))}(n,t))}function nt(t){const[e]=g();return e===t}function st(t){return nt(exports.Modes.ONE)?tt():!!nt(exports.Modes.EAGER)&&tt(t.fieldName)}function it(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=K(n);for(const r in t)e.isPositive(t[r][i])&&(s[r]=t[r][n]||[]);return s}(t,n)}function rt(t){const n={getError:function(e){return Et(w.ERRORS,t,e)},getErrors:function(e){return at(t,w.ERRORS,e)},getErrorsByGroup:function(e,n){return ot(t,w.ERRORS,e,n)},getWarning:function(e){return Et(w.WARNINGS,t,e)},getWarnings:function(e){return at(t,w.WARNINGS,e)},getWarningsByGroup:function(e,n){return ot(t,w.WARNINGS,e,n)},hasErrors:function(e){return lt(t,x.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return ct(t,x.ERROR_COUNT,e,n)},hasWarnings:function(e){return lt(t,x.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return ct(t,x.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 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 ut(s,n);for(const t in s)if(!ut(s,t))return!1;return!0}};return n}function at(t,e,n){return it(t.tests,e,n)}function ot(t,e,n,s){return it(t.groups[n],e,s)}function ut(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function ct(t,n,s,i){var r,a;const o=t.groups[s];if(!o)return!1;if(i)return e.isPositive(null===(r=o[i])||void 0===r?void 0:r[n]);for(const t in o)if(e.isPositive(null===(a=o[t])||void 0===a?void 0:a[n]))return!0;return!1}function lt(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 Et(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>H(t,n))))||void 0===s?void 0:s.message:i[0]}var dt,ft,Nt;class Tt{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class gt extends Tt{constructor(){super(...arguments),this[dt]=[],this[ft]=[],this.groups={},this.tests={},this.valid=!1}}dt=w.ERRORS,ft=w.WARNINGS;class St{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=X.getData(t);return new St(e,n,s)}}function Rt(t){return!!I(t)||!z.hasNoTests()&&(!tt(t)&&(!function(t){return Y.hasPending(e.Predicates.all(X.is,(e=>!q(X.getData(e),t)),(()=>!I(t))))}(t)&&function(t){return z.everyTest((e=>pt(e,t)))}(t)))}function It(t,n){return!!I(n)||!function(t,e,n){return z.someTests((s=>!$(s,e)&&et(s,t,n)))}(w.ERRORS,t,n)&&(!function(t,n){return Y.hasPending(e.Predicates.all(X.is,(e=>!$(e,t)),(t=>!q(X.getData(t),n)),(()=>!I(n))))}(t,n)&&function(t,e){return z.everyTest((n=>!!$(n,t)||pt(n,e)))}(t,n))}function pt(t,e){return!!q(X.getData(t),e)||(X.isOmitted(t)||X.isTested(t)||function(t){const e=n.VestRuntime.useAvailableRoot(),{fieldName:s}=X.getData(t);return E.getOptionalField(e,s).type===d.AUTO&&X.awaitsResolution(t)}(t))}function mt(){const t=new gt;return z.walkTests((e=>{t.tests=function(t,e){const n=X.getData(e).fieldName,s=Object.assign({},t);return s[n]=Ot(s[n],e),s[n].valid=!1!==s[n].valid&&Rt(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=X.getData(e);if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=Ot(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&It(n,s),i}(t.groups,e),t.errors=_t(w.ERRORS,t.errors,e),t.warnings=_t(w.WARNINGS,t.warnings,e)})),t.valid=Rt(),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 _t(t,e,n){if(X.isOmitted(n))return e;return(t===w.WARNINGS?X.isWarning(n):X.isFailing(n))?e.concat(St.fromTestObject(n)):e}function Ot(t,n){const{message:s}=X.getData(n),i=e.defaultTo(t?Object.assign({},t):null,Dt);return X.isNonActionable(n)||(X.isPending(n)&&i.pendingCount++,X.isFailing(n)?r(w.ERRORS):X.isWarning(n)&&r(w.WARNINGS),i.testCount++),i;function r(t){const e=K(t);i[e]++,s&&(i[t]=(i[t]||[]).concat(s))}}function Dt(){return e.assign(new Tt,{errors:[],valid:!0,warnings:[]})}function At(){return t=()=>{const t=mt(),n=_().suiteName;return Object.freeze(e.assign(t,rt(t),{suiteName:n}))},(0,_().suiteResultCache)([A()],t);var t}function vt(t,s){n.Isolate.create(o,(()=>{N.run({omitted:ht()||e.optionalFunctionValue(t,e.optionalFunctionValue(At))},s)}))}function ht(){return function(){var t;return null!==(t=N.useX().omitted)&&void 0!==t&&t}()}function Ct(t,s){n.Isolate.create(u,(()=>{N.run({skipped:Pt()||e.optionalFunctionValue(t,e.optionalFunctionValue(At))},s)}))}function Pt(){return function(){var t;return null!==(t=N.useX().skipped)&&void 0!==t&&t}()}function Ft(t,s){return n.Isolate.create(r,e.noop,{focusMode:t,match:e.asArray(s).filter(e.isStringValue),matchAll:!0===s})}!function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(Nt||(Nt={}));class Lt{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===Nt.SKIP&&(Gt(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===Nt.ONLY&&Gt(t,e)}static isIsolateFocused(t){return n.IsolateSelectors.isIsolateType(t,r)}}function Ut(t){return Ft(Nt.ONLY,Wt(t))}function yt(t){return Ft(Nt.SKIP,Wt(t))}function Wt(t){return!1===t?[]:t}function Gt(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))}function bt(t,s){return e.isNotNullish(n.Walker.findClosest(t,(t=>!!Lt.isIsolateFocused(t)&&Lt.isOnlyFocused(t,s))))}function Vt(t){const{fieldName:s}=X.getData(t);if(Pt())return!0;const i=T(),r=function(t){return n.Walker.findClosest(t,(e=>{var n;if(!Lt.isIsolateFocused(e))return!1;const{fieldName:s}=X.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(Lt.isSkipFocused(r))return!0;return!Lt.isOnlyFocused(r)&&(!!bt(t)&&!e.optionalFunctionValue(i[s],t))}function Mt(t,e=t){const n=X.getData(t);return st(n)?(s=t,X.skip(s),s):(i=n.fieldName,ht()||I(i)?function(t){return X.omit(t),t}(t):Vt(t)?function(t){return X.skip(t,Pt()),t}(e):t);var s,i}class kt extends class{static match(t,e){return!1}static reconcile(t,e){return null!=t?t:e}}{static match(t,e){return X.is(t)&&X.is(e)}static reconcile(t,s){const i=function(t,s){const i=function(t,s){if(n.IsolateInspector.usesKey(t))return X.cast(n.Reconciler.handleIsolateNodeWithKey(t));if(n.Reconciler.dropNextNodesOnReorder(Bt,t,s))return function(t,s){if(n.IsolateInspector.canReorder(t))return;e.deferThrow(e.text(b.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:X.getData(t).fieldName,prevName:X.is(s)?X.getData(s).fieldName:void 0}))}(t,s),t;if(!X.is(s))return t;if(X.isOmitted(s))return t;return s}(s,t);return Mt(s,i)}(s,t);return function(t,e,n){t===e&&X.is(e)&&(i=e)!==(s=n)&&Z(s,i)&&X.isPending(s)&&X.cancel(s);var s,i}(i,t,s),i}}function Bt(t,e){return X.is(e)&&!Z(e,t)}function wt(t,e){var n,s;return null!==(s=null===(n=[kt].find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function xt(...t){const[e,s]=t.reverse();return n.Isolate.create(a,(()=>N.run(Object.assign({},s&&{groupName:s}),e)))}function jt(t){e.invariant(e.isStringValue(t));return T()[t]=!0,{when:function(n){e.invariant(n!==t,b.INCLUDE_SELF);T()[t]=function(t){return e.isStringValue(n)?bt(t,n):e.optionalFunctionValue(n,e.optionalFunctionValue(At))}}}}function Kt(t,e,s){const i=Object.assign(Object.assign({},{severity:j.Error,status:B.initial()}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(i.groupName=e.groupName),e.message&&(i.message=e.message);return n.Isolate.create(l,t,i,null!=s?s:null)}function Xt(t){if(Mt(t),X.isUntested(t))return function(t){const s=function(t){return N.run({currentTest:t},(()=>{let n;const{message:s,testFn:i}=X.getData(t);try{n=i({signal:t.abortController.signal})}catch(i){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(s,i)&&(X.getData(t).message=i),n=!1}return!1===n&&X.fail(t),n}))}(t);try{if(e.isPromise(s))return X.getData(t).asyncTest=s,function(t){const{asyncTest:s,message:i}=X.getData(t);if(!e.isPromise(s))return;const r=n.VestRuntime.persist((()=>{qt(t)})),a=n.VestRuntime.persist((n=>{X.isCanceled(t)||(X.getData(t).message=e.isStringValue(n)?n:i,X.fail(t),r())}));return s.then(r,a)}(t);qt(t)}catch(n){throw new Error(e.text(b.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t);X.isNonActionable(t)||e.deferThrow(e.text(b.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function qt(t){X.pass(t)}function Ht(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(b.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),e.invariant(e.isFunction(n),e.text(b.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const o={fieldName:t,groupName:N.useX().groupName,message:i,testFn:r};return n.Bus.useEmit(p.TEST_RUN_STARTED),Kt(Xt,o,a)}const Yt=e.assign(Ht,{memo:function(t){return function(s,...i){const[r,a,o]=i.reverse();return function(t,s){const i=N.useX().testMemoCache,r=i.get(t);if(e.isNull(r))return i(t,s);const[,a]=r;if(X.isCanceled(a))return i.invalidate(t),i(t,s);return n.VestRuntime.addNodeToHistory(a),a}([A(),s,n.VestRuntime.useCurrentCursor()].concat(r),(function(){return t(s,o,a)}))}}(Ht)});function zt(){return{group:xt,include:jt,omitWhen:vt,only:Ut,optional:R,skip:yt,skipWhen:Ct,test:Yt}}function Jt(){return Object.freeze(e.assign({done:n.VestRuntime.persist(Qt)},At()))}function Qt(...t){const[n,s]=t.reverse(),i=Jt();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(At());return Y.hasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=D(),[,i]=O();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,i]=t.reverse();!function(t){e.invariant(e.isFunction(t),b.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const r=function({suiteName:t,VestReconciler:s}){const i={doneCallbacks:e.tinyState.createTinyState((()=>[])),fieldCallbacks:e.tinyState.createTinyState((()=>({}))),suiteId:e.seq(),suiteName:t,suiteResultCache:m};return n.VestRuntime.createRef(s,i)}({suiteName:i,VestReconciler:wt});function a(...t){return N.run({suiteParams:t},(()=>{return n.Bus.useEmit(p.SUITE_RUN_STARTED),e=function(t,...e){const s=n.Bus.useEmit();return()=>(t(...e),s(p.SUITE_CALLBACK_RUN_FINISHED),Jt())}(s,...t),n.Isolate.create(c,e,{optional:{}});var e})).output}return n.VestRuntime.Run(r,(()=>{const t=Q();return e.assign(n.VestRuntime.persist(a),Object.assign(Object.assign({dump:n.VestRuntime.persist((()=>n.VestRuntime.useAvailableRoot())),get:n.VestRuntime.persist(At),remove:n.Bus.usePrepareEmitter(p.REMOVE_FIELD),reset:n.Bus.usePrepareEmitter(p.RESET_SUITE),resetField:n.Bus.usePrepareEmitter(p.RESET_FIELD),resume:n.VestRuntime.persist(C),subscribe:t.subscribe},(s=n.VestRuntime.persist(At),{getError:(...t)=>s().getError(...t),getErrors:(...t)=>s().getErrors(...t),getErrorsByGroup:(...t)=>s().getErrorsByGroup(...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)})),zt()));var s}))}const $t=b.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),b.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){n.Isolate.create(i,t,{allowReorder:!0})}((()=>{t.forEach(((t,e)=>{s(t,e)}))}))},exports.group=xt,exports.include=jt,exports.mode=function(t){const[,e]=g();e(t)},exports.omitWhen=vt,exports.only=Ut,exports.optional=R,exports.skip=yt,exports.skipWhen=Ct,exports.staticSuite=function(t){return e.assign(((...n)=>{const s=Zt(t),i=s(...n);return Object.freeze(e.assign({dump:s.dump},i))}),Object.assign({},zt()))},exports.suiteSelectors=rt,exports.test=Yt,exports.warn=function(){const t=(n=b.HOOK_CALLED_OUTSIDE,N.useX(n).currentTest);var n;e.invariant(t,$t),X.warn(t)};
|
|
1
|
+
"use strict";var t=require("n4s"),e=require("vest-utils"),n=require("vestjs-runtime"),s=require("context");const i="Each",r="Focused",a="Group",o="OmitWhen",u="SkipWhen",c="Suite",l="Test";class E{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=E.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 d,f;!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(d||(d={})),exports.Modes=void 0,(f=exports.Modes||(exports.Modes={})).EAGER="EAGER",f.ALL="ALL",f.ONE="ONE";const N=s.createCascade(((t,n)=>n?null:e.assign({inclusion:{},mode:e.tinyState.createTinyState(exports.Modes.EAGER),suiteParams:[],testMemoCache:S},t)));function T(){return N.useX().inclusion}function g(){return N.useX().mode()}const S=e.cache(10);function R(s){var i;const r=n.VestRuntime.useAvailableRoot(),a=N.useX().suiteParams,o=null!==(i=null==a?void 0:a[0])&&void 0!==i?i:{};if(e.isArray(s)||e.isStringValue(s))e.asArray(s).forEach((n=>{E.setOptionalField(r,n,(()=>({type:d.AUTO,applied:!!e.hasOwnProperty(o,n)&&t.enforce.isBlank().test(null==o?void 0:o[n]),rule:null})))}));else for(const e in s){const n=s[e];E.setOptionalField(r,e,(()=>({type:d.CUSTOM_LOGIC,rule:n,applied:t.enforce.isBlank().test(n)||!0===n})))}}function I(t){var e,s;if(!t)return!1;const i=n.VestRuntime.useAvailableRoot();return null!==(s=null===(e=E.getOptionalField(i,t))||void 0===e?void 0:e.applied)&&void 0!==s&&s}var p,m;function _(t,s){return n.Isolate.create(r,e.noop,{focusMode:t,match:e.asArray(s).filter(e.isStringValue),matchAll:!0===s})}!function(t){t[t.ONLY=0]="ONLY",t[t.SKIP=1]="SKIP"}(p||(p={}));class O{static isSkipFocused(t,e){return(null==t?void 0:t.data.focusMode)===p.SKIP&&(h(t,e)||!0===t.data.matchAll)}static isOnlyFocused(t,e){return(null==t?void 0:t.data.focusMode)===p.ONLY&&h(t,e)}static isIsolateFocused(t){return n.IsolateSelectors.isIsolateType(t,r)}}function D(t){return _(p.ONLY,v(t))}function A(t){return _(p.SKIP,v(t))}function v(t){return!1===t?[]:t}function h(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))}function C(...t){const[e,s]=t.reverse();return n.Isolate.create(a,(()=>N.run(Object.assign({},s&&{groupName:s}),e)))}!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."}(m||(m={}));const P=e.cache();function F(){return n.VestRuntime.useXAppData()}function L(){return F().doneCallbacks()}function U(){return F().fieldCallbacks()}function y(){return F().suiteId}function W(){F().suiteResultCache.invalidate([y()])}function G(){const[,,t]=L(),[,,e]=U();t(),e()}function b(t){n.VestRuntime.useLoadRootNode(t),W()}var V,M,k,B,w;function x(t){return t===V.ERRORS?M.ERROR_COUNT:M.WARN_COUNT}function j(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=x(n);for(const r in t)e.isPositive(t[r][i])&&(s[r]=t[r][n]||[]);return s}(t,n)}function K(t,e){return!!e&&!X(t,e)}function X(t,e){return!(!e||t.fieldName!==e)}function q(t){const n={getError:function(e){return Z(V.ERRORS,t,e)},getErrors:function(e){return H(t,V.ERRORS,e)},getErrorsByGroup:function(e,n){return Y(t,V.ERRORS,e,n)},getWarning:function(e){return Z(V.WARNINGS,t,e)},getWarnings:function(e){return H(t,V.WARNINGS,e)},getWarningsByGroup:function(e,n){return Y(t,V.WARNINGS,e,n)},hasErrors:function(e){return Q(t,M.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return J(t,M.ERROR_COUNT,e,n)},hasWarnings:function(e){return Q(t,M.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return J(t,M.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 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 z(s,n);for(const t in s)if(!z(s,t))return!1;return!0}};return n}function H(t,e,n){return j(t.tests,e,n)}function Y(t,e,n,s){return j(t.groups[n],e,s)}function z(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function J(t,n,s,i){var r,a;const o=t.groups[s];if(!o)return!1;if(i)return e.isPositive(null===(r=o[i])||void 0===r?void 0:r[n]);for(const t in o)if(e.isPositive(null===(a=o[t])||void 0===a?void 0:a[n]))return!0;return!1}function Q(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 Z(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>X(t,n))))||void 0===s?void 0:s.message:i[0]}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(V||(V={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(M||(M={})),function(t){t.Error="error",t.Warning="warning"}(k||(k={}));class ${constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0,this.pendingCount=0}}class tt extends ${constructor(){super(...arguments),this[B]=[],this[w]=[],this.groups={},this.tests={},this.valid=!1}}B=V.ERRORS,w=V.WARNINGS;const et="PENDING",nt="INITIAL",st={[et]:et,[nt]:nt,DONE:"DONE"},it={initial:st.INITIAL,states:{[st.DONE]:{},[st.INITIAL]:{[st.PENDING]:st.PENDING,[st.DONE]:st.DONE},[st.PENDING]:{[st.DONE]:st.DONE}}};function rt(t,e){return at.staticTransition(null!=t?t:st.INITIAL,e)}const at=e.StateMachine(it),ot={[et]:et,CANCELED:"CANCELED",FAILED:"FAILED",OMITTED:"OMITTED",PASSING:"PASSING",SKIPPED:"SKIPPED",UNTESTED:"UNTESTED",WARNING:"WARNING"},ut="RESET",ct={initial:ot.UNTESTED,states:{"*":{[ot.OMITTED]:ot.OMITTED,[ut]:ot.UNTESTED},[ot.UNTESTED]:{[ot.CANCELED]:ot.CANCELED,[ot.FAILED]:ot.FAILED,[ot.PASSING]:ot.PASSING,[ot.PENDING]:ot.PENDING,[ot.SKIPPED]:ot.SKIPPED,[ot.WARNING]:ot.WARNING},[ot.PENDING]:{[ot.CANCELED]:ot.CANCELED,[ot.FAILED]:ot.FAILED,[ot.PASSING]:ot.PASSING,[ot.SKIPPED]:[ot.SKIPPED,t=>!0===t],[ot.WARNING]:ot.WARNING},[ot.SKIPPED]:{},[ot.FAILED]:{},[ot.WARNING]:{},[ot.PASSING]:{},[ot.CANCELED]:{},[ot.OMITTED]:{}}},lt=e.StateMachine(ct);class Et{static getStatus(t){var e;return null!==(e=t.status)&&void 0!==e?e:nt}static setStatus(t,e,n){t.status=this.stateMachine.staticTransition(Et.getStatus(t),e,n)}static statusEquals(t,e){return Et.getStatus(t)===e}static setPending(t){this.setStatus(t,et)}static isPending(t){return Et.statusEquals(t,et)}}Et.stateMachine=at;class dt extends Et{static getData(t){return e.invariant(t.data),t.data}static is(t){return n.IsolateSelectors.isIsolateType(t,l)}static isX(t){e.invariant(dt.is(t),m.EXPECTED_VEST_TEST)}static cast(t){return dt.isX(t),t}static warns(t){return dt.getData(t).severity===k.Warning}static isOmitted(t){return dt.statusEquals(t,ot.OMITTED)}static isUntested(t){return dt.statusEquals(t,ot.UNTESTED)}static isFailing(t){return dt.statusEquals(t,ot.FAILED)}static isCanceled(t){return dt.statusEquals(t,ot.CANCELED)}static isSkipped(t){return dt.statusEquals(t,ot.SKIPPED)}static isPassing(t){return dt.statusEquals(t,ot.PASSING)}static isWarning(t){return dt.statusEquals(t,ot.WARNING)}static hasFailures(t){return dt.isFailing(t)||dt.isWarning(t)}static isNonActionable(t){return dt.isSkipped(t)||dt.isOmitted(t)||dt.isCanceled(t)}static isTested(t){return dt.hasFailures(t)||dt.isPassing(t)}static awaitsResolution(t){return dt.isSkipped(t)||dt.isUntested(t)||dt.isPending(t)}static isAsyncTest(t){return e.isPromise(dt.getData(t).asyncTest)}static fail(t){dt.setStatus(t,dt.warns(t)?ot.WARNING:ot.FAILED)}static pass(t){dt.setStatus(t,ot.PASSING)}static warn(t){dt.setData(t,(t=>Object.assign(Object.assign({},t),{severity:k.Warning})))}static setData(t,n){t.data=e.optionalFunctionValue(n,dt.getData(t))}static skip(t,e){dt.setStatus(t,ot.SKIPPED,e)}static cancel(t){dt.setStatus(t,ot.CANCELED),n.IsolateMutator.abort(t,ot.CANCELED)}static omit(t){dt.setStatus(t,ot.OMITTED)}static reset(t){dt.setStatus(t,ut)}}dt.stateMachine=lt;class ft{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){const{fieldName:e,message:n,groupName:s}=dt.getData(t);return new ft(e,n,s)}}class Nt{static hasNoTests(t=Nt.defaultRoot()){return!t||!n.Walker.has(t,dt.is)}static someTests(t,e=Nt.defaultRoot()){return!!e&&n.Walker.some(e,(e=>(dt.isX(e),t(e))),dt.is)}static everyTest(t,e=Nt.defaultRoot()){return!!e&&n.Walker.every(e,(e=>(dt.isX(e),t(e))),dt.is)}static walkTests(t,e=Nt.defaultRoot()){e&&n.Walker.walk(e,((e,n)=>{t(dt.cast(e),n)}),dt.is)}static pluckTests(t,e=Nt.defaultRoot()){e&&n.Walker.pluck(e,(e=>(dt.isX(e),t(e))),dt.is)}static resetField(t){Nt.walkTests((e=>{X(dt.getData(e),t)&&dt.reset(e)}),Nt.defaultRoot())}static removeTestByFieldName(t,e=Nt.defaultRoot()){Nt.pluckTests((e=>X(dt.getData(e),t)),e)}}Nt.defaultRoot=n.VestRuntime.useAvailableRoot;class Tt{static hasPending(t){const s=Tt.defaultRoot();return!!s&&n.Walker.some(s,e.Predicates.all(Et.isPending,null==t||t))}static hasRemainingWithTestNameMatching(t){return Tt.hasPending(e.Predicates.any(e.isNullish(t),e.Predicates.all(dt.is,(e=>function(t,e){return!e||X(t,e)}(dt.getData(e),t)))))}}Tt.defaultRoot=n.VestRuntime.useAvailableRoot;const gt=e.bindNot((function(t,e){return dt.getData(t).groupName===e}));function St(t){return function(t,e){return Nt.someTests((n=>Rt(n,t,e)))}(V.ERRORS,t)}function Rt(t,n,s){return!!dt.hasFailures(t)&&(!K(dt.getData(t),s)&&!function(t,n){return e.either(t===V.WARNINGS,dt.warns(n))}(n,t))}function It(t){return!!I(t)||!Nt.hasNoTests()&&(!St(t)&&(!function(t){return Tt.hasPending(e.Predicates.all(dt.is,(e=>!K(dt.getData(e),t)),(()=>!I(t))))}(t)&&function(t){return Nt.everyTest((e=>mt(e,t)))}(t)))}function pt(t,n){return!!I(n)||!function(t,e,n){return Nt.someTests((s=>!gt(s,e)&&Rt(s,t,n)))}(V.ERRORS,t,n)&&(!function(t,n){return Tt.hasPending(e.Predicates.all(dt.is,(e=>!gt(e,t)),(t=>!K(dt.getData(t),n)),(()=>!I(n))))}(t,n)&&function(t,e){return Nt.everyTest((n=>!!gt(n,t)||mt(n,e)))}(t,n))}function mt(t,e){return!!K(dt.getData(t),e)||(dt.isOmitted(t)||dt.isTested(t)||function(t){const e=n.VestRuntime.useAvailableRoot(),{fieldName:s}=dt.getData(t);return E.getOptionalField(e,s).type===d.AUTO&&dt.awaitsResolution(t)}(t))}function _t(){const t=new tt;return Nt.walkTests((e=>{t.tests=function(t,e){const n=dt.getData(e).fieldName,s=Object.assign({},t);return s[n]=Dt(s[n],e),s[n].valid=!1!==s[n].valid&&It(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=dt.getData(e);if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=Dt(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&pt(n,s),i}(t.groups,e),t.errors=Ot(V.ERRORS,t.errors,e),t.warnings=Ot(V.WARNINGS,t.warnings,e)})),t.valid=It(),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 Ot(t,e,n){if(dt.isOmitted(n))return e;return(t===V.WARNINGS?dt.isWarning(n):dt.isFailing(n))?e.concat(ft.fromTestObject(n)):e}function Dt(t,n){const{message:s}=dt.getData(n),i=e.defaultTo(t?Object.assign({},t):null,At);return dt.isNonActionable(n)||(dt.isPending(n)&&i.pendingCount++,dt.isFailing(n)?r(V.ERRORS):dt.isWarning(n)&&r(V.WARNINGS),i.testCount++),i;function r(t){const e=x(t);i[e]++,s&&(i[t]=(i[t]||[]).concat(s))}}function At(){return e.assign(new $,{errors:[],valid:!0,warnings:[]})}function vt(){return t=()=>{const t=_t(),n=F().suiteName;return Object.freeze(e.assign(t,q(t),{suiteName:n}))},(0,F().suiteResultCache)([y()],t);var t}function ht(t,s){return e.isNotNullish(n.Walker.findClosest(t,(t=>!!O.isIsolateFocused(t)&&O.isOnlyFocused(t,s))))}function Ct(t){e.invariant(e.isStringValue(t));return T()[t]=!0,{when:function(n){e.invariant(n!==t,m.INCLUDE_SELF);T()[t]=function(t){return e.isStringValue(n)?ht(t,n):e.optionalFunctionValue(n,e.optionalFunctionValue(vt))}}}}function Pt(t,s){n.Isolate.create(o,(()=>{N.run({omitted:Ft()||e.optionalFunctionValue(t,e.optionalFunctionValue(vt))},s)}))}function Ft(){return function(){var t;return null!==(t=N.useX().omitted)&&void 0!==t&&t}()}function Lt(t,s){n.Isolate.create(u,(()=>{N.run({skipped:Ut()||e.optionalFunctionValue(t,e.optionalFunctionValue(vt))},s)}))}function Ut(){return function(){var t;return null!==(t=N.useX().skipped)&&void 0!==t&&t}()}var yt;function Wt(t,e,s){const i=Object.assign(Object.assign({},{severity:k.Error,status:lt.initial()}),{fieldName:e.fieldName,testFn:e.testFn});e.groupName&&(i.groupName=e.groupName),e.message&&(i.message=e.message);return n.Isolate.create(l,t,i,null!=s?s:null)}function Gt(t){const[e]=g();return e===t}function bt(t){return Gt(exports.Modes.ONE)?St():!!Gt(exports.Modes.EAGER)&&St(t.fieldName)}function Vt(t){const{fieldName:s}=dt.getData(t);if(Ut())return!0;const i=T(),r=function(t){return n.Walker.findClosest(t,(e=>{var n;if(!O.isIsolateFocused(e))return!1;const{fieldName:s}=dt.getData(t);return(null===(n=e.data.match)||void 0===n?void 0:n.includes(s))||e.data.matchAll}))}(t);if(O.isSkipFocused(r))return!0;return!O.isOnlyFocused(r)&&(!!ht(t)&&!e.optionalFunctionValue(i[s],t))}function Mt(t,e=t){const n=dt.getData(t);return bt(n)?(s=t,dt.skip(s),s):(i=n.fieldName,Ft()||I(i)?function(t){return dt.omit(t),t}(t):Vt(t)?function(t){return dt.skip(t,Ut()),t}(e):t);var s,i}function kt(t){if(Mt(t),dt.isUntested(t))return function(t){const s=function(t){return N.run({currentTest:t},(()=>{let n;const{message:s,testFn:i}=dt.getData(t);try{n=i({signal:t.abortController.signal})}catch(i){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(s,i)&&(dt.getData(t).message=i),n=!1}return!1===n&&dt.fail(t),n}))}(t);try{if(e.isPromise(s))return dt.getData(t).asyncTest=s,function(t){const{asyncTest:s,message:i}=dt.getData(t);if(!e.isPromise(s))return;const r=n.VestRuntime.persist((()=>{Bt(t)})),a=n.VestRuntime.persist((n=>{dt.isCanceled(t)||(dt.getData(t).message=e.isStringValue(n)?n:i,dt.fail(t),r())}));return s.then(r,a)}(t);Bt(t)}catch(n){throw new Error(e.text(m.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t);dt.isNonActionable(t)||e.deferThrow(e.text(m.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function Bt(t){dt.pass(t)}function wt(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(m.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),e.invariant(e.isFunction(n),e.text(m.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const o={fieldName:t,groupName:N.useX().groupName,message:i,testFn:r};return n.Bus.useEmit(yt.TEST_RUN_STARTED),Wt(kt,o,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"}(yt||(yt={}));const xt=e.assign(wt,{memo:function(t){return function(s,...i){const[r,a,o]=i.reverse();return function(t,s){const i=N.useX().testMemoCache,r=i.get(t);if(e.isNull(r))return i(t,s);const[,a]=r;if(dt.isCanceled(a))return i.invalidate(t),i(t,s);return n.VestRuntime.addNodeToHistory(a),a}([y(),s,n.VestRuntime.useCurrentCursor()].concat(r),(function(){return t(s,o,a)}))}}(wt)});function jt(){return{group:C,include:Ct,omitWhen:Pt,only:D,optional:R,skip:A,skipWhen:Lt,test:xt}}function Kt(){const t=n.VestRuntime.useAvailableRoot(),s=E.getOptionalFields(t);if(e.isEmpty(s))return;const i=new Set;function r(e){const{fieldName:n}=dt.getData(e);i.has(n)&&(dt.omit(e),E.setOptionalField(t,n,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}Nt.walkTests((n=>{if(dt.isPending(n))return;const{fieldName:s}=dt.getData(n);i.has(s)?r(n):function(n){const{fieldName:s}=dt.getData(n),a=E.getOptionalField(t,s);!0===e.optionalFunctionValue(a.rule)&&i.add(s);r(n)}(n)})),n.Bus.useEmit(yt.DONE_TEST_OMISSION_PASS)}function Xt(){const t=n.Bus.useBus();return s(yt.TEST_COMPLETED,(t=>{if(dt.isCanceled(t))return;const{fieldName:n}=dt.getData(t);!function(t){const[n]=U();t&&!Tt.hasRemainingWithTestNameMatching(t)&&e.isArray(n[t])&&e.callEach(n[t])}(n)})),s(yt.TEST_RUN_STARTED,(()=>{})),s(n.RuntimeEvents.ISOLATE_PENDING,(t=>{dt.is(t)&&dt.setPending(t),function(t){t.status=rt(t.status,st.PENDING)}(t)})),s(n.RuntimeEvents.ISOLATE_DONE,(e=>{dt.is(e)&&t.emit(yt.TEST_COMPLETED,e),function(t){t.status=rt(t.status,st.DONE)}(e),Tt.hasPending()||t.emit(yt.ALL_RUNNING_TESTS_FINISHED)})),s(yt.DONE_TEST_OMISSION_PASS,(()=>{})),s(yt.ALL_RUNNING_TESTS_FINISHED,(()=>{Nt.someTests(dt.isAsyncTest)&&Kt(),function(){const[t]=L();e.callEach(t)}()})),s(yt.RESET_FIELD,(t=>{Nt.resetField(t)})),s(yt.SUITE_RUN_STARTED,(()=>{G()})),s(yt.SUITE_CALLBACK_RUN_FINISHED,(()=>{Kt()})),s(yt.REMOVE_FIELD,(t=>{Nt.removeTestByFieldName(t)})),s(yt.RESET_SUITE,(()=>{G(),n.VestRuntime.reset()})),{subscribe:function(e){return t.on("*",(()=>{e()})).off}};function s(e,n){t.on(e,((...t)=>{W(),n(...t)}))}}function qt(t,e){const{groupName:n}=dt.getData(t),{groupName:s,fieldName:i}=dt.getData(e);return X(dt.getData(t),i)&&n===s&&t.key==e.key}class Ht extends class{static match(t,e){return!1}static reconcile(t,e){return null!=t?t:e}}{static match(t,e){return dt.is(t)&&dt.is(e)}static reconcile(t,s){const i=function(t,s){const i=function(t,s){if(n.IsolateInspector.usesKey(t))return dt.cast(n.Reconciler.handleIsolateNodeWithKey(t,dt.isNonActionable));if(n.Reconciler.dropNextNodesOnReorder(Yt,t,s))return function(t,s){if(n.IsolateInspector.canReorder(t))return;e.deferThrow(e.text(m.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:dt.getData(t).fieldName,prevName:dt.is(s)?dt.getData(s).fieldName:void 0}))}(t,s),t;if(!dt.is(s))return t;if(dt.isOmitted(s))return t;return s}(s,t);return Mt(s,i)}(s,t);return function(t,e,n){t===e&&dt.is(e)&&(i=e)!==(s=n)&&qt(s,i)&&dt.isPending(s)&&dt.cancel(s);var s,i}(i,t,s),i}}function Yt(t,e){return dt.is(e)&&!qt(e,t)}function zt(t,e){var n,s;return null!==(s=null===(n=[Ht].find((n=>n.match(t,e))))||void 0===n?void 0:n.reconcile(t,e))&&void 0!==s?s:null}function Jt(){return Object.freeze(e.assign({done:n.VestRuntime.persist(Qt)},vt()))}function Qt(...t){const[n,s]=t.reverse(),i=Jt();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(vt());return Tt.hasRemainingWithTestNameMatching(s)?(function(t,n){const[,s]=U(),[,i]=L();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,i]=t.reverse();!function(t){e.invariant(e.isFunction(t),m.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const r=function({suiteName:t,VestReconciler:s}){const i={doneCallbacks:e.tinyState.createTinyState((()=>[])),fieldCallbacks:e.tinyState.createTinyState((()=>({}))),suiteId:e.seq(),suiteName:t,suiteResultCache:P};return n.VestRuntime.createRef(s,i)}({suiteName:i,VestReconciler:zt});function a(...t){return N.run({suiteParams:t},(()=>{return n.Bus.useEmit(yt.SUITE_RUN_STARTED),e=function(t,...e){const s=n.Bus.useEmit();return()=>(t(...e),s(yt.SUITE_CALLBACK_RUN_FINISHED),Jt())}(s,...t),n.Isolate.create(c,e,{optional:{}});var e})).output}const o=$t(...t);return n.VestRuntime.Run(r,(()=>{const t=Xt();return e.assign(n.VestRuntime.persist(a),Object.assign(Object.assign({dump:n.VestRuntime.persist((()=>n.VestRuntime.useAvailableRoot())),get:n.VestRuntime.persist(vt),remove:n.Bus.usePrepareEmitter(yt.REMOVE_FIELD),reset:n.Bus.usePrepareEmitter(yt.RESET_SUITE),resetField:n.Bus.usePrepareEmitter(yt.RESET_FIELD),resume:n.VestRuntime.persist(b),runStatic:(...t)=>o(...t),subscribe:t.subscribe},(s=n.VestRuntime.persist(vt),{getError:(...t)=>s().getError(...t),getErrors:(...t)=>s().getErrors(...t),getErrorsByGroup:(...t)=>s().getErrorsByGroup(...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 $t(...t){return e.assign(((...n)=>{const s=Zt(...t),i=s(...n);return Object.freeze(e.assign({dump:s.dump},i))}),Object.assign({},jt()))}const te=m.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),m.EACH_CALLBACK_MUST_BE_A_FUNCTION),function(t){n.Isolate.create(i,t,{allowReorder:!0})}((()=>{t.forEach(((t,e)=>{s(t,e)}))}))},exports.group=C,exports.include=Ct,exports.mode=function(t){const[,e]=g();e(t)},exports.omitWhen=Pt,exports.only=D,exports.optional=R,exports.skip=A,exports.skipWhen=Lt,exports.staticSuite=$t,exports.suiteSelectors=q,exports.test=xt,exports.warn=function(){const t=(n=m.HOOK_CALLED_OUTSIDE,N.useX(n).currentTest);var n;e.invariant(t,te),dt.warn(t)};
|
|
2
2
|
//# sourceMappingURL=vest.production.js.map
|