vest 5.0.0-dev-781e21 → 5.0.2-dev-d315d9
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/LICENSE +2 -2
- package/README.md +2 -57
- package/dist/cjs/classnames.development.js +18 -16
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +5 -54
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +20 -83
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +19 -82
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +12 -9
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/promisify.development.js +4 -8
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +1287 -1153
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +20 -18
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +1 -58
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +2 -90
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +2 -88
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +12 -9
- package/dist/es/parser.production.js +1 -1
- package/dist/es/promisify.development.js +5 -9
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +1286 -1148
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +21 -19
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +9 -57
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +32 -94
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +32 -94
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +16 -13
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/promisify.development.js +7 -11
- package/dist/umd/promisify.production.js +1 -1
- package/dist/umd/vest.development.js +1289 -1155
- package/dist/umd/vest.production.js +1 -1
- package/package.json +12 -16
- package/src/__tests__/__snapshots__/integration.async-tests.test.ts.snap +71 -0
- package/src/__tests__/__snapshots__/integration.base.test.ts.snap +71 -0
- package/src/__tests__/__snapshots__/integration.stateful-async.test.ts.snap +243 -0
- package/src/__tests__/__snapshots__/integration.stateful-tests.test.ts.snap +376 -0
- package/src/__tests__/integration.async-tests.test.ts +90 -0
- package/src/__tests__/integration.base.test.ts +45 -0
- package/src/__tests__/integration.exclusive.test.ts +88 -0
- package/src/__tests__/integration.stateful-async.test.ts +137 -0
- package/src/__tests__/integration.stateful-tests.test.ts +155 -0
- package/src/__tests__/isolate.test.ts +288 -0
- package/src/__tests__/state_refill.test.ts +41 -0
- package/src/core/SuiteWalker/SuiteWalker.ts +64 -0
- package/src/core/SuiteWalker/__tests__/hasRemainingTests.test.ts +130 -0
- package/src/core/VestBus/VestBus.ts +78 -0
- package/src/core/context/PersistedContext.ts +243 -0
- package/src/core/context/SuiteContext.ts +74 -0
- package/src/core/isolate/IsolateTest/IsolateTest.ts +213 -0
- package/src/core/isolate/IsolateTest/IsolateTestReconciler.ts +156 -0
- package/src/core/isolate/IsolateTest/IsolateTestStateMachine.ts +69 -0
- package/src/core/isolate/IsolateTest/SimpleStateMachine.ts +43 -0
- package/src/core/isolate/IsolateTest/TestWalker.ts +77 -0
- package/src/core/isolate/IsolateTypes.ts +10 -0
- package/src/core/isolate/isIsolate.ts +6 -0
- package/src/core/isolate/isolate.ts +110 -0
- package/src/core/isolate/reconciler/Reconciler/Reconciler.ts +123 -0
- package/src/core/isolate/reconciler/cancelOverriddenPendingTest.ts +15 -0
- package/src/core/isolate/reconciler/isSameProfileTest.ts +12 -0
- package/src/core/isolate/walker.ts +127 -0
- package/src/core/test/TestTypes.ts +3 -0
- package/src/core/test/__tests__/IsolateTest.test.ts +152 -0
- package/src/core/test/__tests__/__snapshots__/IsolateTest.test.ts.snap +39 -0
- package/src/core/test/__tests__/__snapshots__/memo.test.ts.snap +101 -0
- package/src/core/test/__tests__/__snapshots__/test.test.ts.snap +231 -0
- package/src/core/test/__tests__/key.test.ts +195 -0
- package/src/core/test/__tests__/memo.test.ts +218 -0
- package/src/core/test/__tests__/merging_of_previous_test_runs.test.ts +341 -0
- package/src/core/test/__tests__/runAsyncTest.test.ts +175 -0
- package/src/core/test/__tests__/test.test.ts +226 -0
- package/src/core/test/helpers/__tests__/nonMatchingSeverityProfile.test.ts +52 -0
- package/src/core/test/helpers/asVestTest.ts +9 -0
- package/src/core/test/helpers/matchingFieldName.ts +16 -0
- package/src/core/test/helpers/matchingGroupName.ts +12 -0
- package/src/core/test/helpers/nonMatchingSeverityProfile.ts +14 -0
- package/src/core/test/helpers/shouldUseErrorMessage.ts +9 -0
- package/src/core/test/test.memo.ts +81 -0
- package/src/core/test/test.ts +64 -0
- package/src/core/test/testLevelFlowControl/runTest.ts +86 -0
- package/src/core/test/testLevelFlowControl/verifyTestRun.ts +32 -0
- package/src/core/test/testObjectIsolate.ts +11 -0
- package/src/errors/ErrorStrings.ts +4 -0
- package/src/exports/__tests__/classnames.test.ts +92 -0
- package/src/exports/__tests__/parser.test.ts +441 -0
- package/src/exports/__tests__/promisify.test.ts +77 -0
- package/src/exports/classnames.ts +35 -0
- package/src/exports/enforce@compose.ts +1 -0
- package/src/exports/enforce@compounds.ts +1 -0
- package/src/exports/enforce@schema.ts +1 -0
- package/src/exports/parser.ts +63 -0
- package/src/exports/promisify.ts +18 -0
- package/src/hooks/__tests__/__snapshots__/include.test.ts.snap +794 -0
- package/src/hooks/__tests__/eager.test.ts +130 -0
- package/src/hooks/__tests__/exclusive.test.ts +578 -0
- package/src/hooks/__tests__/include.test.ts +431 -0
- package/src/hooks/__tests__/optional.test.ts +83 -0
- package/src/hooks/__tests__/warn.test.ts +42 -0
- package/src/hooks/exclusive.ts +179 -0
- package/src/hooks/include.ts +54 -0
- package/src/hooks/mode.ts +47 -0
- package/src/hooks/optional/OptionalTypes.ts +31 -0
- package/src/hooks/optional/optional.ts +69 -0
- package/src/hooks/warn.ts +19 -0
- package/src/isolates/__tests__/__snapshots__/each.test.ts.snap +3 -0
- package/src/isolates/__tests__/__snapshots__/group.test.ts.snap +114 -0
- package/src/isolates/__tests__/__snapshots__/omitWhen.test.ts.snap +443 -0
- package/src/isolates/__tests__/__snapshots__/skipWhen.test.ts.snap +99 -0
- package/src/isolates/__tests__/each.test.ts +35 -0
- package/src/isolates/__tests__/group.test.ts +362 -0
- package/src/isolates/__tests__/omitWhen.test.ts +246 -0
- package/src/isolates/__tests__/skipWhen.test.ts +163 -0
- package/src/isolates/each.ts +30 -0
- package/src/isolates/group.ts +9 -0
- package/src/isolates/omitWhen.ts +41 -0
- package/src/isolates/skipWhen.ts +42 -0
- package/src/suite/__tests__/__snapshots__/create.test.ts.snap +67 -0
- package/src/suite/__tests__/create.test.ts +109 -0
- package/src/suite/__tests__/remove.test.ts +50 -0
- package/src/suite/__tests__/resetField.test.ts +74 -0
- package/src/suite/createSuite.ts +94 -0
- package/src/suite/runCallbacks.ts +28 -0
- package/src/suiteResult/Severity.ts +15 -0
- package/src/suiteResult/SuiteResultTypes.ts +42 -0
- package/src/suiteResult/__tests__/done.test.ts +334 -0
- package/src/suiteResult/__tests__/produce.test.ts +163 -0
- package/src/suiteResult/done/deferDoneCallback.ts +28 -0
- package/src/suiteResult/done/shouldSkipDoneRegistration.ts +20 -0
- package/src/suiteResult/selectors/__tests__/__snapshots__/collectFailureMessages.test.ts.snap +89 -0
- package/src/suiteResult/selectors/__tests__/collectFailureMessages.test.ts +124 -0
- package/src/suiteResult/selectors/__tests__/getFailures.test.ts +158 -0
- package/src/suiteResult/selectors/__tests__/getFailuresByGroup.test.ts +199 -0
- package/src/suiteResult/selectors/__tests__/hasFailures.test.ts +141 -0
- package/src/suiteResult/selectors/__tests__/hasFailuresByGroup.test.ts +185 -0
- package/src/suiteResult/selectors/__tests__/hasFailuresByTestObject.test.ts +88 -0
- package/src/suiteResult/selectors/__tests__/isValid.test.ts +359 -0
- package/src/suiteResult/selectors/__tests__/isValidByGroup.test.ts +480 -0
- package/src/suiteResult/selectors/collectFailures.ts +43 -0
- package/src/suiteResult/selectors/hasFailuresByTestObjects.ts +62 -0
- package/src/suiteResult/selectors/produceSuiteSummary.ts +135 -0
- package/src/suiteResult/selectors/shouldAddValidProperty.ts +148 -0
- package/src/suiteResult/selectors/suiteSelectors.ts +199 -0
- package/src/suiteResult/suiteResult.ts +15 -0
- package/src/suiteResult/suiteRunResult.ts +43 -0
- package/src/vest.ts +36 -0
- package/testUtils/TVestMock.ts +5 -0
- package/testUtils/__tests__/partition.test.ts +4 -4
- package/testUtils/mockThrowError.ts +4 -2
- package/testUtils/suiteDummy.ts +2 -1
- package/testUtils/testDummy.ts +12 -10
- package/testUtils/testPromise.ts +3 -0
- package/tsconfig.json +84 -2
- package/types/classnames.d.ts +39 -4
- package/types/classnames.d.ts.map +1 -0
- package/types/enforce/compose.d.ts +2 -126
- package/types/enforce/compose.d.ts.map +1 -0
- package/types/enforce/compounds.d.ts +2 -136
- package/types/enforce/compounds.d.ts.map +1 -0
- package/types/enforce/schema.d.ts +2 -144
- package/types/enforce/schema.d.ts.map +1 -0
- package/types/parser.d.ts +45 -10
- package/types/parser.d.ts.map +1 -0
- package/types/promisify.d.ts +36 -34
- package/types/promisify.d.ts.map +1 -0
- package/types/vest.d.ts +169 -224
- package/types/vest.d.ts.map +1 -0
- package/CHANGELOG.md +0 -87
- package/testUtils/expandStateRef.ts +0 -8
- package/testUtils/runCreateRef.ts +0 -10
- package/testUtils/testObjects.ts +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils","context"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t["vest-utils"],t.context)}(this,(function(t,n,e,r){function i(){var t=0;return{current:function(){return t},next:function(){t++}}}function u(t,n){return void 0===n&&(n=[]),{cursor:i(),keys:{current:{},prev:{}},path:n,type:t}}function s(){return rt.useX().stateRef}function o(t,n){(0,s().optionalFields()[1])((function(r){var i;return e.assign(r,((i={})[t]=e.assign({},r[t],n(r[t])),i))}))}function a(t){var n;return null!==(n=s().optionalFields()[0][t])&&void 0!==n?n:{}}function c(){f((function(t){return t}))}function f(t){(0,s().testObjects()[1])((function(n){return{prev:n.prev,current:e.asArray(t(n.current))}}))}function l(){return d().filter((function(t){return t.isPending()}))}function d(){var t=s().testObjects()[0].current;return it([t],(function(){return e.nestedArray.flatten(t)}))}function p(t){function n(t,n,u){return i.references.push(),r(t,e.optionalFunctionValue(n,u)),function(){return[i.references[t],function(n){return r(t,e.optionalFunctionValue(n,i.references[t]))}]}}function r(n,r){var s=i.references[n];i.references[n]=r,n=u[n][1],e.isFunction(n)&&n(r,s),e.isFunction(t)&&t()}var i={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=i.references;i.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function v(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function E(){return rt.useX().isolate}function h(){var t=E();return t.path.concat(t.cursor.current())}function g(t,n){t=void 0===(t=t.type)?$.DEFAULT:t,e.invariant(e.isFunction(n));var r=u(t,h());return t=rt.run({isolate:r},(function(){return r.keys.prev=function(){var t=s().testObjects()[0].prev;return e.asArray(e.nestedArray.getCurrent(t,h())).reduce((function(t,n){return n instanceof ot&&!e.isNullish(n.key)?(t[n.key]=n,t):t}),{})}(),f((function(t){return e.nestedArray.setValueAtPath(t,r.path,[])})),n()})),E().cursor.next(),t}function N(t,n){return!(!n||t.fieldName!==n)}function m(t,n){return d().some((function(e){return y(e,t,n)}))}function y(t,n,r){return!(!t.hasFailures()||r&&!N(t,r)||e.either(n===ut.WARNINGS,t.warns()))}function R(t){return!!t&&a(t).applied}function S(t){if(R(t))return!0;var n=d();return!(e.isEmpty(n)||m(ut.ERRORS,t)||function(t){return e.isNotEmpty(l().filter((function(n){return T(n,t)})))}(t))&&function(t){return d().every((function(n){return C(n,t)}))}(t)}function T(t,n){return!(n&&!N(t,n))&&R(n)}function C(t,n){return!(!n||N(t,n))||(a(t.fieldName).type===ht.Delayed&&t.awaitsResolution()||t.isTested()||t.isOmitted())}function O(){var t=d(),n=e.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var r=t.tests;r[n.fieldName]=A(r,n),r[n.fieldName].valid=!1!==r[n.fieldName].valid&&S(n.fieldName);var i=t.groups,u=n.groupName;return u&&(i[u]=i[u]||{},i[u][n.fieldName]=A(i[u],n),r=i[u][n.fieldName],!1===i[u][n.fieldName].valid?n=!1:n=!!R(n=n.fieldName)||!function(t,n,e){return d().some((function(r){return!gt(r,n)&&y(r,t,e)}))}(ut.ERRORS,u,n)&&!function(t,n){return e.isNotEmpty(l().filter((function(e){return!gt(e,t)&&T(e,n)})))}(u,n)&&function(t,n){return d().every((function(e){return!!gt(e,t)||C(e,n)}))}(u,n),r.valid=n),t}),n),n.valid=S(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function A(t,n){function r(t){s[t===ut.ERRORS?st.ERROR_COUNT:st.WARN_COUNT]++,u&&(s[t]=(s[t]||[]).concat(u))}var i=n.fieldName,u=n.message;t[i]=t[i]||e.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var s=t[i];return n.isNonActionable()||(t[i].testCount++,n.isFailing()?r(ut.ERRORS):n.isWarning()&&r(ut.WARNINGS)),s}function _(t,n,r){if(r){var i;t=(null===(i=null==t?void 0:t[r])||void 0===i?void 0:i[n])||[]}else{for(var u in i={},r=n===ut.ERRORS?st.ERROR_COUNT:st.WARN_COUNT,t)e.isPositive(t[u][r])&&(i[u]=t[u][n]||[]);t=i}return t}function b(t){return{getErrors:function(n){return _(t.tests,ut.ERRORS,n)},getErrorsByGroup:function(n,e){return _(t.groups[n],ut.ERRORS,e)},getWarnings:function(n){return _(t.tests,ut.WARNINGS,n)},getWarningsByGroup:function(n,e){return _(t.groups[n],ut.WARNINGS,e)},hasErrors:function(n){return k(t,st.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return I(t,st.ERROR_COUNT,n,e)},hasWarnings:function(n){return k(t,st.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return I(t,st.WARN_COUNT,n,e)},isValid:function(n){var e;return n?!(null===(e=t.tests[n])||void 0===e||!e.valid):t.valid},isValidByGroup:function(n,e){if(!(n=t.groups[n]))return!1;if(e)return F(n,e);for(var r in n)if(!F(n,r))return!1;return!0}}}function F(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}function I(t,n,r,i){var u,s;if(!(t=t.groups[r]))return!1;if(i)return e.isPositive(null===(u=t[i])||void 0===u?void 0:u[n]);for(var o in t)if(e.isPositive(null===(s=t[o])||void 0===s?void 0:s[n]))return!0;return!1}function k(t,n,r){var i;return t=r?null===(i=t.tests[r])||void 0===i?void 0:i[n]:t[n]||0,e.isPositive(t)}function P(){var t=d(),n={stateRef:s()};return mt([t],rt.bind(n,(function(){var t=O(),n=s().suiteName()[0];return e.assign(t,b(t),{suiteName:n})})))}function U(t){var n=l();return!e.isEmpty(n)&&(!t||n.some((function(n){return N(n,t)})))}function L(){var t=d(),n={stateRef:s()};return yt([t],rt.bind(n,(function(){return e.assign({},P(),{done:rt.bind(n,Rt)})})))}function W(t,n,r){var i;return!!(!e.isFunction(t)||n&&e.numberEquals(null===(i=r.tests[n])||void 0===i?void 0:i.testCount,0))}function D(t){return!(U()&&(!t||U(t)))}function V(t,n){(0,s().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function w(){var t=e.bus.createBus();return t.on(Nt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var r=s().testCallbacks()[0].fieldCallbacks;n&&!U(n)&&e.isArray(r[n])&&e.callEach(r[n]),U()||t.emit(Nt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Nt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){r[t.fieldName]&&(t.omit(),o(t.fieldName,(function(){return{applied:!0}})))}var n=s().optionalFields()[0];if(!e.isEmpty(n)){var r={};d().forEach((function(n){if(e.hasOwnProperty(r,n.fieldName))t(n);else{var i=a(n.fieldName);i.type===ht.Immediate&&(r[n.fieldName]=e.optionalFunctionValue(i.rule),t(n))}})),c()}}()})),t.on(Nt.ALL_RUNNING_TESTS_FINISHED,(function(){var t=s().testCallbacks()[0].doneCallbacks;e.callEach(t)})),t.on(Nt.REMOVE_FIELD,(function(t){d().forEach((function(n){N(n,t)&&(n.cancel(),function(t){f((function(n){return e.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Nt.RESET_FIELD,(function(t){d().forEach((function(n){N(n,t)&&n.reset()}))})),t}function G(){var t=rt.useX();return e.invariant(t.bus),t.bus}function x(t){return q(0,"tests",t)}function X(t){return q(1,"tests",t)}function q(t,n,r){var i=rt.useX("hook called outside of a running suite.");r&&e.asArray(r).forEach((function(r){e.isStringValue(r)&&(i.exclusion[n][r]=0===t)}))}function H(t){for(var n in t)if(!0===t[n])return!0;return!1}function K(){var t,n=rt.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function M(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function j(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function B(t){var n=t.asyncTest,r=t.message;if(e.isPromise(n)){var i=G().emit,u=s(),o=rt.bind({stateRef:u},(function(){c(),i(Nt.TEST_COMPLETED,t)}));u=rt.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=e.isStringValue(n)?n:r,t.fail(),o())}));try{n.then(o,u)}catch(t){u()}}}function Y(t){var n=s().testObjects()[0].prev;if(e.isEmpty(n))return J(t),t;var r=h();if(n=e.nestedArray.valueAtPath(n,r),!e.isNullish(t.key)){n=t.key,(r=E().keys.prev[n])&&(t=r),r=t;var i=E().keys.current;return e.isNullish(i[n])?i[n]=r:e.deferThrow('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),J(t),t}return r=n,!e.isNotEmpty(r)||r.fieldName===t.fieldName&&r.groupName===t.groupName||(E().type===$.EACH||e.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=E().cursor.current();f((function(n){return n.splice(t),n}))}(),n=null),J(t=e.defaultTo(n,t)),t}function J(t){var n=h();f((function(r){return e.nestedArray.setValueAtPath(r,n,t)}))}function z(t){var n=E().cursor,r=nt.EAGER;if(rt.useX().mode[0]===r&&m(ut.ERRORS,t.fieldName))return t.skip(),Y(t),n.next(),t;if(r=Y(t),rt.useX().omitted||R(t.fieldName))return r.omit(),n.next(),r;if(function(t){var n=t.fieldName;if(t=t.groupName,rt.useX().skipped)return!0;var r=rt.useX(),i=r.exclusion;r=r.inclusion;var u=i.tests,s=u[n];if(!1===s)return!0;if(s=!0===s,t){var o=rt.useX().exclusion.groups;if(o=e.hasOwnProperty(o,t)?!1===o[t]:K())return!0;if(!0===i.groups[t])return!(s||!H(u)&&!1!==u[n])}return!!(t=!!K()&&!t)||!s&&!!H(u)&&!e.optionalFunctionValue(r[n])}(t))return r.skip(!!rt.useX().skipped),n.next(),r;if(t!==r&&r.fieldName===t.fieldName&&r.groupName===t.groupName&&r.isPending()&&r.cancel(),J(t),t.isUntested()){r=G();var i=function(t){return rt.run({currentTest:t},(function(){return t.run()}))}(t);try{e.isPromise(i)?(t.asyncTest=i,t.setPending(),B(t)):r.emit(Nt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else e.isPromise(t.asyncTest)&&(t.setPending(),B(t));return n.next(),t}function Q(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var i=e.isFunction(n[1])?n:j([void 0],n,!0);n=i[0],r=i[1],i=i[2],e.invariant(e.isStringValue(t),Z("fieldName","string")),e.invariant(e.isFunction(r),Z("Test callback","function"));var u=rt.useX();return z(n=new ot(t,r,{message:n,groupName:u.groupName,key:i}))}function Z(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var $,tt,nt;(tt=$||($={}))[tt.DEFAULT=0]="DEFAULT",tt[tt.SUITE=1]="SUITE",tt[tt.EACH=2]="EACH",tt[tt.SKIP_WHEN=3]="SKIP_WHEN",tt[tt.OMIT_WHEN=4]="OMIT_WHEN",tt[tt.GROUP=5]="GROUP",function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(nt||(nt={}));var et,rt=r.createCascade((function(t,n){return n?null:e.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:u($.DEFAULT),mode:[nt.ALL]},t)})),it=e.cache();!function(t){t.Error="error",t.Warning="warning"}(et||(et={}));var ut,st,ot=function(){function t(t,n,r){var i=void 0===r?{}:r;r=i.message;var u=i.groupName;i=i.key,this.key=null,this.id=e.seq(),this.severity=et.Error,this.status=at,this.fieldName=t,this.testFn=n,u&&(this.groupName=u),r&&(this.message=r),i&&(this.key=i)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,e.isUndefined(this.message)&&e.isStringValue(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==Et||(this.status=t)},t.prototype.warns=function(){return this.severity===et.Warning},t.prototype.setPending=function(){this.setStatus(pt)},t.prototype.fail=function(){this.setStatus(this.warns()?lt:ft)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(dt)},t.prototype.warn=function(){this.severity=et.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(ct)},t.prototype.cancel=function(){this.setStatus(vt),c()},t.prototype.reset=function(){this.status=at,c()},t.prototype.omit=function(){this.setStatus(Et)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(pt)},t.prototype.isOmitted=function(){return this.statusEquals(Et)},t.prototype.isUntested=function(){return this.statusEquals(at)},t.prototype.isFailing=function(){return this.statusEquals(ft)},t.prototype.isCanceled=function(){return this.statusEquals(vt)},t.prototype.isSkipped=function(){return this.statusEquals(ct)},t.prototype.isPassing=function(){return this.statusEquals(dt)},t.prototype.isWarning=function(){return this.statusEquals(lt)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),at="UNTESTED",ct="SKIPPED",ft="FAILED",lt="WARNING",dt="PASSING",pt="PENDING",vt="CANCELED",Et="OMITTED";!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(ut||(ut={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(st||(st={}));var ht,gt=e.bindNot((function(t,n){return t.groupName===n}));!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(ht||(ht={}));var Nt,mt=e.cache(1),yt=e.cache(20),Rt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];if(t=t[1],n=L(),W(e,t,n))return n;var r=function(){return e(P())};return D(t)?(r(),n):(V(r,t),n)};!function(t){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.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Nt||(Nt={})),x.group=function(t){return q(0,"groups",t)},X.group=function(t){return q(1,"groups",t)},r=e.assign(Q,{memo:function(t){var n=e.cache(10);return function(r){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];u=E().cursor.current();var o=(i=i.reverse())[0],a=i[1],c=i[2];return u=[s().suiteId()[0],r,u].concat(o),i=n.get(u),e.isNull(i)?n(u,(function(){return t(r,c,a)})):i[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(r,c,a)}))):z(i[1])}}(Q)}),Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.VERSION="5.0.0-dev-781e21",t.context=rt,t.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],e.invariant(e.isFunction(r),"vest.create: Expected callback to be a function.");var i=w(),u=p();return t={stateRef:v(u,{suiteId:e.seq(),suiteName:t}),bus:i},e.assign(rt.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return u.reset(),g({type:$.SUITE},(function(){r.apply(void 0,t)})),i.emit(Nt.SUITE_CALLBACK_DONE_RUNNING),L()})),{get:rt.bind(t,P),remove:rt.bind(t,(function(t){i.emit(Nt.REMOVE_FIELD,t)})),reset:u.reset,resetField:rt.bind(t,(function(t){i.emit(Nt.RESET_FIELD,t)}))})},t.each=function(t,n){e.invariant(e.isFunction(n),"each callback must be a function"),g({type:$.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))},t.eager=function(){var t=nt.EAGER;rt.useX().mode[0]=t},t.group=function(t,n){e.invariant(e.isStringValue(t),M("name must be a string")),e.invariant(e.isFunction(n),M("callback must be a function")),g({type:$.GROUP},(function(){rt.run({groupName:t},n)}))},t.include=function(t){var n=rt.useX(),r=n.inclusion;return n=n.exclusion,e.invariant(e.isStringValue(t)),r[t]=e.defaultTo(n.tests[t],!0),{when:function(n){var r=rt.useX(),i=r.exclusion;r.inclusion[t]=function(){return e.hasOwnProperty(i.tests,t)?e.defaultTo(i.tests[t],!0):e.isStringValue(n)?!!i.tests[n]:e.optionalFunctionValue(n,e.optionalFunctionValue(P))}}}},t.omitWhen=function(t,n){g({type:$.OMIT_WHEN},(function(){rt.run({omitted:!!rt.useX().omitted||e.optionalFunctionValue(t,e.optionalFunctionValue(P))},(function(){return n()}))}))},t.only=x,t.optional=function(t){if(e.isArray(t)||e.isStringValue(t))e.asArray(t).forEach((function(t){o(t,(function(){return{type:ht.Delayed,applied:!1,rule:null}}))}));else{var n,r=function(n){var r=t[n];o(n,(function(){return{type:ht.Immediate,rule:r,applied:e.optionalFunctionValue(r)}}))};for(n in t)r(n)}},t.skip=X,t.skipWhen=function(t,n){g({type:$.SKIP_WHEN},(function(){rt.run({skipped:!!rt.useX().skipped||e.optionalFunctionValue(t,e.optionalFunctionValue(P))},(function(){return n()}))}))},t.suiteSelectors=b,t.test=r,t.warn=function(){var t=rt.useX("warn hook called outside of a running suite.");e.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils","context"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t["vest-utils"],t.context)}(this,(function(t,n,e,i){"use strict";var s,r,u,o,a;!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(s||(s={})),function(t){t.DEFAULT="DEFAULT",t.TEST="TEST",t.SUITE="SUITE",t.EACH="EACH",t.GROUP="GROUP",t.SKIP_WHEN="SKIP_WHEN",t.OMIT_WHEN="OMIT_WHEN",t.TEST_MEMO="TEST_MEMO"}(r||(r={}));class c{static reconciler(t,n){return e.isNullish(n),t}static reconcile(t,n){var i;const s=Rt(),r=mt();let u=r;s&&(u=null!==(i=null==r?void 0:r.at(It()))&&void 0!==i?i:null);const o=this.reconciler(t,u);return e.invariant(o),Object.is(o,t)?[t,l(u,t,n)]:[o,o.output]}static removeAllNextNodesInIsolate(){const t=Rt(),n=mt();n&&t&&n.slice(It())}static handleCollision(t,n){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,n)&&this.onNodeReorder(t,n),n||t)}static nodeReorderDetected(t,n){return!(null!=t?t:n)}static onNodeReorder(t,n){return this.removeAllNextNodesInIsolate(),null!=t?t:n}static handleIsolateNodeWithKey(t){e.invariant(t.usesKey());const n=function(t){var n;if(e.isNullish(t))return null;const i=at.useX().historyNode;return null!==(n=null==i?void 0:i.keys[t])&&void 0!==n?n:null}(t.key);let i=t;return e.isNullish(n)||(i=n),function(t,n){if(!t)return;const i=Rt();if(e.invariant(i,"Not within an active isolate"),e.isNullish(i.keys[t]))return void(i.keys[t]=n);e.deferThrow(`Encountered the same test key "${t}" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.`)}(t.key,t),i}}function l(t,n,e){const i=gt(),s=at.run(Object.assign({historyNode:t,runtimeNode:n},!i&&{runtimeRoot:n}),(()=>e(n)));return n.output=s,s}function f(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.key===n.key}function d(t){return t===o.ERRORS?a.ERROR_COUNT:a.WARN_COUNT}function E(t,n){return!!n&&!N(t,n)}function N(t,n){return!(!n||t.fieldName!==n)}!function(t){t.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",t.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest"}(u||(u={})),function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(o||(o={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(a||(a={}));const h=e.bindNot((function(t,n){return t.groupName===n}));function T(t){return function(t,n){return rt.someTests((e=>S(e,t,n)))}(o.ERRORS,t)}function S(t,n,i){return!!t.hasFailures()&&(!E(t,i)&&!function(t,n){return e.either(t===o.WARNINGS,n.warns())}(n,t))}var v;function m(){return function(t){const[n]=y();return n===t}(v.EAGER)}function p(t){return m()&&T(t.fieldName)}!function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(v||(v={}));const R=i.createCascade(((t,n)=>n?null:e.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:e.tinyState.createTinyState(v.ALL),testMemoCache:D},t)));function I(t){return R.useX(t).exclusion}function g(){return R.useX().inclusion}function y(){return R.useX().mode()}const D=e.cache(10);class A{constructor(t,n){this.type=t,this.children=[],this.keys={},this.parent=null,this.key=null}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return e.isNotNullish(this.key)}addChild(t){e.invariant(this.children),this.children.push(t)}removeChild(t){var n,e;this.children=null!==(e=null===(n=this.children)||void 0===n?void 0:n.filter((n=>n!==t)))&&void 0!==e?e:null}slice(t){e.isNullish(this.children)||(this.children.length=t)}at(t){var n,e;return null!==(e=null===(n=this.children)||void 0===n?void 0:n[t])&&void 0!==e?e:null}cursor(){var t,n;return null!==(n=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==n?n:0}static create(t,n,e){return this.createImplementation(t,n,e)}static createImplementation(t,n,e){const i=Rt(),s=new this(t,e).setParent(i),[r,u]=this.reconciler.reconcile(s,n);return r.saveOutput(u),this.setNode(r),r}static setNode(t){Rt()?function(t){const n=Rt();e.invariant(n,"Not within an active isolate"),n.addChild(t)}(t):function(t){const n=at.useX(),[,e]=n.historyRoot();e(t)}(t)}static is(t){return t instanceof A}}function C(t){return!!Dt(t)||!rt.hasNoTests()&&(!T(t)&&(!function(t){return rt.someIncompleteTests((n=>O(n,t)))}(t)&&function(t){return rt.everyTest((n=>P(n,t)))}(t)))}function _(t,n){return!!Dt(n)||!function(t,n,e){return rt.someTests((i=>!h(i,n)&&S(i,t,e)))}(o.ERRORS,t,n)&&(!function(t,n){return rt.someIncompleteTests((e=>!h(e,t)&&O(e,n)))}(t,n)&&function(t,n){return rt.everyTest((e=>!!h(e,t)||P(e,n)))}(t,n))}function O(t,n){return!E(t,n)&&Dt(n)}function P(t,n){return!!E(t,n)||(function(t){return ht(t.fieldName).type===s.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function U(){const t=e.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return rt.walkTests((n=>{!function(t,n){t[n.fieldName]=F(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&C(n.fieldName)}(t.tests,n),function(t,n){const{groupName:e}=n;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=F(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&_(e,n.fieldName)}(t.groups,n)})),t.valid=C(),function(t){for(const n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(t)}function F(t,n){const{fieldName:i,message:s}=n;t[i]=t[i]||e.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});const r=t[i];return n.isNonActionable()||(t[i].testCount++,n.isFailing()?u(o.ERRORS):n.isWarning()&&u(o.WARNINGS)),r;function u(t){const n=d(t);r[n]++,s&&(r[t]=(r[t]||[]).concat(s))}}function L(t,n,i){return i?function(t,n,e){var i;return(null===(i=null==t?void 0:t[e])||void 0===i?void 0:i[n])||[]}(t,n,i):function(t,n){const i={},s=d(n);for(const r in t)e.isPositive(t[r][s])&&(i[r]=t[r][n]||[]);return i}(t,n)}function k(t){const n={getErrors:function(n){return G(t,o.ERRORS,n)},getErrorsByGroup:function(n,e){return W(t,o.ERRORS,n,e)},getWarnings:function(n){return G(t,o.WARNINGS,n)},getWarningsByGroup:function(n,e){return W(t,o.WARNINGS,n,e)},hasErrors:function(n){return M(t,a.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return b(t,a.ERROR_COUNT,n,e)},hasWarnings:function(n){return M(t,a.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return b(t,a.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){const i=t.groups[n];if(!i)return!1;if(e)return w(i,e);for(const t in i)if(!w(i,t))return!1;return!0}};return n}function G(t,n,e){return L(t.tests,n,e)}function W(t,n,e,i){return L(t.groups[e],n,i)}function w(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function b(t,n,i,s){var r,u;const o=t.groups[i];if(!o)return!1;if(s)return e.isPositive(null===(r=o[s])||void 0===r?void 0:r[n]);for(const t in o)if(e.isPositive(null===(u=o[t])||void 0===u?void 0:u[n]))return!0;return!1}function M(t,n,i){var s;const r=i?null===(s=t.tests[i])||void 0===s?void 0:s[n]:t[n]||0;return e.isPositive(r)}function X(){const t=U(),n=at.useX().suiteName;return i=()=>e.assign(t,k(t),{suiteName:n}),(0,at.useX().suiteResultCache)([pt()],i);var i}function K(){return null!==(t=R.useX().skipped)&&void 0!==t&&t;var t}function V(t){return q(0,"tests",t)}function x(t){return q(1,"tests",t)}function H(t){const{fieldName:n,groupName:i}=t;if(K())return!0;const s=I(),r=g(),u=s.tests,o=u[n];if(!1===o)return!0;const a=!0===o;if(i){if(function(t){const n=I().groups;if(e.hasOwnProperty(n,t))return!1===n[t];return $()}(i))return!0;if(!0===s.groups[i])return!a&&(!!B(u)||!1===u[n])}return!!function(t){if(!$())return!1;return!t}(i)||!a&&(!!B(u)&&!e.optionalFunctionValue(r[n]))}function q(t,n,i){const s=I(u.HOOK_CALLED_OUTSIDE);i&&e.asArray(i).forEach((i=>{e.isStringValue(i)&&(s[n][i]=0===t)}))}function B(t){for(const n in t)if(!0===t[n])return!0;return!1}function $(){const t=I();for(const n in t.groups)if(t.groups[n])return!0;return!1}function j(){return null!==(t=R.useX().omitted)&&void 0!==t&&t;var t}A.reconciler=c,V.group=t=>q(0,"groups",t),x.group=t=>q(1,"groups",t);var Y,J;function z(){return function(t){let n=t.initial;return{getState:function(){return n},transition:function(e,i){let s=t.states[n][e];if(Array.isArray(s)){const[,t]=s;if(!t(i))return;s=s[0]}s&&s!==n&&(n=s)}}}(Q)}!function(t){t.UNTESTED="UNTESTED",t.SKIPPED="SKIPPED",t.FAILED="FAILED",t.WARNING="WARNING",t.PASSING="PASSING",t.PENDING="PENDING",t.CANCELED="CANCELED",t.OMITTED="OMITTED"}(Y||(Y={})),function(t){t.RESET="RESET"}(J||(J={}));const Q={initial:Y.UNTESTED,states:{[Y.UNTESTED]:{[Y.CANCELED]:Y.CANCELED,[Y.FAILED]:Y.FAILED,[Y.OMITTED]:Y.OMITTED,[Y.PASSING]:Y.PASSING,[Y.PENDING]:Y.PENDING,[Y.SKIPPED]:Y.SKIPPED,[Y.WARNING]:Y.WARNING},[Y.SKIPPED]:{[J.RESET]:Y.UNTESTED},[Y.FAILED]:{[J.RESET]:Y.UNTESTED},[Y.WARNING]:{[J.RESET]:Y.UNTESTED},[Y.PASSING]:{[J.RESET]:Y.UNTESTED},[Y.PENDING]:{[J.RESET]:Y.UNTESTED,[Y.CANCELED]:Y.CANCELED,[Y.FAILED]:Y.FAILED,[Y.OMITTED]:Y.OMITTED,[Y.PASSING]:Y.PASSING,[Y.SKIPPED]:[Y.SKIPPED,t=>!0===t],[Y.WARNING]:Y.WARNING},[Y.CANCELED]:{[J.RESET]:Y.UNTESTED},[Y.OMITTED]:{[J.RESET]:Y.UNTESTED}}};class Z extends A{constructor(t,{fieldName:n,testFn:i,message:s,groupName:r,key:u=null}){super(t),this.children=null,this.id=e.seq(),this.severity=tt.Error,this.stateMachine=z(),this.fieldName=n,this.testFn=i,r&&(this.groupName=r),s&&(this.message=s),this.setKey(u)}static factory(t,n){return super.create(r.TEST,t,n)}get status(){return this.stateMachine.getState()}setStatus(t,n){this.stateMachine.transition(t,n)}run(){let t;try{t=this.testFn()}catch(n){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===tt.Warning}isPending(){return this.statusEquals(Y.PENDING)}isOmitted(){return this.statusEquals(Y.OMITTED)}isUntested(){return this.statusEquals(Y.UNTESTED)}isFailing(){return this.statusEquals(Y.FAILED)}isCanceled(){return this.statusEquals(Y.CANCELED)}isSkipped(){return this.statusEquals(Y.SKIPPED)}isPassing(){return this.statusEquals(Y.PASSING)}isWarning(){return this.statusEquals(Y.WARNING)}hasFailures(){return this.isFailing()||this.isWarning()}isNonActionable(){return this.isSkipped()||this.isOmitted()||this.isCanceled()}isTested(){return this.hasFailures()||this.isPassing()}awaitsResolution(){return this.isSkipped()||this.isUntested()||this.isPending()}statusEquals(t){return this.status===t}setPending(){this.setStatus(Y.PENDING)}fail(){this.setStatus(this.warns()?Y.WARNING:Y.FAILED)}pass(){this.setStatus(Y.PASSING)}warn(){this.severity=tt.Warning}skip(t){this.setStatus(Y.SKIPPED,t)}cancel(){this.setStatus(Y.CANCELED)}reset(){this.stateMachine.transition(J.RESET)}omit(){this.setStatus(Y.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return e.isPromise(this.asyncTest)}static is(t){return t instanceof Z}static isX(t){e.invariant(this.is(t))}}var tt,nt;function et(t,n,i){if(e.isNullish(t.children))return;let s=!1;for(const u of t.children){if(s)return;if((e.isNullish(i)||e.optionalFunctionValue(i,u))&&n(u,r),s)return;et(u,((t,e)=>{n(t,(()=>{e(),r()}))}),i)}function r(){s=!0}}function it(t,n,e){let i=!1;return et(t,((t,e)=>{n(t)&&(e(),i=!0)}),e),i}Z.reconciler=class extends c{static reconciler(t,n){if(!Z.is(t))return t;if(e.isNullish(n))return this.handleNoHistoryNode(t);if(!Z.is(n))return t;const i=this.pickNode(n,t);return function(t,n,e){t===n&&Z.is(n)&&(s=n)!==(i=e)&&f(i,s)&&i.isPending()&&i.cancel();var i,s}(i,t,n),i}static nodeReorderDetected(t,n){return!!Z.is(n)&&!f(n,t)}static handleCollision(t,n){return t.usesKey()?this.handleIsolateNodeWithKey(t):this.nodeReorderDetected(t,n)?this.onNodeReorder(t,n):n||t}static onNodeReorder(t,n){return function(t,n){if(function(t){const n=t.parent;return e.invariant(n),function(t,n){return t.type===n}(n,r.EACH)}(t))return;e.deferThrow(`Vest Critical Error: Tests called in different order than previous run.\n expected: ${t.fieldName}\n received: ${Z.is(n)?n.fieldName:void 0}\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,n),this.removeAllNextNodesInIsolate(),t}static pickNode(t,n){const e=this.handleCollision(n,t);return p(n)?((i=n).skip(),i):(s=n,j()||Dt(s.fieldName)?function(t){return t.omit(),t}(n):H(n)?function(t){return t.skip(K()),t}(e):n);var i,s}static handleNoHistoryNode(t){return t.usesKey()?this.handleIsolateNodeWithKey(t):t}},function(t){t.Error="error",t.Warning="warning"}(tt||(tt={}));class st{static walk(t,n){const e=yt();e&&et(e,t,n)}static some(t,n){const e=yt();return!!e&&it(e,t,n)}static has(t){const n=yt();return!!n&&function(t,n){return it(t,(()=>!0),n)}(n,t)}static find(t,n){const e=yt();return e?function(t,n,e){let i=null;return et(t,((t,e)=>{n(t)&&(e(),i=t)}),e),i}(e,t,n):null}static every(t,n){const e=yt();return!!e&&function(t,n,e){let i=!0;return et(t,((t,e)=>{n(t)||(e(),i=!1)}),e),i}(e,t,n)}static pluck(t,n){const e=yt();if(e)return function(t,n,e){et(t,(t=>{n(t)&&t.parent&&t.parent.removeChild(t)}),e)}(e,t,n)}}class rt{static hasNoTests(){return!st.has(Z.is)}static someIncompleteTests(t){return st.some((n=>(Z.isX(n),n.isPending()&&t(n))),Z.is)}static someTests(t){return st.some((n=>(Z.isX(n),t(n))),Z.is)}static everyTest(t){return st.every((n=>(Z.isX(n),t(n))),Z.is)}static walkTests(t){st.walk(((n,e)=>{Z.isX(n),t(n,e)}),Z.is)}static hasRemainingTests(t){return rt.someIncompleteTests((n=>!t||N(n,t)))}static pluckTests(t){st.pluck((n=>(Z.isX(n),t(n))),Z.is)}static resetField(t){rt.walkTests((n=>{N(n,t)&&n.reset()}))}static removeTestByFieldName(t){rt.pluckTests((n=>N(n,t)))}}function ut(){const t=e.bus.createBus();return n(nt.TEST_COMPLETED,(n=>{n.isCanceled()||(n.pass(),function(t){const[n]=St();t&&!rt.hasRemainingTests(t)&&e.isArray(n[t])&&e.callEach(n[t])}(n.fieldName),rt.hasRemainingTests()||t.emit(nt.ALL_RUNNING_TESTS_FINISHED))})),n(nt.TEST_RUN_STARTED,(()=>{})),n(nt.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=Tt();e.callEach(t)}()})),n(nt.RESET_FIELD,(t=>{rt.resetField(t)})),n(nt.SUITE_RUN_STARTED,(()=>{lt()})),n(nt.REMOVE_FIELD,(t=>{rt.removeTestByFieldName(t)})),n(nt.RESET_SUITE,(()=>{!function(){lt();const[,,t]=vt();t()}()})),t;function n(n,e){t.on(n,((...t)=>{at.useX().suiteResultCache.invalidate([pt()]),e(...t)}))}}!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_CALLBACK_DONE_RUNNING="suite_callback_done_running",t.SUITE_RUN_STARTED="suite_run_started"}(nt||(nt={}));const ot=e.cache(),at=i.createCascade(((t,n)=>{if(n)return null;e.invariant(t.historyRoot);const[i]=t.historyRoot(),s={};return e.assign(s,{historyNode:i,optional:{},runtimeNode:null,runtimeRoot:null},t),s}));function ct(t){const n=at.useX();return function(...e){var i;const s=null!==(i=at.use())&&void 0!==i?i:n;return at.run(s,(()=>t(...e)))}}function lt(){const[,,t]=Tt(),[,,n]=St();t(),n()}function ft(){return at.useX().VestBus}function dt(){return ct(ft().emit)}function Et(t){const n=dt();return e=>n(t,e)}function Nt(){return at.useX().optional}function ht(t){var n;return null!==(n=Nt()[t])&&void 0!==n?n:{}}function Tt(){return at.useX().doneCallbacks()}function St(){return at.useX().fieldCallbacks()}function vt(){return at.useX().historyRoot()}function mt(){return at.useX().historyNode}function pt(){return at.useX().suiteId}function Rt(){var t;return null!==(t=at.useX().runtimeNode)&&void 0!==t?t:null}function It(){var t,n;return null!==(n=null===(t=Rt())||void 0===t?void 0:t.cursor())&&void 0!==n?n:0}function gt(){return at.useX().runtimeRoot}function yt(){const t=gt();if(t)return t;const[n]=vt();return n}function Dt(t){return!!t&&ht(t).applied}function At(t,n){const i=Nt(),s=ht(t);e.assign(i,{[t]:e.assign({},s,n(s))})}function Ct(){return e.assign({},X(),{done:ct(_t)})}function _t(...t){const[n,i]=t.reverse(),s=Ct();if(function(t,n,i){var s;return!!(!e.isFunction(t)||n&&e.numberEquals(null===(s=i.tests[n])||void 0===s?void 0:s.testCount,0))}(n,i,s))return s;const r=()=>n(X());return rt.hasRemainingTests(i)?(function(t,n){const[,i]=St(),[,s]=Tt();n?i((i=>e.assign(i,{[n]:(i[n]||[]).concat(t)}))):s((n=>n.concat(t)))}(r,i),s):(r(),s)}function Ot(t){!function(t){p(t)?t.skip():j()||Dt(t.fieldName)?t.omit():H(t)&&t.skip(K())}(t),t.isNonActionable()||(t.isUntested()?function(t){const n=ft(),i=function(t){return R.run({currentTest:t},(()=>t.run()))}(t);try{e.isPromise(i)?(t.asyncTest=i,t.setPending(),Pt(t)):n.emit(nt.TEST_COMPLETED,t)}catch(n){throw new Error(`Unexpected error encountered during test registration.\n Test Object: ${JSON.stringify(t)}.\n Error: ${n}.`)}}(t):t.isAsyncTest()&&(t.setPending(),Pt(t)))}function Pt(t){const{asyncTest:n,message:i}=t;if(!e.isPromise(n))return;const s=ft(),r=ct((()=>{s.emit(nt.TEST_COMPLETED,t)})),u=ct((n=>{t.isCanceled()||(t.message=e.isStringValue(n)?n:i,t.fail(),r())}));n.then(r,u)}function Ut(t,...n){const[i,s,r]=e.isFunction(n[1])?n:[void 0,...n];e.invariant(e.isStringValue(t),Lt("fieldName","string")),e.invariant(e.isFunction(s),Lt("callback","function"));const u={fieldName:t,groupName:R.useX().groupName,key:r,message:i,testFn:s};return dt()(nt.TEST_RUN_STARTED),function(t){return Z.factory((t=>Ot(t)),t)}(u)}const Ft=e.assign(Ut,{memo:function(t){return function(n,...i){const[s,r,u]=i.reverse();return function(t,n){const i=R.useX().testMemoCache,s=i.get(t);if(e.isNull(s))return i(t,n);const[,r]=s;if(r.isCanceled())return i.invalidate(t),i(t,n);return Z.setNode(r),r}([pt(),n,It()].concat(s),(function(){return t(n,u,r)}))}}(Ut)});function Lt(t,n){return`Incompatible params passed to test function. Test ${t} must be a ${n}`}Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.create=function(...t){const[n,i]=t.reverse();!function(t){e.invariant(e.isFunction(t),"vest.create: Expected callback to be a function.")}(n);const s=function({suiteName:t}){return{VestBus:ut(),doneCallbacks:e.tinyState.createTinyState((()=>[])),fieldCallbacks:e.tinyState.createTinyState((()=>({}))),historyRoot:e.tinyState.createTinyState(null),optional:{},suiteId:e.seq(),suiteName:t,suiteResultCache:ot}}({suiteName:i});function u(...t){return R.run({},(()=>(dt()(nt.SUITE_RUN_STARTED),A.create(r.SUITE,function(...t){return()=>(n(...t),Ct())}(...t))))).output}return at.run(s,(()=>e.assign(at.bind(s,u),{get:ct(X),remove:Et(nt.REMOVE_FIELD),reset:Et(nt.RESET_SUITE),resetField:Et(nt.RESET_FIELD)})))},t.each=function(t,n){e.invariant(e.isFunction(n),"each callback must be a function"),A.create(r.EACH,(()=>{t.forEach(((t,e)=>{n(t,e)}))}))},t.eager=function(){const[,t]=y();t(v.EAGER)},t.group=function(t,n){return A.create(r.GROUP,(()=>{R.run({groupName:t},n)}))},t.include=function(t){const n=g(),i=I();return e.invariant(e.isStringValue(t)),n[t]=e.defaultTo(i.tests[t],!0),{when:function(n){const i=g(),s=I();i[t]=()=>e.hasOwnProperty(s.tests,t)?e.defaultTo(s.tests[t],!0):e.isStringValue(n)?Boolean(s.tests[n]):e.optionalFunctionValue(n,e.optionalFunctionValue(X))}}},t.omitWhen=function(t,n){A.create(r.OMIT_WHEN,(()=>{R.run({omitted:j()||e.optionalFunctionValue(t,e.optionalFunctionValue(X))},n)}))},t.only=V,t.optional=function(t){if(e.isArray(t)||e.isStringValue(t))e.asArray(t).forEach((t=>{At(t,(()=>({type:s.Delayed,applied:!1,rule:null})))}));else for(const n in t){const i=t[n];At(n,(()=>({type:s.Immediate,rule:i,applied:e.optionalFunctionValue(i)})))}},t.skip=x,t.skipWhen=function(t,n){A.create(r.SKIP_WHEN,(()=>{R.run({skipped:K()||e.optionalFunctionValue(t,e.optionalFunctionValue(X))},n)}))},t.suiteSelectors=k,t.test=Ft,t.warn=function(){const t=(n=u.HOOK_CALLED_OUTSIDE,R.useX(n).currentTest);var n;e.invariant(t,"warn called outside of a test."),t.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "5.0.0-dev-781e21",
|
|
3
|
-
"license": "MIT",
|
|
4
2
|
"name": "vest",
|
|
3
|
+
"version": "5.0.2-dev-d315d9",
|
|
4
|
+
"description": "Declarative Form Validations Framework",
|
|
5
|
+
"license": "MIT",
|
|
5
6
|
"author": "ealush",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "vx test",
|
|
8
|
-
"build": "vx build",
|
|
9
|
-
"release": "vx release"
|
|
10
|
-
},
|
|
11
7
|
"main": "./dist/cjs/vest.js",
|
|
12
|
-
"types": "./types/vest.d.ts",
|
|
13
8
|
"module": "./dist/es/vest.production.js",
|
|
9
|
+
"unpkg": "./dist/umd/vest.production.js",
|
|
10
|
+
"jsdelivr": "./dist/umd/vest.production.js",
|
|
11
|
+
"types": "./types/vest.d.ts",
|
|
14
12
|
"repository": {
|
|
15
13
|
"type": "git",
|
|
16
14
|
"url": "https://github.com/ealush/vest.git",
|
|
@@ -20,11 +18,11 @@
|
|
|
20
18
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
19
|
},
|
|
22
20
|
"dependencies": {
|
|
23
|
-
"context": "^3.0.
|
|
24
|
-
"n4s": "^
|
|
25
|
-
"
|
|
21
|
+
"context": "^3.0.5-dev-d315d9",
|
|
22
|
+
"n4s": "^4.3.5-dev-d315d9",
|
|
23
|
+
"vast": "^1.0.15-dev-d315d9",
|
|
24
|
+
"vest-utils": "^0.1.0-dev-d315d9"
|
|
26
25
|
},
|
|
27
|
-
"homepage": "https://vestjs.dev/",
|
|
28
26
|
"exports": {
|
|
29
27
|
"./classnames": {
|
|
30
28
|
"production": {
|
|
@@ -227,8 +225,6 @@
|
|
|
227
225
|
"default": "./dist/cjs/vest.production.js"
|
|
228
226
|
},
|
|
229
227
|
"./package.json": "./package.json",
|
|
230
|
-
"
|
|
231
|
-
}
|
|
232
|
-
"unpkg": "./dist/umd/vest.production.js",
|
|
233
|
-
"jsdelivr": "./dist/umd/vest.production.js"
|
|
228
|
+
"./*": "./*"
|
|
229
|
+
}
|
|
234
230
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Stateful behavior Should have all fields 1`] = `
|
|
4
|
+
{
|
|
5
|
+
"field_1": {
|
|
6
|
+
"errorCount": 1,
|
|
7
|
+
"errors": [
|
|
8
|
+
"field_statement_1",
|
|
9
|
+
],
|
|
10
|
+
"testCount": 1,
|
|
11
|
+
"valid": false,
|
|
12
|
+
"warnCount": 0,
|
|
13
|
+
"warnings": [],
|
|
14
|
+
},
|
|
15
|
+
"field_2": {
|
|
16
|
+
"errorCount": 1,
|
|
17
|
+
"errors": [
|
|
18
|
+
"field_statement_2",
|
|
19
|
+
],
|
|
20
|
+
"testCount": 1,
|
|
21
|
+
"valid": false,
|
|
22
|
+
"warnCount": 0,
|
|
23
|
+
"warnings": [],
|
|
24
|
+
},
|
|
25
|
+
"field_3": {
|
|
26
|
+
"errorCount": 0,
|
|
27
|
+
"errors": [],
|
|
28
|
+
"testCount": 1,
|
|
29
|
+
"valid": true,
|
|
30
|
+
"warnCount": 0,
|
|
31
|
+
"warnings": [],
|
|
32
|
+
},
|
|
33
|
+
"field_4": {
|
|
34
|
+
"errorCount": 0,
|
|
35
|
+
"errors": [],
|
|
36
|
+
"testCount": 2,
|
|
37
|
+
"valid": true,
|
|
38
|
+
"warnCount": 1,
|
|
39
|
+
"warnings": [
|
|
40
|
+
"field_statement_4",
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
"field_5": {
|
|
44
|
+
"errorCount": 2,
|
|
45
|
+
"errors": [
|
|
46
|
+
"field_statement_5",
|
|
47
|
+
"field_statement_6",
|
|
48
|
+
],
|
|
49
|
+
"testCount": 2,
|
|
50
|
+
"valid": false,
|
|
51
|
+
"warnCount": 0,
|
|
52
|
+
"warnings": [],
|
|
53
|
+
},
|
|
54
|
+
"field_6": {
|
|
55
|
+
"errorCount": 0,
|
|
56
|
+
"errors": [],
|
|
57
|
+
"testCount": 1,
|
|
58
|
+
"valid": false,
|
|
59
|
+
"warnCount": 0,
|
|
60
|
+
"warnings": [],
|
|
61
|
+
},
|
|
62
|
+
"field_7": {
|
|
63
|
+
"errorCount": 0,
|
|
64
|
+
"errors": [],
|
|
65
|
+
"testCount": 1,
|
|
66
|
+
"valid": false,
|
|
67
|
+
"warnCount": 0,
|
|
68
|
+
"warnings": [],
|
|
69
|
+
},
|
|
70
|
+
}
|
|
71
|
+
`;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Base behavior Should produce correct validation result 1`] = `
|
|
4
|
+
{
|
|
5
|
+
"done": [Function],
|
|
6
|
+
"errorCount": 2,
|
|
7
|
+
"getErrors": [Function],
|
|
8
|
+
"getErrorsByGroup": [Function],
|
|
9
|
+
"getWarnings": [Function],
|
|
10
|
+
"getWarningsByGroup": [Function],
|
|
11
|
+
"groups": {},
|
|
12
|
+
"hasErrors": [Function],
|
|
13
|
+
"hasErrorsByGroup": [Function],
|
|
14
|
+
"hasWarnings": [Function],
|
|
15
|
+
"hasWarningsByGroup": [Function],
|
|
16
|
+
"isValid": [Function],
|
|
17
|
+
"isValidByGroup": [Function],
|
|
18
|
+
"suiteName": undefined,
|
|
19
|
+
"testCount": 5,
|
|
20
|
+
"tests": {
|
|
21
|
+
"field_1": {
|
|
22
|
+
"errorCount": 1,
|
|
23
|
+
"errors": [
|
|
24
|
+
"field_statement_1",
|
|
25
|
+
],
|
|
26
|
+
"testCount": 1,
|
|
27
|
+
"valid": false,
|
|
28
|
+
"warnCount": 0,
|
|
29
|
+
"warnings": [],
|
|
30
|
+
},
|
|
31
|
+
"field_2": {
|
|
32
|
+
"errorCount": 1,
|
|
33
|
+
"errors": [
|
|
34
|
+
"field_statement_2",
|
|
35
|
+
],
|
|
36
|
+
"testCount": 1,
|
|
37
|
+
"valid": false,
|
|
38
|
+
"warnCount": 0,
|
|
39
|
+
"warnings": [],
|
|
40
|
+
},
|
|
41
|
+
"field_3": {
|
|
42
|
+
"errorCount": 0,
|
|
43
|
+
"errors": [],
|
|
44
|
+
"testCount": 1,
|
|
45
|
+
"valid": true,
|
|
46
|
+
"warnCount": 0,
|
|
47
|
+
"warnings": [],
|
|
48
|
+
},
|
|
49
|
+
"field_4": {
|
|
50
|
+
"errorCount": 0,
|
|
51
|
+
"errors": [],
|
|
52
|
+
"testCount": 2,
|
|
53
|
+
"valid": true,
|
|
54
|
+
"warnCount": 1,
|
|
55
|
+
"warnings": [
|
|
56
|
+
"field_statement_4",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
"field_5": {
|
|
60
|
+
"errorCount": 0,
|
|
61
|
+
"errors": [],
|
|
62
|
+
"testCount": 0,
|
|
63
|
+
"valid": false,
|
|
64
|
+
"warnCount": 0,
|
|
65
|
+
"warnings": [],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
"valid": false,
|
|
69
|
+
"warnCount": 1,
|
|
70
|
+
}
|
|
71
|
+
`;
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Stateful async tests Merges skipped validations from previous suite 1`] = `
|
|
4
|
+
{
|
|
5
|
+
"done": [Function],
|
|
6
|
+
"errorCount": 1,
|
|
7
|
+
"getErrors": [Function],
|
|
8
|
+
"getErrorsByGroup": [Function],
|
|
9
|
+
"getWarnings": [Function],
|
|
10
|
+
"getWarningsByGroup": [Function],
|
|
11
|
+
"groups": {
|
|
12
|
+
"group": {
|
|
13
|
+
"field_1": {
|
|
14
|
+
"errorCount": 0,
|
|
15
|
+
"errors": [],
|
|
16
|
+
"testCount": 0,
|
|
17
|
+
"valid": false,
|
|
18
|
+
"warnCount": 0,
|
|
19
|
+
"warnings": [],
|
|
20
|
+
},
|
|
21
|
+
"field_4": {
|
|
22
|
+
"errorCount": 0,
|
|
23
|
+
"errors": [],
|
|
24
|
+
"testCount": 0,
|
|
25
|
+
"valid": false,
|
|
26
|
+
"warnCount": 0,
|
|
27
|
+
"warnings": [],
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
"hasErrors": [Function],
|
|
32
|
+
"hasErrorsByGroup": [Function],
|
|
33
|
+
"hasWarnings": [Function],
|
|
34
|
+
"hasWarningsByGroup": [Function],
|
|
35
|
+
"isValid": [Function],
|
|
36
|
+
"isValidByGroup": [Function],
|
|
37
|
+
"suiteName": undefined,
|
|
38
|
+
"testCount": 3,
|
|
39
|
+
"tests": {
|
|
40
|
+
"field_1": {
|
|
41
|
+
"errorCount": 1,
|
|
42
|
+
"errors": [
|
|
43
|
+
"field_message_1",
|
|
44
|
+
],
|
|
45
|
+
"testCount": 1,
|
|
46
|
+
"valid": false,
|
|
47
|
+
"warnCount": 0,
|
|
48
|
+
"warnings": [],
|
|
49
|
+
},
|
|
50
|
+
"field_2": {
|
|
51
|
+
"errorCount": 0,
|
|
52
|
+
"errors": [],
|
|
53
|
+
"testCount": 2,
|
|
54
|
+
"valid": false,
|
|
55
|
+
"warnCount": 0,
|
|
56
|
+
"warnings": [],
|
|
57
|
+
},
|
|
58
|
+
"field_3": {
|
|
59
|
+
"errorCount": 0,
|
|
60
|
+
"errors": [],
|
|
61
|
+
"testCount": 0,
|
|
62
|
+
"valid": false,
|
|
63
|
+
"warnCount": 0,
|
|
64
|
+
"warnings": [],
|
|
65
|
+
},
|
|
66
|
+
"field_4": {
|
|
67
|
+
"errorCount": 0,
|
|
68
|
+
"errors": [],
|
|
69
|
+
"testCount": 0,
|
|
70
|
+
"valid": false,
|
|
71
|
+
"warnCount": 0,
|
|
72
|
+
"warnings": [],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
"valid": false,
|
|
76
|
+
"warnCount": 0,
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
|
|
80
|
+
exports[`Stateful async tests Merges skipped validations from previous suite 2`] = `
|
|
81
|
+
{
|
|
82
|
+
"errorCount": 2,
|
|
83
|
+
"getErrors": [Function],
|
|
84
|
+
"getErrorsByGroup": [Function],
|
|
85
|
+
"getWarnings": [Function],
|
|
86
|
+
"getWarningsByGroup": [Function],
|
|
87
|
+
"groups": {
|
|
88
|
+
"group": {
|
|
89
|
+
"field_1": {
|
|
90
|
+
"errorCount": 0,
|
|
91
|
+
"errors": [],
|
|
92
|
+
"testCount": 0,
|
|
93
|
+
"valid": false,
|
|
94
|
+
"warnCount": 0,
|
|
95
|
+
"warnings": [],
|
|
96
|
+
},
|
|
97
|
+
"field_4": {
|
|
98
|
+
"errorCount": 0,
|
|
99
|
+
"errors": [],
|
|
100
|
+
"testCount": 0,
|
|
101
|
+
"valid": false,
|
|
102
|
+
"warnCount": 0,
|
|
103
|
+
"warnings": [],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
"hasErrors": [Function],
|
|
108
|
+
"hasErrorsByGroup": [Function],
|
|
109
|
+
"hasWarnings": [Function],
|
|
110
|
+
"hasWarningsByGroup": [Function],
|
|
111
|
+
"isValid": [Function],
|
|
112
|
+
"isValidByGroup": [Function],
|
|
113
|
+
"suiteName": undefined,
|
|
114
|
+
"testCount": 3,
|
|
115
|
+
"tests": {
|
|
116
|
+
"field_1": {
|
|
117
|
+
"errorCount": 1,
|
|
118
|
+
"errors": [
|
|
119
|
+
"field_message_1",
|
|
120
|
+
],
|
|
121
|
+
"testCount": 1,
|
|
122
|
+
"valid": false,
|
|
123
|
+
"warnCount": 0,
|
|
124
|
+
"warnings": [],
|
|
125
|
+
},
|
|
126
|
+
"field_2": {
|
|
127
|
+
"errorCount": 1,
|
|
128
|
+
"errors": [
|
|
129
|
+
"rejection_message_1",
|
|
130
|
+
],
|
|
131
|
+
"testCount": 2,
|
|
132
|
+
"valid": false,
|
|
133
|
+
"warnCount": 0,
|
|
134
|
+
"warnings": [],
|
|
135
|
+
},
|
|
136
|
+
"field_3": {
|
|
137
|
+
"errorCount": 0,
|
|
138
|
+
"errors": [],
|
|
139
|
+
"testCount": 0,
|
|
140
|
+
"valid": false,
|
|
141
|
+
"warnCount": 0,
|
|
142
|
+
"warnings": [],
|
|
143
|
+
},
|
|
144
|
+
"field_4": {
|
|
145
|
+
"errorCount": 0,
|
|
146
|
+
"errors": [],
|
|
147
|
+
"testCount": 0,
|
|
148
|
+
"valid": false,
|
|
149
|
+
"warnCount": 0,
|
|
150
|
+
"warnings": [],
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
"valid": false,
|
|
154
|
+
"warnCount": 0,
|
|
155
|
+
}
|
|
156
|
+
`;
|
|
157
|
+
|
|
158
|
+
exports[`Stateful async tests Merges skipped validations from previous suite 3`] = `
|
|
159
|
+
{
|
|
160
|
+
"errorCount": 5,
|
|
161
|
+
"getErrors": [Function],
|
|
162
|
+
"getErrorsByGroup": [Function],
|
|
163
|
+
"getWarnings": [Function],
|
|
164
|
+
"getWarningsByGroup": [Function],
|
|
165
|
+
"groups": {
|
|
166
|
+
"group": {
|
|
167
|
+
"field_1": {
|
|
168
|
+
"errorCount": 1,
|
|
169
|
+
"errors": [
|
|
170
|
+
"field_1_group_message",
|
|
171
|
+
],
|
|
172
|
+
"testCount": 1,
|
|
173
|
+
"valid": false,
|
|
174
|
+
"warnCount": 0,
|
|
175
|
+
"warnings": [],
|
|
176
|
+
},
|
|
177
|
+
"field_4": {
|
|
178
|
+
"errorCount": 1,
|
|
179
|
+
"errors": [
|
|
180
|
+
"field_4_group_message",
|
|
181
|
+
],
|
|
182
|
+
"testCount": 1,
|
|
183
|
+
"valid": false,
|
|
184
|
+
"warnCount": 0,
|
|
185
|
+
"warnings": [],
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
"hasErrors": [Function],
|
|
190
|
+
"hasErrorsByGroup": [Function],
|
|
191
|
+
"hasWarnings": [Function],
|
|
192
|
+
"hasWarningsByGroup": [Function],
|
|
193
|
+
"isValid": [Function],
|
|
194
|
+
"isValidByGroup": [Function],
|
|
195
|
+
"suiteName": undefined,
|
|
196
|
+
"testCount": 7,
|
|
197
|
+
"tests": {
|
|
198
|
+
"field_1": {
|
|
199
|
+
"errorCount": 2,
|
|
200
|
+
"errors": [
|
|
201
|
+
"field_1_group_message",
|
|
202
|
+
"field_message_1",
|
|
203
|
+
],
|
|
204
|
+
"testCount": 2,
|
|
205
|
+
"valid": false,
|
|
206
|
+
"warnCount": 0,
|
|
207
|
+
"warnings": [],
|
|
208
|
+
},
|
|
209
|
+
"field_2": {
|
|
210
|
+
"errorCount": 1,
|
|
211
|
+
"errors": [
|
|
212
|
+
"rejection_message_1",
|
|
213
|
+
],
|
|
214
|
+
"testCount": 2,
|
|
215
|
+
"valid": false,
|
|
216
|
+
"warnCount": 0,
|
|
217
|
+
"warnings": [],
|
|
218
|
+
},
|
|
219
|
+
"field_3": {
|
|
220
|
+
"errorCount": 1,
|
|
221
|
+
"errors": [
|
|
222
|
+
"field_message_3",
|
|
223
|
+
],
|
|
224
|
+
"testCount": 2,
|
|
225
|
+
"valid": false,
|
|
226
|
+
"warnCount": 0,
|
|
227
|
+
"warnings": [],
|
|
228
|
+
},
|
|
229
|
+
"field_4": {
|
|
230
|
+
"errorCount": 1,
|
|
231
|
+
"errors": [
|
|
232
|
+
"field_4_group_message",
|
|
233
|
+
],
|
|
234
|
+
"testCount": 1,
|
|
235
|
+
"valid": false,
|
|
236
|
+
"warnCount": 0,
|
|
237
|
+
"warnings": [],
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
"valid": false,
|
|
241
|
+
"warnCount": 0,
|
|
242
|
+
}
|
|
243
|
+
`;
|