vest 4.3.2 → 4.4.0-dev-08ec91
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/vest.development.js +148 -54
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +148 -54
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +142 -48
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/classnames.d.ts +3 -5
- package/types/parser.d.ts +3 -5
- package/types/promisify.d.ts +7 -6
- package/types/vest.d.ts +29 -32
|
@@ -35,6 +35,8 @@ function asArray(possibleArg) {
|
|
|
35
35
|
return [].concat(possibleArg);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
var assign = Object.assign;
|
|
39
|
+
|
|
38
40
|
function isNumeric(value) {
|
|
39
41
|
var str = String(value);
|
|
40
42
|
var num = Number(value);
|
|
@@ -174,8 +176,6 @@ function getCurrent(array, path) {
|
|
|
174
176
|
return current;
|
|
175
177
|
}
|
|
176
178
|
|
|
177
|
-
var assign = Object.assign;
|
|
178
|
-
|
|
179
179
|
function createCursor() {
|
|
180
180
|
var storage = {
|
|
181
181
|
cursor: []
|
|
@@ -262,22 +262,37 @@ function useSuiteName() {
|
|
|
262
262
|
function useTestCallbacks() {
|
|
263
263
|
return useStateRef().testCallbacks();
|
|
264
264
|
}
|
|
265
|
+
// OPTIONAL FIELDS
|
|
266
|
+
function useOptionalField(fieldName) {
|
|
267
|
+
var optionalFields = useOptionalFields()[0];
|
|
268
|
+
return optionalFields[fieldName];
|
|
269
|
+
}
|
|
265
270
|
function useOptionalFields() {
|
|
266
271
|
return useStateRef().optionalFields();
|
|
267
272
|
}
|
|
273
|
+
function useSetOptionalField(fieldName, setter) {
|
|
274
|
+
var _a = useOptionalFields(), setOptionalFields = _a[1];
|
|
275
|
+
setOptionalFields(function (optionalFields) {
|
|
276
|
+
var _a;
|
|
277
|
+
return assign(optionalFields, (_a = {},
|
|
278
|
+
_a[fieldName] = optionalFunctionValue(setter, optionalFields[fieldName]),
|
|
279
|
+
_a));
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
function useOptionalFieldApplied(fieldName) {
|
|
283
|
+
var _a;
|
|
284
|
+
return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
|
|
285
|
+
}
|
|
286
|
+
function useOptionalFieldConfig(fieldName) {
|
|
287
|
+
var _a;
|
|
288
|
+
return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
|
|
289
|
+
}
|
|
268
290
|
function useTestObjects() {
|
|
269
291
|
return useStateRef().testObjects();
|
|
270
292
|
}
|
|
271
293
|
// STATE ACTIONS
|
|
272
294
|
function useRefreshTestObjects() {
|
|
273
|
-
|
|
274
|
-
setTestObjects(function (_a) {
|
|
275
|
-
var current = _a.current, prev = _a.prev;
|
|
276
|
-
return ({
|
|
277
|
-
prev: prev,
|
|
278
|
-
current: asArray(current)
|
|
279
|
-
});
|
|
280
|
-
});
|
|
295
|
+
useSetTests(function (tests) { return tests; });
|
|
281
296
|
}
|
|
282
297
|
function useSetTests(handler) {
|
|
283
298
|
var _a = useTestObjects(), testObjects = _a[1];
|
|
@@ -291,10 +306,7 @@ function useSetTests(handler) {
|
|
|
291
306
|
}
|
|
292
307
|
// Derived state
|
|
293
308
|
function useAllIncomplete() {
|
|
294
|
-
|
|
295
|
-
return flatten(transform(current, function (testObject) {
|
|
296
|
-
return testObject.isPending() ? testObject : null;
|
|
297
|
-
}));
|
|
309
|
+
return useTestsFlat().filter(function (test) { return test.isPending(); });
|
|
298
310
|
}
|
|
299
311
|
var flatCache = createCache();
|
|
300
312
|
function useTestsFlat() {
|
|
@@ -679,6 +691,11 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
679
691
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
680
692
|
}
|
|
681
693
|
|
|
694
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
695
|
+
function matchingGroupName(testObject, groupName) {
|
|
696
|
+
return testObject.groupName === groupName;
|
|
697
|
+
}
|
|
698
|
+
|
|
682
699
|
function either(a, b) {
|
|
683
700
|
return !!a !== !!b;
|
|
684
701
|
}
|
|
@@ -703,6 +720,15 @@ function hasFailuresByTestObjects(severityKey, fieldName) {
|
|
|
703
720
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
704
721
|
});
|
|
705
722
|
}
|
|
723
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
724
|
+
var testObjects = useTestsFlat();
|
|
725
|
+
return testObjects.some(function (testObject) {
|
|
726
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
727
|
+
return false;
|
|
728
|
+
}
|
|
729
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
730
|
+
});
|
|
731
|
+
}
|
|
706
732
|
/**
|
|
707
733
|
* Determines whether a certain test profile has failures.
|
|
708
734
|
*/
|
|
@@ -720,7 +746,7 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
|
|
|
720
746
|
}
|
|
721
747
|
|
|
722
748
|
// eslint-disable-next-line max-statements, complexity
|
|
723
|
-
function
|
|
749
|
+
function shouldAddValidProperty(fieldName) {
|
|
724
750
|
if (fieldIsOmitted(fieldName)) {
|
|
725
751
|
return true;
|
|
726
752
|
}
|
|
@@ -731,39 +757,78 @@ function shouldAddValidProp(fieldName) {
|
|
|
731
757
|
if (isEmpty(testObjects)) {
|
|
732
758
|
return false;
|
|
733
759
|
}
|
|
760
|
+
// Does the given field have any pending tests that are not optional?
|
|
734
761
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
735
762
|
return false;
|
|
736
763
|
}
|
|
737
764
|
return noMissingTests(fieldName);
|
|
738
765
|
}
|
|
766
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
767
|
+
if (fieldIsOmitted(fieldName)) {
|
|
768
|
+
return true;
|
|
769
|
+
}
|
|
770
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
771
|
+
return false;
|
|
772
|
+
}
|
|
773
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
774
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
775
|
+
return false;
|
|
776
|
+
}
|
|
777
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
778
|
+
}
|
|
739
779
|
function fieldIsOmitted(fieldName) {
|
|
740
780
|
if (!fieldName) {
|
|
741
781
|
return false;
|
|
742
782
|
}
|
|
743
|
-
|
|
744
|
-
return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
|
|
783
|
+
return useOptionalFieldApplied(fieldName) === true;
|
|
745
784
|
}
|
|
785
|
+
// Does the given field have any pending tests that are not optional?
|
|
746
786
|
function hasNonOptionalIncomplete(fieldName) {
|
|
747
|
-
var optionalFields = useOptionalFields()[0];
|
|
748
787
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
749
|
-
|
|
788
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
789
|
+
}));
|
|
790
|
+
}
|
|
791
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
792
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
793
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
794
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
750
795
|
return false;
|
|
751
796
|
}
|
|
752
|
-
return
|
|
797
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
753
798
|
}));
|
|
754
799
|
}
|
|
800
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
801
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
802
|
+
return false;
|
|
803
|
+
}
|
|
804
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
805
|
+
}
|
|
755
806
|
function noMissingTests(fieldName) {
|
|
756
807
|
var testObjects = useTestsFlat();
|
|
757
|
-
var optionalFields = useOptionalFields()[0];
|
|
758
808
|
return testObjects.every(function (testObject) {
|
|
759
809
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
760
810
|
return true;
|
|
761
811
|
}
|
|
762
|
-
return (
|
|
763
|
-
|
|
764
|
-
|
|
812
|
+
return missingTestsLogic(testObject, fieldName);
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
816
|
+
var testObjects = useTestsFlat();
|
|
817
|
+
return testObjects.every(function (testObject) {
|
|
818
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
819
|
+
return true;
|
|
820
|
+
}
|
|
821
|
+
return missingTestsLogic(testObject, fieldName);
|
|
765
822
|
});
|
|
766
823
|
}
|
|
824
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
825
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
826
|
+
return true;
|
|
827
|
+
}
|
|
828
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
829
|
+
testObject.isTested() ||
|
|
830
|
+
testObject.isOmitted());
|
|
831
|
+
}
|
|
767
832
|
|
|
768
833
|
function useSummary() {
|
|
769
834
|
var summary = context.useX().summary;
|
|
@@ -785,7 +850,7 @@ function genTestsSummary() {
|
|
|
785
850
|
appendToGroup(summary.groups, testObject);
|
|
786
851
|
return summary;
|
|
787
852
|
}, summary);
|
|
788
|
-
summary.valid =
|
|
853
|
+
summary.valid = shouldAddValidProperty();
|
|
789
854
|
return countFailures(summary);
|
|
790
855
|
}
|
|
791
856
|
function appendToTest(tests, testObject) {
|
|
@@ -794,7 +859,7 @@ function appendToTest(tests, testObject) {
|
|
|
794
859
|
tests[testObject.fieldName].valid =
|
|
795
860
|
tests[testObject.fieldName].valid === false
|
|
796
861
|
? false
|
|
797
|
-
:
|
|
862
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
798
863
|
}
|
|
799
864
|
/**
|
|
800
865
|
* Appends to a group object if within a group
|
|
@@ -806,6 +871,10 @@ function appendToGroup(groups, testObject) {
|
|
|
806
871
|
}
|
|
807
872
|
groups[groupName] = groups[groupName] || {};
|
|
808
873
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
874
|
+
groups[groupName][testObject.fieldName].valid =
|
|
875
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
876
|
+
? false
|
|
877
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
809
878
|
}
|
|
810
879
|
/**
|
|
811
880
|
* Counts the failed tests and adds global counters
|
|
@@ -854,6 +923,10 @@ function baseTestStats() {
|
|
|
854
923
|
});
|
|
855
924
|
}
|
|
856
925
|
|
|
926
|
+
function isPositive(value) {
|
|
927
|
+
return greaterThan(value, 0);
|
|
928
|
+
}
|
|
929
|
+
|
|
857
930
|
// calls collectAll or getByFieldName depending on whether fieldName is provided
|
|
858
931
|
function gatherFailures(testGroup, severityKey, fieldName) {
|
|
859
932
|
return fieldName
|
|
@@ -866,10 +939,13 @@ function getByFieldName(testGroup, severityKey, fieldName) {
|
|
|
866
939
|
}
|
|
867
940
|
function collectAll(testGroup, severityKey) {
|
|
868
941
|
var output = {};
|
|
942
|
+
var countKey = countKeyBySeverity(severityKey);
|
|
869
943
|
for (var field in testGroup) {
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
944
|
+
if (isPositive(testGroup[field][countKey])) {
|
|
945
|
+
// We will probably never get to the fallback array
|
|
946
|
+
// leaving it just in case the implementation changes
|
|
947
|
+
output[field] = testGroup[field][severityKey] || [];
|
|
948
|
+
}
|
|
873
949
|
}
|
|
874
950
|
return output;
|
|
875
951
|
}
|
|
@@ -899,10 +975,6 @@ function getFailuresByGroup(groupName, severityKey, fieldName) {
|
|
|
899
975
|
return gatherFailures(summary.groups[groupName], severityKey, fieldName);
|
|
900
976
|
}
|
|
901
977
|
|
|
902
|
-
function isPositive(value) {
|
|
903
|
-
return greaterThan(value, 0);
|
|
904
|
-
}
|
|
905
|
-
|
|
906
978
|
function hasErrors(fieldName) {
|
|
907
979
|
return hasFailures(SeverityCount.ERROR_COUNT, fieldName);
|
|
908
980
|
}
|
|
@@ -945,9 +1017,30 @@ function hasFailuresByGroup(severityKey, groupName, fieldName) {
|
|
|
945
1017
|
}
|
|
946
1018
|
|
|
947
1019
|
function isValid(fieldName) {
|
|
948
|
-
var _a;
|
|
949
1020
|
var summary = useSummary();
|
|
950
|
-
return fieldName
|
|
1021
|
+
return fieldName
|
|
1022
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1023
|
+
: summary.valid;
|
|
1024
|
+
}
|
|
1025
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1026
|
+
var summary = useSummary();
|
|
1027
|
+
var group = summary.groups[groupName];
|
|
1028
|
+
if (!group) {
|
|
1029
|
+
return false;
|
|
1030
|
+
}
|
|
1031
|
+
if (fieldName) {
|
|
1032
|
+
return isFieldValid(group, fieldName);
|
|
1033
|
+
}
|
|
1034
|
+
for (var fieldName_1 in group) {
|
|
1035
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1036
|
+
return false;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
return true;
|
|
1040
|
+
}
|
|
1041
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1042
|
+
var _a;
|
|
1043
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
951
1044
|
}
|
|
952
1045
|
|
|
953
1046
|
var cache$1 = createCache(1);
|
|
@@ -968,6 +1061,7 @@ function produceSuiteResult() {
|
|
|
968
1061
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
969
1062
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
970
1063
|
isValid: context.bind(ref, isValid),
|
|
1064
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
971
1065
|
suiteName: suiteName
|
|
972
1066
|
});
|
|
973
1067
|
}));
|
|
@@ -1070,7 +1164,7 @@ function createBus() {
|
|
|
1070
1164
|
}
|
|
1071
1165
|
}
|
|
1072
1166
|
|
|
1073
|
-
function
|
|
1167
|
+
function omitOptionalFields() {
|
|
1074
1168
|
var optionalFields = useOptionalFields()[0];
|
|
1075
1169
|
if (isEmpty(optionalFields)) {
|
|
1076
1170
|
return;
|
|
@@ -1091,10 +1185,11 @@ function omitOptionalTests() {
|
|
|
1091
1185
|
function verifyAndOmit(testObject) {
|
|
1092
1186
|
if (shouldOmit[testObject.fieldName]) {
|
|
1093
1187
|
testObject.omit();
|
|
1188
|
+
useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
|
|
1094
1189
|
}
|
|
1095
1190
|
}
|
|
1096
1191
|
function runOptionalConfig(testObject) {
|
|
1097
|
-
var optionalConfig =
|
|
1192
|
+
var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
|
|
1098
1193
|
if (isFunction(optionalConfig)) {
|
|
1099
1194
|
shouldOmit[testObject.fieldName] = optionalConfig();
|
|
1100
1195
|
verifyAndOmit(testObject);
|
|
@@ -1154,7 +1249,7 @@ function initBus() {
|
|
|
1154
1249
|
// Async operations may still be running.
|
|
1155
1250
|
bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
|
|
1156
1251
|
// Remove tests that are optional and need to be omitted
|
|
1157
|
-
|
|
1252
|
+
omitOptionalFields();
|
|
1158
1253
|
});
|
|
1159
1254
|
// Called when all the tests, including async, are done running
|
|
1160
1255
|
bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
|
|
@@ -1547,22 +1642,21 @@ function isOmitted() {
|
|
|
1547
1642
|
* });
|
|
1548
1643
|
*/
|
|
1549
1644
|
function optional(optionals) {
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1645
|
+
// When the optional is given as a string or a list of strings
|
|
1646
|
+
// we just add them to the list of optional fields.
|
|
1647
|
+
if (isArray(optionals) || isStringValue(optionals)) {
|
|
1648
|
+
asArray(optionals).forEach(function (optionalField) {
|
|
1649
|
+
useSetOptionalField(optionalField, [true, false]);
|
|
1650
|
+
});
|
|
1651
|
+
}
|
|
1652
|
+
else {
|
|
1653
|
+
// if it's an object, we iterate over the keys and add them to the list
|
|
1654
|
+
var optionalFunctions = optionals;
|
|
1655
|
+
for (var field in optionalFunctions) {
|
|
1656
|
+
var predicate = optionalFunctions[field];
|
|
1657
|
+
useSetOptionalField(field, [predicate, false]);
|
|
1563
1658
|
}
|
|
1564
|
-
|
|
1565
|
-
});
|
|
1659
|
+
}
|
|
1566
1660
|
}
|
|
1567
1661
|
|
|
1568
1662
|
/*! *****************************************************************************
|
|
@@ -1864,6 +1958,6 @@ function warn() {
|
|
|
1864
1958
|
ctx.currentTest.warn();
|
|
1865
1959
|
}
|
|
1866
1960
|
|
|
1867
|
-
var VERSION = "4.
|
|
1961
|
+
var VERSION = "4.4.0-dev-08ec91";
|
|
1868
1962
|
|
|
1869
1963
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}function i(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function o(t,n){return i(t)&&i(n)&&Number(t)===Number(n)}function s(t,n){return i(t)&&i(n)&&Number(t)>Number(n)}function a(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),s(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return o(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var c=u((function(t){return null===t}));function f(t){return"function"==typeof t}function l(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return f(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=l(t))&&void 0!==e?e:n}function d(t){return(t=[].concat(t))[t.length-1]}function v(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(v(u,n)):(u=n(u),c(u)&&e.push(u))}return e}function h(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(h(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}var g=Object.assign;function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return d(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,d(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,C=R||(R={});C[C.ALL=0]="ALL",C[C.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:g({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function b(){return S.useX().stateRef}function T(){return b().testObjects()}function O(){(0,T()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function A(t){(0,T()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function _(){return h(v(T()[0].current,(function(t){return t.isPending()?t:null})))}var I=a();function k(){var t=T()[0].current;return I([t],(function(){return h(t)}))}var L,F=L||(L={});F.Error="error",F.Warning="warning";var U=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=L.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==H||(this.status=t)},t.prototype.warns=function(){return this.severity===L.Warning},t.prototype.setPending=function(){this.setStatus(D)},t.prototype.fail=function(){this.setStatus(this.warns()?X:G)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(w)},t.prototype.warn=function(){this.severity=L.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(P)},t.prototype.cancel=function(){this.setStatus(x),O()},t.prototype.reset=function(){this.status=W,O()},t.prototype.omit=function(){this.setStatus(H)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(D)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(H)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(G)},t.prototype.isCanceled=function(){return this.statusEquals(x)},t.prototype.isSkipped=function(){return this.statusEquals(P)},t.prototype.isPassing=function(){return this.statusEquals(w)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",P="SKIPPED",G="FAILED",X="WARNING",w="PASSING",D="PENDING",x="CANCELED",H="OMITTED";function K(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?l(n):n)}function M(t){function n(t,n,u){return r.references.push(),e(t,l(n,u)),function(){return[r.references[t],function(n){return e(t,l(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,f(n=u[n][1])&&n(e,i),f(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function j(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function q(t){return null==t}function B(t){setTimeout((function(){throw Error(t)}),0)}function V(){return S.useX().testCursor.getCursor()}function Y(){return S.useX().testCursor.next()}function J(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,K(f(n));var e={current:{},prev:{}},r=V();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=T()[0].prev;return[].concat(E(t,V())).reduce((function(t,n){return n instanceof U&&!q(n.key)?(t[n.key]=n,t):t}),{})}(),A((function(t){return E(t,r)[d(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),Y(),t}))}var z,Q=z||(z={});Q.WARNINGS="warnings",Q.ERRORS="errors";var Z,$=Z||(Z={});function tt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?o(t.length,0):"object"==typeof t&&o((t=Object.keys(t)).length,0))}$.ERROR_COUNT="errorCount",$.WARN_COUNT="warnCount";var nt=u(tt);function et(t,n){return!(!n||t.fieldName!==n)}function rt(t,n){return k().some((function(e){return e.hasFailures()?n&&!et(e,n)?e=!1:(e=e.warns(),e=t===z.WARNINGS==!!e):e=!1,e}))}function ut(t){return!!function(t){return!!t&&k().some((function(n){return n.fieldName===t&&n.isOmitted()}))}(t)||!rt(z.ERRORS,t)&&(!tt(k())&&!function(t){var n=b().optionalFields()[0];return nt(_().filter((function(e){return!(t&&!et(e,t))&&!0!==n[e.fieldName]})))}(t)&&function(t){var n=k(),e=b().optionalFields()[0];return n.every((function(n){return!(!t||et(n,t))||(!0===e[n.fieldName]||n.isTested()||n.isOmitted())}))}(t))}function it(){var t=S.useX().summary;return K(t),t}function ot(t,n){function e(t){i[t===z.ERRORS?Z.ERROR_COUNT:Z.WARN_COUNT]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||g({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(z.ERRORS):n.isWarning()&&e(z.WARNINGS)),i}function st(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function at(t,n){var e,r={};for(e in t)r[e]=t[e][n]||[];return r}function ct(t){return lt(z.ERRORS,t)}function ft(t){return lt(z.WARNINGS,t)}function lt(t,n){var e=it().tests;return n?st(e,t,n):at(e,t)}function pt(t,n){return vt(t,z.ERRORS,n)}function dt(t,n){return vt(t,z.WARNINGS,n)}function vt(t,n,e){return t=it().groups[t],e?st(t,n,e):at(t,n)}function ht(t){return gt(Z.ERROR_COUNT,t)}function Et(t){return gt(Z.WARN_COUNT,t)}function gt(t,n){var e,r=it();return s(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function Nt(t,n){return yt(z.ERRORS,t,n)}function mt(t,n){return yt(z.WARNINGS,t,n)}function yt(t,n,e){var r,u,i=it();if(t=t===z.ERRORS?Z.ERROR_COUNT:Z.WARN_COUNT,!(n=i.groups[n]))return!1;if(e)return s(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(s(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function Rt(t){var n,e=it();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var Ct=a(1);function St(){var t=k(),n={stateRef:b()};return Ct([t],S.bind(n,(function(){var t=function(){var t=k(),n=g({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ot(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ut(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=ot(e[r],n)),t}),n),n.valid=ut(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}(),n=b().suiteName()[0],e={summary:t};return g(t,{getErrors:S.bind(e,ct),getErrorsByGroup:S.bind(e,pt),getWarnings:S.bind(e,ft),getWarningsByGroup:S.bind(e,dt),hasErrors:S.bind(e,ht),hasErrorsByGroup:S.bind(e,Nt),hasWarnings:S.bind(e,Et),hasWarningsByGroup:S.bind(e,mt),isValid:S.bind(e,Rt),suiteName:n})})))}function bt(t){var n=_();return!tt(n)&&(t?n.some((function(n){return et(n,t)})):nt(n))}var Tt=a(20);function Ot(){var t=k(),n={stateRef:b()};return Tt([t],S.bind(n,(function(){return g({},St(),{done:S.bind(n,It)})})))}function At(t,n,e){return!(f(t)&&(!n||e.tests[n]&&!tt(e.tests[n].testCount)))}function _t(t){return!(bt()&&(!t||bt(t)))}function It(){function t(){return r(St())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Ot(),At(r,n,e)?e:_t(n)?(t(),e):(kt(t,n),e)}function kt(t,n){(0,b().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Lt(t){return t.forEach((function(t){return t()}))}function Ft(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(Wt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=b().testCallbacks()[0].fieldCallbacks;n&&!bt(n)&&Array.isArray(e[n])&&Lt(e[n]),bt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=b().optionalFields()[0];if(!tt(t)){var n={};A((function(e){return v(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))n[e.fieldName]&&e.omit();else{var r=t[e.fieldName];f(r)&&(n[e.fieldName]=r(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){Lt(b().testCallbacks()[0].doneCallbacks)})),t.on(Wt.REMOVE_FIELD,(function(t){k().forEach((function(n){et(n,t)&&(n.cancel(),function(t){A((function(n){return v(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){k().forEach((function(n){et(n,t)&&n.reset()}))})),t}function Ut(){var t=S.useX();return K(t.bus),t.bus}var Wt,Pt=Wt||(Wt={});function Gt(t){return wt(0,"tests",t)}function Xt(t){return wt(1,"tests",t)}function wt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Dt(t){for(var n in t)if(!0===t[n])return!0;return!1}function xt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Ht(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Kt(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function Mt(t){var n=t.asyncTest,e=t.message;if(n&&f(n.then)){var u=Ut().emit,i=b(),o=S.bind({stateRef:i},(function(){O(),u(Wt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function jt(t){var n=T()[0].prev;if(tt(n))return qt(t),t;var e=V();if(n=E(n,e)[d(e)],!q(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return q(r[n])?r[n]=e:B('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),qt(t),t}return!nt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||B("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=T(),n=t[1],e=t[0].prev;t=E(e,V());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),qt(t=p(n,t)),t}function qt(t){var n=V();A((function(e){return E(e,n)[d(n)]=t,e}))}function Bt(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!rt(z.ERRORS,t.fieldName)))return t.skip(),jt(t),Y(),t;if(n=jt(t),S.useX().omitted)return n.omit(),Y(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:xt())return!0;if(!0===r.groups[t])return!(i||!Dt(u)&&!1!==u[n])}return!!(t=!!xt()&&!t)||!i&&!!Dt(u)&&!l(e[n])}(t))return n.skip(!!S.useX().skipped),Y(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),qt(t),Y(),t.isUntested()){n=Ut();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&f(e.then)?(t.asyncTest=e,t.setPending(),Mt(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&f(n.then)&&(t.setPending(),Mt(t));return t}function Vt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=f(n[1])?n:Kt([void 0],n,!0);n=u[0],e=u[1],u=u[2],K(r(t),Jt("fieldName","string")),K(f(e),Jt("Test callback","function"));var i=S.useX();return Bt(n=new U(t,e,{message:n,groupName:i.groupName,key:u}))}Pt.TEST_COMPLETED="test_completed",Pt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Pt.REMOVE_FIELD="remove_field",Pt.RESET_FIELD="reset_field",Pt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Gt.group=function(t){return wt(0,"groups",t)},Xt.group=function(t){return wt(1,"groups",t)};var Yt=g(Vt,{memo:function(t){var n=a(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[b().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Bt(r[1])}}(Vt)});function Jt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var zt="4.3.2";function Qt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],K(f(r),"vest.create: Expected callback to be a function.");var u=Ft(),i=M();return t={stateRef:j(i,{suiteId:e(),suiteName:t}),bus:u},g(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return i.reset(),J({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Ot()})),{get:S.bind(t,St),remove:S.bind(t,(function(t){u.emit(Wt.REMOVE_FIELD,t)})),reset:i.reset,resetField:S.bind(t,(function(t){u.emit(Wt.RESET_FIELD,t)}))})}function Zt(t,n){K(f(n),"each callback must be a function"),J({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function $t(){var t=R.EAGER;S.useX().mode[0]=t}function tn(t,n){K(r(t),Ht("name must be a string")),K(f(n),Ht("callback must be a function")),J({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function nn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,K(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:l(n,l(St))}}}}function en(t,n){J({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||l(t,l(St))},(function(){return n()}))}))}function rn(t){(0,b().optionalFields()[1])((function(n){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function un(t,n){J({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||l(t,l(St))},(function(){return n()}))}))}function on(){var t=S.useX("warn hook called outside of a running suite.");K(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{zt as VERSION,S as context,Qt as create,Zt as each,$t as eager,tn as group,nn as include,en as omitWhen,Gt as only,rn as optional,Xt as skip,un as skipWhen,Yt as test,on as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=d(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function g(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(g(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function C(){return S.useX().stateRef}function O(t){return C().optionalFields()[0][t]}function T(t,n){(0,C().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=d(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,C().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=C().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,G=U||(U={});G.Error="error",G.Warning="warning";var P=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=U.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),I()},t.prototype.reset=function(){this.status=W,I()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,d(n,u)),function(){return[r.references[t],function(n){return e(t,d(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return S.useX().testCursor.getCursor()}function z(){return S.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=C().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return F().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(F())&&!function(t){return ut(k().filter((function(n){return lt(n,t)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||dt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=O(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==A(t.fieldName)}function dt(t,n){return!(!n||it(t,n))||(!0===A(t.fieldName)||t.isTested()||t.isOmitted())}function pt(){var t=S.useX().summary;return M(t),t}function vt(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return F().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(k().filter((function(e){return!ot(e,t)&<(e,n)})))}(u,n)&&function(t,n){return F().every((function(e){return!!ot(e,t)||dt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function gt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Et(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=pt().tests;return n?gt(e,t,n):Et(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=pt().groups[t],e?gt(t,n,e):Et(t,n)}function Ct(t){return Tt(tt.ERROR_COUNT,t)}function Ot(t){return Tt(tt.WARN_COUNT,t)}function Tt(t,n){var e,r=pt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=pt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function kt(t){var n=pt();return t?!!Ft(n.tests,t):n.valid}function Lt(t,n){if(!(t=pt().groups[t]))return!1;if(n)return Ft(t,n);for(var e in t)if(!Ft(t,e))return!1;return!0}function Ft(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=F(),n={stateRef:C()};return Ut([t],S.bind(n,(function(){var t=vt(),n=C().suiteName()[0],e={summary:t};return i(t,{getErrors:S.bind(e,Nt),getErrorsByGroup:S.bind(e,Rt),getWarnings:S.bind(e,mt),getWarningsByGroup:S.bind(e,bt),hasErrors:S.bind(e,Ct),hasErrorsByGroup:S.bind(e,At),hasWarnings:S.bind(e,Ot),hasWarningsByGroup:S.bind(e,It),isValid:S.bind(e,kt),isValidByGroup:S.bind(e,Lt),suiteName:n})})))}function Pt(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function Xt(){var t=F(),n={stateRef:C()};return Wt([t],S.bind(n,(function(){return i({},Gt(),{done:S.bind(n,xt)})})))}function wt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Dt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Xt(),wt(r,n,e)?e:Dt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,C().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=C().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(C().optionalFields()[0])){var n={};_((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(C().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){F().forEach((function(n){it(n,t)&&(n.cancel(),function(t){_((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=S.useX();return M(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=C(),o=S.bind({stateRef:i},(function(){I(),u(qt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=C().testObjects()[0].prev;if(rt(n))return en(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||Y("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=C().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function rn(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),z(),t;if(n=nn(t),S.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!d(e[n])}(t))return n.skip(!!S.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),en(t),z(),t.isUntested()){n=Mt();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),tn(t)):n.emit(qt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),tn(t));return t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),sn("fieldName","string")),M(l(e),sn("Test callback","function"));var i=S.useX();return rn(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[C().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0-dev-08ec91";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),Xt()})),{get:S.bind(t,Gt),remove:S.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:S.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=R.EAGER;S.useX().mode[0]=t}function dn(t,n){M(r(t),Zt("name must be a string")),M(l(n),Zt("callback must be a function")),Q({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function pn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:d(n,d(Gt))}}}}function vn(t,n){Q({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||d(t,d(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function gn(t,n){Q({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||d(t,d(Gt))},(function(){return n()}))}))}function En(){var t=S.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,S as context,cn as create,fn as each,ln as eager,dn as group,pn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,gn as skipWhen,on as test,En as warn};
|