vest 4.3.0 → 4.3.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/enforce/compose.development.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +17 -2
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +1 -1
- package/dist/cjs/vest.development.js +107 -119
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/enforce/compose.development.js +1 -1
- package/dist/es/enforce/compounds.development.js +17 -2
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +1 -1
- package/dist/es/vest.development.js +107 -119
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +6 -6
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +5 -5
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +6 -6
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/vest.development.js +71 -98
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/enforce/compose.d.ts +20 -20
- package/types/enforce/compounds.d.ts +22 -22
- package/types/enforce/schema.d.ts +24 -24
- package/types/promisify.d.ts +7 -6
- package/types/vest.d.ts +50 -48
|
@@ -91,7 +91,7 @@ function compose() {
|
|
|
91
91
|
return n4s.ctx.run({ value: value }, function () {
|
|
92
92
|
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
93
93
|
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
94
|
-
The ideal is that instead of `
|
|
94
|
+
The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
|
|
95
95
|
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
96
96
|
so we're limiting it to a small set of functions.
|
|
97
97
|
*/
|
|
@@ -102,12 +102,27 @@ function noneOf(value) {
|
|
|
102
102
|
}));
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
function isNumeric(value) {
|
|
106
|
+
var str = String(value);
|
|
107
|
+
var num = Number(value);
|
|
108
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
109
|
+
return Boolean(result);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function numberEquals(value, eq) {
|
|
113
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
114
|
+
}
|
|
115
|
+
|
|
105
116
|
function lengthEquals(value, arg1) {
|
|
106
|
-
return value.length
|
|
117
|
+
return numberEquals(value.length, arg1);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function greaterThan(value, gt) {
|
|
121
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
107
122
|
}
|
|
108
123
|
|
|
109
124
|
function longerThan(value, arg1) {
|
|
110
|
-
return value.length
|
|
125
|
+
return greaterThan(value.length, arg1);
|
|
111
126
|
}
|
|
112
127
|
|
|
113
128
|
var REQUIRED_COUNT = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n,r){return n
|
|
1
|
+
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,f=0;f<n.length;f++)if(r(n[f],t,f),u)return e}function t(n){return"function"==typeof n}function u(n,r){var u;return null!==(u=function(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}(n))&&void 0!==u?u:r}function e(n,r){return n={pass:n},r&&(n.message=r),n}function f(){return e(!1)}function o(n){return u(n,f())}function i(n){return u(n,e(!0))}function c(n,r){try{return n.run(r)}catch(n){return f()}}function a(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function s(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)===Number(r)}(n.length,r)}function l(n,r){return function(n,r){return a(n)&&a(r)&&Number(n)>Number(r)}(n.length,r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){(r=c(r,n)).pass||t(r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return o(r(t,(function(r,t){(r=c(r,n)).pass&&t(r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){c(r,n).pass&&t(f())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=[];return r.some((function(r){if(l(u,1))return!1;(r=c(r,n)).pass&&u.push(r)})),e(s(u,1))}});
|
|
@@ -130,7 +130,7 @@ function shape(inputObject, shapeObject) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// Help needed improving the typings of this file.
|
|
133
|
-
// Ideally, we'd be able to extend
|
|
133
|
+
// Ideally, we'd be able to extend ShapeObject, but that's not possible.
|
|
134
134
|
function partial(shapeObject) {
|
|
135
135
|
var output = {};
|
|
136
136
|
for (var key in shapeObject) {
|
|
@@ -39,12 +39,27 @@ function asArray(possibleArg) {
|
|
|
39
39
|
return [].concat(possibleArg);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
function isNumeric(value) {
|
|
43
|
+
var str = String(value);
|
|
44
|
+
var num = Number(value);
|
|
45
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
46
|
+
return Boolean(result);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function numberEquals(value, eq) {
|
|
50
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
51
|
+
}
|
|
52
|
+
|
|
42
53
|
function lengthEquals(value, arg1) {
|
|
43
|
-
return value.length
|
|
54
|
+
return numberEquals(value.length, arg1);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function greaterThan(value, gt) {
|
|
58
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
44
59
|
}
|
|
45
60
|
|
|
46
61
|
function longerThan(value, arg1) {
|
|
47
|
-
return value.length
|
|
62
|
+
return greaterThan(value.length, arg1);
|
|
48
63
|
}
|
|
49
64
|
|
|
50
65
|
/**
|
|
@@ -717,8 +732,14 @@ function has(severityKey, fieldName) {
|
|
|
717
732
|
});
|
|
718
733
|
}
|
|
719
734
|
|
|
720
|
-
// eslint-disable-next-line max-statements, complexity
|
|
721
735
|
function isValid(fieldName) {
|
|
736
|
+
var _a, _b;
|
|
737
|
+
var summary = context.useX().summary;
|
|
738
|
+
invariant(summary);
|
|
739
|
+
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);
|
|
740
|
+
}
|
|
741
|
+
// eslint-disable-next-line max-statements, complexity
|
|
742
|
+
function shouldAddValidProp(fieldName) {
|
|
722
743
|
if (fieldIsOmitted(fieldName)) {
|
|
723
744
|
return true;
|
|
724
745
|
}
|
|
@@ -786,7 +807,7 @@ function genTestsSummary() {
|
|
|
786
807
|
appendToGroup(summary.groups, testObject);
|
|
787
808
|
return summary;
|
|
788
809
|
}, summary);
|
|
789
|
-
summary.valid =
|
|
810
|
+
summary.valid = shouldAddValidProp();
|
|
790
811
|
return countFailures(summary);
|
|
791
812
|
}
|
|
792
813
|
function appendToTest(tests, testObject) {
|
|
@@ -795,7 +816,7 @@ function appendToTest(tests, testObject) {
|
|
|
795
816
|
tests[testObject.fieldName].valid =
|
|
796
817
|
tests[testObject.fieldName].valid === false
|
|
797
818
|
? false
|
|
798
|
-
:
|
|
819
|
+
: shouldAddValidProp(testObject.fieldName);
|
|
799
820
|
}
|
|
800
821
|
/**
|
|
801
822
|
* Appends to a group object if within a group
|
|
@@ -858,78 +879,23 @@ function baseStats() {
|
|
|
858
879
|
};
|
|
859
880
|
}
|
|
860
881
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
868
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
869
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
870
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
871
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
872
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
873
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
874
|
-
***************************************************************************** */
|
|
875
|
-
|
|
876
|
-
var __assign = function() {
|
|
877
|
-
__assign = Object.assign || function __assign(t) {
|
|
878
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
879
|
-
s = arguments[i];
|
|
880
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
881
|
-
}
|
|
882
|
-
return t;
|
|
883
|
-
};
|
|
884
|
-
return __assign.apply(this, arguments);
|
|
885
|
-
};
|
|
886
|
-
|
|
887
|
-
function __spreadArray(to, from, pack) {
|
|
888
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
889
|
-
if (ar || !(i in from)) {
|
|
890
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
891
|
-
ar[i] = from[i];
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
882
|
+
// calls collectAll or getByFieldName depending on whether fieldName is provided
|
|
883
|
+
function gatherFailures(testGroup, severityKey, fieldName) {
|
|
884
|
+
return fieldName
|
|
885
|
+
? getByFieldName(testGroup, severityKey, fieldName)
|
|
886
|
+
: collectAll(testGroup, severityKey);
|
|
895
887
|
}
|
|
896
|
-
|
|
897
|
-
function collectFailureMessages(severity, testObjects, options) {
|
|
888
|
+
function getByFieldName(testGroup, severityKey, fieldName) {
|
|
898
889
|
var _a;
|
|
899
|
-
|
|
900
|
-
var _b = options || {}, group = _b.group, fieldName = _b.fieldName;
|
|
901
|
-
return testObjects.reduce(function (collector, testObject) {
|
|
902
|
-
if (noMatch(testObject, severity, group, fieldName)) {
|
|
903
|
-
return collector;
|
|
904
|
-
}
|
|
905
|
-
if (!testObject.hasFailures()) {
|
|
906
|
-
return collector;
|
|
907
|
-
}
|
|
908
|
-
collector[testObject.fieldName] = (collector[testObject.fieldName] || []).concat(testObject.message || []);
|
|
909
|
-
return collector;
|
|
910
|
-
}, __assign({}, (fieldName && (_a = {}, _a[fieldName] = [], _a))));
|
|
911
|
-
}
|
|
912
|
-
function noGroupMatch(testObject, groupName) {
|
|
913
|
-
return !!(groupName && testObject.groupName !== groupName);
|
|
914
|
-
}
|
|
915
|
-
function noMatch(testObject, severity, group, fieldName) {
|
|
916
|
-
if (noGroupMatch(testObject, group)) {
|
|
917
|
-
return true;
|
|
918
|
-
}
|
|
919
|
-
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
920
|
-
return true;
|
|
921
|
-
}
|
|
922
|
-
if (nonMatchingSeverityProfile(severity, testObject)) {
|
|
923
|
-
return true;
|
|
924
|
-
}
|
|
925
|
-
return false;
|
|
890
|
+
return ((_a = testGroup === null || testGroup === void 0 ? void 0 : testGroup[fieldName]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
|
|
926
891
|
}
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
892
|
+
function collectAll(testGroup, severityKey) {
|
|
893
|
+
var _a;
|
|
894
|
+
var output = {};
|
|
895
|
+
for (var field in testGroup) {
|
|
896
|
+
output[field] = ((_a = testGroup[field]) === null || _a === void 0 ? void 0 : _a[severityKey]) || [];
|
|
931
897
|
}
|
|
932
|
-
return
|
|
898
|
+
return output;
|
|
933
899
|
}
|
|
934
900
|
|
|
935
901
|
function getErrors(fieldName) {
|
|
@@ -942,31 +908,21 @@ function getWarnings(fieldName) {
|
|
|
942
908
|
* @returns suite or field's errors or warnings.
|
|
943
909
|
*/
|
|
944
910
|
function getFailures(severityKey, fieldName) {
|
|
945
|
-
var
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
});
|
|
949
|
-
return getFailuresArrayOrObject(failureMessages, fieldName);
|
|
911
|
+
var summary = context.useX().summary;
|
|
912
|
+
invariant(summary);
|
|
913
|
+
return gatherFailures(summary.tests, severityKey, fieldName);
|
|
950
914
|
}
|
|
951
915
|
|
|
952
916
|
function getErrorsByGroup(groupName, fieldName) {
|
|
953
|
-
|
|
954
|
-
return getFailuresArrayOrObject(errors, fieldName);
|
|
917
|
+
return getFailuresByGroup(groupName, Severity.ERRORS, fieldName);
|
|
955
918
|
}
|
|
956
919
|
function getWarningsByGroup(groupName, fieldName) {
|
|
957
|
-
|
|
958
|
-
return getFailuresArrayOrObject(warnings, fieldName);
|
|
920
|
+
return getFailuresByGroup(groupName, Severity.WARNINGS, fieldName);
|
|
959
921
|
}
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
invariant(group, "get".concat(severityKey[0].toUpperCase()).concat(severityKey.slice(1), "ByGroup requires a group name. Received `").concat(group, "` instead."));
|
|
965
|
-
var testObjects = useTestsFlat();
|
|
966
|
-
return collectFailureMessages(severityKey, testObjects, {
|
|
967
|
-
group: group,
|
|
968
|
-
fieldName: fieldName
|
|
969
|
-
});
|
|
922
|
+
function getFailuresByGroup(groupName, severityKey, fieldName) {
|
|
923
|
+
var summary = context.useX().summary;
|
|
924
|
+
invariant(summary);
|
|
925
|
+
return gatherFailures(summary.groups[groupName], severityKey, fieldName);
|
|
970
926
|
}
|
|
971
927
|
|
|
972
928
|
function hasErrorsByGroup(groupName, fieldName) {
|
|
@@ -987,22 +943,24 @@ function hasByGroup(severityKey, group, fieldName) {
|
|
|
987
943
|
});
|
|
988
944
|
}
|
|
989
945
|
|
|
990
|
-
var cache$1 = createCache(
|
|
946
|
+
var cache$1 = createCache(1);
|
|
991
947
|
function produceSuiteResult() {
|
|
992
948
|
var testObjects = useTestsFlat();
|
|
993
949
|
var ctxRef = { stateRef: useStateRef() };
|
|
994
950
|
return cache$1([testObjects], context.bind(ctxRef, function () {
|
|
951
|
+
var summary = genTestsSummary();
|
|
995
952
|
var suiteName = useSuiteName();
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
953
|
+
var ref = assign({ summary: summary }, ctxRef);
|
|
954
|
+
return assign(summary, {
|
|
955
|
+
getErrors: context.bind(ref, getErrors),
|
|
956
|
+
getErrorsByGroup: context.bind(ref, getErrorsByGroup),
|
|
957
|
+
getWarnings: context.bind(ref, getWarnings),
|
|
958
|
+
getWarningsByGroup: context.bind(ref, getWarningsByGroup),
|
|
959
|
+
hasErrors: context.bind(ref, hasErrors),
|
|
960
|
+
hasErrorsByGroup: context.bind(ref, hasErrorsByGroup),
|
|
961
|
+
hasWarnings: context.bind(ref, hasWarnings),
|
|
962
|
+
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
963
|
+
isValid: context.bind(ref, isValid),
|
|
1006
964
|
suiteName: suiteName
|
|
1007
965
|
});
|
|
1008
966
|
}));
|
|
@@ -1071,14 +1029,13 @@ var done = function done() {
|
|
|
1071
1029
|
return output;
|
|
1072
1030
|
};
|
|
1073
1031
|
function deferDoneCallback(doneCallback, fieldName) {
|
|
1074
|
-
var deferredCallback = context.bind({}, doneCallback);
|
|
1075
1032
|
var _a = useTestCallbacks(), setTestCallbacks = _a[1];
|
|
1076
1033
|
setTestCallbacks(function (current) {
|
|
1077
1034
|
if (fieldName) {
|
|
1078
|
-
current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(
|
|
1035
|
+
current.fieldCallbacks[fieldName] = (current.fieldCallbacks[fieldName] || []).concat(doneCallback);
|
|
1079
1036
|
}
|
|
1080
1037
|
else {
|
|
1081
|
-
current.doneCallbacks.push(
|
|
1038
|
+
current.doneCallbacks.push(doneCallback);
|
|
1082
1039
|
}
|
|
1083
1040
|
return current;
|
|
1084
1041
|
});
|
|
@@ -1088,19 +1045,22 @@ function createBus() {
|
|
|
1088
1045
|
var listeners = {};
|
|
1089
1046
|
return {
|
|
1090
1047
|
emit: function (event, data) {
|
|
1091
|
-
(
|
|
1048
|
+
listener(event).forEach(function (handler) {
|
|
1092
1049
|
handler(data);
|
|
1093
1050
|
});
|
|
1094
1051
|
},
|
|
1095
1052
|
on: function (event, handler) {
|
|
1096
|
-
listeners[event] = (
|
|
1053
|
+
listeners[event] = listener(event).concat(handler);
|
|
1097
1054
|
return {
|
|
1098
1055
|
off: function () {
|
|
1099
|
-
listeners[event] =
|
|
1056
|
+
listeners[event] = listener(event).filter(function (h) { return h !== handler; });
|
|
1100
1057
|
}
|
|
1101
1058
|
};
|
|
1102
1059
|
}
|
|
1103
1060
|
};
|
|
1061
|
+
function listener(event) {
|
|
1062
|
+
return listeners[event] || [];
|
|
1063
|
+
}
|
|
1104
1064
|
}
|
|
1105
1065
|
|
|
1106
1066
|
function omitOptionalTests() {
|
|
@@ -1112,24 +1072,27 @@ function omitOptionalTests() {
|
|
|
1112
1072
|
useSetTests(function (tests) {
|
|
1113
1073
|
return transform(tests, function (testObject) {
|
|
1114
1074
|
var fieldName = testObject.fieldName;
|
|
1115
|
-
if (
|
|
1116
|
-
|
|
1075
|
+
if (hasOwnProperty(shouldOmit, fieldName)) {
|
|
1076
|
+
verifyAndOmit(testObject);
|
|
1117
1077
|
}
|
|
1118
1078
|
else {
|
|
1119
|
-
|
|
1120
|
-
if (isFunction(optionalConfig)) {
|
|
1121
|
-
shouldOmit[fieldName] = optionalConfig();
|
|
1122
|
-
omit(testObject);
|
|
1123
|
-
}
|
|
1079
|
+
runOptionalConfig(testObject);
|
|
1124
1080
|
}
|
|
1125
1081
|
return testObject;
|
|
1126
1082
|
});
|
|
1127
1083
|
});
|
|
1128
|
-
function
|
|
1084
|
+
function verifyAndOmit(testObject) {
|
|
1129
1085
|
if (shouldOmit[testObject.fieldName]) {
|
|
1130
1086
|
testObject.omit();
|
|
1131
1087
|
}
|
|
1132
1088
|
}
|
|
1089
|
+
function runOptionalConfig(testObject) {
|
|
1090
|
+
var optionalConfig = optionalFields[testObject.fieldName];
|
|
1091
|
+
if (isFunction(optionalConfig)) {
|
|
1092
|
+
shouldOmit[testObject.fieldName] = optionalConfig();
|
|
1093
|
+
verifyAndOmit(testObject);
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1133
1096
|
}
|
|
1134
1097
|
|
|
1135
1098
|
/**
|
|
@@ -1606,6 +1569,31 @@ function optional(optionals) {
|
|
|
1606
1569
|
});
|
|
1607
1570
|
}
|
|
1608
1571
|
|
|
1572
|
+
/*! *****************************************************************************
|
|
1573
|
+
Copyright (c) Microsoft Corporation.
|
|
1574
|
+
|
|
1575
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
1576
|
+
purpose with or without fee is hereby granted.
|
|
1577
|
+
|
|
1578
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1579
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1580
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1581
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1582
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1583
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1584
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
1585
|
+
***************************************************************************** */
|
|
1586
|
+
|
|
1587
|
+
function __spreadArray(to, from, pack) {
|
|
1588
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
1589
|
+
if (ar || !(i in from)) {
|
|
1590
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
1591
|
+
ar[i] = from[i];
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1609
1597
|
function isPromise(value) {
|
|
1610
1598
|
return value && isFunction(value.then);
|
|
1611
1599
|
}
|
|
@@ -1824,7 +1812,7 @@ function registerTestObjectByTier(testObject) {
|
|
|
1824
1812
|
/* eslint-disable jest/valid-title */
|
|
1825
1813
|
// eslint-disable-next-line max-lines-per-function
|
|
1826
1814
|
function bindTestMemo(test) {
|
|
1827
|
-
var cache = createCache(
|
|
1815
|
+
var cache = createCache(10); // arbitrary cache size
|
|
1828
1816
|
// eslint-disable-next-line max-statements
|
|
1829
1817
|
function memo(fieldName) {
|
|
1830
1818
|
var args = [];
|
|
@@ -1893,7 +1881,7 @@ function warn() {
|
|
|
1893
1881
|
ctx.currentTest.warn();
|
|
1894
1882
|
}
|
|
1895
1883
|
|
|
1896
|
-
var VERSION = "4.3.
|
|
1884
|
+
var VERSION = "4.3.1";
|
|
1897
1885
|
|
|
1898
1886
|
Object.defineProperty(exports, 'enforce', {
|
|
1899
1887
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n,t){return o(n)&&u(t)}function c(n){return[].concat(n)}function a(n,t){return n.length===Number(t)}function f(n){function t(n){return e.findIndex((function(t){var e=t[0];return a(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return n.length>Number(t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function l(n){return!!Array.isArray(n)}function p(n){return null===n}var d=i(p);function v(n){return"function"==typeof n}function g(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return v(n)?n.apply(void 0,t):n}function h(n,t){var e;return null!==(e=g(n))&&void 0!==e?e:t}function E(n){return(n=c(n))[n.length-1]}function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];l(u)?e.push(N(u,t)):(u=t(u),d(u)&&e.push(u))}return e}function m(n,t,e){return S(n,t)[E(t)]=e,n}function y(n){return c(n).reduce((function(n,t){return l(t)?n.concat(y(t)):c(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=h(n[r],[]),n=n[r]}return n}var R,C,b=Object.assign;function T(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return E(t)},getCursor:function(){return c(t)},next:function(){return t[t.length-1]++,E(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(R||(R={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(C||(C={}));var I=e.createContext((function(n,t){return t?null:b({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:R.DEFAULT,keys:{current:{},prev:{}}},mode:[C.ALL],testCursor:T()},n)}));function O(){return I.useX().stateRef}function _(){return O().suiteId()[0]}function A(){return O().testCallbacks()}function k(){return O().optionalFields()}function L(){return O().testObjects()}function x(){(0,L()[1])((function(n){return{prev:n.prev,current:c(n.current)}}))}function F(n){(0,L()[1])((function(t){return{prev:t.prev,current:c(n(t.current))}}))}function W(){return y(N(L()[0].current,(function(n){return n.isPending()?n:null})))}var G,P=f();function U(){var n=L()[0].current;return P([n],(function(){return y(n)}))}function w(n){U().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(G||(G={}));var D,X,H=function(){function n(n,t,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=K,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){s(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==J||(this.status=n)},n.prototype.warns=function(){return this.severity===G.Warning},n.prototype.setPending=function(){this.setStatus(V)},n.prototype.fail=function(){this.setStatus(this.warns()?j:M)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(B)},n.prototype.warn=function(){this.severity=G.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(q)},n.prototype.cancel=function(){this.setStatus(Y),x()},n.prototype.reset=function(){this.status=K,x()},n.prototype.omit=function(){this.setStatus(J)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(V)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(J)},n.prototype.isUntested=function(){return this.statusEquals(K)},n.prototype.isFailing=function(){return this.statusEquals(M)},n.prototype.isCanceled=function(){return this.statusEquals(Y)},n.prototype.isSkipped=function(){return this.statusEquals(q)},n.prototype.isPassing=function(){return this.statusEquals(B)},n.prototype.isWarning=function(){return this.statusEquals(j)},n.prototype.statusEquals=function(n){return this.status===n},n}(),K="UNTESTED",q="SKIPPED",M="FAILED",j="WARNING",B="PASSING",V="PENDING",Y="CANCELED",J="OMITTED";function z(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?g(t):t)}function Q(n){function t(n,t,u){return r.references.push(),e(n,g(t,u)),function(){return[r.references[n],function(t){return e(n,g(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,v(t=u[t][1])&&t(e,i),v(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function Z(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function $(n){return p(n)||o(n)}function nn(n){setTimeout((function(){throw Error(n)}),0)}function tn(){return I.useX().testCursor.getCursor()}function en(){return I.useX().testCursor.cursorAt()}function rn(){return I.useX().testCursor.next()}function un(n,t){if(n=void 0===(n=n.type)?R.DEFAULT:n,v(t)){var e={current:{},prev:{}},r=tn();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=c(S(L()[0].prev,tn())).reduce((function(n,t){return t instanceof H&&!$(t.key)?(n[t.key]=t,n):n}),{}),F((function(n){return m(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),rn(),n}))}}function on(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function sn(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(on(n,"length"))return a(n,0);if("object"==typeof n)return a(Object.keys(n),0)}return!0}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(D||(D={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(X||(X={}));var cn=i(sn);function an(n,t){return!!t&&!fn(n,t)}function fn(n,t){return!(!t||n.fieldName!==t)}function ln(n,t){return function(n,t){return!!n!=!!t}(n===D.WARNINGS,t.warns())}function pn(n,t,e){return!(!n.hasFailures()||an(n,e)||ln(t,n))}function dn(n){return gn(D.ERRORS,n)}function vn(n){return gn(D.WARNINGS,n)}function gn(n,t){return U().some((function(e){return pn(e,n,t)}))}function hn(n){return!!function(n){var t=U().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(n)||!dn(n)&&(!(sn(U())||function(n){var t=U();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=k()[0];return cn(W().filter((function(e){return!an(e,n)&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=U(),e=k()[0];return t.every((function(t){return!!an(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function En(){var n=U(),t=b({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=Nn(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&hn(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=Nn(n[e],t))}(n.groups,t),n}),t),t.valid=hn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function Nn(n,t){function e(n){var t=function(n){return n===D.ERRORS?X.ERROR_COUNT:X.WARN_COUNT}(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(D.ERRORS):t.isWarning()&&e(D.WARNINGS)),i}var mn=function(){return(mn=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function yn(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function Sn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||an(n,r)||ln(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),mn({},i&&((r={})[i]=[],r)))}function Rn(n,t){return t?n[t]:n}function Cn(n){return Tn(D.ERRORS,n)}function bn(n){return Tn(D.WARNINGS,n)}function Tn(n,t){return Rn(n=Sn(n,U(),{fieldName:t}),t)}function In(n,t){return Rn(n=_n(D.ERRORS,n,t),t)}function On(n,t){return Rn(n=_n(D.WARNINGS,n,t),t)}function _n(n,t,e){return z(t,"get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),Sn(n,U(),{group:t,fieldName:e})}function An(n,t){return Ln(D.ERRORS,n,t)}function kn(n,t){return Ln(D.WARNINGS,n,t)}function Ln(n,t,e){return U().some((function(r){return t===r.groupName&&pn(r,n,e)}))}var xn=f(20);function Fn(){var n=U(),t={stateRef:O()};return xn([n],I.bind(t,(function(){var n=O().suiteName()[0];return b(En(),{getErrors:I.bind(t,Cn),getErrorsByGroup:I.bind(t,In),getWarnings:I.bind(t,bn),getWarningsByGroup:I.bind(t,On),hasErrors:I.bind(t,dn),hasErrorsByGroup:I.bind(t,An),hasWarnings:I.bind(t,vn),hasWarningsByGroup:I.bind(t,kn),isValid:I.bind(t,hn),suiteName:n})})))}function Wn(n){var t=W();return!sn(t)&&(n?t.some((function(t){return fn(t,n)})):cn(t))}var Gn=f(20);function Pn(){var n=U(),t={stateRef:O()};return Gn([n],I.bind(t,(function(){return b({},Fn(),{done:I.bind(t,Xn)})})))}function Un(n,t,e){return!(v(n)&&(!t||e.tests[t]&&!sn(e.tests[t].testCount)))}function wn(n){return!(Wn()&&(!n||Wn(n)))}var Dn,Xn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Pn(),Un(e,n,t))return t;var r=function(){return e(Fn())};return wn(n)?(r(),t):(Hn(r,n),t)};function Hn(n,t){var e=I.bind({},n);(0,A()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Kn(n){return n.forEach((function(n){return n()}))}function qn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Dn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=A()[0].fieldCallbacks;n&&!Wn(n)&&l(t[n])&&Kn(t[n])}(t.fieldName),Wn()||n.emit(Dn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Dn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=k()[0];if(!sn(n)){var t={};F((function(e){return N(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];v(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Dn.ALL_RUNNING_TESTS_FINISHED,(function(){Kn(A()[0].doneCallbacks)})),n.on(Dn.REMOVE_FIELD,(function(n){w((function(t){fn(t,n)&&(t.cancel(),function(n){F((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Dn.RESET_FIELD,(function(n){w((function(t){fn(t,n)&&t.reset()}))})),n}function Mn(){var n=I.useX();return z(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Dn||(Dn={}));function jn(){return!!I.useX().skipped}function Bn(n){return Jn(0,"tests",n)}function Vn(n){return Jn(1,"tests",n)}function Yn(n){var t=n.fieldName;if(n=n.groupName,jn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;if(on(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!zn(u)||!1===u[t])}return!!function(n){var t=I.useX().exclusion;return!!function(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!zn(u)&&!g(e[t]))}function Jn(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&c(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function zn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Qn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Zn(n){return!(!function(n){return I.useX().mode[0]===n}(C.EAGER)||!dn(n.fieldName))}function $n(){return!!I.useX().omitted}function nt(n){return n&&v(n.then)}function tt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function et(n){var t=n.asyncTest,e=n.message;if(nt(t)){var r=Mn().emit,i=O(),o=I.bind({stateRef:i},(function(){x(),r(Dn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function rt(n){var t=Mn(),e=function(n){return I.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){s(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{nt(e)?(n.asyncTest=e,n.setPending(),et(n)):t.emit(Dn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function ut(n){var t=L()[0].prev;return sn(t)?(it(n),n):(t=function(n){var t=tn();return function(n,t){return S(n,t)[E(t)]}(n,t)}(t),$(n.key)?(function(n,t){return cn(n)&&!tt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===R.EACH||nn("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.'))}(t,n),function(){var n=L(),t=n[1],e=n[0].prev;n=S(e,tn());var r=en();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),it(n=h(t,n)),n):(it(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;$(e[n])?e[n]=t:nn('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function it(n){var t=tn();F((function(e){return m(e,t,n)}))}function ot(n){if(Zn(n))return n.skip(),ut(n),rn(),n;var t=ut(n);return $n()?(t.omit(),rn(),t):Yn(n)?(t.skip(jn()),rn(),t):(function(n,t){t!==n&&tt(n,t)&&n.isPending()&&n.cancel()}(t,n),it(n),rn(),function(n){n.isUntested()?rt(n):nt(n.asyncTest)&&(n.setPending(),et(n))}(n),n)}function st(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=v(t[1])?t:yn([void 0],t,!0);t=r[0],e=r[1],r=r[2],z(u(n),at("fieldName","string")),z(v(e),at("Test callback","function"));var i=I.useX();return ot(t=new H(n,e,{message:t,groupName:i.groupName,key:r}))}Bn.group=function(n){return Jn(0,"groups",n)},Vn.group=function(n){return Jn(1,"groups",n)};var ct=b(st,{memo:function(n){var t=f(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=en();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[_(),e,u].concat(i),p(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):ot(r[1])}}(st)});function at(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.3.0",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],z(v(e),"vest.create: Expected callback to be a function.");var u=qn(),i=Q();return n={stateRef:Z(i,{suiteId:r(),suiteName:n}),bus:u},b(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),un({type:R.SUITE},(function(){e.apply(void 0,n)})),u.emit(Dn.SUITE_CALLBACK_DONE_RUNNING),Pn()})),{get:I.bind(n,Fn),remove:I.bind(n,(function(n){u.emit(Dn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Dn.RESET_FIELD,n)}))})},exports.each=function(n,t){z(v(t),"each callback must be a function"),un({type:R.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(C.EAGER)},exports.group=function(n,t){z(u(n),Qn("name must be a string")),z(v(t),Qn("callback must be a function")),un({type:R.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){function t(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return on(r.tests,n)?h(r.tests[n],!0):u(t)?!!r.tests[t]:g(t,g(Fn))}}var e=I.useX();return n?(e.inclusion[n]=h(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,t){un({type:R.OMIT_WHEN},(function(){I.run({omitted:$n()||g(n,g(Fn))},(function(){return t()}))}))},exports.only=Bn,exports.optional=function(n){(0,k()[1])((function(t){if(l(n)||u(n))c(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Vn,exports.skipWhen=function(n,t){un({type:R.SKIP_WHEN},(function(){I.run({skipped:jn()||g(n,g(Fn))},(function(){return t()}))}))},exports.test=ct,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");z(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n,t){return o(n)&&u(t)}function c(n){return[].concat(n)}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}(n.length,t)}function p(n){function t(n){return e.findIndex((function(t){var e=t[0];return f(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),l(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var h=i(v);function g(n){return"function"==typeof n}function E(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return g(n)?n.apply(void 0,t):n}function m(n,t){var e;return null!==(e=E(n))&&void 0!==e?e:t}function N(n){return(n=c(n))[n.length-1]}function y(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(y(u,t)):(u=t(u),h(u)&&e.push(u))}return e}function S(n,t,e){return b(n,t)[N(t)]=e,n}function R(n){return c(n).reduce((function(n,t){return d(t)?n.concat(R(t)):c(n).concat(t)}),[])}function b(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=m(n[r],[]),n=n[r]}return n}var C,T,I=Object.assign;function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return N(t)},getCursor:function(){return c(t)},next:function(){return t[t.length-1]++,N(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(C||(C={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(T||(T={}));var O=e.createContext((function(n,t){return t?null:I({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:C.DEFAULT,keys:{current:{},prev:{}}},mode:[T.ALL],testCursor:_()},n)}));function A(){return O.useX().stateRef}function k(){return A().suiteId()[0]}function L(){return A().testCallbacks()}function x(){return A().optionalFields()}function F(){return A().testObjects()}function W(){(0,F()[1])((function(n){return{prev:n.prev,current:c(n.current)}}))}function G(n){(0,F()[1])((function(t){return{prev:t.prev,current:c(n(t.current))}}))}function U(){return R(y(F()[0].current,(function(n){return n.isPending()?n:null})))}var P,D=p();function X(){var n=F()[0].current;return D([n],(function(){return R(n)}))}function w(n){X().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(P||(P={}));var H,K,M=function(){function n(n,t,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=P.Error,this.status=q,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){s(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Q||(this.status=n)},n.prototype.warns=function(){return this.severity===P.Warning},n.prototype.setPending=function(){this.setStatus(J)},n.prototype.fail=function(){this.setStatus(this.warns()?V:B)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Y)},n.prototype.warn=function(){this.severity=P.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(j)},n.prototype.cancel=function(){this.setStatus(z),W()},n.prototype.reset=function(){this.status=q,W()},n.prototype.omit=function(){this.setStatus(Q)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(J)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Q)},n.prototype.isUntested=function(){return this.statusEquals(q)},n.prototype.isFailing=function(){return this.statusEquals(B)},n.prototype.isCanceled=function(){return this.statusEquals(z)},n.prototype.isSkipped=function(){return this.statusEquals(j)},n.prototype.isPassing=function(){return this.statusEquals(Y)},n.prototype.isWarning=function(){return this.statusEquals(V)},n.prototype.statusEquals=function(n){return this.status===n},n}(),q="UNTESTED",j="SKIPPED",B="FAILED",V="WARNING",Y="PASSING",J="PENDING",z="CANCELED",Q="OMITTED";function Z(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?E(t):t)}function $(n){function t(n,t,u){return r.references.push(),e(n,E(t,u)),function(){return[r.references[n],function(t){return e(n,E(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,g(t=u[t][1])&&t(e,i),g(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function nn(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function tn(n){return v(n)||o(n)}function en(n){setTimeout((function(){throw Error(n)}),0)}function rn(){return O.useX().testCursor.getCursor()}function un(){return O.useX().testCursor.cursorAt()}function on(){return O.useX().testCursor.next()}function sn(n,t){if(n=void 0===(n=n.type)?C.DEFAULT:n,g(t)){var e={current:{},prev:{}},r=rn();return O.run({isolate:{type:n,keys:e}},(function(){O.useX().testCursor.addLevel(),e.prev=c(b(F()[0].prev,rn())).reduce((function(n,t){return t instanceof M&&!tn(t.key)?(n[t.key]=t,n):n}),{}),G((function(n){return S(n,r,[])}));var n=t();return O.useX().testCursor.removeLevel(),on(),n}))}}function cn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function an(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(cn(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(H||(H={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(K||(K={}));var fn=i(an);function ln(n,t){return!!t&&!pn(n,t)}function pn(n,t){return!(!t||n.fieldName!==t)}function dn(n,t,e){return!(!n.hasFailures()||ln(n,e)||function(n,t){return function(n,t){return!!n!=!!t}(n===H.WARNINGS,t.warns())}(t,n))}function vn(n){return gn(H.ERRORS,n)}function hn(n){return gn(H.WARNINGS,n)}function gn(n,t){return X().some((function(e){return dn(e,n,t)}))}function En(n){var t,e,r=O.useX().summary;return Z(r),!!(n?null!==(e=null===(t=r.tests)||void 0===t?void 0:t[n])&&void 0!==e&&e.valid:r.valid)}function mn(n){return!!function(n){var t=X().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(n)||!vn(n)&&(!(an(X())||function(n){var t=X();return!!n&&!t.find((function(t){return t.fieldName===n}))}(n)||function(n){var t=x()[0];return fn(U().filter((function(e){return!ln(e,n)&&!0!==t[e.fieldName]})))}(n))&&function(n){var t=X(),e=x()[0];return t.every((function(t){return!!ln(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function Nn(){var n=X(),t=I({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=yn(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&mn(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=yn(n[e],t))}(n.groups,t),n}),t),t.valid=mn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function yn(n,t){function e(n){var t=function(n){return n===H.ERRORS?K.ERROR_COUNT:K.WARN_COUNT}(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(H.ERRORS):t.isWarning()&&e(H.WARNINGS)),i}function Sn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r,u={};for(r in n)u[r]=(null===(e=n[r])||void 0===e?void 0:e[t])||[];return u}(n,t)}function Rn(n){return Cn(H.ERRORS,n)}function bn(n){return Cn(H.WARNINGS,n)}function Cn(n,t){var e=O.useX().summary;return Z(e),Sn(e.tests,n,t)}function Tn(n,t){return _n(n,H.ERRORS,t)}function In(n,t){return _n(n,H.WARNINGS,t)}function _n(n,t,e){var r=O.useX().summary;return Z(r),Sn(r.groups[n],t,e)}function On(n,t){return kn(H.ERRORS,n,t)}function An(n,t){return kn(H.WARNINGS,n,t)}function kn(n,t,e){return X().some((function(r){return t===r.groupName&&dn(r,n,e)}))}var Ln=p(1);function xn(){var n=X(),t={stateRef:A()};return Ln([n],O.bind(t,(function(){var n=Nn(),e=A().suiteName()[0],r=I({summary:n},t);return I(n,{getErrors:O.bind(r,Rn),getErrorsByGroup:O.bind(r,Tn),getWarnings:O.bind(r,bn),getWarningsByGroup:O.bind(r,In),hasErrors:O.bind(r,vn),hasErrorsByGroup:O.bind(r,On),hasWarnings:O.bind(r,hn),hasWarningsByGroup:O.bind(r,An),isValid:O.bind(r,En),suiteName:e})})))}function Fn(n){var t=U();return!an(t)&&(n?t.some((function(t){return pn(t,n)})):fn(t))}var Wn=p(20);function Gn(){var n=X(),t={stateRef:A()};return Wn([n],O.bind(t,(function(){return I({},xn(),{done:O.bind(t,Xn)})})))}function Un(n,t,e){return!(g(n)&&(!t||e.tests[t]&&!an(e.tests[t].testCount)))}function Pn(n){return!(Fn()&&(!n||Fn(n)))}var Dn,Xn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Gn(),Un(e,n,t))return t;var r=function(){return e(xn())};return Pn(n)?(r(),t):(wn(r,n),t)};function wn(n,t){(0,L()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Hn(n){return n.forEach((function(n){return n()}))}function Kn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Dn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=L()[0].fieldCallbacks;n&&!Fn(n)&&d(t[n])&&Hn(t[n])}(t.fieldName),Fn()||n.emit(Dn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Dn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=x()[0];if(!an(n)){var t={};G((function(e){return y(e,(function(e){if(cn(t,e.fieldName))t[e.fieldName]&&e.omit();else{var r=n[e.fieldName];g(r)&&(t[e.fieldName]=r(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Dn.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(L()[0].doneCallbacks)})),n.on(Dn.REMOVE_FIELD,(function(n){w((function(t){pn(t,n)&&(t.cancel(),function(n){G((function(t){return y(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Dn.RESET_FIELD,(function(n){w((function(t){pn(t,n)&&t.reset()}))})),n}function Mn(){var n=O.useX();return Z(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Dn||(Dn={}));function qn(){return!!O.useX().skipped}function jn(n){return Yn(0,"tests",n)}function Bn(n){return Yn(1,"tests",n)}function Vn(n){var t=n.fieldName;if(n=n.groupName,qn())return!0;var e=O.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=O.useX().exclusion.groups;if(cn(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Jn(u)||!1===u[t])}return!!function(n){var t=O.useX().exclusion;return!!function(){var n,t=O.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Jn(u)&&!E(e[t]))}function Yn(n,t,e){var r=O.useX("hook called outside of a running suite.");e&&c(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function Jn(n){for(var t in n)if(!0===n[t])return!0;return!1}function zn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Qn(n){return!(!function(n){return O.useX().mode[0]===n}(T.EAGER)||!vn(n.fieldName))}function Zn(){return!!O.useX().omitted}function $n(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function nt(n){return n&&g(n.then)}function tt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function et(n){var t=n.asyncTest,e=n.message;if(nt(t)){var r=Mn().emit,i=A(),o=O.bind({stateRef:i},(function(){W(),r(Dn.TEST_COMPLETED,n)}));i=O.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function rt(n){var t=Mn(),e=function(n){return O.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){s(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{nt(e)?(n.asyncTest=e,n.setPending(),et(n)):t.emit(Dn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function ut(n){var t=F()[0].prev;return an(t)?(it(n),n):(t=function(n){var t=rn();return function(n,t){return b(n,t)[N(t)]}(n,t)}(t),tn(n.key)?(function(n,t){return fn(n)&&!tt(n,t)}(t,n)&&(function(n,t){O.useX().isolate.type===C.EACH||en("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.'))}(t,n),function(){var n=F(),t=n[1],e=n[0].prev;n=b(e,rn());var r=un();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),it(n=m(t,n)),n):(it(n=function(n,t){var e=function(n){return O.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=O.useX().isolate.keys.current;tn(e[n])?e[n]=t:en('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function it(n){var t=rn();G((function(e){return S(e,t,n)}))}function ot(n){if(Qn(n))return n.skip(),ut(n),on(),n;var t=ut(n);return Zn()?(t.omit(),on(),t):Vn(n)?(t.skip(qn()),on(),t):(function(n,t){t!==n&&tt(n,t)&&n.isPending()&&n.cancel()}(t,n),it(n),on(),function(n){n.isUntested()?rt(n):nt(n.asyncTest)&&(n.setPending(),et(n))}(n),n)}function st(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=g(t[1])?t:$n([void 0],t,!0);t=r[0],e=r[1],r=r[2],Z(u(n),at("fieldName","string")),Z(g(e),at("Test callback","function"));var i=O.useX();return ot(t=new M(n,e,{message:t,groupName:i.groupName,key:r}))}jn.group=function(n){return Yn(0,"groups",n)},Bn.group=function(n){return Yn(1,"groups",n)};var ct=I(st,{memo:function(n){var t=p(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=un();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k(),e,u].concat(i),v(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):ot(r[1])}}(st)});function at(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.3.1",exports.context=O,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],Z(g(e),"vest.create: Expected callback to be a function.");var u=Kn(),i=$();return n={stateRef:nn(i,{suiteId:r(),suiteName:n}),bus:u},I(O.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),sn({type:C.SUITE},(function(){e.apply(void 0,n)})),u.emit(Dn.SUITE_CALLBACK_DONE_RUNNING),Gn()})),{get:O.bind(n,xn),remove:O.bind(n,(function(n){u.emit(Dn.REMOVE_FIELD,n)})),reset:i.reset,resetField:O.bind(n,(function(n){u.emit(Dn.RESET_FIELD,n)}))})},exports.each=function(n,t){Z(g(t),"each callback must be a function"),sn({type:C.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){O.useX().mode[0]=n}(T.EAGER)},exports.group=function(n,t){Z(u(n),zn("name must be a string")),Z(g(t),zn("callback must be a function")),sn({type:C.GROUP},(function(){O.run({groupName:n},t)}))},exports.include=function(n){function t(t){var e=O.useX(),r=e.exclusion;e.inclusion[n]=function(){return cn(r.tests,n)?m(r.tests[n],!0):u(t)?!!r.tests[t]:E(t,E(xn))}}var e=O.useX();return n?(e.inclusion[n]=m(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,t){sn({type:C.OMIT_WHEN},(function(){O.run({omitted:Zn()||E(n,E(xn))},(function(){return t()}))}))},exports.only=jn,exports.optional=function(n){(0,x()[1])((function(t){if(d(n)||u(n))c(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Bn,exports.skipWhen=function(n,t){sn({type:C.SKIP_WHEN},(function(){O.run({skipped:qn()||E(n,E(xn))},(function(){return t()}))}))},exports.test=ct,exports.warn=function(){var n=O.useX("warn hook called outside of a running suite.");Z(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -89,7 +89,7 @@ function compose() {
|
|
|
89
89
|
return ctx.run({ value: value }, function () {
|
|
90
90
|
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
91
91
|
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
92
|
-
The ideal is that instead of `
|
|
92
|
+
The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
|
|
93
93
|
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
94
94
|
so we're limiting it to a small set of functions.
|
|
95
95
|
*/
|
|
@@ -100,12 +100,27 @@ function noneOf(value) {
|
|
|
100
100
|
}));
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
function isNumeric(value) {
|
|
104
|
+
var str = String(value);
|
|
105
|
+
var num = Number(value);
|
|
106
|
+
var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
|
|
107
|
+
return Boolean(result);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function numberEquals(value, eq) {
|
|
111
|
+
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
112
|
+
}
|
|
113
|
+
|
|
103
114
|
function lengthEquals(value, arg1) {
|
|
104
|
-
return value.length
|
|
115
|
+
return numberEquals(value.length, arg1);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function greaterThan(value, gt) {
|
|
119
|
+
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
105
120
|
}
|
|
106
121
|
|
|
107
122
|
function longerThan(value, arg1) {
|
|
108
|
-
return value.length
|
|
123
|
+
return greaterThan(value.length, arg1);
|
|
109
124
|
}
|
|
110
125
|
|
|
111
126
|
var REQUIRED_COUNT = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,
|
|
1
|
+
import{enforce as n}from"n4s";function r(n,r){function t(n){u=!0,e=n}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function t(n,r){var t;return null!==(t=function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,r):n}(n))&&void 0!==t?t:r}function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}function o(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function f(n,r){return o(n)&&o(r)&&Number(n)===Number(r)}n.extend({allOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass||t(r)})),u(!0))},anyOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){(r=e(r,n)).pass&&t(r)})),u(!1))},noneOf:function(n){for(var o=[],f=1;f<arguments.length;f++)o[f-1]=arguments[f];return t(r(o,(function(r,t){e(r,n).pass&&t(u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var i=[];return r.some((function(r){var t=i.length;if(o(t)&&o(1)&&Number(t)>Number(1))return!1;(r=e(r,n)).pass&&i.push(r)})),u(f(i.length,1))}});
|
|
@@ -126,7 +126,7 @@ function shape(inputObject, shapeObject) {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
// Help needed improving the typings of this file.
|
|
129
|
-
// Ideally, we'd be able to extend
|
|
129
|
+
// Ideally, we'd be able to extend ShapeObject, but that's not possible.
|
|
130
130
|
function partial(shapeObject) {
|
|
131
131
|
var output = {};
|
|
132
132
|
for (var key in shapeObject) {
|