vest 4.3.1 → 4.3.2-dev-2805e3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/classnames.development.js +21 -18
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +3 -3
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/parser.development.js +21 -18
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/vest.development.js +121 -134
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +21 -18
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +3 -3
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/parser.development.js +21 -18
- package/dist/es/parser.production.js +1 -1
- package/dist/es/vest.development.js +121 -134
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +21 -18
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +12 -8
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +15 -11
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +12 -8
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +21 -18
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +128 -141
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/classnames.d.ts +9 -5
- package/types/parser.d.ts +9 -5
- package/types/promisify.d.ts +9 -5
- package/types/vest.d.ts +10 -6
|
@@ -296,18 +296,6 @@ function useAllIncomplete() {
|
|
|
296
296
|
return testObject.isPending() ? testObject : null;
|
|
297
297
|
}));
|
|
298
298
|
}
|
|
299
|
-
function useOmittedFields() {
|
|
300
|
-
var testObjects = useTestsFlat();
|
|
301
|
-
return testObjects.reduce(function (omittedFields, testObject) {
|
|
302
|
-
if (omittedFields[testObject.fieldName]) {
|
|
303
|
-
return omittedFields;
|
|
304
|
-
}
|
|
305
|
-
if (testObject.isOmitted()) {
|
|
306
|
-
omittedFields[testObject.fieldName] = true;
|
|
307
|
-
}
|
|
308
|
-
return omittedFields;
|
|
309
|
-
}, {});
|
|
310
|
-
}
|
|
311
299
|
var flatCache = createCache();
|
|
312
300
|
function useTestsFlat() {
|
|
313
301
|
var current = useTestObjects()[0].current;
|
|
@@ -620,9 +608,7 @@ function useRetainTestKey(key, testObject) {
|
|
|
620
608
|
|
|
621
609
|
function isolate(_a, callback) {
|
|
622
610
|
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
623
|
-
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
611
|
+
invariant(isFunction(callback));
|
|
626
612
|
var keys = {
|
|
627
613
|
current: {},
|
|
628
614
|
prev: {}
|
|
@@ -652,6 +638,11 @@ var SeverityCount;
|
|
|
652
638
|
SeverityCount["ERROR_COUNT"] = "errorCount";
|
|
653
639
|
SeverityCount["WARN_COUNT"] = "warnCount";
|
|
654
640
|
})(SeverityCount || (SeverityCount = {}));
|
|
641
|
+
function countKeyBySeverity(severity) {
|
|
642
|
+
return severity === Severity.ERRORS
|
|
643
|
+
? SeverityCount.ERROR_COUNT
|
|
644
|
+
: SeverityCount.WARN_COUNT;
|
|
645
|
+
}
|
|
655
646
|
|
|
656
647
|
/**
|
|
657
648
|
* A safe hasOwnProperty access
|
|
@@ -677,7 +668,7 @@ function isEmpty(value) {
|
|
|
677
668
|
else if (typeof value === 'object') {
|
|
678
669
|
return lengthEquals(Object.keys(value), 0);
|
|
679
670
|
}
|
|
680
|
-
return
|
|
671
|
+
return false;
|
|
681
672
|
}
|
|
682
673
|
var isNotEmpty = bindNot(isEmpty);
|
|
683
674
|
|
|
@@ -699,10 +690,23 @@ function nonMatchingSeverityProfile(severity, testObject) {
|
|
|
699
690
|
return either(severity === Severity.WARNINGS, testObject.warns());
|
|
700
691
|
}
|
|
701
692
|
|
|
693
|
+
/**
|
|
694
|
+
* The difference between this file and hasFailures is that hasFailures uses the static
|
|
695
|
+
* summary object, while this one uses the actual validation state
|
|
696
|
+
*/
|
|
697
|
+
function hasErrorsByTestObjects(fieldName) {
|
|
698
|
+
return hasFailuresByTestObjects(Severity.ERRORS, fieldName);
|
|
699
|
+
}
|
|
700
|
+
function hasFailuresByTestObjects(severityKey, fieldName) {
|
|
701
|
+
var testObjects = useTestsFlat();
|
|
702
|
+
return testObjects.some(function (testObject) {
|
|
703
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
704
|
+
});
|
|
705
|
+
}
|
|
702
706
|
/**
|
|
703
707
|
* Determines whether a certain test profile has failures.
|
|
704
708
|
*/
|
|
705
|
-
function
|
|
709
|
+
function hasFailuresByTestObject(testObject, severityKey, fieldName) {
|
|
706
710
|
if (!testObject.hasFailures()) {
|
|
707
711
|
return false;
|
|
708
712
|
}
|
|
@@ -715,51 +719,29 @@ function hasFailuresLogic(testObject, severityKey, fieldName) {
|
|
|
715
719
|
return true;
|
|
716
720
|
}
|
|
717
721
|
|
|
718
|
-
function hasErrors(fieldName) {
|
|
719
|
-
return has(Severity.ERRORS, fieldName);
|
|
720
|
-
}
|
|
721
|
-
function hasWarnings(fieldName) {
|
|
722
|
-
return has(Severity.WARNINGS, fieldName);
|
|
723
|
-
}
|
|
724
|
-
function has(severityKey, fieldName) {
|
|
725
|
-
var testObjects = useTestsFlat();
|
|
726
|
-
return testObjects.some(function (testObject) {
|
|
727
|
-
return hasFailuresLogic(testObject, severityKey, fieldName);
|
|
728
|
-
});
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
function isValid(fieldName) {
|
|
732
|
-
var _a, _b;
|
|
733
|
-
var summary = context.useX().summary;
|
|
734
|
-
invariant(summary);
|
|
735
|
-
return Boolean(fieldName ? (_b = (_a = summary.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b.valid : summary.valid);
|
|
736
|
-
}
|
|
737
722
|
// eslint-disable-next-line max-statements, complexity
|
|
738
723
|
function shouldAddValidProp(fieldName) {
|
|
739
724
|
if (fieldIsOmitted(fieldName)) {
|
|
740
725
|
return true;
|
|
741
726
|
}
|
|
742
|
-
if (
|
|
727
|
+
if (hasErrorsByTestObjects(fieldName)) {
|
|
743
728
|
return false;
|
|
744
729
|
}
|
|
745
730
|
var testObjects = useTestsFlat();
|
|
746
731
|
if (isEmpty(testObjects)) {
|
|
747
732
|
return false;
|
|
748
733
|
}
|
|
749
|
-
if (fieldDoesNotExist(fieldName)) {
|
|
750
|
-
return false;
|
|
751
|
-
}
|
|
752
734
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
753
735
|
return false;
|
|
754
736
|
}
|
|
755
737
|
return noMissingTests(fieldName);
|
|
756
738
|
}
|
|
757
739
|
function fieldIsOmitted(fieldName) {
|
|
758
|
-
var omittedFields = useOmittedFields();
|
|
759
740
|
if (!fieldName) {
|
|
760
741
|
return false;
|
|
761
742
|
}
|
|
762
|
-
|
|
743
|
+
var flatTests = useTestsFlat();
|
|
744
|
+
return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
|
|
763
745
|
}
|
|
764
746
|
function hasNonOptionalIncomplete(fieldName) {
|
|
765
747
|
var optionalFields = useOptionalFields()[0];
|
|
@@ -770,11 +752,6 @@ function hasNonOptionalIncomplete(fieldName) {
|
|
|
770
752
|
return optionalFields[testObject.fieldName] !== true;
|
|
771
753
|
}));
|
|
772
754
|
}
|
|
773
|
-
function fieldDoesNotExist(fieldName) {
|
|
774
|
-
var testObjects = useTestsFlat();
|
|
775
|
-
return (!!fieldName &&
|
|
776
|
-
!testObjects.find(function (testObject) { return testObject.fieldName === fieldName; }));
|
|
777
|
-
}
|
|
778
755
|
function noMissingTests(fieldName) {
|
|
779
756
|
var testObjects = useTestsFlat();
|
|
780
757
|
var optionalFields = useOptionalFields()[0];
|
|
@@ -788,6 +765,11 @@ function noMissingTests(fieldName) {
|
|
|
788
765
|
});
|
|
789
766
|
}
|
|
790
767
|
|
|
768
|
+
function useSummary() {
|
|
769
|
+
var summary = context.useX().summary;
|
|
770
|
+
invariant(summary);
|
|
771
|
+
return summary;
|
|
772
|
+
}
|
|
791
773
|
/**
|
|
792
774
|
* Reads the testObjects list and gets full validation result from it.
|
|
793
775
|
*/
|
|
@@ -836,13 +818,9 @@ function countFailures(summary) {
|
|
|
836
818
|
}
|
|
837
819
|
return summary;
|
|
838
820
|
}
|
|
839
|
-
/**
|
|
840
|
-
* Appends the test to a results object
|
|
841
|
-
*/
|
|
842
|
-
// eslint-disable-next-line max-statements
|
|
843
821
|
function appendTestObject(summaryKey, testObject) {
|
|
844
822
|
var fieldName = testObject.fieldName, message = testObject.message;
|
|
845
|
-
summaryKey[fieldName] = summaryKey[fieldName] ||
|
|
823
|
+
summaryKey[fieldName] = summaryKey[fieldName] || baseTestStats();
|
|
846
824
|
var testKey = summaryKey[fieldName];
|
|
847
825
|
if (testObject.isNonActionable())
|
|
848
826
|
return testKey;
|
|
@@ -855,18 +833,13 @@ function appendTestObject(summaryKey, testObject) {
|
|
|
855
833
|
}
|
|
856
834
|
return testKey;
|
|
857
835
|
function incrementFailures(severity) {
|
|
858
|
-
var countKey =
|
|
836
|
+
var countKey = countKeyBySeverity(severity);
|
|
859
837
|
testKey[countKey]++;
|
|
860
838
|
if (message) {
|
|
861
839
|
testKey[severity] = (testKey[severity] || []).concat(message);
|
|
862
840
|
}
|
|
863
841
|
}
|
|
864
842
|
}
|
|
865
|
-
function getCountKey(severity) {
|
|
866
|
-
return severity === Severity.ERRORS
|
|
867
|
-
? SeverityCount.ERROR_COUNT
|
|
868
|
-
: SeverityCount.WARN_COUNT;
|
|
869
|
-
}
|
|
870
843
|
function baseStats() {
|
|
871
844
|
return {
|
|
872
845
|
errorCount: 0,
|
|
@@ -874,6 +847,12 @@ function baseStats() {
|
|
|
874
847
|
testCount: 0
|
|
875
848
|
};
|
|
876
849
|
}
|
|
850
|
+
function baseTestStats() {
|
|
851
|
+
return assign(baseStats(), {
|
|
852
|
+
errors: [],
|
|
853
|
+
warnings: []
|
|
854
|
+
});
|
|
855
|
+
}
|
|
877
856
|
|
|
878
857
|
// calls collectAll or getByFieldName depending on whether fieldName is provided
|
|
879
858
|
function gatherFailures(testGroup, severityKey, fieldName) {
|
|
@@ -886,10 +865,11 @@ function getByFieldName(testGroup, severityKey, fieldName) {
|
|
|
886
865
|
return ((_a = testGroup === null || testGroup === void 0 ? void 0 : testGroup[fieldName]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
|
|
887
866
|
}
|
|
888
867
|
function collectAll(testGroup, severityKey) {
|
|
889
|
-
var _a;
|
|
890
868
|
var output = {};
|
|
891
869
|
for (var field in testGroup) {
|
|
892
|
-
|
|
870
|
+
// We will probably never get to the fallback array
|
|
871
|
+
// leaving it just in case the implementation changes
|
|
872
|
+
output[field] = testGroup[field][severityKey] || [];
|
|
893
873
|
}
|
|
894
874
|
return output;
|
|
895
875
|
}
|
|
@@ -904,8 +884,7 @@ function getWarnings(fieldName) {
|
|
|
904
884
|
* @returns suite or field's errors or warnings.
|
|
905
885
|
*/
|
|
906
886
|
function getFailures(severityKey, fieldName) {
|
|
907
|
-
var summary =
|
|
908
|
-
invariant(summary);
|
|
887
|
+
var summary = useSummary();
|
|
909
888
|
return gatherFailures(summary.tests, severityKey, fieldName);
|
|
910
889
|
}
|
|
911
890
|
|
|
@@ -916,27 +895,59 @@ function getWarningsByGroup(groupName, fieldName) {
|
|
|
916
895
|
return getFailuresByGroup(groupName, Severity.WARNINGS, fieldName);
|
|
917
896
|
}
|
|
918
897
|
function getFailuresByGroup(groupName, severityKey, fieldName) {
|
|
919
|
-
var summary =
|
|
920
|
-
invariant(summary);
|
|
898
|
+
var summary = useSummary();
|
|
921
899
|
return gatherFailures(summary.groups[groupName], severityKey, fieldName);
|
|
922
900
|
}
|
|
923
901
|
|
|
902
|
+
function isPositive(value) {
|
|
903
|
+
return greaterThan(value, 0);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
function hasErrors(fieldName) {
|
|
907
|
+
return hasFailures(SeverityCount.ERROR_COUNT, fieldName);
|
|
908
|
+
}
|
|
909
|
+
function hasWarnings(fieldName) {
|
|
910
|
+
return hasFailures(SeverityCount.WARN_COUNT, fieldName);
|
|
911
|
+
}
|
|
912
|
+
function hasFailures(severityCount, fieldName) {
|
|
913
|
+
var _a;
|
|
914
|
+
var summary = useSummary();
|
|
915
|
+
if (fieldName) {
|
|
916
|
+
return isPositive((_a = summary.tests[fieldName]) === null || _a === void 0 ? void 0 : _a[severityCount]);
|
|
917
|
+
}
|
|
918
|
+
return isPositive(summary[severityCount]);
|
|
919
|
+
}
|
|
920
|
+
|
|
924
921
|
function hasErrorsByGroup(groupName, fieldName) {
|
|
925
|
-
return
|
|
922
|
+
return hasFailuresByGroup(Severity.ERRORS, groupName, fieldName);
|
|
926
923
|
}
|
|
927
924
|
function hasWarningsByGroup(groupName, fieldName) {
|
|
928
|
-
return
|
|
925
|
+
return hasFailuresByGroup(Severity.WARNINGS, groupName, fieldName);
|
|
929
926
|
}
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
var
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
927
|
+
// eslint-disable-next-line max-statements
|
|
928
|
+
function hasFailuresByGroup(severityKey, groupName, fieldName) {
|
|
929
|
+
var _a, _b;
|
|
930
|
+
var summary = useSummary();
|
|
931
|
+
var severityCount = countKeyBySeverity(severityKey);
|
|
932
|
+
var group = summary.groups[groupName];
|
|
933
|
+
if (!group) {
|
|
934
|
+
return false;
|
|
935
|
+
}
|
|
936
|
+
if (fieldName) {
|
|
937
|
+
return isPositive((_a = group[fieldName]) === null || _a === void 0 ? void 0 : _a[severityCount]);
|
|
938
|
+
}
|
|
939
|
+
for (var field in group) {
|
|
940
|
+
if (isPositive((_b = group[field]) === null || _b === void 0 ? void 0 : _b[severityCount])) {
|
|
941
|
+
return true;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
return false;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
function isValid(fieldName) {
|
|
948
|
+
var _a;
|
|
949
|
+
var summary = useSummary();
|
|
950
|
+
return fieldName ? Boolean((_a = summary.tests[fieldName]) === null || _a === void 0 ? void 0 : _a.valid) : summary.valid;
|
|
940
951
|
}
|
|
941
952
|
|
|
942
953
|
var cache$1 = createCache(1);
|
|
@@ -946,7 +957,7 @@ function produceSuiteResult() {
|
|
|
946
957
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
947
958
|
var summary = genTestsSummary();
|
|
948
959
|
var suiteName = useSuiteName();
|
|
949
|
-
var ref =
|
|
960
|
+
var ref = { summary: summary };
|
|
950
961
|
return assign(summary, {
|
|
951
962
|
getErrors: context.bind(ref, getErrors),
|
|
952
963
|
getErrorsByGroup: context.bind(ref, getErrorsByGroup),
|
|
@@ -1339,7 +1350,7 @@ function isExcluded(testObject) {
|
|
|
1339
1350
|
return keyTests[fieldName] === false;
|
|
1340
1351
|
}
|
|
1341
1352
|
}
|
|
1342
|
-
if (
|
|
1353
|
+
if (isTopLevelWhenThereIsAnIncludedGroup(groupName)) {
|
|
1343
1354
|
return true;
|
|
1344
1355
|
}
|
|
1345
1356
|
// if field is only'ed
|
|
@@ -1348,39 +1359,13 @@ function isExcluded(testObject) {
|
|
|
1348
1359
|
// If there is _ANY_ `only`ed test (and we already know this one isn't) return true
|
|
1349
1360
|
if (hasIncludedTests(keyTests)) {
|
|
1350
1361
|
// Check if inclusion rules for this field (`include` hook)
|
|
1362
|
+
// TODO: Check if this may need to be moved outside of the condition.
|
|
1363
|
+
// What if there are no included tests? This shouldn't run then?
|
|
1351
1364
|
return !optionalFunctionValue(inclusion[fieldName]);
|
|
1352
1365
|
}
|
|
1353
1366
|
// We're done here. This field is not excluded
|
|
1354
1367
|
return false;
|
|
1355
1368
|
}
|
|
1356
|
-
// eslint-disable-next-line max-statements
|
|
1357
|
-
function isMissingFromIncludedGroup(groupName) {
|
|
1358
|
-
var context$1 = context.useX();
|
|
1359
|
-
var exclusion = context$1.exclusion;
|
|
1360
|
-
if (!hasIncludedGroups()) {
|
|
1361
|
-
return false;
|
|
1362
|
-
}
|
|
1363
|
-
if (!groupName) {
|
|
1364
|
-
return true;
|
|
1365
|
-
}
|
|
1366
|
-
if (groupName in exclusion.groups) {
|
|
1367
|
-
if (exclusion.groups[groupName]) {
|
|
1368
|
-
return false;
|
|
1369
|
-
}
|
|
1370
|
-
return true;
|
|
1371
|
-
}
|
|
1372
|
-
return true;
|
|
1373
|
-
}
|
|
1374
|
-
function hasIncludedGroups() {
|
|
1375
|
-
var context$1 = context.useX();
|
|
1376
|
-
var exclusion = context$1.exclusion;
|
|
1377
|
-
for (var group in exclusion.groups) {
|
|
1378
|
-
if (exclusion.groups[group]) {
|
|
1379
|
-
return true;
|
|
1380
|
-
}
|
|
1381
|
-
}
|
|
1382
|
-
return false;
|
|
1383
|
-
}
|
|
1384
1369
|
/**
|
|
1385
1370
|
* Checks whether a given group is excluded from running.
|
|
1386
1371
|
*/
|
|
@@ -1395,13 +1380,8 @@ function isGroupExcluded(groupName) {
|
|
|
1395
1380
|
return keyGroups[groupName] === false;
|
|
1396
1381
|
}
|
|
1397
1382
|
// Group is not present
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
if (keyGroups[group] === true) {
|
|
1401
|
-
return true;
|
|
1402
|
-
}
|
|
1403
|
-
}
|
|
1404
|
-
return false;
|
|
1383
|
+
// Return whether other groups are included
|
|
1384
|
+
return hasIncludedGroups();
|
|
1405
1385
|
}
|
|
1406
1386
|
/**
|
|
1407
1387
|
* Adds fields to a specified exclusion group.
|
|
@@ -1430,6 +1410,24 @@ function hasIncludedTests(keyTests) {
|
|
|
1430
1410
|
}
|
|
1431
1411
|
return false;
|
|
1432
1412
|
}
|
|
1413
|
+
// are we not in a group and there is an included group?
|
|
1414
|
+
function isTopLevelWhenThereIsAnIncludedGroup(groupName) {
|
|
1415
|
+
if (!hasIncludedGroups()) {
|
|
1416
|
+
return false;
|
|
1417
|
+
}
|
|
1418
|
+
// Return whether there's an included group, and we're not inside a group
|
|
1419
|
+
return !groupName;
|
|
1420
|
+
}
|
|
1421
|
+
function hasIncludedGroups() {
|
|
1422
|
+
var context$1 = context.useX();
|
|
1423
|
+
var exclusion = context$1.exclusion;
|
|
1424
|
+
for (var group in exclusion.groups) {
|
|
1425
|
+
if (exclusion.groups[group]) {
|
|
1426
|
+
return true;
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
return false;
|
|
1430
|
+
}
|
|
1433
1431
|
|
|
1434
1432
|
/**
|
|
1435
1433
|
* Runs tests within a group so that they can be controlled or queried separately.
|
|
@@ -1455,16 +1453,18 @@ function groupErrorMsg(error) {
|
|
|
1455
1453
|
function include(fieldName) {
|
|
1456
1454
|
var context$1 = context.useX();
|
|
1457
1455
|
var inclusion = context$1.inclusion, exclusion = context$1.exclusion;
|
|
1458
|
-
|
|
1459
|
-
return { when: when };
|
|
1460
|
-
}
|
|
1456
|
+
invariant(isStringValue(fieldName));
|
|
1461
1457
|
inclusion[fieldName] = defaultTo(exclusion.tests[fieldName], true);
|
|
1462
1458
|
return { when: when };
|
|
1463
1459
|
function when(condition) {
|
|
1464
1460
|
var context$1 = context.useX();
|
|
1465
1461
|
var inclusion = context$1.inclusion, exclusion = context$1.exclusion;
|
|
1462
|
+
// This callback will run as part of the "isExcluded" series of checks
|
|
1466
1463
|
inclusion[fieldName] = function () {
|
|
1467
1464
|
if (hasOwnProperty(exclusion.tests, fieldName)) {
|
|
1465
|
+
// I suspect this code is technically unreachable because
|
|
1466
|
+
// if there are any skip/only rules applied to the current
|
|
1467
|
+
// field, the "isExcluded" function will have already bailed
|
|
1468
1468
|
return defaultTo(exclusion.tests[fieldName], true);
|
|
1469
1469
|
}
|
|
1470
1470
|
if (isStringValue(condition)) {
|
|
@@ -1498,7 +1498,7 @@ function eager() {
|
|
|
1498
1498
|
setMode(Modes.EAGER);
|
|
1499
1499
|
}
|
|
1500
1500
|
function shouldSkipBasedOnMode(testObject) {
|
|
1501
|
-
if (isEager() &&
|
|
1501
|
+
if (isEager() && hasErrorsByTestObjects(testObject.fieldName))
|
|
1502
1502
|
return true;
|
|
1503
1503
|
return false;
|
|
1504
1504
|
}
|
|
@@ -1635,6 +1635,8 @@ function runAsyncTest(testObject) {
|
|
|
1635
1635
|
asyncTest.then(done, fail);
|
|
1636
1636
|
}
|
|
1637
1637
|
catch (e) {
|
|
1638
|
+
// We will probably never get here, unless the consumer uses a buggy custom Promise
|
|
1639
|
+
// implementation that behaves differently than the native one, or if they for some
|
|
1638
1640
|
fail();
|
|
1639
1641
|
}
|
|
1640
1642
|
}
|
|
@@ -1643,22 +1645,7 @@ function runAsyncTest(testObject) {
|
|
|
1643
1645
|
* Runs sync tests - or extracts promise.
|
|
1644
1646
|
*/
|
|
1645
1647
|
function runSyncTest(testObject) {
|
|
1646
|
-
return context.run({ currentTest: testObject }, function () {
|
|
1647
|
-
var result;
|
|
1648
|
-
try {
|
|
1649
|
-
result = testObject.testFn();
|
|
1650
|
-
}
|
|
1651
|
-
catch (e) {
|
|
1652
|
-
if (shouldUseErrorAsMessage(testObject.message, e)) {
|
|
1653
|
-
testObject.message = e;
|
|
1654
|
-
}
|
|
1655
|
-
result = false;
|
|
1656
|
-
}
|
|
1657
|
-
if (result === false) {
|
|
1658
|
-
testObject.fail();
|
|
1659
|
-
}
|
|
1660
|
-
return result;
|
|
1661
|
-
});
|
|
1648
|
+
return context.run({ currentTest: testObject }, function () { return testObject.run(); });
|
|
1662
1649
|
}
|
|
1663
1650
|
|
|
1664
1651
|
/**
|
|
@@ -1877,6 +1864,6 @@ function warn() {
|
|
|
1877
1864
|
ctx.currentTest.warn();
|
|
1878
1865
|
}
|
|
1879
1866
|
|
|
1880
|
-
var VERSION = "4.3.
|
|
1867
|
+
var VERSION = "4.3.2-dev-2805e3";
|
|
1881
1868
|
|
|
1882
1869
|
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){function n(e,u){var o=n.get(e);return o?o[1]:(u=u(),r.unshift([e.concat(),u]),e=r.length,o=t,i(e)&&i(o)&&Number(e)>Number(o)&&(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 a=u((function(t){return null===t}));function c(t){return"function"==typeof t}function f(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return c(t)?t.apply(void 0,n):t}function l(t,n){var e;return null!==(e=f(t))&&void 0!==e?e:n}function p(t){return(t=[].concat(t))[t.length-1]}function d(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(d(u,n)):(u=n(u),a(u)&&e.push(u))}return e}function v(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(v(n)):[].concat(t).concat(n)}),[])}function h(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=l(t[r],[]),t=t[r]}return t}var g=Object.assign;function m(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return p(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,p(n)},removeLevel:function(){n.pop()},reset:t}}var N,E=N||(N={});E[E.DEFAULT=0]="DEFAULT",E[E.SUITE=1]="SUITE",E[E.EACH=2]="EACH",E[E.SKIP_WHEN=3]="SKIP_WHEN",E[E.OMIT_WHEN=4]="OMIT_WHEN",E[E.GROUP=5]="GROUP";var y,b=y||(y={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:g({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:N.DEFAULT,keys:{current:{},prev:{}}},mode:[y.ALL],testCursor:m()},t)}));function C(){return S.useX().stateRef}function R(){return C().testObjects()}function T(){(0,R()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function A(t){(0,R()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function I(){return v(d(R()[0].current,(function(t){return t.isPending()?t:null})))}var O=s();function _(){var t=R()[0].current;return O([t],(function(){return v(t)}))}var k,L=k||(k={});L.Error="error",L.Warning="warning";var F=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=k.Error,this.status=X,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!==x||(this.status=t)},t.prototype.warns=function(){return this.severity===k.Warning},t.prototype.setPending=function(){this.setStatus(w)},t.prototype.fail=function(){this.setStatus(this.warns()?U:P)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(W)},t.prototype.warn=function(){this.severity=k.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(G)},t.prototype.cancel=function(){this.setStatus(D),T()},t.prototype.reset=function(){this.status=X,T()},t.prototype.omit=function(){this.setStatus(x)},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(w)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(x)},t.prototype.isUntested=function(){return this.statusEquals(X)},t.prototype.isFailing=function(){return this.statusEquals(P)},t.prototype.isCanceled=function(){return this.statusEquals(D)},t.prototype.isSkipped=function(){return this.statusEquals(G)},t.prototype.isPassing=function(){return this.statusEquals(W)},t.prototype.isWarning=function(){return this.statusEquals(U)},t.prototype.statusEquals=function(t){return this.status===t},t}(),X="UNTESTED",G="SKIPPED",P="FAILED",U="WARNING",W="PASSING",w="PENDING",D="CANCELED",x="OMITTED";function H(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?f(n):n)}function K(t){function n(t,n,u){return r.references.push(),e(t,f(n,u)),function(){return[r.references[t],function(n){return e(t,f(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,c(n=u[n][1])&&n(e,i),c(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 M(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 j(t){return null==t}function q(t){setTimeout((function(){throw Error(t)}),0)}function B(){return S.useX().testCursor.getCursor()}function V(){return S.useX().testCursor.next()}function Y(t,n){if(t=void 0===(t=t.type)?N.DEFAULT:t,c(n)){var e={current:{},prev:{}},r=B();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=R()[0].prev;return[].concat(h(t,B())).reduce((function(t,n){return n instanceof F&&!j(n.key)?(t[n.key]=n,t):t}),{})}(),A((function(t){return h(t,r)[p(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),V(),t}))}}var J,z=J||(J={});z.WARNINGS="warnings",z.ERRORS="errors";var Q,Z=Q||(Q={});function $(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return o(t.length,0);if("object"==typeof t)return o((t=Object.keys(t)).length,0)}return!0}Z.ERROR_COUNT="errorCount",Z.WARN_COUNT="warnCount";var tt=u($);function nt(t,n){return!(!n||t.fieldName!==n)}function et(t,n,e){return(e=!t.hasFailures()||e&&!nt(t,e))||(t=t.warns(),e=n===J.WARNINGS!=!!t),!e}function rt(t){return it(J.ERRORS,t)}function ut(t){return it(J.WARNINGS,t)}function it(t,n){return _().some((function(e){return et(e,t,n)}))}function ot(t){var n,e,r=S.useX().summary;return H(r),!!(t?null!==(e=null===(n=r.tests)||void 0===n?void 0:n[t])&&void 0!==e&&e.valid:r.valid)}function st(t){var n=_().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(n=!!t&&!!n[t])||!rt(t)&&(!($(n=_())||function(t){var n=_();return!!t&&!n.find((function(n){return n.fieldName===t}))}(t)||function(t){var n=C().optionalFields()[0];return tt(I().filter((function(e){return!(t&&!nt(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=_(),e=C().optionalFields()[0];return n.every((function(n){return!(!t||nt(n,t))||(!0===e[n.fieldName]||n.isTested()||n.isOmitted())}))}(t))}function at(t,n){function e(t){i[t===J.ERRORS?Q.ERROR_COUNT:Q.WARN_COUNT]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(J.ERRORS):n.isWarning()&&e(J.WARNINGS)),i}function ct(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function ft(t,n){var e,r,u={};for(r in t)u[r]=(null===(e=t[r])||void 0===e?void 0:e[n])||[];return u}function lt(t){return dt(J.ERRORS,t)}function pt(t){return dt(J.WARNINGS,t)}function dt(t,n){var e=S.useX().summary;return H(e),e=e.tests,n?ct(e,t,n):ft(e,t)}function vt(t,n){return gt(t,J.ERRORS,n)}function ht(t,n){return gt(t,J.WARNINGS,n)}function gt(t,n,e){var r=S.useX().summary;return H(r),t=r.groups[t],e?ct(t,n,e):ft(t,n)}function mt(t,n){return Et(J.ERRORS,t,n)}function Nt(t,n){return Et(J.WARNINGS,t,n)}function Et(t,n,e){return _().some((function(r){return n===r.groupName&&et(r,t,e)}))}var yt=s(1);function bt(){var t=_(),n={stateRef:C()};return yt([t],S.bind(n,(function(){var t=function(){var t=_(),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]=at(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]=at(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)}(),e=C().suiteName()[0],r=g({summary:t},n);return g(t,{getErrors:S.bind(r,lt),getErrorsByGroup:S.bind(r,vt),getWarnings:S.bind(r,pt),getWarningsByGroup:S.bind(r,ht),hasErrors:S.bind(r,rt),hasErrorsByGroup:S.bind(r,mt),hasWarnings:S.bind(r,ut),hasWarningsByGroup:S.bind(r,Nt),isValid:S.bind(r,ot),suiteName:e})})))}function St(t){var n=I();return!$(n)&&(t?n.some((function(n){return nt(n,t)})):tt(n))}var Ct=s(20);function Rt(){var t=_(),n={stateRef:C()};return Ct([t],S.bind(n,(function(){return g({},bt(),{done:S.bind(n,It)})})))}function Tt(t,n,e){return!(c(t)&&(!n||e.tests[n]&&!$(e.tests[n].testCount)))}function At(t){return!(St()&&(!t||St(t)))}function It(){function t(){return r(bt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Rt(),Tt(r,n,e)?e:At(n)?(t(),e):(Ot(t,n),e)}function Ot(t,n){(0,C().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function _t(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(Ft.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=C().testCallbacks()[0].fieldCallbacks;n&&!St(n)&&Array.isArray(e[n])&&_t(e[n]),St()||t.emit(Ft.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Ft.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var t=C().optionalFields()[0];if(!$(t)){var n={};A((function(e){return d(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))n[e.fieldName]&&e.omit();else{var r=t[e.fieldName];c(r)&&(n[e.fieldName]=r(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Ft.ALL_RUNNING_TESTS_FINISHED,(function(){_t(C().testCallbacks()[0].doneCallbacks)})),t.on(Ft.REMOVE_FIELD,(function(t){_().forEach((function(n){nt(n,t)&&(n.cancel(),function(t){A((function(n){return d(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Ft.RESET_FIELD,(function(t){_().forEach((function(n){nt(n,t)&&n.reset()}))})),t}function Lt(){var t=S.useX();return H(t.bus),t.bus}var Ft,Xt=Ft||(Ft={});function Gt(t){return Ut(0,"tests",t)}function Pt(t){return Ut(1,"tests",t)}function Ut(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 Wt(t){for(var n in t)if(!0===t[n])return!0;return!1}function wt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Dt(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 xt(t){var n=t.asyncTest,e=t.message;if(n&&c(n.then)){var u=Lt().emit,i=C(),o=S.bind({stateRef:i},(function(){T(),u(Ft.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 Ht(t){var n=R()[0].prev;if($(n))return Kt(t),t;var e=B();if(n=h(n,e)[p(e)],!j(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return j(r[n])?r[n]=e:q('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Kt(t),t}return!tt(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===N.EACH||q("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=R(),n=t[1],e=t[0].prev;t=h(e,B());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Kt(t=l(n,t)),t}function Kt(t){var n=B();A((function(e){return h(e,n)[p(n)]=t,e}))}function Mt(t){var n=y.EAGER;if(n=!(S.useX().mode[0]!==n||!rt(t.fieldName)))return t.skip(),Ht(t),V(),t;if(n=Ht(t),S.useX().omitted)return n.omit(),V(),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){t:{var o=S.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(o,t))var s=!1===o[t];else{for(s in o)if(!0===o[s]){s=!0;break t}s=!1}}if(s)return!0;if(!0===r.groups[t])return!(i||!Wt(u)&&!1!==u[n])}r=S.useX().exclusion;t:{for(a in(s=S.useX().exclusion).groups)if(s.groups[a]){var a=!0;break t}a=!1}return!(!a||t&&t in r.groups&&r.groups[t])||!i&&!!Wt(u)&&!f(e[n])}(t))return n.skip(!!S.useX().skipped),V(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Kt(t),V(),t.isUntested()){n=Lt();var e=function(t){return S.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&r(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&c(e.then)?(t.asyncTest=e,t.setPending(),xt(t)):n.emit(Ft.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)&&c(n.then)&&(t.setPending(),xt(t));return t}function jt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=c(n[1])?n:Dt([void 0],n,!0);n=u[0],e=u[1],u=u[2],H(r(t),Bt("fieldName","string")),H(c(e),Bt("Test callback","function"));var i=S.useX();return Mt(n=new F(t,e,{message:n,groupName:i.groupName,key:u}))}Xt.TEST_COMPLETED="test_completed",Xt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Xt.REMOVE_FIELD="remove_field",Xt.RESET_FIELD="reset_field",Xt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Gt.group=function(t){return Ut(0,"groups",t)},Pt.group=function(t){return Ut(1,"groups",t)};var qt=g(jt,{memo:function(t){var n=s(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)}))):Mt(r[1])}}(jt)});function Bt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var Vt="4.3.1";function Yt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],H(c(r),"vest.create: Expected callback to be a function.");var u=kt(),i=K();return t={stateRef:M(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(),Y({type:N.SUITE},(function(){r.apply(void 0,t)})),u.emit(Ft.SUITE_CALLBACK_DONE_RUNNING),Rt()})),{get:S.bind(t,bt),remove:S.bind(t,(function(t){u.emit(Ft.REMOVE_FIELD,t)})),reset:i.reset,resetField:S.bind(t,(function(t){u.emit(Ft.RESET_FIELD,t)}))})}function Jt(t,n){H(c(n),"each callback must be a function"),Y({type:N.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function zt(){var t=y.EAGER;S.useX().mode[0]=t}function Qt(t,n){H(r(t),wt("name must be a string")),H(c(n),wt("callback must be a function")),Y({type:N.GROUP},(function(){S.run({groupName:t},n)}))}function Zt(t){function n(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?l(u.tests[t],!0):r(n)?!!u.tests[n]:f(n,f(bt))}}var e=S.useX();return t?(e.inclusion[t]=l(e.exclusion.tests[t],!0),{when:n}):{when:n}}function $t(t,n){Y({type:N.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||f(t,f(bt))},(function(){return n()}))}))}function tn(t){(0,C().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 nn(t,n){Y({type:N.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||f(t,f(bt))},(function(){return n()}))}))}function en(){var t=S.useX("warn hook called outside of a running suite.");H(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{Vt as VERSION,S as context,Yt as create,Jt as each,zt as eager,Qt as group,Zt as include,$t as omitWhen,Gt as only,tn as optional,Pt as skip,nn as skipWhen,qt as test,en 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)}}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-dev-2805e3";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};
|
|
@@ -8,13 +8,6 @@
|
|
|
8
8
|
return typeof value === 'function';
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* A safe hasOwnProperty access
|
|
13
|
-
*/
|
|
14
|
-
function hasOwnProperty(obj, key) {
|
|
15
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
11
|
function optionalFunctionValue(value) {
|
|
19
12
|
var args = [];
|
|
20
13
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -23,6 +16,18 @@
|
|
|
23
16
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
24
17
|
}
|
|
25
18
|
|
|
19
|
+
function defaultTo(callback, defaultValue) {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A safe hasOwnProperty access
|
|
26
|
+
*/
|
|
27
|
+
function hasOwnProperty(obj, key) {
|
|
28
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
29
|
+
}
|
|
30
|
+
|
|
26
31
|
function invariant(condition,
|
|
27
32
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
28
33
|
message) {
|
|
@@ -90,22 +95,20 @@
|
|
|
90
95
|
return res.testCount === 0 || !selectors.tested(fieldName);
|
|
91
96
|
}
|
|
92
97
|
function isValid(fieldName) {
|
|
93
|
-
var _a
|
|
94
|
-
return
|
|
98
|
+
var _a;
|
|
99
|
+
return fieldName ? Boolean((_a = res.tests[fieldName]) === null || _a === void 0 ? void 0 : _a.valid) : res.valid;
|
|
95
100
|
}
|
|
96
101
|
function hasWarnings(fieldName) {
|
|
97
|
-
return hasFailures(
|
|
102
|
+
return hasFailures(SeverityCount.WARN_COUNT, fieldName);
|
|
98
103
|
}
|
|
99
104
|
function hasErrors(fieldName) {
|
|
100
|
-
return hasFailures(
|
|
105
|
+
return hasFailures(SeverityCount.ERROR_COUNT, fieldName);
|
|
106
|
+
}
|
|
107
|
+
function hasFailures(countKey, fieldName) {
|
|
108
|
+
var _a;
|
|
109
|
+
var failureCount = defaultTo(fieldName ? (_a = res.tests[fieldName]) === null || _a === void 0 ? void 0 : _a[countKey] : res[countKey], 0);
|
|
110
|
+
return isPositive(failureCount);
|
|
101
111
|
}
|
|
102
|
-
}
|
|
103
|
-
function hasFailures(res, countKey, fieldName) {
|
|
104
|
-
var _a, _b, _c;
|
|
105
|
-
var failureCount = fieldName
|
|
106
|
-
? (_b = (_a = res.tests) === null || _a === void 0 ? void 0 : _a[fieldName]) === null || _b === void 0 ? void 0 : _b[countKey]
|
|
107
|
-
: (_c = res[countKey]) !== null && _c !== void 0 ? _c : 0;
|
|
108
|
-
return isPositive(failureCount);
|
|
109
112
|
}
|
|
110
113
|
|
|
111
114
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function
|
|
1
|
+
"use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return"function"==typeof t?t.apply(void 0,n):t}function n(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function e(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}function r(n){function r(r,o){var i,u;return r=o?null===(i=n.tests[o])||void 0===i?void 0:i[r]:n[r],e(i=null!==(u=t(r))&&void 0!==u?u:0,0)}!function(n,e){if(!n)throw e instanceof String?e.valueOf():Error(e?t(e):e)}(n&&Object.prototype.hasOwnProperty.call(n,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return r(u.ERROR_COUNT,t)},tested:function(t){return t?Object.prototype.hasOwnProperty.call(o,t)?o[t]:(o[t]=Object.prototype.hasOwnProperty.call(n.tests,t)&&e(n.tests[t].testCount,0),i.tested(t)):e(n.testCount,0)},untested:function(t){return 0===n.testCount||!i.tested(t)},valid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},warning:function(t){return r(u.WARN_COUNT,t)}};return i}var o,i,u;return(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),function(t,n){void 0===n&&(n={});var e=r(t);return function(t){var r,o=[];for(r in n){var i=r;"function"==typeof e[i]&&e[i](t)&&o.push(n[i])}return o.join(" ")}}}));
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
else if (typeof value === 'object') {
|
|
182
182
|
return lengthEquals(Object.keys(value), 0);
|
|
183
183
|
}
|
|
184
|
-
return
|
|
184
|
+
return false;
|
|
185
185
|
}
|
|
186
186
|
var isNotEmpty = bindNot(isEmpty);
|
|
187
187
|
|
|
@@ -647,15 +647,10 @@
|
|
|
647
647
|
context: function () { return ctx.useX(); },
|
|
648
648
|
extend: function (customRules) {
|
|
649
649
|
assign(baseRules, customRules);
|
|
650
|
+
handleNoProxy(); // TODO: REMOVE when we stop supporting ES5
|
|
650
651
|
}
|
|
651
652
|
};
|
|
652
|
-
|
|
653
|
-
eachEnforceRule(function (ruleName) {
|
|
654
|
-
// Only on the first rule access - start the chain of calls
|
|
655
|
-
target[ruleName] = genEnforceLazy(ruleName);
|
|
656
|
-
});
|
|
657
|
-
return assign(enforceEager, target);
|
|
658
|
-
}
|
|
653
|
+
handleNoProxy();
|
|
659
654
|
return new Proxy(assign(enforceEager, target), {
|
|
660
655
|
get: function (target, key) {
|
|
661
656
|
if (key in target) {
|
|
@@ -668,6 +663,15 @@
|
|
|
668
663
|
return genEnforceLazy(key);
|
|
669
664
|
}
|
|
670
665
|
});
|
|
666
|
+
function handleNoProxy() {
|
|
667
|
+
if (!isProxySupported()) {
|
|
668
|
+
eachEnforceRule(function (ruleName) {
|
|
669
|
+
// Only on the first rule access - start the chain of calls
|
|
670
|
+
target[ruleName] = genEnforceLazy(ruleName);
|
|
671
|
+
});
|
|
672
|
+
return assign(enforceEager, target);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
671
675
|
}
|
|
672
676
|
genEnforce();
|
|
673
677
|
|