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