vest 5.0.0-dev-9c596e → 5.0.0-next-56be98
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/classnames.development.js +1 -0
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/parser.development.js +1 -0
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/promisify.development.js +1 -0
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/vest.development.js +8 -8
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +1 -0
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/parser.development.js +1 -0
- package/dist/es/parser.production.js +1 -1
- package/dist/es/promisify.development.js +1 -0
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +8 -8
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +1 -0
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/parser.development.js +1 -0
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/promisify.development.js +1 -0
- package/dist/umd/promisify.production.js +1 -1
- package/dist/umd/vest.development.js +8 -8
- package/dist/umd/vest.production.js +1 -1
- package/package.json +5 -5
- package/types/classnames.d.ts.map +1 -1
- package/types/parser.d.ts.map +1 -1
- package/types/promisify.d.ts.map +1 -1
- package/types/vest.d.ts.map +1 -1
|
@@ -18,6 +18,7 @@ var ErrorStrings;
|
|
|
18
18
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
19
19
|
ErrorStrings["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.";
|
|
20
20
|
ErrorStrings["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}.";
|
|
21
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
21
22
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
22
23
|
|
|
23
24
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=require("vest-utils"),s=require("vest");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(e||(e={})),module.exports=function(n,i={}){const
|
|
1
|
+
"use strict";var e,t=require("vest-utils"),s=require("vest");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(e||(e={})),module.exports=function(n,i={}){const r=function(n){t.invariant(n&&t.hasOwnProperty(n,"valid"),e.PARSER_EXPECT_RESULT_OBJECT);const i=s.suiteSelectors(n),r={},o={invalid:i.hasErrors,tested:function(e){return t.isNullish(e)?t.isPositive(n.testCount):t.hasOwnProperty(r,e)?r[e]:(a(e),o.tested(e))},untested:function(e){return!(t.isPositive(n.testCount)&&o.tested(e))},valid:i.isValid,warning:i.hasWarnings};return o;function a(e){r[e]=t.hasOwnProperty(n.tests,e)&&t.isPositive(n.tests[e].testCount)}}(n);return function(e){const s=[];for(const n in i){const o=n;t.isFunction(r[o])&&r[o](e)&&s.push(i[o])}return s.join(" ")}};
|
|
@@ -20,6 +20,7 @@ var ErrorStrings;
|
|
|
20
20
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
21
21
|
ErrorStrings["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.";
|
|
22
22
|
ErrorStrings["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}.";
|
|
23
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
23
24
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
24
25
|
|
|
25
26
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("vest"),s=require("vest-utils");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(e||(e={})),exports.parse=function(n){s.invariant(n&&s.hasOwnProperty(n,"valid"),e.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(n),r={},o={invalid:i.hasErrors,tested:function(e){if(s.isNullish(e))return s.isPositive(n.testCount);if(s.hasOwnProperty(r,e))return r[e];return a(e),o.tested(e)},untested:function(e){return!(s.isPositive(n.testCount)&&o.tested(e))},valid:i.isValid,warning:i.hasWarnings};return o;function a(e){r[e]=s.hasOwnProperty(n.tests,e)&&s.isPositive(n.tests[e].testCount)}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("vest"),s=require("vest-utils");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(e||(e={})),exports.parse=function(n){s.invariant(n&&s.hasOwnProperty(n,"valid"),e.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(n),r={},o={invalid:i.hasErrors,tested:function(e){if(s.isNullish(e))return s.isPositive(n.testCount);if(s.hasOwnProperty(r,e))return r[e];return a(e),o.tested(e)},untested:function(e){return!(s.isPositive(n.testCount)&&o.tested(e))},valid:i.isValid,warning:i.hasWarnings};return o;function a(e){r[e]=s.hasOwnProperty(n.tests,e)&&s.isPositive(n.tests[e].testCount)}};
|
|
@@ -17,6 +17,7 @@ var ErrorStrings;
|
|
|
17
17
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
18
18
|
ErrorStrings["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.";
|
|
19
19
|
ErrorStrings["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}.";
|
|
20
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
20
21
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
21
22
|
|
|
22
23
|
function promisify(validatorFn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=require("vest-utils");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(e||(e={})),module.exports=function(s){return(...n)=>(t.invariant(t.isFunction(s),e.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>s(...n).done(e))))};
|
|
1
|
+
"use strict";var e,t=require("vest-utils");!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(e||(e={})),module.exports=function(s){return(...n)=>(t.invariant(t.isFunction(s),e.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>s(...n).done(e))))};
|
|
@@ -27,6 +27,7 @@ var ErrorStrings;
|
|
|
27
27
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
28
28
|
ErrorStrings["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.";
|
|
29
29
|
ErrorStrings["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}.";
|
|
30
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
30
31
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
31
32
|
|
|
32
33
|
var Events;
|
|
@@ -881,8 +882,6 @@ function useIsExcluded(testObject) {
|
|
|
881
882
|
// If there is _ANY_ `only`ed test (and we already know this one isn't) return true
|
|
882
883
|
if (hasIncludedTests(keyTests)) {
|
|
883
884
|
// Check if inclusion rules for this field (`include` hook)
|
|
884
|
-
// TODO: Check if this may need to be moved outside of the condition.
|
|
885
|
-
// What if there are no included tests? This shouldn't run then?
|
|
886
885
|
return !vestUtils.optionalFunctionValue(inclusion[fieldName]);
|
|
887
886
|
}
|
|
888
887
|
// We're done here. This field is not excluded
|
|
@@ -1659,17 +1658,18 @@ function include(fieldName) {
|
|
|
1659
1658
|
|
|
1660
1659
|
function useAttemptRunTestObjectByTier(testObject) {
|
|
1661
1660
|
useVerifyTestRun(testObject);
|
|
1662
|
-
if (testObject.isNonActionable()) {
|
|
1663
|
-
// TODO: Need to test that this works as expected
|
|
1664
|
-
return;
|
|
1665
|
-
}
|
|
1666
1661
|
if (testObject.isUntested()) {
|
|
1667
|
-
useRunTest(testObject);
|
|
1662
|
+
return useRunTest(testObject);
|
|
1668
1663
|
}
|
|
1669
|
-
|
|
1664
|
+
if (testObject.isAsyncTest()) {
|
|
1670
1665
|
testObject.setPending();
|
|
1671
1666
|
useRunAsyncTest(testObject);
|
|
1672
1667
|
}
|
|
1668
|
+
if (!testObject.isNonActionable()) {
|
|
1669
|
+
vestUtils.deferThrow(vestUtils.text(ErrorStrings.UNEXPECTED_TEST_REGISTRATION_ERROR, {
|
|
1670
|
+
testObject: JSON.stringify(testObject),
|
|
1671
|
+
}));
|
|
1672
|
+
}
|
|
1673
1673
|
}
|
|
1674
1674
|
function runSyncTest(testObject) {
|
|
1675
1675
|
return SuiteContext.run({ currentTest: testObject }, () => testObject.run());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,n,s,i,r=require("n4s"),o=require("vest-utils"),u=require("context");function a(t,e,n){if(o.isNullish(t.children))return;let s=!1;for(const r of t.children){if(s)return;if((o.isNullish(n)||o.optionalFunctionValue(n,r))&&e(r,i),s)return;a(r,((t,n)=>{e(t,(()=>{n(),i()}))}),n)}function i(){s=!0}}function c(t,e,n){let s=!1;return a(t,((t,n)=>{e(t)&&(n(),s=!0)}),n),s}function l(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(t||(t={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(e||(e={})),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"}(n||(n={}));class d{static reconciler(t,e){return o.isNullish(e),t}static reconcile(t,e){var n;const s=Ot(),i=At();let r=i;s&&(r=null!==(n=null==i?void 0:i.at(Ct()))&&void 0!==n?n:null);const u=this.reconciler(t,r);return o.invariant(u),Object.is(u,t)?[t,E(r,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Ot(),e=At();e&&t&&e.slice(Ct())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(t){o.invariant(t.usesKey());const n=function(t){var e;if(o.isNullish(t))return null;const n=St().historyNode;return null!==(e=null==n?void 0:n.keys[t])&&void 0!==e?e:null}(t.key);let s=t;return o.isNullish(n)||(s=n),function(t,n){if(!t)return;const s=Ot();if(o.invariant(s,e.NO_ACTIVE_ISOLATE),o.isNullish(s.keys[t]))return void(s.keys[t]=n);o.deferThrow(o.text(e.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:t}))}(t.key,t),s}}function E(t,e,n){const s=yt(),i=ht.run(Object.assign({historyNode:t,runtimeNode:e},!s&&{runtimeRoot:e}),(()=>n(e)));return e.output=i,i}class f{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return o.isNotNullish(this.key)}addChild(t){o.invariant(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(t){o.isNullish(this.children)||(this.children.length=t)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!l(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var t;return null!==(t=l(this,(t=>o.isNullish(t.parent))))&&void 0!==t?t:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Ot(),s=new this(e).setParent(n),[i,r]=this.reconciler.reconcile(s,t);return i.saveOutput(r),this.setNode(i),i}static setNode(t){const n=Ot();n?function(t){const n=Ot();o.invariant(n,e.NO_ACTIVE_ISOLATE),n.addChild(t)}(t):function(t){const e=ht.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(n)}static is(t){return t instanceof f}}function N(t,e){return!!e&&!h(t,e)}function h(t,e){return!(!e||t.fieldName!==e)}function T(t,e){return h(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function R(t){return t===s.ERRORS?i.ERROR_COUNT:i.WARN_COUNT}f.reconciler=d,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(s||(s={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(i||(i={}));const S=o.bindNot((function(t,e){return t.groupName===e}));function p(t){return function(t,e){return Et.someTests((n=>I(n,t,e)))}(s.ERRORS,t)}function I(t,e,n){return!!t.hasFailures()&&(!N(t,n)&&!function(t,e){return o.either(t===s.WARNINGS,e.warns())}(e,t))}var _;function v(){return function(t){const[e]=D();return e===t}(exports.Modes.EAGER)}exports.Modes=void 0,(_=exports.Modes||(exports.Modes={})).ALL="ALL",_.EAGER="EAGER";const m=u.createCascade(((t,e)=>e?null:o.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:o.tinyState.createTinyState(exports.Modes.EAGER),testMemoCache:O},t)));function g(t){return m.useX(t).exclusion}function A(){return m.useX().inclusion}function D(){return m.useX().mode()}const O=o.cache(10);var C,y,P,F;class U{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class L extends U{constructor(){super(...arguments),this[C]=[],this[y]=[],this.groups={},this.tests={},this.valid=!1}}function W(t){return!!Ut(t)||!Et.hasNoTests()&&(!p(t)&&(!function(t){return Et.someIncompleteTests((e=>x(e,t)))}(t)&&function(t){return Et.everyTest((e=>k(e,t)))}(t)))}function G(t,e){return!!Ut(e)||!function(t,e,n){return Et.someTests((s=>!S(s,e)&&I(s,t,n)))}(s.ERRORS,t,e)&&(!function(t,e){return Et.someIncompleteTests((n=>!S(n,t)&&x(n,e)))}(t,e)&&function(t,e){return Et.everyTest((n=>!!S(n,t)||k(n,e)))}(t,e))}function x(t,e){return!N(t,e)&&Ut(e)}function k(e,n){return!!N(e,n)||(function(e){var n;return(null===(n=Pt())||void 0===n?void 0:n.getOptionalField(e.fieldName).type)===t.Delayed&&e.awaitsResolution()}(e)||e.isTested()||e.isOmitted())}function w(){const t=new L;return Et.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,s=Object.assign({},t);return s[n]=b(s[n],e),s[n].valid=!1!==s[n].valid&&W(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=e;if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=b(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&G(n,s),i}(t.groups,e),t.errors=M(s.ERRORS,t.errors,e),t.warnings=M(s.WARNINGS,t.warnings,e)})),t.valid=W(),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;return t}(t)}function M(t,e,n){return(t===s.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function b(t,e){const{message:n}=e,i=o.defaultTo(t?Object.assign({},t):null,V);return e.isNonActionable()||(i.testCount++,e.isFailing()?r(s.ERRORS):e.isWarning()&&r(s.WARNINGS)),i;function r(t){const e=R(t);i[e]++,n&&(i[t]=(i[t]||[]).concat(n))}}function V(){return o.assign(new U,{errors:[],warnings:[],valid:!0})}function K(t,e,n){return n?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,e,n):function(t,e){const n={},s=R(e);for(const i in t)o.isPositive(t[i][s])&&(n[i]=t[i][e]||[]);return n}(t,e)}function B(t){const e={getError:function(e){return J(s.ERRORS,t,e)},getErrors:function(e){return X(t,s.ERRORS,e)},getErrorsByGroup:function(e,n){return j(t,s.ERRORS,e,n)},getWarning:function(e){return J(s.WARNINGS,t,e)},getWarnings:function(e){return X(t,s.WARNINGS,e)},getWarningsByGroup:function(e,n){return j(t,s.WARNINGS,e,n)},hasErrors:function(e){return Y(t,i.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return H(t,i.ERROR_COUNT,e,n)},hasWarnings:function(e){return Y(t,i.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return H(t,i.WARN_COUNT,e,n)},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 q(s,n);for(const t in s)if(!q(s,t))return!1;return!0}};return e}function X(t,e,n){return K(t.tests,e,n)}function j(t,e,n,s){return K(t.groups[n],e,s)}function q(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function H(t,e,n,s){var i,r;const u=t.groups[n];if(!u)return!1;if(s)return o.isPositive(null===(i=u[s])||void 0===i?void 0:i[e]);for(const t in u)if(o.isPositive(null===(r=u[t])||void 0===r?void 0:r[e]))return!0;return!1}function Y(t,e,n){var s;const i=n?null===(s=t.tests[n])||void 0===s?void 0:s[e]:t[e]||0;return o.isPositive(i)}function J(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>h(t,n))))||void 0===s?void 0:s.message:i[0]}function Q(){const t=w(),e=St().suiteName;return function(t){const e=St().suiteResultCache;return e([Dt()],t)}((()=>o.assign(t,B(t),{suiteName:e})))}function Z(t,e){f.create((()=>{m.run({skipped:z()||o.optionalFunctionValue(t,o.optionalFunctionValue(Q))},e)}))}function z(){return function(){var t;return null!==(t=m.useX().skipped)&&void 0!==t&&t}()}function $(t){return nt(0,"tests",t)}function tt(t){return nt(1,"tests",t)}function et(t){const{fieldName:e,groupName:n}=t;if(z())return!0;const s=g(),i=A(),r=s.tests,u=r[e];if(!1===u)return!0;const a=!0===u;if(n){if(function(t){const e=g(),n=e.groups,s=o.hasOwnProperty(n,t);if(s)return!1===n[t];return it()}(n))return!0;if(!0===s.groups[n])return!a&&(!!st(r)||!1===r[e])}return!!function(t){if(!it())return!1;return!t}(n)||!a&&(!!st(r)&&!o.optionalFunctionValue(i[e]))}function nt(t,n,s){const i=g(e.HOOK_CALLED_OUTSIDE);s&&o.asArray(s).forEach((e=>{o.isStringValue(e)&&(i[n][e]=0===t)}))}function st(t){for(const e in t)if(!0===t[e])return!0;return!1}function it(){const t=g();for(const e in t.groups)if(t.groups[e])return!0;return!1}function rt(t,e){f.create((()=>{m.run({omitted:ot()||o.optionalFunctionValue(t,o.optionalFunctionValue(Q))},e)}))}function ot(){return function(){var t;return null!==(t=m.useX().omitted)&&void 0!==t&&t}()}function ut(t,e=t){return function(t){return v()&&p(t.fieldName)}(t)?((n=t).skip(),n):function(t){return ot()||Ut(t.fieldName)}(t)?function(t){return t.omit(),t}(t):et(t)?function(t){return t.skip(z()),t}(e):t;var n}C=s.ERRORS,y=s.WARNINGS,$.group=function(t){return nt(0,"groups",t)},tt.group=function(t){return nt(1,"groups",t)};function at(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,s){let i=t.states[e][n];if(Array.isArray(i)){const[,t]=i;if(!t(s))return;i=i[0]}i&&i!==e&&(e=i)}}}(ct)}!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"}(P||(P={})),function(t){t.RESET="RESET"}(F||(F={}));const ct={initial:P.UNTESTED,states:{[P.UNTESTED]:{[P.CANCELED]:P.CANCELED,[P.FAILED]:P.FAILED,[P.OMITTED]:P.OMITTED,[P.PASSING]:P.PASSING,[P.PENDING]:P.PENDING,[P.SKIPPED]:P.SKIPPED,[P.WARNING]:P.WARNING},[P.SKIPPED]:{[F.RESET]:P.UNTESTED},[P.FAILED]:{[F.RESET]:P.UNTESTED},[P.WARNING]:{[F.RESET]:P.UNTESTED},[P.PASSING]:{[F.RESET]:P.UNTESTED},[P.PENDING]:{[F.RESET]:P.UNTESTED,[P.CANCELED]:P.CANCELED,[P.FAILED]:P.FAILED,[P.OMITTED]:P.OMITTED,[P.PASSING]:P.PASSING,[P.SKIPPED]:[P.SKIPPED,t=>!0===t],[P.WARNING]:P.WARNING},[P.CANCELED]:{[F.RESET]:P.UNTESTED},[P.OMITTED]:{[F.RESET]:P.UNTESTED}}};class lt extends f{constructor({fieldName:t,testFn:e,message:n,groupName:s,key:i=null}){super(),this.children=null,this.id=o.seq(),this.severity=dt.Error,this.stateMachine=at(),this.fieldName=t,this.testFn=e,s&&(this.groupName=s),n&&(this.message=n),this.setKey(i)}static create(t,e){return lt.cast(super.create(t,e))}static cast(t){return lt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return o.isUndefined(t)&&o.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===dt.Warning}isPending(){return this.statusEquals(P.PENDING)}isOmitted(){return this.statusEquals(P.OMITTED)}isUntested(){return this.statusEquals(P.UNTESTED)}isFailing(){return this.statusEquals(P.FAILED)}isCanceled(){return this.statusEquals(P.CANCELED)}isSkipped(){return this.statusEquals(P.SKIPPED)}isPassing(){return this.statusEquals(P.PASSING)}isWarning(){return this.statusEquals(P.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(P.PENDING)}fail(){this.setStatus(this.warns()?P.WARNING:P.FAILED)}pass(){this.setStatus(P.PASSING)}warn(){this.severity=dt.Warning}skip(t){this.setStatus(P.SKIPPED,t)}cancel(){this.setStatus(P.CANCELED)}reset(){this.stateMachine.transition(F.RESET)}omit(){this.setStatus(P.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return o.isPromise(this.asyncTest)}static is(t){return t instanceof lt}static isX(t){o.invariant(this.is(t))}}var dt;lt.reconciler=class extends d{static reconciler(t,e){if(!lt.is(t))return t;if(o.isNullish(e))return this.handleNoHistoryNode(t);if(!lt.is(e))return t;const n=this.pickNode(e,t);return function(t,e,n){t===e&<.is(e)&&(i=e)!==(s=n)&&T(s,i)&&s.isPending()&&s.cancel();var s,i}(n,t,e),n}static nodeReorderDetected(t,e){return!!lt.is(e)&&!T(e,t)}static handleCollision(t,e){return t.usesKey()?lt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):lt.cast(e||t)}static onNodeReorder(t,n){return function(t,n){if(t.shouldAllowReorder())return;o.deferThrow(o.text(e.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:lt.is(n)?n.fieldName:void 0}))}(t,n),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return ut(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?lt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(dt||(dt={}));class Et{static defaultRoot(){return Pt()}static hasNoTests(t=Et.defaultRoot()){return!t||(e=t,n=lt.is,!c(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=Et.defaultRoot()){return!!e&&c(e,(e=>(lt.isX(e),e.isPending()&&t(e))),lt.is)}static someTests(t,e=Et.defaultRoot()){return!!e&&c(e,(e=>(lt.isX(e),t(e))),lt.is)}static everyTest(t,e=Et.defaultRoot()){return!!e&&function(t,e,n){let s=!0;return a(t,((t,n)=>{e(t)||(n(),s=!1)}),n),s}(e,(e=>(lt.isX(e),t(e))),lt.is)}static walkTests(t,e=Et.defaultRoot()){e&&a(e,((e,n)=>{t(lt.cast(e),n)}),lt.is)}static hasRemainingTests(t){return Et.someIncompleteTests((e=>!t||h(e,t)))}static pluckTests(t,e=Et.defaultRoot()){e&&function(t,e,n){a(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(lt.isX(e),t(e))),lt.is)}static resetField(t){Et.walkTests((e=>{h(e,t)&&e.reset()}),Et.defaultRoot())}static removeTestByFieldName(t,e=Et.defaultRoot()){Et.pluckTests((e=>h(e,t)),e)}}function ft(){const t=o.bus.createBus();return e(n.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=mt();t&&!Et.hasRemainingTests(t)&&o.isArray(e[t])&&o.callEach(e[t])}(e.fieldName),Et.hasRemainingTests()||t.emit(n.ALL_RUNNING_TESTS_FINISHED))})),e(n.TEST_RUN_STARTED,(()=>{})),e(n.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=vt();o.callEach(t)}()})),e(n.RESET_FIELD,(t=>{Et.resetField(t)})),e(n.SUITE_RUN_STARTED,(()=>{Rt()})),e(n.REMOVE_FIELD,(t=>{Et.removeTestByFieldName(t)})),e(n.RESET_SUITE,(()=>{!function(){Rt();const[,,t]=gt();t()}()})),t;function e(e,n){t.on(e,((...t)=>{!function(){const t=St().suiteResultCache;t.invalidate([Dt()])}(),n(...t)}))}}const Nt=o.cache(),ht=u.createCascade(((t,e)=>{if(e)return null;o.invariant(t.historyRoot);const[n]=t.historyRoot(),s={};return o.assign(s,{historyNode:n,runtimeNode:null,runtimeRoot:null},t),s}));function Tt(t){const e=ht.useX();return function(...n){var s;const i=null!==(s=ht.use())&&void 0!==s?s:e;return ht.run(i,(()=>t(...n)))}}function Rt(){const[,,t]=vt(),[,,e]=mt();t(),e()}function St(){return ht.useX()}function pt(){return St().VestBus}function It(){return Tt(pt().emit)}function _t(t){const e=It();return n=>e(t,n)}function vt(){return St().doneCallbacks()}function mt(){return St().fieldCallbacks()}function gt(){return St().historyRoot()}function At(){return St().historyNode}function Dt(){return St().suiteId}function Ot(){var t;return null!==(t=St().runtimeNode)&&void 0!==t?t:null}function Ct(){var t,e;return null!==(e=null===(t=Ot())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function yt(){return St().runtimeRoot}function Pt(){const t=yt();if(t)return t;const[e]=gt();return e}function Ft(e){const n=yt();if(o.isArray(e)||o.isStringValue(e))o.asArray(e).forEach((e=>{n.setOptionalField(e,(()=>({type:t.Delayed,applied:!1,rule:null})))}));else for(const s in e){const i=e[s];n.setOptionalField(s,(()=>({type:t.Immediate,rule:i,applied:o.optionalFunctionValue(i)})))}}function Ut(t){var e,n,s;return!!t&&(null!==(s=null===(n=null===(e=Pt())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==s&&s)}class Lt extends f{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,s=n[t];Object.assign(n,{[t]:Object.assign({},s,e(s))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function Wt(t){const e=A(),n=g();return o.invariant(o.isStringValue(t)),e[t]=o.defaultTo(n.tests[t],!0),{when:function(e){const n=A(),s=g();n[t]=()=>o.hasOwnProperty(s.tests,t)?o.defaultTo(s.tests[t],!0):o.isStringValue(e)?Boolean(s.tests[e]):o.optionalFunctionValue(e,o.optionalFunctionValue(Q))}}}function Gt(t){ut(t),t.isNonActionable()||(t.isUntested()?function(t){const n=pt(),s=function(t){return m.run({currentTest:t},(()=>t.run()))}(t);try{o.isPromise(s)?(t.asyncTest=s,t.setPending(),xt(t)):kt(n,t)}catch(n){throw new Error(o.text(e.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t):t.isAsyncTest()&&(t.setPending(),xt(t)))}function xt(t){const{asyncTest:e,message:n}=t;if(!o.isPromise(e))return;const s=pt(),i=Tt((()=>{kt(s,t)})),r=Tt((e=>{t.isCanceled()||(t.message=o.isStringValue(e)?e:n,t.fail(),i())}));e.then(i,r)}function kt(t,e){e.pass(),t.emit(n.TEST_COMPLETED,e)}function wt(t,...s){const[i,r,u]=o.isFunction(s[1])?s:[void 0,...s];!function(t,n){const s="test";o.invariant(o.isStringValue(t),o.text(e.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),o.invariant(o.isFunction(n),o.text(e.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const a={fieldName:t,groupName:m.useX().groupName,key:u,message:i,testFn:r};return It()(n.TEST_RUN_STARTED),lt.create(Gt,a)}const Mt=o.assign(wt,{memo:function(t){return function(e,...n){const[s,i,r]=n.reverse();return function(t,e){const n=m.useX().testMemoCache,s=n.get(t);if(o.isNull(s))return n(t,e);const[,i]=s;if(i.isCanceled())return n.invalidate(t),n(t,e);return lt.setNode(i),i}([Dt(),e,Ct()].concat(s),(function(){return t(e,r,i)}))}}(wt)});function bt(){return{group:jt,include:Wt,omitWhen:rt,only:$,optional:Ft,skip:tt,skipWhen:Z,test:Mt}}function Vt(){return o.assign({},Q(),{done:Tt(Kt)})}function Kt(...t){const[e,n]=t.reverse(),s=Vt();if(function(t,e,n){var s;return!!(!o.isFunction(t)||e&&o.numberEquals(null===(s=n.tests[e])||void 0===s?void 0:s.testCount,0))}(e,n,s))return s;const i=()=>e(Q());return Et.hasRemainingTests(n)?(function(t,e){const[,n]=mt(),[,s]=vt();e?n((n=>o.assign(n,{[e]:(n[e]||[]).concat(t)}))):s((e=>e.concat(t)))}(i,n),s):(i(),s)}function Bt(...t){const[s,i]=t.reverse();!function(t){o.invariant(o.isFunction(t),e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const r=function({suiteName:t}={}){return{VestBus:ft(),doneCallbacks:o.tinyState.createTinyState((()=>[])),fieldCallbacks:o.tinyState.createTinyState((()=>({}))),historyRoot:o.tinyState.createTinyState(null),suiteId:o.seq(),suiteName:t,suiteResultCache:Nt}}({suiteName:i});function u(...t){return m.run({},(()=>(It()(n.SUITE_RUN_STARTED),Lt.create(function(t,...e){return()=>(t(...e),Vt())}(s,...t))))).output}return ht.run(r,(()=>o.assign(ht.bind(r,u),Object.assign({get:Tt(Q),remove:_t(n.REMOVE_FIELD),reset:_t(n.RESET_SUITE),resetField:_t(n.RESET_FIELD)},bt()))))}class Xt extends f{constructor(){super(...arguments),this.allowReorder=!0}}function jt(t,e){return f.create((()=>{m.run({groupName:t},e)}))}const qt=e.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.create=Bt,exports.each=function(t,n){o.invariant(o.isFunction(n),e.EACH_CALLBACK_MUST_BE_A_FUNCTION),Xt.create((()=>{t.forEach(((t,e)=>{n(t,e)}))}))},exports.group=jt,exports.include=Wt,exports.mode=function(t){const[,e]=D();e(t)},exports.omitWhen=rt,exports.only=$,exports.optional=Ft,exports.skip=tt,exports.skipWhen=Z,exports.staticSuite=function(t){return o.assign(((...e)=>Bt(t)(...e)),Object.assign({},bt()))},exports.suiteSelectors=B,exports.test=Mt,exports.warn=function(){const t=(n=e.HOOK_CALLED_OUTSIDE,m.useX(n).currentTest);var n;o.invariant(t,qt),t.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,n,s,i,r=require("n4s"),o=require("vest-utils"),u=require("context");function a(t,e,n){if(o.isNullish(t.children))return;let s=!1;for(const r of t.children){if(s)return;if((o.isNullish(n)||o.optionalFunctionValue(n,r))&&e(r,i),s)return;a(r,((t,n)=>{e(t,(()=>{n(),i()}))}),n)}function i(){s=!0}}function c(t,e,n){let s=!1;return a(t,((t,n)=>{e(t)&&(n(),s=!0)}),n),s}function l(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(t||(t={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(e||(e={})),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"}(n||(n={}));class d{static reconciler(t,e){return o.isNullish(e),t}static reconcile(t,e){var n;const s=Ot(),i=At();let r=i;s&&(r=null!==(n=null==i?void 0:i.at(Ct()))&&void 0!==n?n:null);const u=this.reconciler(t,r);return o.invariant(u),Object.is(u,t)?[t,E(r,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Ot(),e=At();e&&t&&e.slice(Ct())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(t){o.invariant(t.usesKey());const n=function(t){var e;if(o.isNullish(t))return null;const n=St().historyNode;return null!==(e=null==n?void 0:n.keys[t])&&void 0!==e?e:null}(t.key);let s=t;return o.isNullish(n)||(s=n),function(t,n){if(!t)return;const s=Ot();if(o.invariant(s,e.NO_ACTIVE_ISOLATE),o.isNullish(s.keys[t]))return void(s.keys[t]=n);o.deferThrow(o.text(e.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:t}))}(t.key,t),s}}function E(t,e,n){const s=yt(),i=Tt.run(Object.assign({historyNode:t,runtimeNode:e},!s&&{runtimeRoot:e}),(()=>n(e)));return e.output=i,i}class f{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return o.isNotNullish(this.key)}addChild(t){o.invariant(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(t){o.isNullish(this.children)||(this.children.length=t)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!l(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var t;return null!==(t=l(this,(t=>o.isNullish(t.parent))))&&void 0!==t?t:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Ot(),s=new this(e).setParent(n),[i,r]=this.reconciler.reconcile(s,t);return i.saveOutput(r),this.setNode(i),i}static setNode(t){const n=Ot();n?function(t){const n=Ot();o.invariant(n,e.NO_ACTIVE_ISOLATE),n.addChild(t)}(t):function(t){const e=Tt.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(n)}static is(t){return t instanceof f}}function N(t,e){return!!e&&!T(t,e)}function T(t,e){return!(!e||t.fieldName!==e)}function h(t,e){return T(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function R(t){return t===s.ERRORS?i.ERROR_COUNT:i.WARN_COUNT}f.reconciler=d,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(s||(s={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(i||(i={}));const S=o.bindNot((function(t,e){return t.groupName===e}));function p(t){return function(t,e){return Et.someTests((n=>I(n,t,e)))}(s.ERRORS,t)}function I(t,e,n){return!!t.hasFailures()&&(!N(t,n)&&!function(t,e){return o.either(t===s.WARNINGS,e.warns())}(e,t))}var _;function v(){return function(t){const[e]=D();return e===t}(exports.Modes.EAGER)}exports.Modes=void 0,(_=exports.Modes||(exports.Modes={})).ALL="ALL",_.EAGER="EAGER";const m=u.createCascade(((t,e)=>e?null:o.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:o.tinyState.createTinyState(exports.Modes.EAGER),testMemoCache:O},t)));function g(t){return m.useX(t).exclusion}function A(){return m.useX().inclusion}function D(){return m.useX().mode()}const O=o.cache(10);var C,y,P,F;class U{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class L extends U{constructor(){super(...arguments),this[C]=[],this[y]=[],this.groups={},this.tests={},this.valid=!1}}function G(t){return!!Ut(t)||!Et.hasNoTests()&&(!p(t)&&(!function(t){return Et.someIncompleteTests((e=>x(e,t)))}(t)&&function(t){return Et.everyTest((e=>b(e,t)))}(t)))}function W(t,e){return!!Ut(e)||!function(t,e,n){return Et.someTests((s=>!S(s,e)&&I(s,t,n)))}(s.ERRORS,t,e)&&(!function(t,e){return Et.someIncompleteTests((n=>!S(n,t)&&x(n,e)))}(t,e)&&function(t,e){return Et.everyTest((n=>!!S(n,t)||b(n,e)))}(t,e))}function x(t,e){return!N(t,e)&&Ut(e)}function b(e,n){return!!N(e,n)||(function(e){var n;return(null===(n=Pt())||void 0===n?void 0:n.getOptionalField(e.fieldName).type)===t.Delayed&&e.awaitsResolution()}(e)||e.isTested()||e.isOmitted())}function k(){const t=new L;return Et.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,s=Object.assign({},t);return s[n]=M(s[n],e),s[n].valid=!1!==s[n].valid&&G(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=e;if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=M(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&W(n,s),i}(t.groups,e),t.errors=w(s.ERRORS,t.errors,e),t.warnings=w(s.WARNINGS,t.warnings,e)})),t.valid=G(),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;return t}(t)}function w(t,e,n){return(t===s.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function M(t,e){const{message:n}=e,i=o.defaultTo(t?Object.assign({},t):null,V);return e.isNonActionable()||(i.testCount++,e.isFailing()?r(s.ERRORS):e.isWarning()&&r(s.WARNINGS)),i;function r(t){const e=R(t);i[e]++,n&&(i[t]=(i[t]||[]).concat(n))}}function V(){return o.assign(new U,{errors:[],warnings:[],valid:!0})}function K(t,e,n){return n?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,e,n):function(t,e){const n={},s=R(e);for(const i in t)o.isPositive(t[i][s])&&(n[i]=t[i][e]||[]);return n}(t,e)}function X(t){const e={getError:function(e){return J(s.ERRORS,t,e)},getErrors:function(e){return B(t,s.ERRORS,e)},getErrorsByGroup:function(e,n){return j(t,s.ERRORS,e,n)},getWarning:function(e){return J(s.WARNINGS,t,e)},getWarnings:function(e){return B(t,s.WARNINGS,e)},getWarningsByGroup:function(e,n){return j(t,s.WARNINGS,e,n)},hasErrors:function(e){return Y(t,i.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return H(t,i.ERROR_COUNT,e,n)},hasWarnings:function(e){return Y(t,i.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return H(t,i.WARN_COUNT,e,n)},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 q(s,n);for(const t in s)if(!q(s,t))return!1;return!0}};return e}function B(t,e,n){return K(t.tests,e,n)}function j(t,e,n,s){return K(t.groups[n],e,s)}function q(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function H(t,e,n,s){var i,r;const u=t.groups[n];if(!u)return!1;if(s)return o.isPositive(null===(i=u[s])||void 0===i?void 0:i[e]);for(const t in u)if(o.isPositive(null===(r=u[t])||void 0===r?void 0:r[e]))return!0;return!1}function Y(t,e,n){var s;const i=n?null===(s=t.tests[n])||void 0===s?void 0:s[e]:t[e]||0;return o.isPositive(i)}function J(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>T(t,n))))||void 0===s?void 0:s.message:i[0]}function Q(){const t=k(),e=St().suiteName;return n=()=>o.assign(t,X(t),{suiteName:e}),(0,St().suiteResultCache)([Dt()],n);var n}function Z(t,e){f.create((()=>{m.run({skipped:z()||o.optionalFunctionValue(t,o.optionalFunctionValue(Q))},e)}))}function z(){return function(){var t;return null!==(t=m.useX().skipped)&&void 0!==t&&t}()}function $(t){return nt(0,"tests",t)}function tt(t){return nt(1,"tests",t)}function et(t){const{fieldName:e,groupName:n}=t;if(z())return!0;const s=g(),i=A(),r=s.tests,u=r[e];if(!1===u)return!0;const a=!0===u;if(n){if(function(t){const e=g().groups;if(o.hasOwnProperty(e,t))return!1===e[t];return it()}(n))return!0;if(!0===s.groups[n])return!a&&(!!st(r)||!1===r[e])}return!!function(t){if(!it())return!1;return!t}(n)||!a&&(!!st(r)&&!o.optionalFunctionValue(i[e]))}function nt(t,n,s){const i=g(e.HOOK_CALLED_OUTSIDE);s&&o.asArray(s).forEach((e=>{o.isStringValue(e)&&(i[n][e]=0===t)}))}function st(t){for(const e in t)if(!0===t[e])return!0;return!1}function it(){const t=g();for(const e in t.groups)if(t.groups[e])return!0;return!1}function rt(t,e){f.create((()=>{m.run({omitted:ot()||o.optionalFunctionValue(t,o.optionalFunctionValue(Q))},e)}))}function ot(){return function(){var t;return null!==(t=m.useX().omitted)&&void 0!==t&&t}()}function ut(t,e=t){return function(t){return v()&&p(t.fieldName)}(t)?((n=t).skip(),n):function(t){return ot()||Ut(t.fieldName)}(t)?function(t){return t.omit(),t}(t):et(t)?function(t){return t.skip(z()),t}(e):t;var n}C=s.ERRORS,y=s.WARNINGS,$.group=function(t){return nt(0,"groups",t)},tt.group=function(t){return nt(1,"groups",t)};function at(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,s){let i=t.states[e][n];if(Array.isArray(i)){const[,t]=i;if(!t(s))return;i=i[0]}i&&i!==e&&(e=i)}}}(ct)}!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"}(P||(P={})),function(t){t.RESET="RESET"}(F||(F={}));const ct={initial:P.UNTESTED,states:{[P.UNTESTED]:{[P.CANCELED]:P.CANCELED,[P.FAILED]:P.FAILED,[P.OMITTED]:P.OMITTED,[P.PASSING]:P.PASSING,[P.PENDING]:P.PENDING,[P.SKIPPED]:P.SKIPPED,[P.WARNING]:P.WARNING},[P.SKIPPED]:{[F.RESET]:P.UNTESTED},[P.FAILED]:{[F.RESET]:P.UNTESTED},[P.WARNING]:{[F.RESET]:P.UNTESTED},[P.PASSING]:{[F.RESET]:P.UNTESTED},[P.PENDING]:{[F.RESET]:P.UNTESTED,[P.CANCELED]:P.CANCELED,[P.FAILED]:P.FAILED,[P.OMITTED]:P.OMITTED,[P.PASSING]:P.PASSING,[P.SKIPPED]:[P.SKIPPED,t=>!0===t],[P.WARNING]:P.WARNING},[P.CANCELED]:{[F.RESET]:P.UNTESTED},[P.OMITTED]:{[F.RESET]:P.UNTESTED}}};class lt extends f{constructor({fieldName:t,testFn:e,message:n,groupName:s,key:i=null}){super(),this.children=null,this.id=o.seq(),this.severity=dt.Error,this.stateMachine=at(),this.fieldName=t,this.testFn=e,s&&(this.groupName=s),n&&(this.message=n),this.setKey(i)}static create(t,e){return lt.cast(super.create(t,e))}static cast(t){return lt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return o.isUndefined(t)&&o.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===dt.Warning}isPending(){return this.statusEquals(P.PENDING)}isOmitted(){return this.statusEquals(P.OMITTED)}isUntested(){return this.statusEquals(P.UNTESTED)}isFailing(){return this.statusEquals(P.FAILED)}isCanceled(){return this.statusEquals(P.CANCELED)}isSkipped(){return this.statusEquals(P.SKIPPED)}isPassing(){return this.statusEquals(P.PASSING)}isWarning(){return this.statusEquals(P.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(P.PENDING)}fail(){this.setStatus(this.warns()?P.WARNING:P.FAILED)}pass(){this.setStatus(P.PASSING)}warn(){this.severity=dt.Warning}skip(t){this.setStatus(P.SKIPPED,t)}cancel(){this.setStatus(P.CANCELED)}reset(){this.stateMachine.transition(F.RESET)}omit(){this.setStatus(P.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return o.isPromise(this.asyncTest)}static is(t){return t instanceof lt}static isX(t){o.invariant(this.is(t))}}var dt;lt.reconciler=class extends d{static reconciler(t,e){if(!lt.is(t))return t;if(o.isNullish(e))return this.handleNoHistoryNode(t);if(!lt.is(e))return t;const n=this.pickNode(e,t);return function(t,e,n){t===e&<.is(e)&&(i=e)!==(s=n)&&h(s,i)&&s.isPending()&&s.cancel();var s,i}(n,t,e),n}static nodeReorderDetected(t,e){return!!lt.is(e)&&!h(e,t)}static handleCollision(t,e){return t.usesKey()?lt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):lt.cast(e||t)}static onNodeReorder(t,n){return function(t,n){if(t.shouldAllowReorder())return;o.deferThrow(o.text(e.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:lt.is(n)?n.fieldName:void 0}))}(t,n),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return ut(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?lt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(dt||(dt={}));class Et{static defaultRoot(){return Pt()}static hasNoTests(t=Et.defaultRoot()){return!t||(e=t,n=lt.is,!c(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=Et.defaultRoot()){return!!e&&c(e,(e=>(lt.isX(e),e.isPending()&&t(e))),lt.is)}static someTests(t,e=Et.defaultRoot()){return!!e&&c(e,(e=>(lt.isX(e),t(e))),lt.is)}static everyTest(t,e=Et.defaultRoot()){return!!e&&function(t,e,n){let s=!0;return a(t,((t,n)=>{e(t)||(n(),s=!1)}),n),s}(e,(e=>(lt.isX(e),t(e))),lt.is)}static walkTests(t,e=Et.defaultRoot()){e&&a(e,((e,n)=>{t(lt.cast(e),n)}),lt.is)}static hasRemainingTests(t){return Et.someIncompleteTests((e=>!t||T(e,t)))}static pluckTests(t,e=Et.defaultRoot()){e&&function(t,e,n){a(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(lt.isX(e),t(e))),lt.is)}static resetField(t){Et.walkTests((e=>{T(e,t)&&e.reset()}),Et.defaultRoot())}static removeTestByFieldName(t,e=Et.defaultRoot()){Et.pluckTests((e=>T(e,t)),e)}}function ft(){const t=o.bus.createBus();return e(n.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=mt();t&&!Et.hasRemainingTests(t)&&o.isArray(e[t])&&o.callEach(e[t])}(e.fieldName),Et.hasRemainingTests()||t.emit(n.ALL_RUNNING_TESTS_FINISHED))})),e(n.TEST_RUN_STARTED,(()=>{})),e(n.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=vt();o.callEach(t)}()})),e(n.RESET_FIELD,(t=>{Et.resetField(t)})),e(n.SUITE_RUN_STARTED,(()=>{Rt()})),e(n.REMOVE_FIELD,(t=>{Et.removeTestByFieldName(t)})),e(n.RESET_SUITE,(()=>{!function(){Rt();const[,,t]=gt();t()}()})),t;function e(e,n){t.on(e,((...t)=>{St().suiteResultCache.invalidate([Dt()]),n(...t)}))}}const Nt=o.cache(),Tt=u.createCascade(((t,e)=>{if(e)return null;o.invariant(t.historyRoot);const[n]=t.historyRoot(),s={};return o.assign(s,{historyNode:n,runtimeNode:null,runtimeRoot:null},t),s}));function ht(t){const e=Tt.useX();return function(...n){var s;const i=null!==(s=Tt.use())&&void 0!==s?s:e;return Tt.run(i,(()=>t(...n)))}}function Rt(){const[,,t]=vt(),[,,e]=mt();t(),e()}function St(){return Tt.useX()}function pt(){return St().VestBus}function It(){return ht(pt().emit)}function _t(t){const e=It();return n=>e(t,n)}function vt(){return St().doneCallbacks()}function mt(){return St().fieldCallbacks()}function gt(){return St().historyRoot()}function At(){return St().historyNode}function Dt(){return St().suiteId}function Ot(){var t;return null!==(t=St().runtimeNode)&&void 0!==t?t:null}function Ct(){var t,e;return null!==(e=null===(t=Ot())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function yt(){return St().runtimeRoot}function Pt(){const t=yt();if(t)return t;const[e]=gt();return e}function Ft(e){const n=yt();if(o.isArray(e)||o.isStringValue(e))o.asArray(e).forEach((e=>{n.setOptionalField(e,(()=>({type:t.Delayed,applied:!1,rule:null})))}));else for(const s in e){const i=e[s];n.setOptionalField(s,(()=>({type:t.Immediate,rule:i,applied:o.optionalFunctionValue(i)})))}}function Ut(t){var e,n,s;return!!t&&(null!==(s=null===(n=null===(e=Pt())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==s&&s)}class Lt extends f{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,s=n[t];Object.assign(n,{[t]:Object.assign({},s,e(s))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function Gt(t){const e=A(),n=g();return o.invariant(o.isStringValue(t)),e[t]=o.defaultTo(n.tests[t],!0),{when:function(e){const n=A(),s=g();n[t]=()=>o.hasOwnProperty(s.tests,t)?o.defaultTo(s.tests[t],!0):o.isStringValue(e)?Boolean(s.tests[e]):o.optionalFunctionValue(e,o.optionalFunctionValue(Q))}}}function Wt(t){if(ut(t),t.isUntested())return function(t){const n=pt(),s=function(t){return m.run({currentTest:t},(()=>t.run()))}(t);try{o.isPromise(s)?(t.asyncTest=s,t.setPending(),xt(t)):bt(n,t)}catch(n){throw new Error(o.text(e.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:n}))}}(t);t.isAsyncTest()&&(t.setPending(),xt(t)),t.isNonActionable()||o.deferThrow(o.text(e.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function xt(t){const{asyncTest:e,message:n}=t;if(!o.isPromise(e))return;const s=pt(),i=ht((()=>{bt(s,t)})),r=ht((e=>{t.isCanceled()||(t.message=o.isStringValue(e)?e:n,t.fail(),i())}));e.then(i,r)}function bt(t,e){e.pass(),t.emit(n.TEST_COMPLETED,e)}function kt(t,...s){const[i,r,u]=o.isFunction(s[1])?s:[void 0,...s];!function(t,n){const s="test";o.invariant(o.isStringValue(t),o.text(e.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"fieldName",expected:"string"})),o.invariant(o.isFunction(n),o.text(e.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:s,param:"callback",expected:"function"}))}(t,r);const a={fieldName:t,groupName:m.useX().groupName,key:u,message:i,testFn:r};return It()(n.TEST_RUN_STARTED),lt.create(Wt,a)}const wt=o.assign(kt,{memo:function(t){return function(e,...n){const[s,i,r]=n.reverse();return function(t,e){const n=m.useX().testMemoCache,s=n.get(t);if(o.isNull(s))return n(t,e);const[,i]=s;if(i.isCanceled())return n.invalidate(t),n(t,e);return lt.setNode(i),i}([Dt(),e,Ct()].concat(s),(function(){return t(e,r,i)}))}}(kt)});function Mt(){return{group:jt,include:Gt,omitWhen:rt,only:$,optional:Ft,skip:tt,skipWhen:Z,test:wt}}function Vt(){return o.assign({},Q(),{done:ht(Kt)})}function Kt(...t){const[e,n]=t.reverse(),s=Vt();if(function(t,e,n){var s;return!!(!o.isFunction(t)||e&&o.numberEquals(null===(s=n.tests[e])||void 0===s?void 0:s.testCount,0))}(e,n,s))return s;const i=()=>e(Q());return Et.hasRemainingTests(n)?(function(t,e){const[,n]=mt(),[,s]=vt();e?n((n=>o.assign(n,{[e]:(n[e]||[]).concat(t)}))):s((e=>e.concat(t)))}(i,n),s):(i(),s)}function Xt(...t){const[s,i]=t.reverse();!function(t){o.invariant(o.isFunction(t),e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(s);const r=function({suiteName:t}={}){return{VestBus:ft(),doneCallbacks:o.tinyState.createTinyState((()=>[])),fieldCallbacks:o.tinyState.createTinyState((()=>({}))),historyRoot:o.tinyState.createTinyState(null),suiteId:o.seq(),suiteName:t,suiteResultCache:Nt}}({suiteName:i});function u(...t){return m.run({},(()=>(It()(n.SUITE_RUN_STARTED),Lt.create(function(t,...e){return()=>(t(...e),Vt())}(s,...t))))).output}return Tt.run(r,(()=>o.assign(Tt.bind(r,u),Object.assign({get:ht(Q),remove:_t(n.REMOVE_FIELD),reset:_t(n.RESET_SUITE),resetField:_t(n.RESET_FIELD)},Mt()))))}class Bt extends f{constructor(){super(...arguments),this.allowReorder=!0}}function jt(t,e){return f.create((()=>{m.run({groupName:t},e)}))}const qt=e.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.create=Xt,exports.each=function(t,n){o.invariant(o.isFunction(n),e.EACH_CALLBACK_MUST_BE_A_FUNCTION),Bt.create((()=>{t.forEach(((t,e)=>{n(t,e)}))}))},exports.group=jt,exports.include=Gt,exports.mode=function(t){const[,e]=D();e(t)},exports.omitWhen=rt,exports.only=$,exports.optional=Ft,exports.skip=tt,exports.skipWhen=Z,exports.staticSuite=function(t){return o.assign(((...e)=>Xt(t)(...e)),Object.assign({},Mt()))},exports.suiteSelectors=X,exports.test=wt,exports.warn=function(){const t=(n=e.HOOK_CALLED_OUTSIDE,m.useX(n).currentTest);var n;o.invariant(t,qt),t.warn()};
|
|
@@ -16,6 +16,7 @@ var ErrorStrings;
|
|
|
16
16
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
17
17
|
ErrorStrings["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.";
|
|
18
18
|
ErrorStrings["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}.";
|
|
19
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
19
20
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
20
21
|
|
|
21
22
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{invariant as e,hasOwnProperty as t,isNullish as
|
|
1
|
+
import{invariant as e,hasOwnProperty as t,isNullish as s,isPositive as n,isFunction as o}from"vest-utils";import{suiteSelectors as r}from"vest";var i;function a(a,E={}){const u=function(o){e(o&&t(o,"valid"),i.PARSER_EXPECT_RESULT_OBJECT);const a=r(o),E={},u={invalid:a.hasErrors,tested:function(e){return s(e)?n(o.testCount):t(E,e)?E[e]:(c(e),u.tested(e))},untested:function(e){return!(n(o.testCount)&&u.tested(e))},valid:a.isValid,warning:a.hasWarnings};return u;function c(e){E[e]=t(o.tests,e)&&n(o.tests[e].testCount)}}(a);return function(e){const t=[];for(const s in E){const n=s;o(u[n])&&u[n](e)&&t.push(E[n])}return t.join(" ")}}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(i||(i={}));export{a as default};
|
|
@@ -16,6 +16,7 @@ var ErrorStrings;
|
|
|
16
16
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
17
17
|
ErrorStrings["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.";
|
|
18
18
|
ErrorStrings["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}.";
|
|
19
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
19
20
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
20
21
|
|
|
21
22
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{suiteSelectors as e}from"vest";import{invariant as t,hasOwnProperty as s,isNullish as n,isPositive as
|
|
1
|
+
import{suiteSelectors as e}from"vest";import{invariant as t,hasOwnProperty as s,isNullish as n,isPositive as r}from"vest-utils";var i;function o(o){t(o&&s(o,"valid"),i.PARSER_EXPECT_RESULT_OBJECT);const a=e(o),E={},u={invalid:a.hasErrors,tested:function(e){if(n(e))return r(o.testCount);if(s(E,e))return E[e];return _(e),u.tested(e)},untested:function(e){return!(r(o.testCount)&&u.tested(e))},valid:a.isValid,warning:a.hasWarnings};return u;function _(e){E[e]=s(o.tests,e)&&r(o.tests[e].testCount)}}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(i||(i={}));export{o as parse};
|
|
@@ -15,6 +15,7 @@ var ErrorStrings;
|
|
|
15
15
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
16
16
|
ErrorStrings["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.";
|
|
17
17
|
ErrorStrings["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}.";
|
|
18
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
18
19
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
19
20
|
|
|
20
21
|
function promisify(validatorFn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{invariant as e,isFunction as t}from"vest-utils";var s;function n(n){return(...o)=>(e(t(n),s.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>n(...o).done(e))))}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(s||(s={}));export{n as default};
|
|
1
|
+
import{invariant as e,isFunction as t}from"vest-utils";var s;function n(n){return(...o)=>(e(t(n),s.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>n(...o).done(e))))}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(s||(s={}));export{n as default};
|
|
@@ -23,6 +23,7 @@ var ErrorStrings;
|
|
|
23
23
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
24
24
|
ErrorStrings["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.";
|
|
25
25
|
ErrorStrings["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}.";
|
|
26
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
26
27
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
27
28
|
|
|
28
29
|
var Events;
|
|
@@ -877,8 +878,6 @@ function useIsExcluded(testObject) {
|
|
|
877
878
|
// If there is _ANY_ `only`ed test (and we already know this one isn't) return true
|
|
878
879
|
if (hasIncludedTests(keyTests)) {
|
|
879
880
|
// Check if inclusion rules for this field (`include` hook)
|
|
880
|
-
// TODO: Check if this may need to be moved outside of the condition.
|
|
881
|
-
// What if there are no included tests? This shouldn't run then?
|
|
882
881
|
return !optionalFunctionValue(inclusion[fieldName]);
|
|
883
882
|
}
|
|
884
883
|
// We're done here. This field is not excluded
|
|
@@ -1655,17 +1654,18 @@ function include(fieldName) {
|
|
|
1655
1654
|
|
|
1656
1655
|
function useAttemptRunTestObjectByTier(testObject) {
|
|
1657
1656
|
useVerifyTestRun(testObject);
|
|
1658
|
-
if (testObject.isNonActionable()) {
|
|
1659
|
-
// TODO: Need to test that this works as expected
|
|
1660
|
-
return;
|
|
1661
|
-
}
|
|
1662
1657
|
if (testObject.isUntested()) {
|
|
1663
|
-
useRunTest(testObject);
|
|
1658
|
+
return useRunTest(testObject);
|
|
1664
1659
|
}
|
|
1665
|
-
|
|
1660
|
+
if (testObject.isAsyncTest()) {
|
|
1666
1661
|
testObject.setPending();
|
|
1667
1662
|
useRunAsyncTest(testObject);
|
|
1668
1663
|
}
|
|
1664
|
+
if (!testObject.isNonActionable()) {
|
|
1665
|
+
deferThrow(text(ErrorStrings.UNEXPECTED_TEST_REGISTRATION_ERROR, {
|
|
1666
|
+
testObject: JSON.stringify(testObject),
|
|
1667
|
+
}));
|
|
1668
|
+
}
|
|
1669
1669
|
}
|
|
1670
1670
|
function runSyncTest(testObject) {
|
|
1671
1671
|
return SuiteContext.run({ currentTest: testObject }, () => testObject.run());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{enforce}from"n4s";import{isNullish as t,optionalFunctionValue as e,invariant as n,isNotNullish as r,bindNot as s,either as i,assign as o,tinyState as u,cache as c,defaultTo as a,isPositive as l,asArray as E,isStringValue as d,hasOwnProperty as f,deferThrow as N,text as T,isUndefined as h,seq as R,isPromise as I,isArray as S,callEach as _,bus as m,isNull as p,isFunction as v,numberEquals as A}from"vest-utils";import{createCascade as g}from"context";var D,O,C,y,U;function L(n,r,s){if(t(n.children))return;let i=!1;for(const u of n.children){if(i)return;if((t(s)||e(s,u))&&r(u,o),i)return;L(u,((t,e)=>{r(t,(()=>{e(),o()}))}),s)}function o(){i=!0}}function P(t,e,n){let r=!1;return L(t,((t,n)=>{e(t)&&(n(),r=!0)}),n),r}function F(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(D||(D={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(O||(O={})),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"}(C||(C={}));class G{static reconciler(e,n){return t(n),e}static reconcile(t,e){var r;const s=Zt(),i=Jt();let o=i;s&&(o=null!==(r=null==i?void 0:i.at(zt()))&&void 0!==r?r:null);const u=this.reconciler(t,o);return n(u),Object.is(u,t)?[t,W(o,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Zt(),e=Jt();e&&t&&e.slice(zt())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(e){n(e.usesKey());const r=function(e){var n;if(t(e))return null;const r=Bt().historyNode;return null!==(n=null==r?void 0:r.keys[e])&&void 0!==n?n:null}(e.key);let s=e;return t(r)||(s=r),function(e,r){if(!e)return;const s=Zt();if(n(s,O.NO_ACTIVE_ISOLATE),t(s.keys[e]))return void(s.keys[e]=r);N(T(O.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:e}))}(e.key,e),s}}function W(t,e,n){const r=$t(),s=bt.run(Object.assign({historyNode:t,runtimeNode:e},!r&&{runtimeRoot:e}),(()=>n(e)));return e.output=s,s}class k{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return r(this.key)}addChild(t){n(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(e){t(this.children)||(this.children.length=e)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!F(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var e;return null!==(e=F(this,(e=>t(e.parent))))&&void 0!==e?e:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Zt(),r=new this(e).setParent(n),[s,i]=this.reconciler.reconcile(r,t);return s.saveOutput(i),this.setNode(s),s}static setNode(t){const e=Zt();e?function(t){const e=Zt();n(e,O.NO_ACTIVE_ISOLATE),e.addChild(t)}(t):function(t){const e=bt.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(e)}static is(t){return t instanceof k}}function w(t,e){return!!e&&!M(t,e)}function M(t,e){return!(!e||t.fieldName!==e)}function b(t,e){return M(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function K(t){return t===y.ERRORS?U.ERROR_COUNT:U.WARN_COUNT}k.reconciler=G,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(y||(y={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(U||(U={}));const x=s((function(t,e){return t.groupName===e}));function B(t){return function(t,e){return kt.someTests((n=>X(n,t,e)))}(y.ERRORS,t)}function X(t,e,n){return!!t.hasFailures()&&(!w(t,n)&&!function(t,e){return i(t===y.WARNINGS,e.warns())}(e,t))}var V;function H(t){const[,e]=Q();e(t)}function j(){return function(t){const[e]=Q();return e===t}(V.EAGER)}!function(t){t.ALL="ALL",t.EAGER="EAGER"}(V||(V={}));const q=g(((t,e)=>e?null:o({exclusion:{tests:{},groups:{}},inclusion:{},mode:u.createTinyState(V.EAGER),testMemoCache:Z},t)));function Y(t){return q.useX(t).exclusion}function J(){return q.useX().inclusion}function Q(){return q.useX().mode()}const Z=c(10);var z,$,tt,et;class nt{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class rt extends nt{constructor(){super(...arguments),this[z]=[],this[$]=[],this.groups={},this.tests={},this.valid=!1}}function st(t){return!!ne(t)||!kt.hasNoTests()&&(!B(t)&&(!function(t){return kt.someIncompleteTests((e=>ot(e,t)))}(t)&&function(t){return kt.everyTest((e=>ut(e,t)))}(t)))}function it(t,e){return!!ne(e)||!function(t,e,n){return kt.someTests((r=>!x(r,e)&&X(r,t,n)))}(y.ERRORS,t,e)&&(!function(t,e){return kt.someIncompleteTests((n=>!x(n,t)&&ot(n,e)))}(t,e)&&function(t,e){return kt.everyTest((n=>!!x(n,t)||ut(n,e)))}(t,e))}function ot(t,e){return!w(t,e)&&ne(e)}function ut(t,e){return!!w(t,e)||(function(t){var e;return(null===(e=te())||void 0===e?void 0:e.getOptionalField(t.fieldName).type)===D.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function ct(){const t=new rt;return kt.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,r=Object.assign({},t);return r[n]=lt(r[n],e),r[n].valid=!1!==r[n].valid&&st(n),r}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:r}=e;if(!n)return t;const s=Object.assign({},t);return s[n]=s[n]||{},s[n][r]=lt(s[n][r],e),s[n][r].valid=!1!==s[n][r].valid&&it(n,r),s}(t.groups,e),t.errors=at(y.ERRORS,t.errors,e),t.warnings=at(y.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;return t}(t)}function at(t,e,n){return(t===y.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function lt(t,e){const{message:n}=e,r=a(t?Object.assign({},t):null,Et);return e.isNonActionable()||(r.testCount++,e.isFailing()?s(y.ERRORS):e.isWarning()&&s(y.WARNINGS)),r;function s(t){const e=K(t);r[e]++,n&&(r[t]=(r[t]||[]).concat(n))}}function Et(){return o(new nt,{errors:[],warnings:[],valid:!0})}function dt(t,e,n){return n?function(t,e,n){var r;return(null===(r=null==t?void 0:t[n])||void 0===r?void 0:r[e])||[]}(t,e,n):function(t,e){const n={},r=K(e);for(const s in t)l(t[s][r])&&(n[s]=t[s][e]||[]);return n}(t,e)}function ft(t){const e={getError:function(e){return St(y.ERRORS,t,e)},getErrors:function(e){return Nt(t,y.ERRORS,e)},getErrorsByGroup:function(e,n){return Tt(t,y.ERRORS,e,n)},getWarning:function(e){return St(y.WARNINGS,t,e)},getWarnings:function(e){return Nt(t,y.WARNINGS,e)},getWarningsByGroup:function(e,n){return Tt(t,y.WARNINGS,e,n)},hasErrors:function(e){return It(t,U.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return Rt(t,U.ERROR_COUNT,e,n)},hasWarnings:function(e){return It(t,U.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return Rt(t,U.WARN_COUNT,e,n)},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 r=t.groups[e];if(!r)return!1;if(n)return ht(r,n);for(const t in r)if(!ht(r,t))return!1;return!0}};return e}function Nt(t,e,n){return dt(t.tests,e,n)}function Tt(t,e,n,r){return dt(t.groups[n],e,r)}function ht(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function Rt(t,e,n,r){var s,i;const o=t.groups[n];if(!o)return!1;if(r)return l(null===(s=o[r])||void 0===s?void 0:s[e]);for(const t in o)if(l(null===(i=o[t])||void 0===i?void 0:i[e]))return!0;return!1}function It(t,e,n){var r;const s=n?null===(r=t.tests[n])||void 0===r?void 0:r[e]:t[e]||0;return l(s)}function St(t,e,n){var r;const s=e[t];return n?null===(r=s.find((t=>M(t,n))))||void 0===r?void 0:r.message:s[0]}function _t(){const t=ct(),e=Bt().suiteName;return function(t){const e=Bt().suiteResultCache;return e([Qt()],t)}((()=>o(t,ft(t),{suiteName:e})))}function mt(t,n){k.create((()=>{q.run({skipped:pt()||e(t,e(_t))},n)}))}function pt(){return function(){var t;return null!==(t=q.useX().skipped)&&void 0!==t&&t}()}function vt(t){return Dt(0,"tests",t)}function At(t){return Dt(1,"tests",t)}function gt(t){const{fieldName:n,groupName:r}=t;if(pt())return!0;const s=Y(),i=J(),o=s.tests,u=o[n];if(!1===u)return!0;const c=!0===u;if(r){if(function(t){const e=Y(),n=e.groups,r=f(n,t);if(r)return!1===n[t];return Ct()}(r))return!0;if(!0===s.groups[r])return!c&&(!!Ot(o)||!1===o[n])}return!!function(t){if(!Ct())return!1;return!t}(r)||!c&&(!!Ot(o)&&!e(i[n]))}function Dt(t,e,n){const r=Y(O.HOOK_CALLED_OUTSIDE);n&&E(n).forEach((n=>{d(n)&&(r[e][n]=0===t)}))}function Ot(t){for(const e in t)if(!0===t[e])return!0;return!1}function Ct(){const t=Y();for(const e in t.groups)if(t.groups[e])return!0;return!1}function yt(t,n){k.create((()=>{q.run({omitted:Ut()||e(t,e(_t))},n)}))}function Ut(){return function(){var t;return null!==(t=q.useX().omitted)&&void 0!==t&&t}()}function Lt(t,e=t){return function(t){return j()&&B(t.fieldName)}(t)?((n=t).skip(),n):function(t){return Ut()||ne(t.fieldName)}(t)?function(t){return t.omit(),t}(t):gt(t)?function(t){return t.skip(pt()),t}(e):t;var n}z=y.ERRORS,$=y.WARNINGS,vt.group=function(t){return Dt(0,"groups",t)},At.group=function(t){return Dt(1,"groups",t)};function Pt(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,r){let s=t.states[e][n];if(Array.isArray(s)){const[,t]=s;if(!t(r))return;s=s[0]}s&&s!==e&&(e=s)}}}(Ft)}!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"}(tt||(tt={})),function(t){t.RESET="RESET"}(et||(et={}));const Ft={initial:tt.UNTESTED,states:{[tt.UNTESTED]:{[tt.CANCELED]:tt.CANCELED,[tt.FAILED]:tt.FAILED,[tt.OMITTED]:tt.OMITTED,[tt.PASSING]:tt.PASSING,[tt.PENDING]:tt.PENDING,[tt.SKIPPED]:tt.SKIPPED,[tt.WARNING]:tt.WARNING},[tt.SKIPPED]:{[et.RESET]:tt.UNTESTED},[tt.FAILED]:{[et.RESET]:tt.UNTESTED},[tt.WARNING]:{[et.RESET]:tt.UNTESTED},[tt.PASSING]:{[et.RESET]:tt.UNTESTED},[tt.PENDING]:{[et.RESET]:tt.UNTESTED,[tt.CANCELED]:tt.CANCELED,[tt.FAILED]:tt.FAILED,[tt.OMITTED]:tt.OMITTED,[tt.PASSING]:tt.PASSING,[tt.SKIPPED]:[tt.SKIPPED,t=>!0===t],[tt.WARNING]:tt.WARNING},[tt.CANCELED]:{[et.RESET]:tt.UNTESTED},[tt.OMITTED]:{[et.RESET]:tt.UNTESTED}}};class Gt extends k{constructor({fieldName:t,testFn:e,message:n,groupName:r,key:s=null}){super(),this.children=null,this.id=R(),this.severity=Wt.Error,this.stateMachine=Pt(),this.fieldName=t,this.testFn=e,r&&(this.groupName=r),n&&(this.message=n),this.setKey(s)}static create(t,e){return Gt.cast(super.create(t,e))}static cast(t){return Gt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return h(t)&&d(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===Wt.Warning}isPending(){return this.statusEquals(tt.PENDING)}isOmitted(){return this.statusEquals(tt.OMITTED)}isUntested(){return this.statusEquals(tt.UNTESTED)}isFailing(){return this.statusEquals(tt.FAILED)}isCanceled(){return this.statusEquals(tt.CANCELED)}isSkipped(){return this.statusEquals(tt.SKIPPED)}isPassing(){return this.statusEquals(tt.PASSING)}isWarning(){return this.statusEquals(tt.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(tt.PENDING)}fail(){this.setStatus(this.warns()?tt.WARNING:tt.FAILED)}pass(){this.setStatus(tt.PASSING)}warn(){this.severity=Wt.Warning}skip(t){this.setStatus(tt.SKIPPED,t)}cancel(){this.setStatus(tt.CANCELED)}reset(){this.stateMachine.transition(et.RESET)}omit(){this.setStatus(tt.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return I(this.asyncTest)}static is(t){return t instanceof Gt}static isX(t){n(this.is(t))}}var Wt;Gt.reconciler=class extends G{static reconciler(e,n){if(!Gt.is(e))return e;if(t(n))return this.handleNoHistoryNode(e);if(!Gt.is(n))return e;const r=this.pickNode(n,e);return function(t,e,n){t===e&&Gt.is(e)&&(s=e)!==(r=n)&&b(r,s)&&r.isPending()&&r.cancel();var r,s}(r,e,n),r}static nodeReorderDetected(t,e){return!!Gt.is(e)&&!b(e,t)}static handleCollision(t,e){return t.usesKey()?Gt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):Gt.cast(e||t)}static onNodeReorder(t,e){return function(t,e){if(t.shouldAllowReorder())return;N(T(O.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:Gt.is(e)?e.fieldName:void 0}))}(t,e),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return Lt(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?Gt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(Wt||(Wt={}));class kt{static defaultRoot(){return te()}static hasNoTests(t=kt.defaultRoot()){return!t||(e=t,n=Gt.is,!P(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=kt.defaultRoot()){return!!e&&P(e,(e=>(Gt.isX(e),e.isPending()&&t(e))),Gt.is)}static someTests(t,e=kt.defaultRoot()){return!!e&&P(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static everyTest(t,e=kt.defaultRoot()){return!!e&&function(t,e,n){let r=!0;return L(t,((t,n)=>{e(t)||(n(),r=!1)}),n),r}(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static walkTests(t,e=kt.defaultRoot()){e&&L(e,((e,n)=>{t(Gt.cast(e),n)}),Gt.is)}static hasRemainingTests(t){return kt.someIncompleteTests((e=>!t||M(e,t)))}static pluckTests(t,e=kt.defaultRoot()){e&&function(t,e,n){L(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static resetField(t){kt.walkTests((e=>{M(e,t)&&e.reset()}),kt.defaultRoot())}static removeTestByFieldName(t,e=kt.defaultRoot()){kt.pluckTests((e=>M(e,t)),e)}}function wt(){const t=m.createBus();return e(C.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=qt();t&&!kt.hasRemainingTests(t)&&S(e[t])&&_(e[t])}(e.fieldName),kt.hasRemainingTests()||t.emit(C.ALL_RUNNING_TESTS_FINISHED))})),e(C.TEST_RUN_STARTED,(()=>{})),e(C.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=jt();_(t)}()})),e(C.RESET_FIELD,(t=>{kt.resetField(t)})),e(C.SUITE_RUN_STARTED,(()=>{xt()})),e(C.REMOVE_FIELD,(t=>{kt.removeTestByFieldName(t)})),e(C.RESET_SUITE,(()=>{!function(){xt();const[,,t]=Yt();t()}()})),t;function e(e,n){t.on(e,((...t)=>{!function(){const t=Bt().suiteResultCache;t.invalidate([Qt()])}(),n(...t)}))}}const Mt=c(),bt=g(((t,e)=>{if(e)return null;n(t.historyRoot);const[r]=t.historyRoot(),s={};return o(s,{historyNode:r,runtimeNode:null,runtimeRoot:null},t),s}));function Kt(t){const e=bt.useX();return function(...n){var r;const s=null!==(r=bt.use())&&void 0!==r?r:e;return bt.run(s,(()=>t(...n)))}}function xt(){const[,,t]=jt(),[,,e]=qt();t(),e()}function Bt(){return bt.useX()}function Xt(){return Bt().VestBus}function Vt(){return Kt(Xt().emit)}function Ht(t){const e=Vt();return n=>e(t,n)}function jt(){return Bt().doneCallbacks()}function qt(){return Bt().fieldCallbacks()}function Yt(){return Bt().historyRoot()}function Jt(){return Bt().historyNode}function Qt(){return Bt().suiteId}function Zt(){var t;return null!==(t=Bt().runtimeNode)&&void 0!==t?t:null}function zt(){var t,e;return null!==(e=null===(t=Zt())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function $t(){return Bt().runtimeRoot}function te(){const t=$t();if(t)return t;const[e]=Yt();return e}function ee(t){const n=$t();if(S(t)||d(t))E(t).forEach((t=>{n.setOptionalField(t,(()=>({type:D.Delayed,applied:!1,rule:null})))}));else for(const r in t){const s=t[r];n.setOptionalField(r,(()=>({type:D.Immediate,rule:s,applied:e(s)})))}}function ne(t){var e,n,r;return!!t&&(null!==(r=null===(n=null===(e=te())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==r&&r)}class re extends k{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,r=n[t];Object.assign(n,{[t]:Object.assign({},r,e(r))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function se(t){const r=J(),s=Y();return n(d(t)),r[t]=a(s.tests[t],!0),{when:function(n){const r=J(),s=Y();r[t]=()=>f(s.tests,t)?a(s.tests[t],!0):d(n)?Boolean(s.tests[n]):e(n,e(_t))}}}function ie(t){Lt(t),t.isNonActionable()||(t.isUntested()?function(t){const e=Xt(),n=function(t){return q.run({currentTest:t},(()=>t.run()))}(t);try{I(n)?(t.asyncTest=n,t.setPending(),oe(t)):ue(e,t)}catch(e){throw new Error(T(O.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t):t.isAsyncTest()&&(t.setPending(),oe(t)))}function oe(t){const{asyncTest:e,message:n}=t;if(!I(e))return;const r=Xt(),s=Kt((()=>{ue(r,t)})),i=Kt((e=>{t.isCanceled()||(t.message=d(e)?e:n,t.fail(),s())}));e.then(s,i)}function ue(t,e){e.pass(),t.emit(C.TEST_COMPLETED,e)}function ce(t,...e){const[r,s,i]=v(e[1])?e:[void 0,...e];!function(t,e){const r="test";n(d(t),T(O.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:r,param:"fieldName",expected:"string"})),n(v(e),T(O.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:r,param:"callback",expected:"function"}))}(t,s);const o={fieldName:t,groupName:q.useX().groupName,key:i,message:r,testFn:s};return Vt()(C.TEST_RUN_STARTED),Gt.create(ie,o)}const ae=o(ce,{memo:function(t){return function(e,...n){const[r,s,i]=n.reverse();return function(t,e){const n=q.useX().testMemoCache,r=n.get(t);if(p(r))return n(t,e);const[,s]=r;if(s.isCanceled())return n.invalidate(t),n(t,e);return Gt.setNode(s),s}([Qt(),e,zt()].concat(r),(function(){return t(e,i,s)}))}}(ce)});function le(){return{group:he,include:se,omitWhen:yt,only:vt,optional:ee,skip:At,skipWhen:mt,test:ae}}function Ee(){return o({},_t(),{done:Kt(de)})}function de(...t){const[e,n]=t.reverse(),r=Ee();if(function(t,e,n){var r;return!!(!v(t)||e&&A(null===(r=n.tests[e])||void 0===r?void 0:r.testCount,0))}(e,n,r))return r;const s=()=>e(_t());return kt.hasRemainingTests(n)?(function(t,e){const[,n]=qt(),[,r]=jt();e?n((n=>o(n,{[e]:(n[e]||[]).concat(t)}))):r((e=>e.concat(t)))}(s,n),r):(s(),r)}function fe(...t){const[e,r]=t.reverse();!function(t){n(v(t),O.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(e);const s=function({suiteName:t}={}){return{VestBus:wt(),doneCallbacks:u.createTinyState((()=>[])),fieldCallbacks:u.createTinyState((()=>({}))),historyRoot:u.createTinyState(null),suiteId:R(),suiteName:t,suiteResultCache:Mt}}({suiteName:r});function i(...t){return q.run({},(()=>(Vt()(C.SUITE_RUN_STARTED),re.create(function(t,...e){return()=>(t(...e),Ee())}(e,...t))))).output}return bt.run(s,(()=>o(bt.bind(s,i),Object.assign({get:Kt(_t),remove:Ht(C.REMOVE_FIELD),reset:Ht(C.RESET_SUITE),resetField:Ht(C.RESET_FIELD)},le()))))}class Ne extends k{constructor(){super(...arguments),this.allowReorder=!0}}function Te(t,e){n(v(e),O.EACH_CALLBACK_MUST_BE_A_FUNCTION),Ne.create((()=>{t.forEach(((t,n)=>{e(t,n)}))}))}function he(t,e){return k.create((()=>{q.run({groupName:t},e)}))}function Re(t){return o(((...e)=>fe(t)(...e)),Object.assign({},le()))}const Ie=O.WARN_MUST_BE_CALLED_FROM_TEST;function Se(){const t=(e=O.HOOK_CALLED_OUTSIDE,q.useX(e).currentTest);var e;n(t,Ie),t.warn()}export{V as Modes,fe as create,Te as each,he as group,se as include,H as mode,yt as omitWhen,vt as only,ee as optional,At as skip,mt as skipWhen,Re as staticSuite,ft as suiteSelectors,ae as test,Se as warn};
|
|
1
|
+
export{enforce}from"n4s";import{isNullish as t,optionalFunctionValue as e,invariant as n,isNotNullish as r,bindNot as s,either as i,assign as o,tinyState as u,cache as c,defaultTo as a,isPositive as l,asArray as E,isStringValue as d,hasOwnProperty as f,deferThrow as N,text as T,isUndefined as h,seq as R,isPromise as S,isArray as I,callEach as _,bus as m,isNull as p,isFunction as v,numberEquals as A}from"vest-utils";import{createCascade as g}from"context";var D,O,C,y,U;function P(n,r,s){if(t(n.children))return;let i=!1;for(const u of n.children){if(i)return;if((t(s)||e(s,u))&&r(u,o),i)return;P(u,((t,e)=>{r(t,(()=>{e(),o()}))}),s)}function o(){i=!0}}function L(t,e,n){let r=!1;return P(t,((t,n)=>{e(t)&&(n(),r=!0)}),n),r}function F(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(D||(D={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(O||(O={})),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"}(C||(C={}));class G{static reconciler(e,n){return t(n),e}static reconcile(t,e){var r;const s=Zt(),i=Jt();let o=i;s&&(o=null!==(r=null==i?void 0:i.at(zt()))&&void 0!==r?r:null);const u=this.reconciler(t,o);return n(u),Object.is(u,t)?[t,W(o,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Zt(),e=Jt();e&&t&&e.slice(zt())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(e){n(e.usesKey());const r=function(e){var n;if(t(e))return null;const r=xt().historyNode;return null!==(n=null==r?void 0:r.keys[e])&&void 0!==n?n:null}(e.key);let s=e;return t(r)||(s=r),function(e,r){if(!e)return;const s=Zt();if(n(s,O.NO_ACTIVE_ISOLATE),t(s.keys[e]))return void(s.keys[e]=r);N(T(O.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:e}))}(e.key,e),s}}function W(t,e,n){const r=$t(),s=Mt.run(Object.assign({historyNode:t,runtimeNode:e},!r&&{runtimeRoot:e}),(()=>n(e)));return e.output=s,s}class k{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return r(this.key)}addChild(t){n(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(e){t(this.children)||(this.children.length=e)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!F(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var e;return null!==(e=F(this,(e=>t(e.parent))))&&void 0!==e?e:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Zt(),r=new this(e).setParent(n),[s,i]=this.reconciler.reconcile(r,t);return s.saveOutput(i),this.setNode(s),s}static setNode(t){const e=Zt();e?function(t){const e=Zt();n(e,O.NO_ACTIVE_ISOLATE),e.addChild(t)}(t):function(t){const e=Mt.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(e)}static is(t){return t instanceof k}}function b(t,e){return!!e&&!w(t,e)}function w(t,e){return!(!e||t.fieldName!==e)}function M(t,e){return w(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function K(t){return t===y.ERRORS?U.ERROR_COUNT:U.WARN_COUNT}k.reconciler=G,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(y||(y={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(U||(U={}));const X=s((function(t,e){return t.groupName===e}));function x(t){return function(t,e){return kt.someTests((n=>B(n,t,e)))}(y.ERRORS,t)}function B(t,e,n){return!!t.hasFailures()&&(!b(t,n)&&!function(t,e){return i(t===y.WARNINGS,e.warns())}(e,t))}var V;function j(t){const[,e]=Q();e(t)}function H(){return function(t){const[e]=Q();return e===t}(V.EAGER)}!function(t){t.ALL="ALL",t.EAGER="EAGER"}(V||(V={}));const q=g(((t,e)=>e?null:o({exclusion:{tests:{},groups:{}},inclusion:{},mode:u.createTinyState(V.EAGER),testMemoCache:Z},t)));function Y(t){return q.useX(t).exclusion}function J(){return q.useX().inclusion}function Q(){return q.useX().mode()}const Z=c(10);var z,$,tt,et;class nt{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class rt extends nt{constructor(){super(...arguments),this[z]=[],this[$]=[],this.groups={},this.tests={},this.valid=!1}}function st(t){return!!ne(t)||!kt.hasNoTests()&&(!x(t)&&(!function(t){return kt.someIncompleteTests((e=>ot(e,t)))}(t)&&function(t){return kt.everyTest((e=>ut(e,t)))}(t)))}function it(t,e){return!!ne(e)||!function(t,e,n){return kt.someTests((r=>!X(r,e)&&B(r,t,n)))}(y.ERRORS,t,e)&&(!function(t,e){return kt.someIncompleteTests((n=>!X(n,t)&&ot(n,e)))}(t,e)&&function(t,e){return kt.everyTest((n=>!!X(n,t)||ut(n,e)))}(t,e))}function ot(t,e){return!b(t,e)&&ne(e)}function ut(t,e){return!!b(t,e)||(function(t){var e;return(null===(e=te())||void 0===e?void 0:e.getOptionalField(t.fieldName).type)===D.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function ct(){const t=new rt;return kt.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,r=Object.assign({},t);return r[n]=lt(r[n],e),r[n].valid=!1!==r[n].valid&&st(n),r}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:r}=e;if(!n)return t;const s=Object.assign({},t);return s[n]=s[n]||{},s[n][r]=lt(s[n][r],e),s[n][r].valid=!1!==s[n][r].valid&&it(n,r),s}(t.groups,e),t.errors=at(y.ERRORS,t.errors,e),t.warnings=at(y.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;return t}(t)}function at(t,e,n){return(t===y.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function lt(t,e){const{message:n}=e,r=a(t?Object.assign({},t):null,Et);return e.isNonActionable()||(r.testCount++,e.isFailing()?s(y.ERRORS):e.isWarning()&&s(y.WARNINGS)),r;function s(t){const e=K(t);r[e]++,n&&(r[t]=(r[t]||[]).concat(n))}}function Et(){return o(new nt,{errors:[],warnings:[],valid:!0})}function dt(t,e,n){return n?function(t,e,n){var r;return(null===(r=null==t?void 0:t[n])||void 0===r?void 0:r[e])||[]}(t,e,n):function(t,e){const n={},r=K(e);for(const s in t)l(t[s][r])&&(n[s]=t[s][e]||[]);return n}(t,e)}function ft(t){const e={getError:function(e){return It(y.ERRORS,t,e)},getErrors:function(e){return Nt(t,y.ERRORS,e)},getErrorsByGroup:function(e,n){return Tt(t,y.ERRORS,e,n)},getWarning:function(e){return It(y.WARNINGS,t,e)},getWarnings:function(e){return Nt(t,y.WARNINGS,e)},getWarningsByGroup:function(e,n){return Tt(t,y.WARNINGS,e,n)},hasErrors:function(e){return St(t,U.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return Rt(t,U.ERROR_COUNT,e,n)},hasWarnings:function(e){return St(t,U.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return Rt(t,U.WARN_COUNT,e,n)},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 r=t.groups[e];if(!r)return!1;if(n)return ht(r,n);for(const t in r)if(!ht(r,t))return!1;return!0}};return e}function Nt(t,e,n){return dt(t.tests,e,n)}function Tt(t,e,n,r){return dt(t.groups[n],e,r)}function ht(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function Rt(t,e,n,r){var s,i;const o=t.groups[n];if(!o)return!1;if(r)return l(null===(s=o[r])||void 0===s?void 0:s[e]);for(const t in o)if(l(null===(i=o[t])||void 0===i?void 0:i[e]))return!0;return!1}function St(t,e,n){var r;const s=n?null===(r=t.tests[n])||void 0===r?void 0:r[e]:t[e]||0;return l(s)}function It(t,e,n){var r;const s=e[t];return n?null===(r=s.find((t=>w(t,n))))||void 0===r?void 0:r.message:s[0]}function _t(){const t=ct(),e=xt().suiteName;return n=()=>o(t,ft(t),{suiteName:e}),(0,xt().suiteResultCache)([Qt()],n);var n}function mt(t,n){k.create((()=>{q.run({skipped:pt()||e(t,e(_t))},n)}))}function pt(){return function(){var t;return null!==(t=q.useX().skipped)&&void 0!==t&&t}()}function vt(t){return Dt(0,"tests",t)}function At(t){return Dt(1,"tests",t)}function gt(t){const{fieldName:n,groupName:r}=t;if(pt())return!0;const s=Y(),i=J(),o=s.tests,u=o[n];if(!1===u)return!0;const c=!0===u;if(r){if(function(t){const e=Y().groups;if(f(e,t))return!1===e[t];return Ct()}(r))return!0;if(!0===s.groups[r])return!c&&(!!Ot(o)||!1===o[n])}return!!function(t){if(!Ct())return!1;return!t}(r)||!c&&(!!Ot(o)&&!e(i[n]))}function Dt(t,e,n){const r=Y(O.HOOK_CALLED_OUTSIDE);n&&E(n).forEach((n=>{d(n)&&(r[e][n]=0===t)}))}function Ot(t){for(const e in t)if(!0===t[e])return!0;return!1}function Ct(){const t=Y();for(const e in t.groups)if(t.groups[e])return!0;return!1}function yt(t,n){k.create((()=>{q.run({omitted:Ut()||e(t,e(_t))},n)}))}function Ut(){return function(){var t;return null!==(t=q.useX().omitted)&&void 0!==t&&t}()}function Pt(t,e=t){return function(t){return H()&&x(t.fieldName)}(t)?((n=t).skip(),n):function(t){return Ut()||ne(t.fieldName)}(t)?function(t){return t.omit(),t}(t):gt(t)?function(t){return t.skip(pt()),t}(e):t;var n}z=y.ERRORS,$=y.WARNINGS,vt.group=function(t){return Dt(0,"groups",t)},At.group=function(t){return Dt(1,"groups",t)};function Lt(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,r){let s=t.states[e][n];if(Array.isArray(s)){const[,t]=s;if(!t(r))return;s=s[0]}s&&s!==e&&(e=s)}}}(Ft)}!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"}(tt||(tt={})),function(t){t.RESET="RESET"}(et||(et={}));const Ft={initial:tt.UNTESTED,states:{[tt.UNTESTED]:{[tt.CANCELED]:tt.CANCELED,[tt.FAILED]:tt.FAILED,[tt.OMITTED]:tt.OMITTED,[tt.PASSING]:tt.PASSING,[tt.PENDING]:tt.PENDING,[tt.SKIPPED]:tt.SKIPPED,[tt.WARNING]:tt.WARNING},[tt.SKIPPED]:{[et.RESET]:tt.UNTESTED},[tt.FAILED]:{[et.RESET]:tt.UNTESTED},[tt.WARNING]:{[et.RESET]:tt.UNTESTED},[tt.PASSING]:{[et.RESET]:tt.UNTESTED},[tt.PENDING]:{[et.RESET]:tt.UNTESTED,[tt.CANCELED]:tt.CANCELED,[tt.FAILED]:tt.FAILED,[tt.OMITTED]:tt.OMITTED,[tt.PASSING]:tt.PASSING,[tt.SKIPPED]:[tt.SKIPPED,t=>!0===t],[tt.WARNING]:tt.WARNING},[tt.CANCELED]:{[et.RESET]:tt.UNTESTED},[tt.OMITTED]:{[et.RESET]:tt.UNTESTED}}};class Gt extends k{constructor({fieldName:t,testFn:e,message:n,groupName:r,key:s=null}){super(),this.children=null,this.id=R(),this.severity=Wt.Error,this.stateMachine=Lt(),this.fieldName=t,this.testFn=e,r&&(this.groupName=r),n&&(this.message=n),this.setKey(s)}static create(t,e){return Gt.cast(super.create(t,e))}static cast(t){return Gt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return h(t)&&d(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===Wt.Warning}isPending(){return this.statusEquals(tt.PENDING)}isOmitted(){return this.statusEquals(tt.OMITTED)}isUntested(){return this.statusEquals(tt.UNTESTED)}isFailing(){return this.statusEquals(tt.FAILED)}isCanceled(){return this.statusEquals(tt.CANCELED)}isSkipped(){return this.statusEquals(tt.SKIPPED)}isPassing(){return this.statusEquals(tt.PASSING)}isWarning(){return this.statusEquals(tt.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(tt.PENDING)}fail(){this.setStatus(this.warns()?tt.WARNING:tt.FAILED)}pass(){this.setStatus(tt.PASSING)}warn(){this.severity=Wt.Warning}skip(t){this.setStatus(tt.SKIPPED,t)}cancel(){this.setStatus(tt.CANCELED)}reset(){this.stateMachine.transition(et.RESET)}omit(){this.setStatus(tt.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return S(this.asyncTest)}static is(t){return t instanceof Gt}static isX(t){n(this.is(t))}}var Wt;Gt.reconciler=class extends G{static reconciler(e,n){if(!Gt.is(e))return e;if(t(n))return this.handleNoHistoryNode(e);if(!Gt.is(n))return e;const r=this.pickNode(n,e);return function(t,e,n){t===e&&Gt.is(e)&&(s=e)!==(r=n)&&M(r,s)&&r.isPending()&&r.cancel();var r,s}(r,e,n),r}static nodeReorderDetected(t,e){return!!Gt.is(e)&&!M(e,t)}static handleCollision(t,e){return t.usesKey()?Gt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):Gt.cast(e||t)}static onNodeReorder(t,e){return function(t,e){if(t.shouldAllowReorder())return;N(T(O.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:Gt.is(e)?e.fieldName:void 0}))}(t,e),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return Pt(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?Gt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(Wt||(Wt={}));class kt{static defaultRoot(){return te()}static hasNoTests(t=kt.defaultRoot()){return!t||(e=t,n=Gt.is,!L(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=kt.defaultRoot()){return!!e&&L(e,(e=>(Gt.isX(e),e.isPending()&&t(e))),Gt.is)}static someTests(t,e=kt.defaultRoot()){return!!e&&L(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static everyTest(t,e=kt.defaultRoot()){return!!e&&function(t,e,n){let r=!0;return P(t,((t,n)=>{e(t)||(n(),r=!1)}),n),r}(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static walkTests(t,e=kt.defaultRoot()){e&&P(e,((e,n)=>{t(Gt.cast(e),n)}),Gt.is)}static hasRemainingTests(t){return kt.someIncompleteTests((e=>!t||w(e,t)))}static pluckTests(t,e=kt.defaultRoot()){e&&function(t,e,n){P(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(Gt.isX(e),t(e))),Gt.is)}static resetField(t){kt.walkTests((e=>{w(e,t)&&e.reset()}),kt.defaultRoot())}static removeTestByFieldName(t,e=kt.defaultRoot()){kt.pluckTests((e=>w(e,t)),e)}}function bt(){const t=m.createBus();return e(C.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=qt();t&&!kt.hasRemainingTests(t)&&I(e[t])&&_(e[t])}(e.fieldName),kt.hasRemainingTests()||t.emit(C.ALL_RUNNING_TESTS_FINISHED))})),e(C.TEST_RUN_STARTED,(()=>{})),e(C.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=Ht();_(t)}()})),e(C.RESET_FIELD,(t=>{kt.resetField(t)})),e(C.SUITE_RUN_STARTED,(()=>{Xt()})),e(C.REMOVE_FIELD,(t=>{kt.removeTestByFieldName(t)})),e(C.RESET_SUITE,(()=>{!function(){Xt();const[,,t]=Yt();t()}()})),t;function e(e,n){t.on(e,((...t)=>{xt().suiteResultCache.invalidate([Qt()]),n(...t)}))}}const wt=c(),Mt=g(((t,e)=>{if(e)return null;n(t.historyRoot);const[r]=t.historyRoot(),s={};return o(s,{historyNode:r,runtimeNode:null,runtimeRoot:null},t),s}));function Kt(t){const e=Mt.useX();return function(...n){var r;const s=null!==(r=Mt.use())&&void 0!==r?r:e;return Mt.run(s,(()=>t(...n)))}}function Xt(){const[,,t]=Ht(),[,,e]=qt();t(),e()}function xt(){return Mt.useX()}function Bt(){return xt().VestBus}function Vt(){return Kt(Bt().emit)}function jt(t){const e=Vt();return n=>e(t,n)}function Ht(){return xt().doneCallbacks()}function qt(){return xt().fieldCallbacks()}function Yt(){return xt().historyRoot()}function Jt(){return xt().historyNode}function Qt(){return xt().suiteId}function Zt(){var t;return null!==(t=xt().runtimeNode)&&void 0!==t?t:null}function zt(){var t,e;return null!==(e=null===(t=Zt())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function $t(){return xt().runtimeRoot}function te(){const t=$t();if(t)return t;const[e]=Yt();return e}function ee(t){const n=$t();if(I(t)||d(t))E(t).forEach((t=>{n.setOptionalField(t,(()=>({type:D.Delayed,applied:!1,rule:null})))}));else for(const r in t){const s=t[r];n.setOptionalField(r,(()=>({type:D.Immediate,rule:s,applied:e(s)})))}}function ne(t){var e,n,r;return!!t&&(null!==(r=null===(n=null===(e=te())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==r&&r)}class re extends k{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,r=n[t];Object.assign(n,{[t]:Object.assign({},r,e(r))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function se(t){const r=J(),s=Y();return n(d(t)),r[t]=a(s.tests[t],!0),{when:function(n){const r=J(),s=Y();r[t]=()=>f(s.tests,t)?a(s.tests[t],!0):d(n)?Boolean(s.tests[n]):e(n,e(_t))}}}function ie(t){if(Pt(t),t.isUntested())return function(t){const e=Bt(),n=function(t){return q.run({currentTest:t},(()=>t.run()))}(t);try{S(n)?(t.asyncTest=n,t.setPending(),oe(t)):ue(e,t)}catch(e){throw new Error(T(O.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t);t.isAsyncTest()&&(t.setPending(),oe(t)),t.isNonActionable()||N(T(O.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function oe(t){const{asyncTest:e,message:n}=t;if(!S(e))return;const r=Bt(),s=Kt((()=>{ue(r,t)})),i=Kt((e=>{t.isCanceled()||(t.message=d(e)?e:n,t.fail(),s())}));e.then(s,i)}function ue(t,e){e.pass(),t.emit(C.TEST_COMPLETED,e)}function ce(t,...e){const[r,s,i]=v(e[1])?e:[void 0,...e];!function(t,e){const r="test";n(d(t),T(O.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:r,param:"fieldName",expected:"string"})),n(v(e),T(O.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:r,param:"callback",expected:"function"}))}(t,s);const o={fieldName:t,groupName:q.useX().groupName,key:i,message:r,testFn:s};return Vt()(C.TEST_RUN_STARTED),Gt.create(ie,o)}const ae=o(ce,{memo:function(t){return function(e,...n){const[r,s,i]=n.reverse();return function(t,e){const n=q.useX().testMemoCache,r=n.get(t);if(p(r))return n(t,e);const[,s]=r;if(s.isCanceled())return n.invalidate(t),n(t,e);return Gt.setNode(s),s}([Qt(),e,zt()].concat(r),(function(){return t(e,i,s)}))}}(ce)});function le(){return{group:he,include:se,omitWhen:yt,only:vt,optional:ee,skip:At,skipWhen:mt,test:ae}}function Ee(){return o({},_t(),{done:Kt(de)})}function de(...t){const[e,n]=t.reverse(),r=Ee();if(function(t,e,n){var r;return!!(!v(t)||e&&A(null===(r=n.tests[e])||void 0===r?void 0:r.testCount,0))}(e,n,r))return r;const s=()=>e(_t());return kt.hasRemainingTests(n)?(function(t,e){const[,n]=qt(),[,r]=Ht();e?n((n=>o(n,{[e]:(n[e]||[]).concat(t)}))):r((e=>e.concat(t)))}(s,n),r):(s(),r)}function fe(...t){const[e,r]=t.reverse();!function(t){n(v(t),O.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(e);const s=function({suiteName:t}={}){return{VestBus:bt(),doneCallbacks:u.createTinyState((()=>[])),fieldCallbacks:u.createTinyState((()=>({}))),historyRoot:u.createTinyState(null),suiteId:R(),suiteName:t,suiteResultCache:wt}}({suiteName:r});function i(...t){return q.run({},(()=>(Vt()(C.SUITE_RUN_STARTED),re.create(function(t,...e){return()=>(t(...e),Ee())}(e,...t))))).output}return Mt.run(s,(()=>o(Mt.bind(s,i),Object.assign({get:Kt(_t),remove:jt(C.REMOVE_FIELD),reset:jt(C.RESET_SUITE),resetField:jt(C.RESET_FIELD)},le()))))}class Ne extends k{constructor(){super(...arguments),this.allowReorder=!0}}function Te(t,e){n(v(e),O.EACH_CALLBACK_MUST_BE_A_FUNCTION),Ne.create((()=>{t.forEach(((t,n)=>{e(t,n)}))}))}function he(t,e){return k.create((()=>{q.run({groupName:t},e)}))}function Re(t){return o(((...e)=>fe(t)(...e)),Object.assign({},le()))}const Se=O.WARN_MUST_BE_CALLED_FROM_TEST;function Ie(){const t=(e=O.HOOK_CALLED_OUTSIDE,q.useX(e).currentTest);var e;n(t,Se),t.warn()}export{V as Modes,fe as create,Te as each,he as group,se as include,j as mode,yt as omitWhen,vt as only,ee as optional,At as skip,mt as skipWhen,Re as staticSuite,ft as suiteSelectors,ae as test,Ie as warn};
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
20
20
|
ErrorStrings["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.";
|
|
21
21
|
ErrorStrings["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}.";
|
|
22
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
22
23
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
23
24
|
|
|
24
25
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vest-utils"),require("vest")):"function"==typeof define&&define.amd?define(["vest-utils","vest"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).classnames=t(e["vest-utils"],e.vest)}(this,(function(e,t){"use strict";var s;return function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(s||(s={})),function(n,i={}){const o=function(n){e.invariant(n&&e.hasOwnProperty(n,"valid"),s.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(n),o={},r={invalid:i.hasErrors,tested:function(t){return e.isNullish(t)?e.isPositive(n.testCount):e.hasOwnProperty(o,t)?o[t]:(a(t),r.tested(t))},untested:function(t){return!(e.isPositive(n.testCount)&&r.tested(t))},valid:i.isValid,warning:i.hasWarnings};return r;function a(t){o[t]=e.hasOwnProperty(n.tests,t)&&e.isPositive(n.tests[t].testCount)}}(n);return function(t){const s=[];for(const n in i){const r=n;e.isFunction(o[r])&&o[r](t)&&s.push(i[r])}return s.join(" ")}}}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vest-utils"),require("vest")):"function"==typeof define&&define.amd?define(["vest-utils","vest"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).classnames=t(e["vest-utils"],e.vest)}(this,(function(e,t){"use strict";var s;return function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(s||(s={})),function(n,i={}){const o=function(n){e.invariant(n&&e.hasOwnProperty(n,"valid"),s.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(n),o={},r={invalid:i.hasErrors,tested:function(t){return e.isNullish(t)?e.isPositive(n.testCount):e.hasOwnProperty(o,t)?o[t]:(a(t),r.tested(t))},untested:function(t){return!(e.isPositive(n.testCount)&&r.tested(t))},valid:i.isValid,warning:i.hasWarnings};return r;function a(t){o[t]=e.hasOwnProperty(n.tests,t)&&e.isPositive(n.tests[t].testCount)}}(n);return function(t){const s=[];for(const n in i){const r=n;e.isFunction(o[r])&&o[r](t)&&s.push(i[r])}return s.join(" ")}}}));
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
20
20
|
ErrorStrings["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.";
|
|
21
21
|
ErrorStrings["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}.";
|
|
22
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
22
23
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
23
24
|
|
|
24
25
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest"),require("vest-utils")):"function"==typeof define&&define.amd?define(["exports","vest","vest-utils"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).parser={},e.vest,e["vest-utils"])}(this,(function(e,t,s){"use strict";var n;!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}."}(n||(n={})),e.parse=function(e){s.invariant(e&&s.hasOwnProperty(e,"valid"),n.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(e),
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vest"),require("vest-utils")):"function"==typeof define&&define.amd?define(["exports","vest","vest-utils"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).parser={},e.vest,e["vest-utils"])}(this,(function(e,t,s){"use strict";var n;!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(n||(n={})),e.parse=function(e){s.invariant(e&&s.hasOwnProperty(e,"valid"),n.PARSER_EXPECT_RESULT_OBJECT);const i=t.suiteSelectors(e),r={},o={invalid:i.hasErrors,tested:function(t){if(s.isNullish(t))return s.isPositive(e.testCount);if(s.hasOwnProperty(r,t))return r[t];return a(t),o.tested(t)},untested:function(t){return!(s.isPositive(e.testCount)&&o.tested(t))},valid:i.isValid,warning:i.hasWarnings};return o;function a(t){r[t]=s.hasOwnProperty(e.tests,t)&&s.isPositive(e.tests[t].testCount)}},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
20
20
|
ErrorStrings["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.";
|
|
21
21
|
ErrorStrings["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}.";
|
|
22
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
22
23
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
23
24
|
|
|
24
25
|
function promisify(validatorFn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vest-utils")):"function"==typeof define&&define.amd?define(["vest-utils"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).promisify=t(e["vest-utils"])}(this,(function(e){"use strict";var t;return function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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||(t={})),function(
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vest-utils")):"function"==typeof define&&define.amd?define(["vest-utils"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).promisify=t(e["vest-utils"])}(this,(function(e){"use strict";var t;return function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.NO_ACTIVE_ISOLATE="Not within an active isolate",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',e.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.',e.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}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(t||(t={})),function(s){return(...n)=>(e.invariant(e.isFunction(s),t.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>s(...n).done(e))))}}));
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
ErrorStrings["ENCOUNTERED_THE_SAME_KEY_TWICE"] = "Encountered the same test key \"{key}\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.";
|
|
26
26
|
ErrorStrings["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.";
|
|
27
27
|
ErrorStrings["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}.";
|
|
28
|
+
ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
|
|
28
29
|
})(ErrorStrings || (ErrorStrings = {}));
|
|
29
30
|
|
|
30
31
|
var Events;
|
|
@@ -879,8 +880,6 @@
|
|
|
879
880
|
// If there is _ANY_ `only`ed test (and we already know this one isn't) return true
|
|
880
881
|
if (hasIncludedTests(keyTests)) {
|
|
881
882
|
// Check if inclusion rules for this field (`include` hook)
|
|
882
|
-
// TODO: Check if this may need to be moved outside of the condition.
|
|
883
|
-
// What if there are no included tests? This shouldn't run then?
|
|
884
883
|
return !vestUtils.optionalFunctionValue(inclusion[fieldName]);
|
|
885
884
|
}
|
|
886
885
|
// We're done here. This field is not excluded
|
|
@@ -1657,17 +1656,18 @@
|
|
|
1657
1656
|
|
|
1658
1657
|
function useAttemptRunTestObjectByTier(testObject) {
|
|
1659
1658
|
useVerifyTestRun(testObject);
|
|
1660
|
-
if (testObject.isNonActionable()) {
|
|
1661
|
-
// TODO: Need to test that this works as expected
|
|
1662
|
-
return;
|
|
1663
|
-
}
|
|
1664
1659
|
if (testObject.isUntested()) {
|
|
1665
|
-
useRunTest(testObject);
|
|
1660
|
+
return useRunTest(testObject);
|
|
1666
1661
|
}
|
|
1667
|
-
|
|
1662
|
+
if (testObject.isAsyncTest()) {
|
|
1668
1663
|
testObject.setPending();
|
|
1669
1664
|
useRunAsyncTest(testObject);
|
|
1670
1665
|
}
|
|
1666
|
+
if (!testObject.isNonActionable()) {
|
|
1667
|
+
vestUtils.deferThrow(vestUtils.text(ErrorStrings.UNEXPECTED_TEST_REGISTRATION_ERROR, {
|
|
1668
|
+
testObject: JSON.stringify(testObject),
|
|
1669
|
+
}));
|
|
1670
|
+
}
|
|
1671
1671
|
}
|
|
1672
1672
|
function runSyncTest(testObject) {
|
|
1673
1673
|
return SuiteContext.run({ currentTest: testObject }, () => testObject.run());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("n4s"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils","context"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t["vest-utils"],t.context)}(this,(function(t,e,n,i){"use strict";var s,r,o,u,a;function c(t,e,i){if(n.isNullish(t.children))return;let s=!1;for(const o of t.children){if(s)return;if((n.isNullish(i)||n.optionalFunctionValue(i,o))&&e(o,r),s)return;c(o,((t,n)=>{e(t,(()=>{n(),r()}))}),i)}function r(){s=!0}}function l(t,e,n){let i=!1;return c(t,((t,n)=>{e(t)&&(n(),i=!0)}),n),i}function d(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(s||(s={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(r||(r={})),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"}(o||(o={}));class f{static reconciler(t,e){return n.isNullish(e),t}static reconcile(t,e){var i;const s=Ct(),r=Dt();let o=r;s&&(o=null!==(i=null==r?void 0:r.at(yt()))&&void 0!==i?i:null);const u=this.reconciler(t,o);return n.invariant(u),Object.is(u,t)?[t,E(o,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Ct(),e=Dt();e&&t&&e.slice(yt())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(t){n.invariant(t.usesKey());const e=function(t){var e;if(n.isNullish(t))return null;const i=It().historyNode;return null!==(e=null==i?void 0:i.keys[t])&&void 0!==e?e:null}(t.key);let i=t;return n.isNullish(e)||(i=e),function(t,e){if(!t)return;const i=Ct();if(n.invariant(i,r.NO_ACTIVE_ISOLATE),n.isNullish(i.keys[t]))return void(i.keys[t]=e);n.deferThrow(n.text(r.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:t}))}(t.key,t),i}}function E(t,e,n){const i=Pt(),s=Tt.run(Object.assign({historyNode:t,runtimeNode:e},!i&&{runtimeRoot:e}),(()=>n(e)));return e.output=s,s}class N{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return n.isNotNullish(this.key)}addChild(t){n.invariant(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(t){n.isNullish(this.children)||(this.children.length=t)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!d(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var t;return null!==(t=d(this,(t=>n.isNullish(t.parent))))&&void 0!==t?t:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Ct(),i=new this(e).setParent(n),[s,r]=this.reconciler.reconcile(i,t);return s.saveOutput(r),this.setNode(s),s}static setNode(t){const e=Ct();e?function(t){const e=Ct();n.invariant(e,r.NO_ACTIVE_ISOLATE),e.addChild(t)}(t):function(t){const e=Tt.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(e)}static is(t){return t instanceof N}}function h(t,e){return!!e&&!T(t,e)}function T(t,e){return!(!e||t.fieldName!==e)}function R(t,e){return T(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function S(t){return t===u.ERRORS?a.ERROR_COUNT:a.WARN_COUNT}N.reconciler=f,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(u||(u={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(a||(a={}));const I=n.bindNot((function(t,e){return t.groupName===e}));function p(t){return function(t,e){return Et.someTests((n=>v(n,t,e)))}(u.ERRORS,t)}function v(t,e,i){return!!t.hasFailures()&&(!h(t,i)&&!function(t,e){return n.either(t===u.WARNINGS,e.warns())}(e,t))}var _;function m(){return function(t){const[e]=O();return e===t}(t.Modes.EAGER)}t.Modes=void 0,(_=t.Modes||(t.Modes={})).ALL="ALL",_.EAGER="EAGER";const g=i.createCascade(((e,i)=>i?null:n.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:n.tinyState.createTinyState(t.Modes.EAGER),testMemoCache:C},e)));function A(t){return g.useX(t).exclusion}function D(){return g.useX().inclusion}function O(){return g.useX().mode()}const C=n.cache(10);var y,P,F,U;class L{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class W extends L{constructor(){super(...arguments),this[y]=[],this[P]=[],this.groups={},this.tests={},this.valid=!1}}function G(t){return!!Lt(t)||!Et.hasNoTests()&&(!p(t)&&(!function(t){return Et.someIncompleteTests((e=>k(e,t)))}(t)&&function(t){return Et.everyTest((e=>w(e,t)))}(t)))}function b(t,e){return!!Lt(e)||!function(t,e,n){return Et.someTests((i=>!I(i,e)&&v(i,t,n)))}(u.ERRORS,t,e)&&(!function(t,e){return Et.someIncompleteTests((n=>!I(n,t)&&k(n,e)))}(t,e)&&function(t,e){return Et.everyTest((n=>!!I(n,t)||w(n,e)))}(t,e))}function k(t,e){return!h(t,e)&&Lt(e)}function w(t,e){return!!h(t,e)||(function(t){var e;return(null===(e=Ft())||void 0===e?void 0:e.getOptionalField(t.fieldName).type)===s.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function M(){const t=new W;return Et.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,i=Object.assign({},t);return i[n]=x(i[n],e),i[n].valid=!1!==i[n].valid&&G(n),i}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:i}=e;if(!n)return t;const s=Object.assign({},t);return s[n]=s[n]||{},s[n][i]=x(s[n][i],e),s[n][i].valid=!1!==s[n][i].valid&&b(n,i),s}(t.groups,e),t.errors=V(u.ERRORS,t.errors,e),t.warnings=V(u.WARNINGS,t.warnings,e)})),t.valid=G(),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;return t}(t)}function V(t,e,n){return(t===u.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function x(t,e){const{message:i}=e,s=n.defaultTo(t?Object.assign({},t):null,K);return e.isNonActionable()||(s.testCount++,e.isFailing()?r(u.ERRORS):e.isWarning()&&r(u.WARNINGS)),s;function r(t){const e=S(t);s[e]++,i&&(s[t]=(s[t]||[]).concat(i))}}function K(){return n.assign(new L,{errors:[],warnings:[],valid:!0})}function B(t,e,i){return i?function(t,e,n){var i;return(null===(i=null==t?void 0:t[n])||void 0===i?void 0:i[e])||[]}(t,e,i):function(t,e){const i={},s=S(e);for(const r in t)n.isPositive(t[r][s])&&(i[r]=t[r][e]||[]);return i}(t,e)}function X(t){const e={getError:function(e){return Q(u.ERRORS,t,e)},getErrors:function(e){return j(t,u.ERRORS,e)},getErrorsByGroup:function(e,n){return q(t,u.ERRORS,e,n)},getWarning:function(e){return Q(u.WARNINGS,t,e)},getWarnings:function(e){return j(t,u.WARNINGS,e)},getWarningsByGroup:function(e,n){return q(t,u.WARNINGS,e,n)},hasErrors:function(e){return J(t,a.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return Y(t,a.ERROR_COUNT,e,n)},hasWarnings:function(e){return J(t,a.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return Y(t,a.WARN_COUNT,e,n)},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 i=t.groups[e];if(!i)return!1;if(n)return H(i,n);for(const t in i)if(!H(i,t))return!1;return!0}};return e}function j(t,e,n){return B(t.tests,e,n)}function q(t,e,n,i){return B(t.groups[n],e,i)}function H(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function Y(t,e,i,s){var r,o;const u=t.groups[i];if(!u)return!1;if(s)return n.isPositive(null===(r=u[s])||void 0===r?void 0:r[e]);for(const t in u)if(n.isPositive(null===(o=u[t])||void 0===o?void 0:o[e]))return!0;return!1}function J(t,e,i){var s;const r=i?null===(s=t.tests[i])||void 0===s?void 0:s[e]:t[e]||0;return n.isPositive(r)}function Q(t,e,n){var i;const s=e[t];return n?null===(i=s.find((t=>T(t,n))))||void 0===i?void 0:i.message:s[0]}function Z(){const t=M(),e=It().suiteName;return function(t){const e=It().suiteResultCache;return e([Ot()],t)}((()=>n.assign(t,X(t),{suiteName:e})))}function z(t,e){N.create((()=>{g.run({skipped:$()||n.optionalFunctionValue(t,n.optionalFunctionValue(Z))},e)}))}function $(){return function(){var t;return null!==(t=g.useX().skipped)&&void 0!==t&&t}()}function tt(t){return it(0,"tests",t)}function et(t){return it(1,"tests",t)}function nt(t){const{fieldName:e,groupName:i}=t;if($())return!0;const s=A(),r=D(),o=s.tests,u=o[e];if(!1===u)return!0;const a=!0===u;if(i){if(function(t){const e=A(),i=e.groups,s=n.hasOwnProperty(i,t);if(s)return!1===i[t];return rt()}(i))return!0;if(!0===s.groups[i])return!a&&(!!st(o)||!1===o[e])}return!!function(t){if(!rt())return!1;return!t}(i)||!a&&(!!st(o)&&!n.optionalFunctionValue(r[e]))}function it(t,e,i){const s=A(r.HOOK_CALLED_OUTSIDE);i&&n.asArray(i).forEach((i=>{n.isStringValue(i)&&(s[e][i]=0===t)}))}function st(t){for(const e in t)if(!0===t[e])return!0;return!1}function rt(){const t=A();for(const e in t.groups)if(t.groups[e])return!0;return!1}function ot(t,e){N.create((()=>{g.run({omitted:ut()||n.optionalFunctionValue(t,n.optionalFunctionValue(Z))},e)}))}function ut(){return function(){var t;return null!==(t=g.useX().omitted)&&void 0!==t&&t}()}function at(t,e=t){return function(t){return m()&&p(t.fieldName)}(t)?((n=t).skip(),n):function(t){return ut()||Lt(t.fieldName)}(t)?function(t){return t.omit(),t}(t):nt(t)?function(t){return t.skip($()),t}(e):t;var n}y=u.ERRORS,P=u.WARNINGS,tt.group=function(t){return it(0,"groups",t)},et.group=function(t){return it(1,"groups",t)};function ct(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,i){let s=t.states[e][n];if(Array.isArray(s)){const[,t]=s;if(!t(i))return;s=s[0]}s&&s!==e&&(e=s)}}}(lt)}!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"}(F||(F={})),function(t){t.RESET="RESET"}(U||(U={}));const lt={initial:F.UNTESTED,states:{[F.UNTESTED]:{[F.CANCELED]:F.CANCELED,[F.FAILED]:F.FAILED,[F.OMITTED]:F.OMITTED,[F.PASSING]:F.PASSING,[F.PENDING]:F.PENDING,[F.SKIPPED]:F.SKIPPED,[F.WARNING]:F.WARNING},[F.SKIPPED]:{[U.RESET]:F.UNTESTED},[F.FAILED]:{[U.RESET]:F.UNTESTED},[F.WARNING]:{[U.RESET]:F.UNTESTED},[F.PASSING]:{[U.RESET]:F.UNTESTED},[F.PENDING]:{[U.RESET]:F.UNTESTED,[F.CANCELED]:F.CANCELED,[F.FAILED]:F.FAILED,[F.OMITTED]:F.OMITTED,[F.PASSING]:F.PASSING,[F.SKIPPED]:[F.SKIPPED,t=>!0===t],[F.WARNING]:F.WARNING},[F.CANCELED]:{[U.RESET]:F.UNTESTED},[F.OMITTED]:{[U.RESET]:F.UNTESTED}}};class dt extends N{constructor({fieldName:t,testFn:e,message:i,groupName:s,key:r=null}){super(),this.children=null,this.id=n.seq(),this.severity=ft.Error,this.stateMachine=ct(),this.fieldName=t,this.testFn=e,s&&(this.groupName=s),i&&(this.message=i),this.setKey(r)}static create(t,e){return dt.cast(super.create(t,e))}static cast(t){return dt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return n.isUndefined(t)&&n.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===ft.Warning}isPending(){return this.statusEquals(F.PENDING)}isOmitted(){return this.statusEquals(F.OMITTED)}isUntested(){return this.statusEquals(F.UNTESTED)}isFailing(){return this.statusEquals(F.FAILED)}isCanceled(){return this.statusEquals(F.CANCELED)}isSkipped(){return this.statusEquals(F.SKIPPED)}isPassing(){return this.statusEquals(F.PASSING)}isWarning(){return this.statusEquals(F.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(F.PENDING)}fail(){this.setStatus(this.warns()?F.WARNING:F.FAILED)}pass(){this.setStatus(F.PASSING)}warn(){this.severity=ft.Warning}skip(t){this.setStatus(F.SKIPPED,t)}cancel(){this.setStatus(F.CANCELED)}reset(){this.stateMachine.transition(U.RESET)}omit(){this.setStatus(F.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return n.isPromise(this.asyncTest)}static is(t){return t instanceof dt}static isX(t){n.invariant(this.is(t))}}var ft;dt.reconciler=class extends f{static reconciler(t,e){if(!dt.is(t))return t;if(n.isNullish(e))return this.handleNoHistoryNode(t);if(!dt.is(e))return t;const i=this.pickNode(e,t);return function(t,e,n){t===e&&dt.is(e)&&(s=e)!==(i=n)&&R(i,s)&&i.isPending()&&i.cancel();var i,s}(i,t,e),i}static nodeReorderDetected(t,e){return!!dt.is(e)&&!R(e,t)}static handleCollision(t,e){return t.usesKey()?dt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):dt.cast(e||t)}static onNodeReorder(t,e){return function(t,e){if(t.shouldAllowReorder())return;n.deferThrow(n.text(r.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:dt.is(e)?e.fieldName:void 0}))}(t,e),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return at(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?dt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(ft||(ft={}));class Et{static defaultRoot(){return Ft()}static hasNoTests(t=Et.defaultRoot()){return!t||(e=t,n=dt.is,!l(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=Et.defaultRoot()){return!!e&&l(e,(e=>(dt.isX(e),e.isPending()&&t(e))),dt.is)}static someTests(t,e=Et.defaultRoot()){return!!e&&l(e,(e=>(dt.isX(e),t(e))),dt.is)}static everyTest(t,e=Et.defaultRoot()){return!!e&&function(t,e,n){let i=!0;return c(t,((t,n)=>{e(t)||(n(),i=!1)}),n),i}(e,(e=>(dt.isX(e),t(e))),dt.is)}static walkTests(t,e=Et.defaultRoot()){e&&c(e,((e,n)=>{t(dt.cast(e),n)}),dt.is)}static hasRemainingTests(t){return Et.someIncompleteTests((e=>!t||T(e,t)))}static pluckTests(t,e=Et.defaultRoot()){e&&function(t,e,n){c(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(dt.isX(e),t(e))),dt.is)}static resetField(t){Et.walkTests((e=>{T(e,t)&&e.reset()}),Et.defaultRoot())}static removeTestByFieldName(t,e=Et.defaultRoot()){Et.pluckTests((e=>T(e,t)),e)}}function Nt(){const t=n.bus.createBus();return e(o.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=gt();t&&!Et.hasRemainingTests(t)&&n.isArray(e[t])&&n.callEach(e[t])}(e.fieldName),Et.hasRemainingTests()||t.emit(o.ALL_RUNNING_TESTS_FINISHED))})),e(o.TEST_RUN_STARTED,(()=>{})),e(o.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=mt();n.callEach(t)}()})),e(o.RESET_FIELD,(t=>{Et.resetField(t)})),e(o.SUITE_RUN_STARTED,(()=>{St()})),e(o.REMOVE_FIELD,(t=>{Et.removeTestByFieldName(t)})),e(o.RESET_SUITE,(()=>{!function(){St();const[,,t]=At();t()}()})),t;function e(e,n){t.on(e,((...t)=>{!function(){const t=It().suiteResultCache;t.invalidate([Ot()])}(),n(...t)}))}}const ht=n.cache(),Tt=i.createCascade(((t,e)=>{if(e)return null;n.invariant(t.historyRoot);const[i]=t.historyRoot(),s={};return n.assign(s,{historyNode:i,runtimeNode:null,runtimeRoot:null},t),s}));function Rt(t){const e=Tt.useX();return function(...n){var i;const s=null!==(i=Tt.use())&&void 0!==i?i:e;return Tt.run(s,(()=>t(...n)))}}function St(){const[,,t]=mt(),[,,e]=gt();t(),e()}function It(){return Tt.useX()}function pt(){return It().VestBus}function vt(){return Rt(pt().emit)}function _t(t){const e=vt();return n=>e(t,n)}function mt(){return It().doneCallbacks()}function gt(){return It().fieldCallbacks()}function At(){return It().historyRoot()}function Dt(){return It().historyNode}function Ot(){return It().suiteId}function Ct(){var t;return null!==(t=It().runtimeNode)&&void 0!==t?t:null}function yt(){var t,e;return null!==(e=null===(t=Ct())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function Pt(){return It().runtimeRoot}function Ft(){const t=Pt();if(t)return t;const[e]=At();return e}function Ut(t){const e=Pt();if(n.isArray(t)||n.isStringValue(t))n.asArray(t).forEach((t=>{e.setOptionalField(t,(()=>({type:s.Delayed,applied:!1,rule:null})))}));else for(const i in t){const r=t[i];e.setOptionalField(i,(()=>({type:s.Immediate,rule:r,applied:n.optionalFunctionValue(r)})))}}function Lt(t){var e,n,i;return!!t&&(null!==(i=null===(n=null===(e=Ft())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==i&&i)}class Wt extends N{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,i=n[t];Object.assign(n,{[t]:Object.assign({},i,e(i))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function Gt(t){const e=D(),i=A();return n.invariant(n.isStringValue(t)),e[t]=n.defaultTo(i.tests[t],!0),{when:function(e){const i=D(),s=A();i[t]=()=>n.hasOwnProperty(s.tests,t)?n.defaultTo(s.tests[t],!0):n.isStringValue(e)?Boolean(s.tests[e]):n.optionalFunctionValue(e,n.optionalFunctionValue(Z))}}}function bt(t){at(t),t.isNonActionable()||(t.isUntested()?function(t){const e=pt(),i=function(t){return g.run({currentTest:t},(()=>t.run()))}(t);try{n.isPromise(i)?(t.asyncTest=i,t.setPending(),kt(t)):wt(e,t)}catch(e){throw new Error(n.text(r.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t):t.isAsyncTest()&&(t.setPending(),kt(t)))}function kt(t){const{asyncTest:e,message:i}=t;if(!n.isPromise(e))return;const s=pt(),r=Rt((()=>{wt(s,t)})),o=Rt((e=>{t.isCanceled()||(t.message=n.isStringValue(e)?e:i,t.fail(),r())}));e.then(r,o)}function wt(t,e){e.pass(),t.emit(o.TEST_COMPLETED,e)}function Mt(t,...e){const[i,s,u]=n.isFunction(e[1])?e:[void 0,...e];!function(t,e){const i="test";n.invariant(n.isStringValue(t),n.text(r.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:i,param:"fieldName",expected:"string"})),n.invariant(n.isFunction(e),n.text(r.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:i,param:"callback",expected:"function"}))}(t,s);const a={fieldName:t,groupName:g.useX().groupName,key:u,message:i,testFn:s};return vt()(o.TEST_RUN_STARTED),dt.create(bt,a)}const Vt=n.assign(Mt,{memo:function(t){return function(e,...i){const[s,r,o]=i.reverse();return function(t,e){const i=g.useX().testMemoCache,s=i.get(t);if(n.isNull(s))return i(t,e);const[,r]=s;if(r.isCanceled())return i.invalidate(t),i(t,e);return dt.setNode(r),r}([Ot(),e,yt()].concat(s),(function(){return t(e,o,r)}))}}(Mt)});function xt(){return{group:qt,include:Gt,omitWhen:ot,only:tt,optional:Ut,skip:et,skipWhen:z,test:Vt}}function Kt(){return n.assign({},Z(),{done:Rt(Bt)})}function Bt(...t){const[e,i]=t.reverse(),s=Kt();if(function(t,e,i){var s;return!!(!n.isFunction(t)||e&&n.numberEquals(null===(s=i.tests[e])||void 0===s?void 0:s.testCount,0))}(e,i,s))return s;const r=()=>e(Z());return Et.hasRemainingTests(i)?(function(t,e){const[,i]=gt(),[,s]=mt();e?i((i=>n.assign(i,{[e]:(i[e]||[]).concat(t)}))):s((e=>e.concat(t)))}(r,i),s):(r(),s)}function Xt(...t){const[e,i]=t.reverse();!function(t){n.invariant(n.isFunction(t),r.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(e);const s=function({suiteName:t}={}){return{VestBus:Nt(),doneCallbacks:n.tinyState.createTinyState((()=>[])),fieldCallbacks:n.tinyState.createTinyState((()=>({}))),historyRoot:n.tinyState.createTinyState(null),suiteId:n.seq(),suiteName:t,suiteResultCache:ht}}({suiteName:i});function u(...t){return g.run({},(()=>(vt()(o.SUITE_RUN_STARTED),Wt.create(function(t,...e){return()=>(t(...e),Kt())}(e,...t))))).output}return Tt.run(s,(()=>n.assign(Tt.bind(s,u),Object.assign({get:Rt(Z),remove:_t(o.REMOVE_FIELD),reset:_t(o.RESET_SUITE),resetField:_t(o.RESET_FIELD)},xt()))))}class jt extends N{constructor(){super(...arguments),this.allowReorder=!0}}function qt(t,e){return N.create((()=>{g.run({groupName:t},e)}))}const Ht=r.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return e.enforce}}),t.create=Xt,t.each=function(t,e){n.invariant(n.isFunction(e),r.EACH_CALLBACK_MUST_BE_A_FUNCTION),jt.create((()=>{t.forEach(((t,n)=>{e(t,n)}))}))},t.group=qt,t.include=Gt,t.mode=function(t){const[,e]=O();e(t)},t.omitWhen=ot,t.only=tt,t.optional=Ut,t.skip=et,t.skipWhen=z,t.staticSuite=function(t){return n.assign(((...e)=>Xt(t)(...e)),Object.assign({},xt()))},t.suiteSelectors=X,t.test=Vt,t.warn=function(){const t=(e=r.HOOK_CALLED_OUTSIDE,g.useX(e).currentTest);var e;n.invariant(t,Ht),t.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("n4s"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils","context"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t["vest-utils"],t.context)}(this,(function(t,e,n,i){"use strict";var s,r,o,u,a;function c(t,e,i){if(n.isNullish(t.children))return;let s=!1;for(const o of t.children){if(s)return;if((n.isNullish(i)||n.optionalFunctionValue(i,o))&&e(o,r),s)return;c(o,((t,n)=>{e(t,(()=>{n(),r()}))}),i)}function r(){s=!0}}function l(t,e,n){let i=!1;return c(t,((t,n)=>{e(t)&&(n(),i=!0)}),n),i}function d(t,e){let n=t;for(;n.parent;){if(e(n))return n;n=n.parent}return null}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(s||(s={})),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.NO_ACTIVE_ISOLATE="Not within an active isolate",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.ENCOUNTERED_THE_SAME_KEY_TWICE='Encountered the same test key "{key}" twice. This may lead to tests overriding each other\'s results, or to tests being unexpectedly omitted.',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}."}(r||(r={})),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"}(o||(o={}));class E{static reconciler(t,e){return n.isNullish(e),t}static reconcile(t,e){var i;const s=Ct(),r=Dt();let o=r;s&&(o=null!==(i=null==r?void 0:r.at(yt()))&&void 0!==i?i:null);const u=this.reconciler(t,o);return n.invariant(u),Object.is(u,t)?[t,f(o,t,e)]:[u,u.output]}static removeAllNextNodesInIsolate(){const t=Ct(),e=Dt();e&&t&&e.slice(yt())}static handleCollision(t,e){return t.usesKey()?this.handleIsolateNodeWithKey(t):(this.nodeReorderDetected(t,e)&&this.onNodeReorder(t,e),e||t)}static nodeReorderDetected(t,e){return!(null!=t?t:e)}static onNodeReorder(t,e){return this.removeAllNextNodesInIsolate(),null!=t?t:e}static handleIsolateNodeWithKey(t){n.invariant(t.usesKey());const e=function(t){var e;if(n.isNullish(t))return null;const i=It().historyNode;return null!==(e=null==i?void 0:i.keys[t])&&void 0!==e?e:null}(t.key);let i=t;return n.isNullish(e)||(i=e),function(t,e){if(!t)return;const i=Ct();if(n.invariant(i,r.NO_ACTIVE_ISOLATE),n.isNullish(i.keys[t]))return void(i.keys[t]=e);n.deferThrow(n.text(r.ENCOUNTERED_THE_SAME_KEY_TWICE,{key:t}))}(t.key,t),i}}function f(t,e,n){const i=Pt(),s=ht.run(Object.assign({historyNode:t,runtimeNode:e},!i&&{runtimeRoot:e}),(()=>n(e)));return e.output=s,s}class N{constructor(t){this.children=[],this.keys={},this.parent=null,this.key=null,this.allowReorder=!1}setParent(t){return this.parent=t,this}saveOutput(t){return this.output=t,this}setKey(t){return this.key=t,this}usesKey(){return n.isNotNullish(this.key)}addChild(t){n.invariant(this.children),this.children.push(t)}removeChild(t){var e,n;this.children=null!==(n=null===(e=this.children)||void 0===e?void 0:e.filter((e=>e!==t)))&&void 0!==n?n:null}slice(t){n.isNullish(this.children)||(this.children.length=t)}at(t){var e,n;return null!==(n=null===(e=this.children)||void 0===e?void 0:e[t])&&void 0!==n?n:null}cursor(){var t,e;return null!==(e=null===(t=this.children)||void 0===t?void 0:t.length)&&void 0!==e?e:0}shouldAllowReorder(){var t;return null!==(t=!!d(this,(t=>t.allowReorder)))&&void 0!==t&&t}get rootNode(){var t;return null!==(t=d(this,(t=>n.isNullish(t.parent))))&&void 0!==t?t:this}static create(t,e){return this.createImplementation(t,e)}static createImplementation(t,e){const n=Ct(),i=new this(e).setParent(n),[s,r]=this.reconciler.reconcile(i,t);return s.saveOutput(r),this.setNode(s),s}static setNode(t){const e=Ct();e?function(t){const e=Ct();n.invariant(e,r.NO_ACTIVE_ISOLATE),e.addChild(t)}(t):function(t){const e=ht.useX(),[,n]=e.historyRoot();n(t)}(t),t.setParent(e)}static is(t){return t instanceof N}}function T(t,e){return!!e&&!h(t,e)}function h(t,e){return!(!e||t.fieldName!==e)}function R(t,e){return h(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}function S(t){return t===u.ERRORS?a.ERROR_COUNT:a.WARN_COUNT}N.reconciler=E,function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(u||(u={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(a||(a={}));const I=n.bindNot((function(t,e){return t.groupName===e}));function p(t){return function(t,e){return ft.someTests((n=>_(n,t,e)))}(u.ERRORS,t)}function _(t,e,i){return!!t.hasFailures()&&(!T(t,i)&&!function(t,e){return n.either(t===u.WARNINGS,e.warns())}(e,t))}var v;function m(){return function(t){const[e]=O();return e===t}(t.Modes.EAGER)}t.Modes=void 0,(v=t.Modes||(t.Modes={})).ALL="ALL",v.EAGER="EAGER";const g=i.createCascade(((e,i)=>i?null:n.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:n.tinyState.createTinyState(t.Modes.EAGER),testMemoCache:C},e)));function A(t){return g.useX(t).exclusion}function D(){return g.useX().inclusion}function O(){return g.useX().mode()}const C=n.cache(10);var y,P,F,U;class L{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class G extends L{constructor(){super(...arguments),this[y]=[],this[P]=[],this.groups={},this.tests={},this.valid=!1}}function W(t){return!!Lt(t)||!ft.hasNoTests()&&(!p(t)&&(!function(t){return ft.someIncompleteTests((e=>k(e,t)))}(t)&&function(t){return ft.everyTest((e=>w(e,t)))}(t)))}function b(t,e){return!!Lt(e)||!function(t,e,n){return ft.someTests((i=>!I(i,e)&&_(i,t,n)))}(u.ERRORS,t,e)&&(!function(t,e){return ft.someIncompleteTests((n=>!I(n,t)&&k(n,e)))}(t,e)&&function(t,e){return ft.everyTest((n=>!!I(n,t)||w(n,e)))}(t,e))}function k(t,e){return!T(t,e)&&Lt(e)}function w(t,e){return!!T(t,e)||(function(t){var e;return(null===(e=Ft())||void 0===e?void 0:e.getOptionalField(t.fieldName).type)===s.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function M(){const t=new G;return ft.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,i=Object.assign({},t);return i[n]=x(i[n],e),i[n].valid=!1!==i[n].valid&&W(n),i}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:i}=e;if(!n)return t;const s=Object.assign({},t);return s[n]=s[n]||{},s[n][i]=x(s[n][i],e),s[n][i].valid=!1!==s[n][i].valid&&b(n,i),s}(t.groups,e),t.errors=V(u.ERRORS,t.errors,e),t.warnings=V(u.WARNINGS,t.warnings,e)})),t.valid=W(),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;return t}(t)}function V(t,e,n){return(t===u.WARNINGS?n.isWarning():n.isFailing())?e.concat({fieldName:n.fieldName,groupName:n.groupName,message:n.message}):e}function x(t,e){const{message:i}=e,s=n.defaultTo(t?Object.assign({},t):null,K);return e.isNonActionable()||(s.testCount++,e.isFailing()?r(u.ERRORS):e.isWarning()&&r(u.WARNINGS)),s;function r(t){const e=S(t);s[e]++,i&&(s[t]=(s[t]||[]).concat(i))}}function K(){return n.assign(new L,{errors:[],warnings:[],valid:!0})}function X(t,e,i){return i?function(t,e,n){var i;return(null===(i=null==t?void 0:t[n])||void 0===i?void 0:i[e])||[]}(t,e,i):function(t,e){const i={},s=S(e);for(const r in t)n.isPositive(t[r][s])&&(i[r]=t[r][e]||[]);return i}(t,e)}function B(t){const e={getError:function(e){return Q(u.ERRORS,t,e)},getErrors:function(e){return j(t,u.ERRORS,e)},getErrorsByGroup:function(e,n){return q(t,u.ERRORS,e,n)},getWarning:function(e){return Q(u.WARNINGS,t,e)},getWarnings:function(e){return j(t,u.WARNINGS,e)},getWarningsByGroup:function(e,n){return q(t,u.WARNINGS,e,n)},hasErrors:function(e){return J(t,a.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return Y(t,a.ERROR_COUNT,e,n)},hasWarnings:function(e){return J(t,a.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return Y(t,a.WARN_COUNT,e,n)},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 i=t.groups[e];if(!i)return!1;if(n)return H(i,n);for(const t in i)if(!H(i,t))return!1;return!0}};return e}function j(t,e,n){return X(t.tests,e,n)}function q(t,e,n,i){return X(t.groups[n],e,i)}function H(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function Y(t,e,i,s){var r,o;const u=t.groups[i];if(!u)return!1;if(s)return n.isPositive(null===(r=u[s])||void 0===r?void 0:r[e]);for(const t in u)if(n.isPositive(null===(o=u[t])||void 0===o?void 0:o[e]))return!0;return!1}function J(t,e,i){var s;const r=i?null===(s=t.tests[i])||void 0===s?void 0:s[e]:t[e]||0;return n.isPositive(r)}function Q(t,e,n){var i;const s=e[t];return n?null===(i=s.find((t=>h(t,n))))||void 0===i?void 0:i.message:s[0]}function Z(){const t=M(),e=It().suiteName;return i=()=>n.assign(t,B(t),{suiteName:e}),(0,It().suiteResultCache)([Ot()],i);var i}function z(t,e){N.create((()=>{g.run({skipped:$()||n.optionalFunctionValue(t,n.optionalFunctionValue(Z))},e)}))}function $(){return function(){var t;return null!==(t=g.useX().skipped)&&void 0!==t&&t}()}function tt(t){return it(0,"tests",t)}function et(t){return it(1,"tests",t)}function nt(t){const{fieldName:e,groupName:i}=t;if($())return!0;const s=A(),r=D(),o=s.tests,u=o[e];if(!1===u)return!0;const a=!0===u;if(i){if(function(t){const e=A().groups;if(n.hasOwnProperty(e,t))return!1===e[t];return rt()}(i))return!0;if(!0===s.groups[i])return!a&&(!!st(o)||!1===o[e])}return!!function(t){if(!rt())return!1;return!t}(i)||!a&&(!!st(o)&&!n.optionalFunctionValue(r[e]))}function it(t,e,i){const s=A(r.HOOK_CALLED_OUTSIDE);i&&n.asArray(i).forEach((i=>{n.isStringValue(i)&&(s[e][i]=0===t)}))}function st(t){for(const e in t)if(!0===t[e])return!0;return!1}function rt(){const t=A();for(const e in t.groups)if(t.groups[e])return!0;return!1}function ot(t,e){N.create((()=>{g.run({omitted:ut()||n.optionalFunctionValue(t,n.optionalFunctionValue(Z))},e)}))}function ut(){return function(){var t;return null!==(t=g.useX().omitted)&&void 0!==t&&t}()}function at(t,e=t){return function(t){return m()&&p(t.fieldName)}(t)?((n=t).skip(),n):function(t){return ut()||Lt(t.fieldName)}(t)?function(t){return t.omit(),t}(t):nt(t)?function(t){return t.skip($()),t}(e):t;var n}y=u.ERRORS,P=u.WARNINGS,tt.group=function(t){return it(0,"groups",t)},et.group=function(t){return it(1,"groups",t)};function ct(){return function(t){let e=t.initial;return{getState:function(){return e},transition:function(n,i){let s=t.states[e][n];if(Array.isArray(s)){const[,t]=s;if(!t(i))return;s=s[0]}s&&s!==e&&(e=s)}}}(lt)}!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"}(F||(F={})),function(t){t.RESET="RESET"}(U||(U={}));const lt={initial:F.UNTESTED,states:{[F.UNTESTED]:{[F.CANCELED]:F.CANCELED,[F.FAILED]:F.FAILED,[F.OMITTED]:F.OMITTED,[F.PASSING]:F.PASSING,[F.PENDING]:F.PENDING,[F.SKIPPED]:F.SKIPPED,[F.WARNING]:F.WARNING},[F.SKIPPED]:{[U.RESET]:F.UNTESTED},[F.FAILED]:{[U.RESET]:F.UNTESTED},[F.WARNING]:{[U.RESET]:F.UNTESTED},[F.PASSING]:{[U.RESET]:F.UNTESTED},[F.PENDING]:{[U.RESET]:F.UNTESTED,[F.CANCELED]:F.CANCELED,[F.FAILED]:F.FAILED,[F.OMITTED]:F.OMITTED,[F.PASSING]:F.PASSING,[F.SKIPPED]:[F.SKIPPED,t=>!0===t],[F.WARNING]:F.WARNING},[F.CANCELED]:{[U.RESET]:F.UNTESTED},[F.OMITTED]:{[U.RESET]:F.UNTESTED}}};class dt extends N{constructor({fieldName:t,testFn:e,message:i,groupName:s,key:r=null}){super(),this.children=null,this.id=n.seq(),this.severity=Et.Error,this.stateMachine=ct(),this.fieldName=t,this.testFn=e,s&&(this.groupName=s),i&&(this.message=i),this.setKey(r)}static create(t,e){return dt.cast(super.create(t,e))}static cast(t){return dt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return n.isUndefined(t)&&n.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===Et.Warning}isPending(){return this.statusEquals(F.PENDING)}isOmitted(){return this.statusEquals(F.OMITTED)}isUntested(){return this.statusEquals(F.UNTESTED)}isFailing(){return this.statusEquals(F.FAILED)}isCanceled(){return this.statusEquals(F.CANCELED)}isSkipped(){return this.statusEquals(F.SKIPPED)}isPassing(){return this.statusEquals(F.PASSING)}isWarning(){return this.statusEquals(F.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(F.PENDING)}fail(){this.setStatus(this.warns()?F.WARNING:F.FAILED)}pass(){this.setStatus(F.PASSING)}warn(){this.severity=Et.Warning}skip(t){this.setStatus(F.SKIPPED,t)}cancel(){this.setStatus(F.CANCELED)}reset(){this.stateMachine.transition(U.RESET)}omit(){this.setStatus(F.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return n.isPromise(this.asyncTest)}static is(t){return t instanceof dt}static isX(t){n.invariant(this.is(t))}}var Et;dt.reconciler=class extends E{static reconciler(t,e){if(!dt.is(t))return t;if(n.isNullish(e))return this.handleNoHistoryNode(t);if(!dt.is(e))return t;const i=this.pickNode(e,t);return function(t,e,n){t===e&&dt.is(e)&&(s=e)!==(i=n)&&R(i,s)&&i.isPending()&&i.cancel();var i,s}(i,t,e),i}static nodeReorderDetected(t,e){return!!dt.is(e)&&!R(e,t)}static handleCollision(t,e){return t.usesKey()?dt.cast(this.handleIsolateNodeWithKey(t)):this.nodeReorderDetected(t,e)?this.onNodeReorder(t,e):dt.cast(e||t)}static onNodeReorder(t,e){return function(t,e){if(t.shouldAllowReorder())return;n.deferThrow(n.text(r.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:dt.is(e)?e.fieldName:void 0}))}(t,e),this.removeAllNextNodesInIsolate(),t}static pickNode(t,e){return at(e,this.handleCollision(e,t))}static handleNoHistoryNode(t){return t.usesKey()?dt.cast(this.handleIsolateNodeWithKey(t)):t}},function(t){t.Error="error",t.Warning="warning"}(Et||(Et={}));class ft{static defaultRoot(){return Ft()}static hasNoTests(t=ft.defaultRoot()){return!t||(e=t,n=dt.is,!l(e,(()=>!0),n));var e,n}static someIncompleteTests(t,e=ft.defaultRoot()){return!!e&&l(e,(e=>(dt.isX(e),e.isPending()&&t(e))),dt.is)}static someTests(t,e=ft.defaultRoot()){return!!e&&l(e,(e=>(dt.isX(e),t(e))),dt.is)}static everyTest(t,e=ft.defaultRoot()){return!!e&&function(t,e,n){let i=!0;return c(t,((t,n)=>{e(t)||(n(),i=!1)}),n),i}(e,(e=>(dt.isX(e),t(e))),dt.is)}static walkTests(t,e=ft.defaultRoot()){e&&c(e,((e,n)=>{t(dt.cast(e),n)}),dt.is)}static hasRemainingTests(t){return ft.someIncompleteTests((e=>!t||h(e,t)))}static pluckTests(t,e=ft.defaultRoot()){e&&function(t,e,n){c(t,(t=>{e(t)&&t.parent&&t.parent.removeChild(t)}),n)}(e,(e=>(dt.isX(e),t(e))),dt.is)}static resetField(t){ft.walkTests((e=>{h(e,t)&&e.reset()}),ft.defaultRoot())}static removeTestByFieldName(t,e=ft.defaultRoot()){ft.pluckTests((e=>h(e,t)),e)}}function Nt(){const t=n.bus.createBus();return e(o.TEST_COMPLETED,(e=>{e.isCanceled()||(!function(t){const[e]=gt();t&&!ft.hasRemainingTests(t)&&n.isArray(e[t])&&n.callEach(e[t])}(e.fieldName),ft.hasRemainingTests()||t.emit(o.ALL_RUNNING_TESTS_FINISHED))})),e(o.TEST_RUN_STARTED,(()=>{})),e(o.ALL_RUNNING_TESTS_FINISHED,(()=>{!function(){const[t]=mt();n.callEach(t)}()})),e(o.RESET_FIELD,(t=>{ft.resetField(t)})),e(o.SUITE_RUN_STARTED,(()=>{St()})),e(o.REMOVE_FIELD,(t=>{ft.removeTestByFieldName(t)})),e(o.RESET_SUITE,(()=>{!function(){St();const[,,t]=At();t()}()})),t;function e(e,n){t.on(e,((...t)=>{It().suiteResultCache.invalidate([Ot()]),n(...t)}))}}const Tt=n.cache(),ht=i.createCascade(((t,e)=>{if(e)return null;n.invariant(t.historyRoot);const[i]=t.historyRoot(),s={};return n.assign(s,{historyNode:i,runtimeNode:null,runtimeRoot:null},t),s}));function Rt(t){const e=ht.useX();return function(...n){var i;const s=null!==(i=ht.use())&&void 0!==i?i:e;return ht.run(s,(()=>t(...n)))}}function St(){const[,,t]=mt(),[,,e]=gt();t(),e()}function It(){return ht.useX()}function pt(){return It().VestBus}function _t(){return Rt(pt().emit)}function vt(t){const e=_t();return n=>e(t,n)}function mt(){return It().doneCallbacks()}function gt(){return It().fieldCallbacks()}function At(){return It().historyRoot()}function Dt(){return It().historyNode}function Ot(){return It().suiteId}function Ct(){var t;return null!==(t=It().runtimeNode)&&void 0!==t?t:null}function yt(){var t,e;return null!==(e=null===(t=Ct())||void 0===t?void 0:t.cursor())&&void 0!==e?e:0}function Pt(){return It().runtimeRoot}function Ft(){const t=Pt();if(t)return t;const[e]=At();return e}function Ut(t){const e=Pt();if(n.isArray(t)||n.isStringValue(t))n.asArray(t).forEach((t=>{e.setOptionalField(t,(()=>({type:s.Delayed,applied:!1,rule:null})))}));else for(const i in t){const r=t[i];e.setOptionalField(i,(()=>({type:s.Immediate,rule:r,applied:n.optionalFunctionValue(r)})))}}function Lt(t){var e,n,i;return!!t&&(null!==(i=null===(n=null===(e=Ft())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==i&&i)}class Gt extends N{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,i=n[t];Object.assign(n,{[t]:Object.assign({},i,e(i))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}}function Wt(t){const e=D(),i=A();return n.invariant(n.isStringValue(t)),e[t]=n.defaultTo(i.tests[t],!0),{when:function(e){const i=D(),s=A();i[t]=()=>n.hasOwnProperty(s.tests,t)?n.defaultTo(s.tests[t],!0):n.isStringValue(e)?Boolean(s.tests[e]):n.optionalFunctionValue(e,n.optionalFunctionValue(Z))}}}function bt(t){if(at(t),t.isUntested())return function(t){const e=pt(),i=function(t){return g.run({currentTest:t},(()=>t.run()))}(t);try{n.isPromise(i)?(t.asyncTest=i,t.setPending(),kt(t)):wt(e,t)}catch(e){throw new Error(n.text(r.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t);t.isAsyncTest()&&(t.setPending(),kt(t)),t.isNonActionable()||n.deferThrow(n.text(r.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function kt(t){const{asyncTest:e,message:i}=t;if(!n.isPromise(e))return;const s=pt(),r=Rt((()=>{wt(s,t)})),o=Rt((e=>{t.isCanceled()||(t.message=n.isStringValue(e)?e:i,t.fail(),r())}));e.then(r,o)}function wt(t,e){e.pass(),t.emit(o.TEST_COMPLETED,e)}function Mt(t,...e){const[i,s,u]=n.isFunction(e[1])?e:[void 0,...e];!function(t,e){const i="test";n.invariant(n.isStringValue(t),n.text(r.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:i,param:"fieldName",expected:"string"})),n.invariant(n.isFunction(e),n.text(r.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:i,param:"callback",expected:"function"}))}(t,s);const a={fieldName:t,groupName:g.useX().groupName,key:u,message:i,testFn:s};return _t()(o.TEST_RUN_STARTED),dt.create(bt,a)}const Vt=n.assign(Mt,{memo:function(t){return function(e,...i){const[s,r,o]=i.reverse();return function(t,e){const i=g.useX().testMemoCache,s=i.get(t);if(n.isNull(s))return i(t,e);const[,r]=s;if(r.isCanceled())return i.invalidate(t),i(t,e);return dt.setNode(r),r}([Ot(),e,yt()].concat(s),(function(){return t(e,o,r)}))}}(Mt)});function xt(){return{group:qt,include:Wt,omitWhen:ot,only:tt,optional:Ut,skip:et,skipWhen:z,test:Vt}}function Kt(){return n.assign({},Z(),{done:Rt(Xt)})}function Xt(...t){const[e,i]=t.reverse(),s=Kt();if(function(t,e,i){var s;return!!(!n.isFunction(t)||e&&n.numberEquals(null===(s=i.tests[e])||void 0===s?void 0:s.testCount,0))}(e,i,s))return s;const r=()=>e(Z());return ft.hasRemainingTests(i)?(function(t,e){const[,i]=gt(),[,s]=mt();e?i((i=>n.assign(i,{[e]:(i[e]||[]).concat(t)}))):s((e=>e.concat(t)))}(r,i),s):(r(),s)}function Bt(...t){const[e,i]=t.reverse();!function(t){n.invariant(n.isFunction(t),r.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(e);const s=function({suiteName:t}={}){return{VestBus:Nt(),doneCallbacks:n.tinyState.createTinyState((()=>[])),fieldCallbacks:n.tinyState.createTinyState((()=>({}))),historyRoot:n.tinyState.createTinyState(null),suiteId:n.seq(),suiteName:t,suiteResultCache:Tt}}({suiteName:i});function u(...t){return g.run({},(()=>(_t()(o.SUITE_RUN_STARTED),Gt.create(function(t,...e){return()=>(t(...e),Kt())}(e,...t))))).output}return ht.run(s,(()=>n.assign(ht.bind(s,u),Object.assign({get:Rt(Z),remove:vt(o.REMOVE_FIELD),reset:vt(o.RESET_SUITE),resetField:vt(o.RESET_FIELD)},xt()))))}class jt extends N{constructor(){super(...arguments),this.allowReorder=!0}}function qt(t,e){return N.create((()=>{g.run({groupName:t},e)}))}const Ht=r.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return e.enforce}}),t.create=Bt,t.each=function(t,e){n.invariant(n.isFunction(e),r.EACH_CALLBACK_MUST_BE_A_FUNCTION),jt.create((()=>{t.forEach(((t,n)=>{e(t,n)}))}))},t.group=qt,t.include=Wt,t.mode=function(t){const[,e]=O();e(t)},t.omitWhen=ot,t.only=tt,t.optional=Ut,t.skip=et,t.skipWhen=z,t.staticSuite=function(t){return n.assign(((...e)=>Bt(t)(...e)),Object.assign({},xt()))},t.suiteSelectors=B,t.test=Vt,t.warn=function(){const t=(e=r.HOOK_CALLED_OUTSIDE,g.useX(e).currentTest);var e;n.invariant(t,Ht),t.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vest",
|
|
3
|
-
"version": "5.0.0-
|
|
3
|
+
"version": "5.0.0-next-56be98",
|
|
4
4
|
"description": "Declarative Form Validations Framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ealush",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"context": "3.0.8-
|
|
22
|
-
"n4s": "
|
|
23
|
-
"vast": "1.0.18-
|
|
24
|
-
"vest-utils": "1.0.0-
|
|
21
|
+
"context": "3.0.8-next-56be98",
|
|
22
|
+
"n4s": "5.0.0-next-56be98",
|
|
23
|
+
"vast": "1.0.18-next-56be98",
|
|
24
|
+
"vest-utils": "1.0.0-next-56be98"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
"./classnames": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classnames.d.ts","sourceRoot":"","sources":["../src/exports/classnames.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/
|
|
1
|
+
{"version":3,"file":"classnames.d.ts","sourceRoot":"","sources":["../src/exports/classnames.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/BusEvents.ts","../src/errors/ErrorStrings.ts","../src/core/isolate/walker.ts","../src/core/isolate/reconciler/Reconciler/Reconciler.ts","../src/core/isolate/Isolate.ts","../src/hooks/optional/OptionalTypes.ts","../src/core/isolate/IsolateSuite/IsolateSuite.ts","../src/core/test/helpers/matchingFieldName.ts","../src/core/isolate/reconciler/isSameProfileTest.ts","../src/core/isolate/reconciler/cancelOverriddenPendingTest.ts","../src/hooks/optional/optional.ts","../src/core/isolate/IsolateTest/TestWalker.ts","../src/core/test/helpers/matchingGroupName.ts","../src/core/test/helpers/nonMatchingSeverityProfile.ts","../src/suiteResult/selectors/hasFailuresByTestObjects.ts","../src/hooks/mode.ts","../src/core/context/SuiteContext.ts","../src/suiteResult/selectors/shouldAddValidProperty.ts","../src/suiteResult/selectors/produceSuiteSummary.ts","../src/suiteResult/selectors/collectFailures.ts","../src/suiteResult/selectors/suiteSelectors.ts","../src/suiteResult/suiteResult.ts","../src/isolates/skipWhen.ts","../src/hooks/exclusive.ts","../src/isolates/omitWhen.ts","../src/core/test/testLevelFlowControl/verifyTestRun.ts","../src/core/isolate/IsolateTest/IsolateTestReconciler.ts","../src/core/isolate/IsolateTest/SimpleStateMachine.ts","../src/core/isolate/IsolateTest/IsolateTestStateMachine.ts","../src/core/test/helpers/shouldUseErrorMessage.ts","../src/core/isolate/IsolateTest/IsolateTest.ts","../src/suite/runCallbacks.ts","../src/core/VestBus/VestBus.ts","../src/core/context/PersistedContext.ts","../src/suiteResult/done/deferDoneCallback.ts","../src/suiteResult/done/shouldSkipDoneRegistration.ts","../src/suiteResult/suiteRunResult.ts","../src/suiteResult/SuiteResultTypes.ts","../src/exports/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;GAEG;AACH,iBAAwB,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAC3E,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EACvB,OAAO,GAAE,gBAAqB,GAC7B,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,CAe1B;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
package/types/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/exports/parser.ts","../src/errors/ErrorStrings.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/exports/parser.ts","../src/errors/ErrorStrings.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/BusEvents.ts","../src/core/isolate/walker.ts","../src/core/isolate/reconciler/Reconciler/Reconciler.ts","../src/core/isolate/Isolate.ts","../src/hooks/optional/OptionalTypes.ts","../src/core/isolate/IsolateSuite/IsolateSuite.ts","../src/core/test/helpers/matchingFieldName.ts","../src/core/isolate/reconciler/isSameProfileTest.ts","../src/core/isolate/reconciler/cancelOverriddenPendingTest.ts","../src/hooks/optional/optional.ts","../src/core/isolate/IsolateTest/TestWalker.ts","../src/core/test/helpers/matchingGroupName.ts","../src/core/test/helpers/nonMatchingSeverityProfile.ts","../src/suiteResult/selectors/hasFailuresByTestObjects.ts","../src/hooks/mode.ts","../src/core/context/SuiteContext.ts","../src/suiteResult/selectors/shouldAddValidProperty.ts","../src/suiteResult/selectors/produceSuiteSummary.ts","../src/suiteResult/selectors/collectFailures.ts","../src/suiteResult/selectors/suiteSelectors.ts","../src/suiteResult/suiteResult.ts","../src/isolates/skipWhen.ts","../src/hooks/exclusive.ts","../src/isolates/omitWhen.ts","../src/core/test/testLevelFlowControl/verifyTestRun.ts","../src/core/isolate/IsolateTest/IsolateTestReconciler.ts","../src/core/isolate/IsolateTest/SimpleStateMachine.ts","../src/core/isolate/IsolateTest/IsolateTestStateMachine.ts","../src/core/test/helpers/shouldUseErrorMessage.ts","../src/core/isolate/IsolateTest/IsolateTest.ts","../src/suite/runCallbacks.ts","../src/core/VestBus/VestBus.ts","../src/core/context/PersistedContext.ts","../src/suiteResult/done/deferDoneCallback.ts","../src/suiteResult/done/shouldSkipDoneRegistration.ts","../src/suiteResult/suiteRunResult.ts","../src/suiteResult/SuiteResultTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,iBAAgB,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAC9D,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAC1B,gBAAgB,CAAC,CAAC,CAAC,CA4CrB;AAED,UAAU,gBAAgB,CAAC,CAAC,SAAS,UAAU;IAC7C,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;CACjC"}
|
package/types/promisify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promisify.d.ts","sourceRoot":"","sources":["../src/exports/promisify.ts","../src/errors/ErrorStrings.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/
|
|
1
|
+
{"version":3,"file":"promisify.d.ts","sourceRoot":"","sources":["../src/exports/promisify.ts","../src/errors/ErrorStrings.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/VestBus/BusEvents.ts","../src/core/isolate/walker.ts","../src/core/isolate/reconciler/Reconciler/Reconciler.ts","../src/core/isolate/Isolate.ts","../src/hooks/optional/OptionalTypes.ts","../src/core/isolate/IsolateSuite/IsolateSuite.ts","../src/core/test/helpers/matchingFieldName.ts","../src/core/isolate/reconciler/isSameProfileTest.ts","../src/core/isolate/reconciler/cancelOverriddenPendingTest.ts","../src/hooks/optional/optional.ts","../src/core/isolate/IsolateTest/TestWalker.ts","../src/core/test/helpers/matchingGroupName.ts","../src/core/test/helpers/nonMatchingSeverityProfile.ts","../src/suiteResult/selectors/hasFailuresByTestObjects.ts","../src/hooks/mode.ts","../src/core/context/SuiteContext.ts","../src/suiteResult/selectors/shouldAddValidProperty.ts","../src/suiteResult/selectors/produceSuiteSummary.ts","../src/suiteResult/selectors/collectFailures.ts","../src/suiteResult/selectors/suiteSelectors.ts","../src/suiteResult/suiteResult.ts","../src/isolates/skipWhen.ts","../src/hooks/exclusive.ts","../src/isolates/omitWhen.ts","../src/core/test/testLevelFlowControl/verifyTestRun.ts","../src/core/isolate/IsolateTest/IsolateTestReconciler.ts","../src/core/isolate/IsolateTest/SimpleStateMachine.ts","../src/core/isolate/IsolateTest/IsolateTestStateMachine.ts","../src/core/test/helpers/shouldUseErrorMessage.ts","../src/core/isolate/IsolateTest/IsolateTest.ts","../src/suite/runCallbacks.ts","../src/core/VestBus/VestBus.ts","../src/core/context/PersistedContext.ts","../src/suiteResult/done/deferDoneCallback.ts","../src/suiteResult/done/shouldSkipDoneRegistration.ts","../src/suiteResult/suiteRunResult.ts","../src/suiteResult/SuiteResultTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,iBAAS,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAC3D,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,aAEpC,GAAG,EAAE,KAAG,QAAQ,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAKpD"}
|
package/types/vest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vest.d.ts","sourceRoot":"","sources":["../src/vest.ts","../src/core/isolate/walker.ts","../src/core/VestBus/
|
|
1
|
+
{"version":3,"file":"vest.d.ts","sourceRoot":"","sources":["../src/vest.ts","../src/core/isolate/walker.ts","../src/core/VestBus/BusEvents.ts","../src/errors/ErrorStrings.ts","../src/suiteResult/Severity.ts","../src/core/test/TestTypes.ts","../src/core/isolate/reconciler/Reconciler/Reconciler.ts","../src/core/test/helpers/matchingFieldName.ts","../src/core/isolate/reconciler/isSameProfileTest.ts","../src/core/isolate/reconciler/cancelOverriddenPendingTest.ts","../src/core/test/helpers/matchingGroupName.ts","../src/core/test/helpers/nonMatchingSeverityProfile.ts","../src/suiteResult/selectors/hasFailuresByTestObjects.ts","../src/hooks/mode.ts","../src/core/context/SuiteContext.ts","../src/hooks/optional/OptionalTypes.ts","../src/suiteResult/selectors/shouldAddValidProperty.ts","../src/suiteResult/selectors/produceSuiteSummary.ts","../src/suiteResult/selectors/collectFailures.ts","../src/suiteResult/selectors/suiteSelectors.ts","../src/suiteResult/suiteResult.ts","../src/isolates/skipWhen.ts","../src/hooks/exclusive.ts","../src/isolates/omitWhen.ts","../src/core/test/testLevelFlowControl/verifyTestRun.ts","../src/core/isolate/IsolateTest/IsolateTestReconciler.ts","../src/core/isolate/IsolateTest/SimpleStateMachine.ts","../src/core/isolate/IsolateTest/IsolateTestStateMachine.ts","../src/core/test/helpers/shouldUseErrorMessage.ts","../src/core/isolate/IsolateTest/IsolateTest.ts","../src/core/isolate/IsolateTest/TestWalker.ts","../src/suiteResult/done/deferDoneCallback.ts","../src/suiteResult/done/shouldSkipDoneRegistration.ts","../src/suiteResult/suiteRunResult.ts","../src/suiteResult/SuiteResultTypes.ts","../src/suite/runCallbacks.ts","../src/core/VestBus/VestBus.ts","../src/core/context/PersistedContext.ts","../src/core/isolate/Isolate.ts","../src/core/isolate/IsolateSuite/IsolateSuite.ts","../src/hooks/optional/optional.ts","../src/hooks/include.ts","../src/core/test/testLevelFlowControl/runTest.ts","../src/core/test/test.memo.ts","../src/core/test/test.ts","../src/suite/getTypedMethods.ts","../src/suite/SuiteTypes.ts","../src/suite/validateParams/validateSuiteParams.ts","../src/suite/createSuite.ts","../src/core/isolate/IsolateEach/IsolateEach.ts","../src/isolates/each.ts","../src/isolates/group.ts","../src/suite/staticSuite.ts","../src/hooks/warn.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuB9B,OAAO,wJAiBN,CAAC;AAEF,YAAY,iEAAiE,CAAC"}
|