vest 4.3.4 → 4.4.1
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 +177 -110
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +177 -110
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +1 -1
- package/dist/umd/enforce/compounds.development.js +1 -1
- package/dist/umd/enforce/schema.development.js +1 -1
- package/dist/umd/vest.development.js +177 -110
- package/dist/umd/vest.production.js +1 -1
- package/package.json +1 -1
- package/testUtils/testObjects.ts +4 -11
- 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 +37 -45
|
@@ -176,40 +176,6 @@ function getCurrent(array, path) {
|
|
|
176
176
|
return current;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
function createCursor() {
|
|
180
|
-
var storage = {
|
|
181
|
-
cursor: []
|
|
182
|
-
};
|
|
183
|
-
function addLevel() {
|
|
184
|
-
storage.cursor.push(0);
|
|
185
|
-
}
|
|
186
|
-
function removeLevel() {
|
|
187
|
-
storage.cursor.pop();
|
|
188
|
-
}
|
|
189
|
-
function cursorAt() {
|
|
190
|
-
return last(storage.cursor);
|
|
191
|
-
}
|
|
192
|
-
function getCursor() {
|
|
193
|
-
return asArray(storage.cursor);
|
|
194
|
-
}
|
|
195
|
-
function next() {
|
|
196
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
197
|
-
return last(storage.cursor);
|
|
198
|
-
}
|
|
199
|
-
function reset() {
|
|
200
|
-
storage.cursor = [0];
|
|
201
|
-
}
|
|
202
|
-
reset();
|
|
203
|
-
return {
|
|
204
|
-
addLevel: addLevel,
|
|
205
|
-
cursorAt: cursorAt,
|
|
206
|
-
getCursor: getCursor,
|
|
207
|
-
next: next,
|
|
208
|
-
removeLevel: removeLevel,
|
|
209
|
-
reset: reset
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
|
|
213
179
|
var IsolateTypes;
|
|
214
180
|
(function (IsolateTypes) {
|
|
215
181
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -226,6 +192,41 @@ var Modes;
|
|
|
226
192
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
227
193
|
})(Modes || (Modes = {}));
|
|
228
194
|
|
|
195
|
+
function createIsolateCursor() {
|
|
196
|
+
var cursor = {
|
|
197
|
+
value: 0
|
|
198
|
+
};
|
|
199
|
+
return {
|
|
200
|
+
current: current,
|
|
201
|
+
next: next
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* @returns {number} The current value of the cursor
|
|
205
|
+
*/
|
|
206
|
+
function current() {
|
|
207
|
+
return cursor.value;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Moves the isolate cursor forward by 1
|
|
211
|
+
*/
|
|
212
|
+
function next() {
|
|
213
|
+
cursor.value++;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function generateIsolate(type, path) {
|
|
218
|
+
if (path === void 0) { path = []; }
|
|
219
|
+
return {
|
|
220
|
+
cursor: createIsolateCursor(),
|
|
221
|
+
keys: {
|
|
222
|
+
current: {},
|
|
223
|
+
prev: {}
|
|
224
|
+
},
|
|
225
|
+
path: path,
|
|
226
|
+
type: type
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
|
|
229
230
|
var context = createContext(function (ctxRef, parentContext) {
|
|
230
231
|
return parentContext
|
|
231
232
|
? null
|
|
@@ -235,15 +236,8 @@ var context = createContext(function (ctxRef, parentContext) {
|
|
|
235
236
|
groups: {}
|
|
236
237
|
},
|
|
237
238
|
inclusion: {},
|
|
238
|
-
isolate:
|
|
239
|
-
|
|
240
|
-
keys: {
|
|
241
|
-
current: {},
|
|
242
|
-
prev: {}
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
mode: [Modes.ALL],
|
|
246
|
-
testCursor: createCursor()
|
|
239
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
240
|
+
mode: [Modes.ALL]
|
|
247
241
|
}, ctxRef);
|
|
248
242
|
});
|
|
249
243
|
|
|
@@ -569,30 +563,9 @@ function deferThrow(message) {
|
|
|
569
563
|
}, 0);
|
|
570
564
|
}
|
|
571
565
|
|
|
572
|
-
function usePath() {
|
|
573
|
-
var context$1 = context.useX();
|
|
574
|
-
return context$1.testCursor.getCursor();
|
|
575
|
-
}
|
|
576
|
-
function useCursorAt() {
|
|
577
|
-
var context$1 = context.useX();
|
|
578
|
-
return context$1.testCursor.cursorAt();
|
|
579
|
-
}
|
|
580
|
-
function moveForward() {
|
|
581
|
-
var context$1 = context.useX();
|
|
582
|
-
return context$1.testCursor.next();
|
|
583
|
-
}
|
|
584
|
-
function addLevel() {
|
|
585
|
-
var context$1 = context.useX();
|
|
586
|
-
context$1.testCursor.addLevel();
|
|
587
|
-
}
|
|
588
|
-
function removeLevel() {
|
|
589
|
-
var context$1 = context.useX();
|
|
590
|
-
context$1.testCursor.removeLevel();
|
|
591
|
-
}
|
|
592
|
-
|
|
593
566
|
function usePrevKeys() {
|
|
594
567
|
var prev = useTestObjects()[0].prev;
|
|
595
|
-
return asArray(getCurrent(prev,
|
|
568
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
596
569
|
if (!(testObject instanceof VestTest)) {
|
|
597
570
|
return prevKeys;
|
|
598
571
|
}
|
|
@@ -604,12 +577,11 @@ function usePrevKeys() {
|
|
|
604
577
|
}, {});
|
|
605
578
|
}
|
|
606
579
|
function usePrevTestByKey(key) {
|
|
607
|
-
var prev =
|
|
580
|
+
var prev = useIsolate().keys.prev;
|
|
608
581
|
return prev[key];
|
|
609
582
|
}
|
|
610
583
|
function useRetainTestKey(key, testObject) {
|
|
611
|
-
var
|
|
612
|
-
var current = context$1.isolate.keys.current;
|
|
584
|
+
var current = useIsolate().keys.current;
|
|
613
585
|
if (isNullish(current[key])) {
|
|
614
586
|
current[key] = testObject;
|
|
615
587
|
}
|
|
@@ -621,23 +593,42 @@ function useRetainTestKey(key, testObject) {
|
|
|
621
593
|
function isolate(_a, callback) {
|
|
622
594
|
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
623
595
|
invariant(isFunction(callback));
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
630
|
-
addLevel();
|
|
631
|
-
keys.prev = usePrevKeys();
|
|
632
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
596
|
+
// Generate a new Isolate layer, with its own cursor
|
|
597
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
598
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
599
|
+
isolate.keys.prev = usePrevKeys();
|
|
600
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
633
601
|
var res = callback();
|
|
634
|
-
removeLevel();
|
|
635
|
-
moveForward();
|
|
636
602
|
return res;
|
|
637
603
|
});
|
|
604
|
+
// Move the parent cursor forward once we're done
|
|
605
|
+
useCursor().next();
|
|
606
|
+
return output;
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* @returns {Isolate} The current isolate layer
|
|
610
|
+
*/
|
|
611
|
+
function useIsolate() {
|
|
612
|
+
return context.useX().isolate;
|
|
638
613
|
}
|
|
614
|
+
/**
|
|
615
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
616
|
+
*/
|
|
639
617
|
function shouldAllowReorder() {
|
|
640
|
-
return
|
|
618
|
+
return useIsolate().type === IsolateTypes.EACH;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
622
|
+
*/
|
|
623
|
+
function useCurrentPath() {
|
|
624
|
+
var isolate = useIsolate();
|
|
625
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
629
|
+
*/
|
|
630
|
+
function useCursor() {
|
|
631
|
+
return useIsolate().cursor;
|
|
641
632
|
}
|
|
642
633
|
|
|
643
634
|
var Severity;
|
|
@@ -691,6 +682,11 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
691
682
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
692
683
|
}
|
|
693
684
|
|
|
685
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
686
|
+
function matchingGroupName(testObject, groupName) {
|
|
687
|
+
return testObject.groupName === groupName;
|
|
688
|
+
}
|
|
689
|
+
|
|
694
690
|
function either(a, b) {
|
|
695
691
|
return !!a !== !!b;
|
|
696
692
|
}
|
|
@@ -715,6 +711,15 @@ function hasFailuresByTestObjects(severityKey, fieldName) {
|
|
|
715
711
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
716
712
|
});
|
|
717
713
|
}
|
|
714
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
715
|
+
var testObjects = useTestsFlat();
|
|
716
|
+
return testObjects.some(function (testObject) {
|
|
717
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
718
|
+
return false;
|
|
719
|
+
}
|
|
720
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
721
|
+
});
|
|
722
|
+
}
|
|
718
723
|
/**
|
|
719
724
|
* Determines whether a certain test profile has failures.
|
|
720
725
|
*/
|
|
@@ -732,7 +737,7 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
|
|
|
732
737
|
}
|
|
733
738
|
|
|
734
739
|
// eslint-disable-next-line max-statements, complexity
|
|
735
|
-
function
|
|
740
|
+
function shouldAddValidProperty(fieldName) {
|
|
736
741
|
if (fieldIsOmitted(fieldName)) {
|
|
737
742
|
return true;
|
|
738
743
|
}
|
|
@@ -743,36 +748,78 @@ function shouldAddValidProp(fieldName) {
|
|
|
743
748
|
if (isEmpty(testObjects)) {
|
|
744
749
|
return false;
|
|
745
750
|
}
|
|
751
|
+
// Does the given field have any pending tests that are not optional?
|
|
746
752
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
747
753
|
return false;
|
|
748
754
|
}
|
|
749
755
|
return noMissingTests(fieldName);
|
|
750
756
|
}
|
|
757
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
758
|
+
if (fieldIsOmitted(fieldName)) {
|
|
759
|
+
return true;
|
|
760
|
+
}
|
|
761
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
762
|
+
return false;
|
|
763
|
+
}
|
|
764
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
765
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
766
|
+
return false;
|
|
767
|
+
}
|
|
768
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
769
|
+
}
|
|
751
770
|
function fieldIsOmitted(fieldName) {
|
|
752
771
|
if (!fieldName) {
|
|
753
772
|
return false;
|
|
754
773
|
}
|
|
755
774
|
return useOptionalFieldApplied(fieldName) === true;
|
|
756
775
|
}
|
|
776
|
+
// Does the given field have any pending tests that are not optional?
|
|
757
777
|
function hasNonOptionalIncomplete(fieldName) {
|
|
758
778
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
759
|
-
|
|
779
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
780
|
+
}));
|
|
781
|
+
}
|
|
782
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
783
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
784
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
785
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
760
786
|
return false;
|
|
761
787
|
}
|
|
762
|
-
return
|
|
788
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
763
789
|
}));
|
|
764
790
|
}
|
|
791
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
792
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
793
|
+
return false;
|
|
794
|
+
}
|
|
795
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
796
|
+
}
|
|
765
797
|
function noMissingTests(fieldName) {
|
|
766
798
|
var testObjects = useTestsFlat();
|
|
767
799
|
return testObjects.every(function (testObject) {
|
|
768
800
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
769
801
|
return true;
|
|
770
802
|
}
|
|
771
|
-
return (
|
|
772
|
-
testObject.isTested() ||
|
|
773
|
-
testObject.isOmitted());
|
|
803
|
+
return missingTestsLogic(testObject, fieldName);
|
|
774
804
|
});
|
|
775
805
|
}
|
|
806
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
807
|
+
var testObjects = useTestsFlat();
|
|
808
|
+
return testObjects.every(function (testObject) {
|
|
809
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
810
|
+
return true;
|
|
811
|
+
}
|
|
812
|
+
return missingTestsLogic(testObject, fieldName);
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
816
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
817
|
+
return true;
|
|
818
|
+
}
|
|
819
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
820
|
+
testObject.isTested() ||
|
|
821
|
+
testObject.isOmitted());
|
|
822
|
+
}
|
|
776
823
|
|
|
777
824
|
function useSummary() {
|
|
778
825
|
var summary = context.useX().summary;
|
|
@@ -794,7 +841,7 @@ function genTestsSummary() {
|
|
|
794
841
|
appendToGroup(summary.groups, testObject);
|
|
795
842
|
return summary;
|
|
796
843
|
}, summary);
|
|
797
|
-
summary.valid =
|
|
844
|
+
summary.valid = shouldAddValidProperty();
|
|
798
845
|
return countFailures(summary);
|
|
799
846
|
}
|
|
800
847
|
function appendToTest(tests, testObject) {
|
|
@@ -803,7 +850,7 @@ function appendToTest(tests, testObject) {
|
|
|
803
850
|
tests[testObject.fieldName].valid =
|
|
804
851
|
tests[testObject.fieldName].valid === false
|
|
805
852
|
? false
|
|
806
|
-
:
|
|
853
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
807
854
|
}
|
|
808
855
|
/**
|
|
809
856
|
* Appends to a group object if within a group
|
|
@@ -815,6 +862,10 @@ function appendToGroup(groups, testObject) {
|
|
|
815
862
|
}
|
|
816
863
|
groups[groupName] = groups[groupName] || {};
|
|
817
864
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
865
|
+
groups[groupName][testObject.fieldName].valid =
|
|
866
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
867
|
+
? false
|
|
868
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
818
869
|
}
|
|
819
870
|
/**
|
|
820
871
|
* Counts the failed tests and adds global counters
|
|
@@ -957,9 +1008,30 @@ function hasFailuresByGroup(severityKey, groupName, fieldName) {
|
|
|
957
1008
|
}
|
|
958
1009
|
|
|
959
1010
|
function isValid(fieldName) {
|
|
960
|
-
var _a;
|
|
961
1011
|
var summary = useSummary();
|
|
962
|
-
return fieldName
|
|
1012
|
+
return fieldName
|
|
1013
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1014
|
+
: summary.valid;
|
|
1015
|
+
}
|
|
1016
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1017
|
+
var summary = useSummary();
|
|
1018
|
+
var group = summary.groups[groupName];
|
|
1019
|
+
if (!group) {
|
|
1020
|
+
return false;
|
|
1021
|
+
}
|
|
1022
|
+
if (fieldName) {
|
|
1023
|
+
return isFieldValid(group, fieldName);
|
|
1024
|
+
}
|
|
1025
|
+
for (var fieldName_1 in group) {
|
|
1026
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1027
|
+
return false;
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
return true;
|
|
1031
|
+
}
|
|
1032
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1033
|
+
var _a;
|
|
1034
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
963
1035
|
}
|
|
964
1036
|
|
|
965
1037
|
var cache$1 = createCache(1);
|
|
@@ -980,6 +1052,7 @@ function produceSuiteResult() {
|
|
|
980
1052
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
981
1053
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
982
1054
|
isValid: context.bind(ref, isValid),
|
|
1055
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
983
1056
|
suiteName: suiteName
|
|
984
1057
|
});
|
|
985
1058
|
}));
|
|
@@ -1577,7 +1650,7 @@ function optional(optionals) {
|
|
|
1577
1650
|
}
|
|
1578
1651
|
}
|
|
1579
1652
|
|
|
1580
|
-
|
|
1653
|
+
/******************************************************************************
|
|
1581
1654
|
Copyright (c) Microsoft Corporation.
|
|
1582
1655
|
|
|
1583
1656
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -1720,30 +1793,23 @@ function useTestAtCursor(newTestObject) {
|
|
|
1720
1793
|
return nextTest;
|
|
1721
1794
|
}
|
|
1722
1795
|
function removeAllNextTestsInIsolate() {
|
|
1723
|
-
var
|
|
1724
|
-
var prevTests = testObjects.prev;
|
|
1725
|
-
var current = getCurrent(prevTests, usePath());
|
|
1726
|
-
var cursorAt = useCursorAt();
|
|
1727
|
-
current.splice(cursorAt);
|
|
1796
|
+
var cursorAt = useCursor().current();
|
|
1728
1797
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1729
1798
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
1730
1799
|
// to prevent future headaches if we ever do need to rely on prev-state immutability.
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
return
|
|
1734
|
-
prev: prevTests,
|
|
1735
|
-
current: current
|
|
1736
|
-
});
|
|
1800
|
+
useSetTests(function (current) {
|
|
1801
|
+
current.splice(cursorAt);
|
|
1802
|
+
return current;
|
|
1737
1803
|
});
|
|
1738
1804
|
}
|
|
1739
1805
|
function useSetTestAtCursor(testObject) {
|
|
1740
|
-
var cursorPath =
|
|
1806
|
+
var cursorPath = useCurrentPath();
|
|
1741
1807
|
useSetTests(function (tests) {
|
|
1742
1808
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
1743
1809
|
});
|
|
1744
1810
|
}
|
|
1745
1811
|
function useGetTestAtCursor(tests) {
|
|
1746
|
-
var cursorPath =
|
|
1812
|
+
var cursorPath = useCurrentPath();
|
|
1747
1813
|
return valueAtPath(tests, cursorPath);
|
|
1748
1814
|
}
|
|
1749
1815
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -1767,16 +1833,17 @@ function handleKeyTest(key, newTestObject) {
|
|
|
1767
1833
|
|
|
1768
1834
|
// eslint-disable-next-line max-statements
|
|
1769
1835
|
function registerPrevRunTest(testObject) {
|
|
1836
|
+
var cursor = useCursor();
|
|
1770
1837
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
1771
1838
|
testObject.skip();
|
|
1772
1839
|
useTestAtCursor(testObject);
|
|
1773
|
-
|
|
1840
|
+
cursor.next();
|
|
1774
1841
|
return testObject;
|
|
1775
1842
|
}
|
|
1776
1843
|
var prevRunTest = useTestAtCursor(testObject);
|
|
1777
1844
|
if (isOmitted()) {
|
|
1778
1845
|
prevRunTest.omit();
|
|
1779
|
-
|
|
1846
|
+
cursor.next();
|
|
1780
1847
|
return prevRunTest;
|
|
1781
1848
|
}
|
|
1782
1849
|
if (isExcluded(testObject)) {
|
|
@@ -1785,13 +1852,13 @@ function registerPrevRunTest(testObject) {
|
|
|
1785
1852
|
// This mostly means that we're probably giving
|
|
1786
1853
|
// up on this async test intentionally.
|
|
1787
1854
|
prevRunTest.skip(isExcludedIndividually());
|
|
1788
|
-
|
|
1855
|
+
cursor.next();
|
|
1789
1856
|
return prevRunTest;
|
|
1790
1857
|
}
|
|
1791
1858
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
1792
1859
|
useSetTestAtCursor(testObject);
|
|
1793
|
-
moveForward();
|
|
1794
1860
|
registerTestObjectByTier(testObject);
|
|
1861
|
+
cursor.next();
|
|
1795
1862
|
return testObject;
|
|
1796
1863
|
}
|
|
1797
1864
|
function registerTestObjectByTier(testObject) {
|
|
@@ -1814,7 +1881,7 @@ function bindTestMemo(test) {
|
|
|
1814
1881
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1815
1882
|
args[_i - 1] = arguments[_i];
|
|
1816
1883
|
}
|
|
1817
|
-
var cursorAt =
|
|
1884
|
+
var cursorAt = useCursor().current();
|
|
1818
1885
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
1819
1886
|
// Implicit dependency for more specificity
|
|
1820
1887
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -1876,6 +1943,6 @@ function warn() {
|
|
|
1876
1943
|
ctx.currentTest.warn();
|
|
1877
1944
|
}
|
|
1878
1945
|
|
|
1879
|
-
var VERSION = "4.
|
|
1946
|
+
var VERSION = "4.4.1";
|
|
1880
1947
|
|
|
1881
1948
|
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)}}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 p(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 d(t,n){var e;return null!==(e=p(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]=d(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 C=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 S(){return C.useX().stateRef}function T(t){return S().optionalFields()[0][t]}function O(t,n){(0,S().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function A(t){var n;return null===(n=T(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,S().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=S().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,P=U||(U={});P.Error="error",P.Warning="warning";var W=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=G,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=G,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(G)},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}(),G="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?p(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(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 C.useX().testCursor.getCursor()}function z(){return C.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 C.run({isolate:{type:t,keys:e}},(function(){C.useX().testCursor.addLevel(),e.prev=function(){var t=S().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof W&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return C.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)}function ot(t,n){return F().some((function(e){return e.hasFailures()?n&&!it(e,n)?e=!1:(e=e.warns(),e=t===Z.WARNINGS==!!e):e=!1,e}))}function st(t){if(t)var n,e=!0===(null===(n=T(t))||void 0===n?void 0:n[1]);else e=!1;return!!e||!ot(Z.ERRORS,t)&&(!rt(e=F())&&!function(t){return ut(k().filter((function(n){return!(t&&!it(n,t))&&!0!==A(n.fieldName)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||(!0===A(n.fieldName)||n.isTested()||n.isOmitted())}))}(t))}function at(){var t=C.useX().summary;return M(t),t}function ct(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 ft(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function lt(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 pt(t){return vt(Z.ERRORS,t)}function dt(t){return vt(Z.WARNINGS,t)}function vt(t,n){var e=at().tests;return n?ft(e,t,n):lt(e,t)}function ht(t,n){return Et(t,Z.ERRORS,n)}function gt(t,n){return Et(t,Z.WARNINGS,n)}function Et(t,n,e){return t=at().groups[t],e?ft(t,n,e):lt(t,n)}function Nt(t){return yt(tt.ERROR_COUNT,t)}function mt(t){return yt(tt.WARN_COUNT,t)}function yt(t,n){var e,r=at();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function Rt(t,n){return Ct(Z.ERRORS,t,n)}function bt(t,n){return Ct(Z.WARNINGS,t,n)}function Ct(t,n,e){var r,u,i=at();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 St(t){var n,e=at();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var Tt=c(1);function Ot(){var t=F(),n={stateRef:S()};return Tt([t],C.bind(n,(function(){var t=function(){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]=ct(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&st(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=ct(e[r],n)),t}),n),n.valid=st(),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=S().suiteName()[0],e={summary:t};return i(t,{getErrors:C.bind(e,pt),getErrorsByGroup:C.bind(e,ht),getWarnings:C.bind(e,dt),getWarningsByGroup:C.bind(e,gt),hasErrors:C.bind(e,Nt),hasErrorsByGroup:C.bind(e,Rt),hasWarnings:C.bind(e,mt),hasWarningsByGroup:C.bind(e,bt),isValid:C.bind(e,St),suiteName:n})})))}function At(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var It=c(20);function _t(){var t=F(),n={stateRef:S()};return It([t],C.bind(n,(function(){return i({},Ot(),{done:C.bind(n,Ft)})})))}function kt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Lt(t){return!(At()&&(!t||At(t)))}function Ft(){function t(){return r(Ot())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=_t(),kt(r,n,e)?e:Lt(n)?(t(),e):(Ut(t,n),e)}function Ut(t,n){(0,S().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Pt(t){return t.forEach((function(t){return t()}))}function Wt(){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(Xt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=S().testCallbacks()[0].fieldCallbacks;n&&!At(n)&&Array.isArray(e[n])&&Pt(e[n]),At()||t.emit(Xt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Xt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),O(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(S().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(Xt.ALL_RUNNING_TESTS_FINISHED,(function(){Pt(S().testCallbacks()[0].doneCallbacks)})),t.on(Xt.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(Xt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Gt(){var t=C.useX();return M(t.bus),t.bus}var Xt,wt=Xt||(Xt={});function Dt(t){return jt(0,"tests",t)}function xt(t){return jt(1,"tests",t)}function jt(t,n,e){var u=C.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ht(t){for(var n in t)if(!0===t[n])return!0;return!1}function Kt(){var t,n=C.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Mt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function qt(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 Bt(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Gt().emit,i=S(),o=C.bind({stateRef:i},(function(){I(),u(Xt.TEST_COMPLETED,t)}));i=C.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 Vt(t){var n=S().testObjects()[0].prev;if(rt(n))return Yt(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=C.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=C.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.")),Yt(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(C.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=S().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=C.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Yt(t=d(n,t)),t}function Yt(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function Jt(t){var n=R.EAGER;if(n=!(C.useX().mode[0]!==n||!ot(Z.ERRORS,t.fieldName)))return t.skip(),Vt(t),z(),t;if(n=Vt(t),C.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,C.useX().skipped)return!0;var e=C.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=C.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Kt())return!0;if(!0===r.groups[t])return!(i||!Ht(u)&&!1!==u[n])}return!!(t=!!Kt()&&!t)||!i&&!!Ht(u)&&!p(e[n])}(t))return n.skip(!!C.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Yt(t),z(),t.isUntested()){n=Gt();var e=function(t){return C.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),Bt(t)):n.emit(Xt.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(),Bt(t));return t}function zt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:qt([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),Zt("fieldName","string")),M(l(e),Zt("Test callback","function"));var i=C.useX();return Jt(n=new W(t,e,{message:n,groupName:i.groupName,key:u}))}wt.TEST_COMPLETED="test_completed",wt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",wt.REMOVE_FIELD="remove_field",wt.RESET_FIELD="reset_field",wt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Dt.group=function(t){return jt(0,"groups",t)},xt.group=function(t){return jt(1,"groups",t)};var Qt=i(zt,{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=C.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[S().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)}))):Jt(r[1])}}(zt)});function Zt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var $t="4.3.4";function tn(){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=Wt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(C.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(Xt.SUITE_CALLBACK_DONE_RUNNING),_t()})),{get:C.bind(t,Ot),remove:C.bind(t,(function(t){u.emit(Xt.REMOVE_FIELD,t)})),reset:o.reset,resetField:C.bind(t,(function(t){u.emit(Xt.RESET_FIELD,t)}))})}function nn(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 en(){var t=R.EAGER;C.useX().mode[0]=t}function rn(t,n){M(r(t),Mt("name must be a string")),M(l(n),Mt("callback must be a function")),Q({type:m.GROUP},(function(){C.run({groupName:t},n)}))}function un(t){var n=C.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=C.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Ot))}}}}function on(t,n){Q({type:m.OMIT_WHEN},(function(){C.run({omitted:!!C.useX().omitted||p(t,p(Ot))},(function(){return n()}))}))}function sn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){O(t,[!0,!1])}));else for(var n in t)O(n,[t[n],!1])}function an(t,n){Q({type:m.SKIP_WHEN},(function(){C.run({skipped:!!C.useX().skipped||p(t,p(Ot))},(function(){return n()}))}))}function cn(){var t=C.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{$t as VERSION,C as context,tn as create,nn as each,en as eager,rn as group,un as include,on as omitWhen,Dt as only,sn as optional,xt as skip,an as skipWhen,Qt as test,cn as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,r=(n=0,function(){return"".concat(n++)});function e(t){return String(t)===t}function u(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];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(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),a(e.length,t)&&(e.length=t),u)}function r(t){return e.findIndex((function(n){var r=n[0];return s(t.length,r.length)&&t.every((function(t,n){return t===r[n]}))}))}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){-1<(t=r(t))&&e.splice(t,1)},n.get=function(t){return e[r(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return l(t)?t.apply(void 0,n):t}function p(t,n){var r;return null!==(r=d(t))&&void 0!==r?r:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var r=[],e=0;e<t.length;e++){var u=t[e];Array.isArray(u)?r.push(h(u,n)):(u=n(u),f(u)&&r.push(u))}return r}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var r=0;for(n=n.slice(0,-1);r<n.length;r++){var e=n[r];t[e]=p(t[e],[]),t=t[e]}return t}var N,m=N||(N={});m[m.DEFAULT=0]="DEFAULT",m[m.SUITE=1]="SUITE",m[m.EACH=2]="EACH",m[m.SKIP_WHEN=3]="SKIP_WHEN",m[m.OMIT_WHEN=4]="OMIT_WHEN",m[m.GROUP=5]="GROUP";var y,R=y||(y={});function b(){var t=0;return{current:function(){return t},next:function(){t++}}}function S(t,n){return void 0===n&&(n=[]),{cursor:b(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var T=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:S(N.DEFAULT),mode:[y.ALL]},t)}));function O(){return T.useX().stateRef}function C(t){return O().optionalFields()[0][t]}function A(t,n){(0,O().optionalFields()[1])((function(r){var e;return i(r,((e={})[t]=d(n,r[t]),e))}))}function I(t){var n;return null===(n=C(t))||void 0===n?void 0:n[0]}function _(){k((function(t){return t}))}function k(t){(0,O().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return U().filter((function(t){return t.isPending()}))}var L=c();function U(){var t=O().testObjects()[0].current;return L([t],(function(){return E(t)}))}var G,P=G||(G={});P.Error="error",P.Warning="warning";var W=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=G.Error,this.status=w,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&e(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==M||(this.status=t)},t.prototype.warns=function(){return this.severity===G.Warning},t.prototype.setPending=function(){this.setStatus(H)},t.prototype.fail=function(){this.setStatus(this.warns()?X:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},t.prototype.warn=function(){this.severity=G.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(D)},t.prototype.cancel=function(){this.setStatus(K),_()},t.prototype.reset=function(){this.status=w,_()},t.prototype.omit=function(){this.setStatus(M)},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(H)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(M)},t.prototype.isUntested=function(){return this.statusEquals(w)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(K)},t.prototype.isSkipped=function(){return this.statusEquals(D)},t.prototype.isPassing=function(){return this.statusEquals(j)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),w="UNTESTED",D="SKIPPED",x="FAILED",X="WARNING",j="PASSING",H="PENDING",K="CANCELED",M="OMITTED";function q(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function B(t){function n(t,n,u){return e.references.push(),r(t,d(n,u)),function(){return[e.references[t],function(n){return r(t,d(n,e.references[t]))}]}}function r(n,r){var i=e.references[n];e.references[n]=r,l(n=u[n][1])&&n(r,i),l(t)&&t()}var e={references:[]},u=[];return{registerStateKey:function(t,r){var e=u.length;return u.push([t,r]),n(e,t)},reset:function(){var t=e.references;e.references=[],u.forEach((function(r,e){return n(e,r[0],t[e])}))}}}function V(t,n){var r=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(r),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function Y(t){return null==t}function J(t){setTimeout((function(){throw Error(t)}),0)}function z(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,q(l(n));var r=S(t,Z());return t=T.run({isolate:r},(function(){return r.keys.prev=function(){var t=O().testObjects()[0].prev;return[].concat(g(t,Z())).reduce((function(t,n){return n instanceof W&&!Y(n.key)?(t[n.key]=n,t):t}),{})}(),k((function(t){var n=r.path;return g(t,n)[v(n)]=[],t})),n()})),Q().cursor.next(),t}function Q(){return T.useX().isolate}function Z(){var t=Q();return t.path.concat(t.cursor.current())}var $,tt=$||($={});tt.WARNINGS="warnings",tt.ERRORS="errors";var nt,rt=nt||(nt={});function et(t){return t===$.ERRORS?nt.ERROR_COUNT:nt.WARN_COUNT}function ut(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))}rt.ERROR_COUNT="errorCount",rt.WARN_COUNT="warnCount";var it=u(ut);function ot(t,n){return!(!n||t.fieldName!==n)}var st=u((function(t,n){return t.groupName===n}));function at(t,n){return U().some((function(r){return ct(r,t,n)}))}function ct(t,n,r){return(r=!t.hasFailures()||r&&!ot(t,r))||(t=t.warns(),r=n===$.WARNINGS!=!!t),!r}function ft(t){return!!lt(t)||!at($.ERRORS,t)&&(!ut(U())&&!function(t){return it(F().filter((function(n){return dt(n,t)})))}(t)&&function(t){return U().every((function(n){return!(!t||ot(n,t))||pt(n,t)}))}(t))}function lt(t){return!!t&&!0===(null===(n=C(t))||void 0===n?void 0:n[1]);var n}function dt(t,n){return!(n&&!ot(t,n))&&!0!==I(t.fieldName)}function pt(t,n){return!(!n||ot(t,n))||(!0===I(t.fieldName)||t.isTested()||t.isOmitted())}function vt(){var t=T.useX().summary;return q(t),t}function ht(){var t=U(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var r=t.tests;r[n.fieldName]=Et(r,n),r[n.fieldName].valid=!1!==r[n.fieldName].valid&&ft(n.fieldName);var e=t.groups,u=n.groupName;return u&&(e[u]=e[u]||{},e[u][n.fieldName]=Et(e[u],n),r=e[u][n.fieldName],!1===e[u][n.fieldName].valid?n=!1:n=!!lt(n=n.fieldName)||!function(t,n,r){return U().some((function(e){return!st(e,n)&&ct(e,t,r)}))}($.ERRORS,u,n)&&!function(t,n){return it(F().filter((function(r){return!st(r,t)&&dt(r,n)})))}(u,n)&&function(t,n){return U().every((function(r){return!!st(r,t)||pt(r,n)}))}(u,n),r.valid=n),t}),n),n.valid=ft(),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 Et(t,n){function r(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var e=n.fieldName,u=n.message;t[e]=t[e]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?r($.ERRORS):n.isWarning()&&r($.WARNINGS)),o}function gt(t,n,r){var e;return(null===(e=null==t?void 0:t[r])||void 0===e?void 0:e[n])||[]}function Nt(t,n){var r,e={},u=et(n);for(r in t)a(t[r][u],0)&&(e[r]=t[r][n]||[]);return e}function mt(t){return Rt($.ERRORS,t)}function yt(t){return Rt($.WARNINGS,t)}function Rt(t,n){var r=vt().tests;return n?gt(r,t,n):Nt(r,t)}function bt(t,n){return Tt(t,$.ERRORS,n)}function St(t,n){return Tt(t,$.WARNINGS,n)}function Tt(t,n,r){return t=vt().groups[t],r?gt(t,n,r):Nt(t,n)}function Ot(t){return At(nt.ERROR_COUNT,t)}function Ct(t){return At(nt.WARN_COUNT,t)}function At(t,n){var r,e=vt();return a(n?null===(r=e.tests[n])||void 0===r?void 0:r[t]:e[t],0)}function It(t,n){return kt($.ERRORS,t,n)}function _t(t,n){return kt($.WARNINGS,t,n)}function kt(t,n,r){var e,u,i=vt();if(t=et(t),!(n=i.groups[n]))return!1;if(r)return a(null===(e=n[r])||void 0===e?void 0:e[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 Ft(t){var n=vt();return t?!!Ut(n.tests,t):n.valid}function Lt(t,n){if(!(t=vt().groups[t]))return!1;if(n)return Ut(t,n);for(var r in t)if(!Ut(t,r))return!1;return!0}function Ut(t,n){var r;return!(null===(r=t[n])||void 0===r||!r.valid)}var Gt=c(1);function Pt(){var t=U(),n={stateRef:O()};return Gt([t],T.bind(n,(function(){var t=ht(),n=O().suiteName()[0],r={summary:t};return i(t,{getErrors:T.bind(r,mt),getErrorsByGroup:T.bind(r,bt),getWarnings:T.bind(r,yt),getWarningsByGroup:T.bind(r,St),hasErrors:T.bind(r,Ot),hasErrorsByGroup:T.bind(r,It),hasWarnings:T.bind(r,Ct),hasWarningsByGroup:T.bind(r,_t),isValid:T.bind(r,Ft),isValidByGroup:T.bind(r,Lt),suiteName:n})})))}function Wt(t){var n=F();return!ut(n)&&(t?n.some((function(n){return ot(n,t)})):it(n))}var wt=c(20);function Dt(){var t=U(),n={stateRef:O()};return wt([t],T.bind(n,(function(){return i({},Pt(),{done:T.bind(n,jt)})})))}function xt(t,n,r){return!(l(t)&&(!n||r.tests[n]&&!ut(r.tests[n].testCount)))}function Xt(t){return!(Wt()&&(!t||Wt(t)))}function jt(){function t(){return e(Pt())}for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var e=(n=n.reverse())[0];return n=n[1],r=Dt(),xt(e,n,r)?r:Xt(n)?(t(),r):(Ht(t,n),r)}function Ht(t,n){(0,O().testCallbacks()[1])((function(r){return n?r.fieldCallbacks[n]=(r.fieldCallbacks[n]||[]).concat(t):r.doneCallbacks.push(t),r}))}function Kt(t){return t.forEach((function(t){return t()}))}function Mt(){var t=function(){var t={};return{emit:function(n,r){(t[n]||[]).forEach((function(t){t(r)}))},on:function(n,r){return t[n]=(t[n]||[]).concat(r),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==r}))}}}}}();return t.on(Bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var r=O().testCallbacks()[0].fieldCallbacks;n&&!Wt(n)&&Array.isArray(r[n])&&Kt(r[n]),Wt()||t.emit(Bt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Bt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),A(t.fieldName,(function(t){return[t[0],!0]})))}if(!ut(O().optionalFields()[0])){var n={};k((function(r){return h(r,(function(r){if(Object.prototype.hasOwnProperty.call(n,r.fieldName))t(r);else{var e=I(r.fieldName);l(e)&&(n[r.fieldName]=e(),t(r))}return r}))}))}}()})),t.on(Bt.ALL_RUNNING_TESTS_FINISHED,(function(){Kt(O().testCallbacks()[0].doneCallbacks)})),t.on(Bt.REMOVE_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&(n.cancel(),function(t){k((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Bt.RESET_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&n.reset()}))})),t}function qt(){var t=T.useX();return q(t.bus),t.bus}var Bt,Vt=Bt||(Bt={});function Yt(t){return zt(0,"tests",t)}function Jt(t){return zt(1,"tests",t)}function zt(t,n,r){var u=T.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){e(r)&&(u.exclusion[n][r]=0===t)}))}function Qt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Zt(){var t,n=T.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t,n,r){if(r||2===arguments.length)for(var e,u=0,i=n.length;u<i;u++)!e&&u in n||(e||(e=Array.prototype.slice.call(n,0,u)),e[u]=n[u]);return t.concat(e||Array.prototype.slice.call(n))}function nn(t){var n=t.asyncTest,r=t.message;if(n&&l(n.then)){var u=qt().emit,i=O(),o=T.bind({stateRef:i},(function(){_(),u(Bt.TEST_COMPLETED,t)}));i=T.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function rn(t){var n=O().testObjects()[0].prev;if(ut(n))return en(t),t;var r=Z();if(n=g(n,r)[v(r)],!Y(t.key)){n=t.key,(r=Q().keys.prev[n])&&(t=r),r=t;var e=Q().keys.current;return Y(e[n])?e[n]=r:J('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!it(r=n)||r.fieldName===t.fieldName&&r.groupName===t.groupName||(Q().type===N.EACH||J("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=Q().cursor.current();k((function(n){return n.splice(t),n}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=Z();k((function(r){return g(r,n)[v(n)]=t,r}))}function un(t){var n=Q().cursor,r=y.EAGER;if(r=!(T.useX().mode[0]!==r||!at($.ERRORS,t.fieldName)))return t.skip(),rn(t),n.next(),t;if(r=rn(t),T.useX().omitted)return r.omit(),n.next(),r;if(function(t){var n=t.fieldName;if(t=t.groupName,T.useX().skipped)return!0;var r=T.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=T.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Zt())return!0;if(!0===e.groups[t])return!(i||!Qt(u)&&!1!==u[n])}return!!(t=!!Zt()&&!t)||!i&&!!Qt(u)&&!d(r[n])}(t))return r.skip(!!T.useX().skipped),n.next(),r;if(t!==r&&r.fieldName===t.fieldName&&r.groupName===t.groupName&&r.isPending()&&r.cancel(),en(t),t.isUntested()){r=qt();var e=function(t){return T.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),nn(t)):r.emit(Bt.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(r=t.asyncTest)&&l(r.then)&&(t.setPending(),nn(t));return n.next(),t}function on(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var u=l(n[1])?n:tn([void 0],n,!0);n=u[0],r=u[1],u=u[2],q(e(t),an("fieldName","string")),q(l(r),an("Test callback","function"));var i=T.useX();return un(n=new W(t,r,{message:n,groupName:i.groupName,key:u}))}Vt.TEST_COMPLETED="test_completed",Vt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Vt.REMOVE_FIELD="remove_field",Vt.RESET_FIELD="reset_field",Vt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Yt.group=function(t){return zt(0,"groups",t)},Jt.group=function(t){return zt(1,"groups",t)};var sn=i(on,{memo:function(t){var n=c(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Q().cursor.current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[O().suiteId()[0],r,u].concat(i),null===(e=n.get(u))?n(u,(function(){return t(r,s,o)})):e[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(r,s,o)}))):un(e[1])}}(on)});function an(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var cn="4.4.1";function fn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],q(l(e),"vest.create: Expected callback to be a function.");var u=Mt(),o=B();return t={stateRef:V(o,{suiteId:r(),suiteName:t}),bus:u},i(T.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),z({type:N.SUITE},(function(){e.apply(void 0,t)})),u.emit(Bt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:T.bind(t,Pt),remove:T.bind(t,(function(t){u.emit(Bt.REMOVE_FIELD,t)})),reset:o.reset,resetField:T.bind(t,(function(t){u.emit(Bt.RESET_FIELD,t)}))})}function ln(t,n){q(l(n),"each callback must be a function"),z({type:N.EACH},(function(){t.forEach((function(t,r){n(t,r)}))}))}function dn(){var t=y.EAGER;T.useX().mode[0]=t}function pn(t,n){q(e(t),$t("name must be a string")),q(l(n),$t("callback must be a function")),z({type:N.GROUP},(function(){T.run({groupName:t},n)}))}function vn(t){var n=T.useX(),r=n.inclusion;return n=n.exclusion,q(e(t)),r[t]=p(n.tests[t],!0),{when:function(n){var r=T.useX(),u=r.exclusion;r.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):e(n)?!!u.tests[n]:d(n,d(Pt))}}}}function hn(t,n){z({type:N.OMIT_WHEN},(function(){T.run({omitted:!!T.useX().omitted||d(t,d(Pt))},(function(){return n()}))}))}function En(t){if(Array.isArray(t)||e(t))[].concat(t).forEach((function(t){A(t,[!0,!1])}));else for(var n in t)A(n,[t[n],!1])}function gn(t,n){z({type:N.SKIP_WHEN},(function(){T.run({skipped:!!T.useX().skipped||d(t,d(Pt))},(function(){return n()}))}))}function Nn(){var t=T.useX("warn hook called outside of a running suite.");q(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{cn as VERSION,T as context,fn as create,ln as each,dn as eager,pn as group,vn as include,hn as omitWhen,Yt as only,En as optional,Jt as skip,gn as skipWhen,sn as test,Nn as warn};
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
return null;
|
|
508
508
|
}
|
|
509
509
|
|
|
510
|
-
|
|
510
|
+
/******************************************************************************
|
|
511
511
|
Copyright (c) Microsoft Corporation.
|
|
512
512
|
|
|
513
513
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
-
|
|
456
|
+
/******************************************************************************
|
|
457
457
|
Copyright (c) Microsoft Corporation.
|
|
458
458
|
|
|
459
459
|
Permission to use, copy, modify, and/or distribute this software for any
|