vest 4.4.0-dev-08ec91 → 4.4.2
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 +2 -2
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/enforce/compose.development.js +16 -10
- package/dist/cjs/enforce/compose.production.js +1 -1
- package/dist/cjs/enforce/compounds.development.js +18 -30
- package/dist/cjs/enforce/compounds.production.js +1 -1
- package/dist/cjs/enforce/schema.development.js +8 -8
- package/dist/cjs/enforce/schema.production.js +1 -1
- package/dist/cjs/parser.development.js +2 -2
- package/dist/cjs/parser.production.js +1 -1
- package/dist/cjs/vest.development.js +88 -112
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +2 -2
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +16 -10
- package/dist/es/enforce/compose.production.js +1 -1
- package/dist/es/enforce/compounds.development.js +18 -30
- package/dist/es/enforce/compounds.production.js +1 -1
- package/dist/es/enforce/schema.development.js +8 -8
- package/dist/es/enforce/schema.production.js +1 -1
- package/dist/es/parser.development.js +2 -2
- package/dist/es/parser.production.js +1 -1
- package/dist/es/vest.development.js +88 -112
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +2 -2
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +31 -31
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +106 -110
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +39 -39
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/parser.development.js +2 -2
- package/dist/umd/parser.production.js +1 -1
- package/dist/umd/vest.development.js +111 -126
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/testUtils/testObjects.ts +2 -17
- package/types/enforce/compose.d.ts +1 -1
- package/types/enforce/compounds.d.ts +1 -1
- package/types/enforce/schema.d.ts +1 -1
- package/types/vest.d.ts +14 -15
- package/testUtils/itWithContext.ts +0 -23
|
@@ -12,9 +12,9 @@ function optionalFunctionValue(value) {
|
|
|
12
12
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
function defaultTo(
|
|
15
|
+
function defaultTo(value, defaultValue) {
|
|
16
16
|
var _a;
|
|
17
|
-
return (_a = optionalFunctionValue(
|
|
17
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function t(t){return"function"==typeof t}function n(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;function a(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:r}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i}(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),module.exports=function(n,r){void 0===r&&(r={});var e=a(n);return function(n){var u,o=[];for(u in r){var i=u;t(e[i])&&e[i](n)&&o.push(r[i])}return o.join(" ")}};
|
|
1
|
+
"use strict";function t(t){return"function"==typeof t}function n(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;function a(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:n(r)}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i}(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),module.exports=function(n,r){void 0===r&&(r={});var e=a(n);return function(n){var u,o=[];for(u in r){var i=u;t(e[i])&&e[i](n)&&o.push(r[i])}return o.join(" ")}};
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var n4s = require('n4s');
|
|
4
4
|
|
|
5
|
+
var assign = Object.assign;
|
|
6
|
+
|
|
5
7
|
function isFunction(value) {
|
|
6
8
|
return typeof value === 'function';
|
|
7
9
|
}
|
|
@@ -27,6 +29,10 @@ message) {
|
|
|
27
29
|
? message.valueOf()
|
|
28
30
|
: new Error(message ? optionalFunctionValue(message) : message);
|
|
29
31
|
}
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
33
|
+
function StringObject(value) {
|
|
34
|
+
return new String(optionalFunctionValue(value));
|
|
35
|
+
}
|
|
30
36
|
|
|
31
37
|
function mapFirst(array, callback) {
|
|
32
38
|
var broke = false;
|
|
@@ -37,15 +43,17 @@ function mapFirst(array, callback) {
|
|
|
37
43
|
return breakoutValue;
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
|
-
function breakout(value) {
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
function breakout(conditional, value) {
|
|
47
|
+
if (conditional) {
|
|
48
|
+
broke = true;
|
|
49
|
+
breakoutValue = value;
|
|
50
|
+
}
|
|
43
51
|
}
|
|
44
52
|
}
|
|
45
53
|
|
|
46
|
-
function defaultTo(
|
|
54
|
+
function defaultTo(value, defaultValue) {
|
|
47
55
|
var _a;
|
|
48
|
-
return (_a = optionalFunctionValue(
|
|
56
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
49
57
|
}
|
|
50
58
|
|
|
51
59
|
function ruleReturn(pass, message) {
|
|
@@ -80,9 +88,9 @@ function compose() {
|
|
|
80
88
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
81
89
|
composites[_i] = arguments[_i];
|
|
82
90
|
}
|
|
83
|
-
return
|
|
91
|
+
return assign(function (value) {
|
|
84
92
|
var res = run(value);
|
|
85
|
-
invariant(res.pass,
|
|
93
|
+
invariant(res.pass, StringObject(res.message));
|
|
86
94
|
}, {
|
|
87
95
|
run: run,
|
|
88
96
|
test: function (value) { return run(value).pass; }
|
|
@@ -96,9 +104,7 @@ function compose() {
|
|
|
96
104
|
so we're limiting it to a small set of functions.
|
|
97
105
|
*/
|
|
98
106
|
var res = runLazyRule(composite, value);
|
|
99
|
-
|
|
100
|
-
breakout(res);
|
|
101
|
-
}
|
|
107
|
+
breakout(!res.pass, res);
|
|
102
108
|
}));
|
|
103
109
|
});
|
|
104
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function
|
|
1
|
+
"use strict";var n=require("n4s"),r=Object.assign;function t(n){return"function"==typeof n}function u(n){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}function e(n,r){if(!n)throw r instanceof String?r.valueOf():Error(r?u(r):r)}function o(n){return new String(u(n))}function i(n,r){function t(n,r){n&&(u=!0,e=r)}for(var u=!1,e=null,o=0;o<n.length;o++)if(r(n[o],t,o),u)return e}function f(n,r){return n={pass:n},r&&(n.message=r),n}function c(n){return function(n,r){var t;return null!==(t=u(n))&&void 0!==t?t:u(r)}(n,f(!0))}function s(n,r){try{return n.run(r)}catch(n){return f(!1)}}module.exports=function(){function t(r){return n.ctx.run({value:r},(function(){return c(i(u,(function(n,t){t(!(n=s(n,r)).pass,n)})))}))}for(var u=[],f=0;f<arguments.length;f++)u[f]=arguments[f];return r((function(n){e((n=t(n)).pass,o(n.message))}),{run:t,test:function(n){return t(n).pass}})};
|
|
@@ -11,9 +11,11 @@ function mapFirst(array, callback) {
|
|
|
11
11
|
return breakoutValue;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
function breakout(value) {
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function breakout(conditional, value) {
|
|
15
|
+
if (conditional) {
|
|
16
|
+
broke = true;
|
|
17
|
+
breakoutValue = value;
|
|
18
|
+
}
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -29,9 +31,9 @@ function optionalFunctionValue(value) {
|
|
|
29
31
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
function defaultTo(
|
|
34
|
+
function defaultTo(value, defaultValue) {
|
|
33
35
|
var _a;
|
|
34
|
-
return (_a = optionalFunctionValue(
|
|
36
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
function ruleReturn(pass, message) {
|
|
@@ -70,9 +72,7 @@ function allOf(value) {
|
|
|
70
72
|
}
|
|
71
73
|
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
72
74
|
var res = runLazyRule(rule, value);
|
|
73
|
-
|
|
74
|
-
breakout(res);
|
|
75
|
-
}
|
|
75
|
+
breakout(!res.pass, res);
|
|
76
76
|
}));
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -83,9 +83,7 @@ function anyOf(value) {
|
|
|
83
83
|
}
|
|
84
84
|
return defaultToFailing(mapFirst(rules, function (rule, breakout) {
|
|
85
85
|
var res = runLazyRule(rule, value);
|
|
86
|
-
|
|
87
|
-
breakout(res);
|
|
88
|
-
}
|
|
86
|
+
breakout(res.pass, res);
|
|
89
87
|
}));
|
|
90
88
|
}
|
|
91
89
|
|
|
@@ -96,12 +94,14 @@ function noneOf(value) {
|
|
|
96
94
|
}
|
|
97
95
|
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
98
96
|
var res = runLazyRule(rule, value);
|
|
99
|
-
|
|
100
|
-
breakout(failing());
|
|
101
|
-
}
|
|
97
|
+
breakout(res.pass, failing());
|
|
102
98
|
}));
|
|
103
99
|
}
|
|
104
100
|
|
|
101
|
+
function equals(value, arg1) {
|
|
102
|
+
return value === arg1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
105
|
function isNumeric(value) {
|
|
106
106
|
var str = String(value);
|
|
107
107
|
var num = Number(value);
|
|
@@ -109,39 +109,27 @@ function isNumeric(value) {
|
|
|
109
109
|
return Boolean(result);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
function numberEquals(value, eq) {
|
|
113
|
-
return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function lengthEquals(value, arg1) {
|
|
117
|
-
return numberEquals(value.length, arg1);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
112
|
function greaterThan(value, gt) {
|
|
121
113
|
return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
|
|
122
114
|
}
|
|
123
115
|
|
|
124
|
-
function longerThan(value, arg1) {
|
|
125
|
-
return greaterThan(value.length, arg1);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
116
|
var REQUIRED_COUNT = 1;
|
|
129
117
|
function oneOf(value) {
|
|
130
118
|
var rules = [];
|
|
131
119
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
132
120
|
rules[_i - 1] = arguments[_i];
|
|
133
121
|
}
|
|
134
|
-
var
|
|
122
|
+
var passingCount = 0;
|
|
135
123
|
rules.some(function (rule) {
|
|
136
124
|
var res = runLazyRule(rule, value);
|
|
137
125
|
if (res.pass) {
|
|
138
|
-
|
|
126
|
+
passingCount++;
|
|
139
127
|
}
|
|
140
|
-
if (
|
|
128
|
+
if (greaterThan(passingCount, REQUIRED_COUNT)) {
|
|
141
129
|
return false;
|
|
142
130
|
}
|
|
143
131
|
});
|
|
144
|
-
return ruleReturn(
|
|
132
|
+
return ruleReturn(equals(passingCount, REQUIRED_COUNT));
|
|
145
133
|
}
|
|
146
134
|
|
|
147
135
|
n4s.enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("n4s");function r(n,r){function t(n){u=!0,e=
|
|
1
|
+
"use strict";var n=require("n4s");function r(n,r){function t(n,r){n&&(u=!0,e=r)}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){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];return t(n)?n.apply(void 0,r):n}function e(n,r){var t;return null!==(t=u(n))&&void 0!==t?t:u(r)}function f(n,r){return n={pass:n},r&&(n.message=r),n}function o(){return f(!1)}function i(n){return e(n,o())}function c(n){return e(n,f(!0))}function a(n,r){try{return n.run(r)}catch(n){return o()}}function s(n,r){return n===r}function l(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}function v(n,r){return l(n)&&l(r)&&Number(n)>Number(r)}n.enforce.extend({allOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return c(r(t,(function(r,t){t(!(r=a(r,n)).pass,r)})))},anyOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return i(r(t,(function(r,t){t((r=a(r,n)).pass,r)})))},noneOf:function(n){for(var t=[],u=1;u<arguments.length;u++)t[u-1]=arguments[u];return c(r(t,(function(r,t){t((r=a(r,n)).pass,o())})))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var u=0;return r.some((function(r){if(a(r,n).pass&&u++,v(u,1))return!1})),f(s(u,1))}});
|
|
@@ -13,9 +13,11 @@ function mapFirst(array, callback) {
|
|
|
13
13
|
return breakoutValue;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
function breakout(value) {
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
function breakout(conditional, value) {
|
|
17
|
+
if (conditional) {
|
|
18
|
+
broke = true;
|
|
19
|
+
breakoutValue = value;
|
|
20
|
+
}
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -31,9 +33,9 @@ function optionalFunctionValue(value) {
|
|
|
31
33
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
function defaultTo(
|
|
36
|
+
function defaultTo(value, defaultValue) {
|
|
35
37
|
var _a;
|
|
36
|
-
return (_a = optionalFunctionValue(
|
|
38
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
function ruleReturn(pass, message) {
|
|
@@ -65,9 +67,7 @@ function runLazyRule(lazyRule, currentValue) {
|
|
|
65
67
|
function isArrayOf(inputArray, currentRule) {
|
|
66
68
|
return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
|
|
67
69
|
var res = n4s.ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
|
|
68
|
-
|
|
69
|
-
breakout(res);
|
|
70
|
-
}
|
|
70
|
+
breakout(!res.pass, res);
|
|
71
71
|
}));
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("n4s");function r(n){return"function"==typeof n}function t(n
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("n4s");function r(n){return"function"==typeof n}function t(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return r(n)?n.apply(void 0,t):n}function e(n,r){return n={pass:n},r&&(n.message=r),n}function u(){return e(!1)}function o(){return e(!0)}function i(n){return function(n,r){var e;return null!==(e=t(n))&&void 0!==e?e:t(r)}(n,o())}function f(n,r){try{return n.run(r)}catch(n){return u()}}function c(r,t){var e,u=function(e){var u=r[e],o=t[e];if(!(e=n.ctx.run({value:u,set:!0,meta:{key:e}},(function(){return f(o,u)}))).pass)return{value:e}};for(e in t){var i=u(e);if("object"==typeof i)return i.value}return o()}function a(n,r){return Object.prototype.hasOwnProperty.call(n,r)}n.enforce.extend({isArrayOf:function(r,t){return i(function(n,r){function t(n,r){n&&(e=!0,u=r)}for(var e=!1,u=null,o=0;o<n.length;o++)if(r(n[o],t,o),e)return u}(r,(function(r,e,u){e(!(u=n.ctx.run({value:r,set:!0,meta:{index:u}},(function(){return f(t,r)}))).pass,u)})))},loose:c,optional:function(n,r){return function(n){return function(n){return null===n}(n)||function(n){return void 0===n}(n)}(n)?o():f(r,n)},shape:function(n,r){var t=c(n,r);if(!t.pass)return t;for(var e in n)if(!a(r,e))return u();return o()}}),exports.partial=function(r){var t,e={};for(t in r)e[t]=n.enforce.optional(r[t]);return e};
|
|
@@ -14,9 +14,9 @@ function optionalFunctionValue(value) {
|
|
|
14
14
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
function defaultTo(
|
|
17
|
+
function defaultTo(value, defaultValue) {
|
|
18
18
|
var _a;
|
|
19
|
-
return (_a = optionalFunctionValue(
|
|
19
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function t(t){return"function"==typeof t}function n(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;Object.defineProperty(exports,"__esModule",{value:!0}),(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),exports.parse=function(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:r}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i};
|
|
1
|
+
"use strict";function t(t){return"function"==typeof t}function n(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function r(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function e(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function u(t){return function(t,n){return e(t)&&e(n)&&Number(t)>Number(n)}(t,0)}var o,i,s;Object.defineProperty(exports,"__esModule",{value:!0}),(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(s||(s={})),exports.parse=function(t){function e(r,e){var o;return u(r=function(t,r){var e;return null!==(e=n(t))&&void 0!==e?e:n(r)}(e?null===(o=t.tests[e])||void 0===o?void 0:o[r]:t[r],0))}!function(t,r){if(!t)throw r instanceof String?r.valueOf():Error(r?n(r):r)}(t&&r(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return e(s.ERROR_COUNT,t)},tested:function(n){return n?r(o,n)?o[n]:(o[n]=r(t.tests,n)&&u(t.tests[n].testCount),i.tested(n)):u(t.testCount)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var r;return n?!(null===(r=t.tests[n])||void 0===r||!r.valid):t.valid},warning:function(t){return e(s.WARN_COUNT,t)}};return i};
|
|
@@ -125,9 +125,9 @@ function optionalFunctionValue(value) {
|
|
|
125
125
|
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
function defaultTo(
|
|
128
|
+
function defaultTo(value, defaultValue) {
|
|
129
129
|
var _a;
|
|
130
|
-
return (_a = optionalFunctionValue(
|
|
130
|
+
return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
function last(values) {
|
|
@@ -180,40 +180,6 @@ function getCurrent(array, path) {
|
|
|
180
180
|
return current;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
function createCursor() {
|
|
184
|
-
var storage = {
|
|
185
|
-
cursor: []
|
|
186
|
-
};
|
|
187
|
-
function addLevel() {
|
|
188
|
-
storage.cursor.push(0);
|
|
189
|
-
}
|
|
190
|
-
function removeLevel() {
|
|
191
|
-
storage.cursor.pop();
|
|
192
|
-
}
|
|
193
|
-
function cursorAt() {
|
|
194
|
-
return last(storage.cursor);
|
|
195
|
-
}
|
|
196
|
-
function getCursor() {
|
|
197
|
-
return asArray(storage.cursor);
|
|
198
|
-
}
|
|
199
|
-
function next() {
|
|
200
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
201
|
-
return last(storage.cursor);
|
|
202
|
-
}
|
|
203
|
-
function reset() {
|
|
204
|
-
storage.cursor = [0];
|
|
205
|
-
}
|
|
206
|
-
reset();
|
|
207
|
-
return {
|
|
208
|
-
addLevel: addLevel,
|
|
209
|
-
cursorAt: cursorAt,
|
|
210
|
-
getCursor: getCursor,
|
|
211
|
-
next: next,
|
|
212
|
-
removeLevel: removeLevel,
|
|
213
|
-
reset: reset
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
|
|
217
183
|
var IsolateTypes;
|
|
218
184
|
(function (IsolateTypes) {
|
|
219
185
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -230,6 +196,41 @@ var Modes;
|
|
|
230
196
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
231
197
|
})(Modes || (Modes = {}));
|
|
232
198
|
|
|
199
|
+
function createIsolateCursor() {
|
|
200
|
+
var cursor = {
|
|
201
|
+
value: 0
|
|
202
|
+
};
|
|
203
|
+
return {
|
|
204
|
+
current: current,
|
|
205
|
+
next: next
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* @returns {number} The current value of the cursor
|
|
209
|
+
*/
|
|
210
|
+
function current() {
|
|
211
|
+
return cursor.value;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Moves the isolate cursor forward by 1
|
|
215
|
+
*/
|
|
216
|
+
function next() {
|
|
217
|
+
cursor.value++;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function generateIsolate(type, path) {
|
|
222
|
+
if (path === void 0) { path = []; }
|
|
223
|
+
return {
|
|
224
|
+
cursor: createIsolateCursor(),
|
|
225
|
+
keys: {
|
|
226
|
+
current: {},
|
|
227
|
+
prev: {}
|
|
228
|
+
},
|
|
229
|
+
path: path,
|
|
230
|
+
type: type
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
|
|
233
234
|
var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
234
235
|
return parentContext
|
|
235
236
|
? null
|
|
@@ -239,15 +240,8 @@ var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
|
239
240
|
groups: {}
|
|
240
241
|
},
|
|
241
242
|
inclusion: {},
|
|
242
|
-
isolate:
|
|
243
|
-
|
|
244
|
-
keys: {
|
|
245
|
-
current: {},
|
|
246
|
-
prev: {}
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
mode: [Modes.ALL],
|
|
250
|
-
testCursor: createCursor()
|
|
243
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
244
|
+
mode: [Modes.ALL]
|
|
251
245
|
}, ctxRef);
|
|
252
246
|
});
|
|
253
247
|
|
|
@@ -573,30 +567,9 @@ function deferThrow(message) {
|
|
|
573
567
|
}, 0);
|
|
574
568
|
}
|
|
575
569
|
|
|
576
|
-
function usePath() {
|
|
577
|
-
var context$1 = context.useX();
|
|
578
|
-
return context$1.testCursor.getCursor();
|
|
579
|
-
}
|
|
580
|
-
function useCursorAt() {
|
|
581
|
-
var context$1 = context.useX();
|
|
582
|
-
return context$1.testCursor.cursorAt();
|
|
583
|
-
}
|
|
584
|
-
function moveForward() {
|
|
585
|
-
var context$1 = context.useX();
|
|
586
|
-
return context$1.testCursor.next();
|
|
587
|
-
}
|
|
588
|
-
function addLevel() {
|
|
589
|
-
var context$1 = context.useX();
|
|
590
|
-
context$1.testCursor.addLevel();
|
|
591
|
-
}
|
|
592
|
-
function removeLevel() {
|
|
593
|
-
var context$1 = context.useX();
|
|
594
|
-
context$1.testCursor.removeLevel();
|
|
595
|
-
}
|
|
596
|
-
|
|
597
570
|
function usePrevKeys() {
|
|
598
571
|
var prev = useTestObjects()[0].prev;
|
|
599
|
-
return asArray(getCurrent(prev,
|
|
572
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
600
573
|
if (!(testObject instanceof VestTest)) {
|
|
601
574
|
return prevKeys;
|
|
602
575
|
}
|
|
@@ -608,12 +581,11 @@ function usePrevKeys() {
|
|
|
608
581
|
}, {});
|
|
609
582
|
}
|
|
610
583
|
function usePrevTestByKey(key) {
|
|
611
|
-
var prev =
|
|
584
|
+
var prev = useIsolate().keys.prev;
|
|
612
585
|
return prev[key];
|
|
613
586
|
}
|
|
614
587
|
function useRetainTestKey(key, testObject) {
|
|
615
|
-
var
|
|
616
|
-
var current = context$1.isolate.keys.current;
|
|
588
|
+
var current = useIsolate().keys.current;
|
|
617
589
|
if (isNullish(current[key])) {
|
|
618
590
|
current[key] = testObject;
|
|
619
591
|
}
|
|
@@ -625,23 +597,42 @@ function useRetainTestKey(key, testObject) {
|
|
|
625
597
|
function isolate(_a, callback) {
|
|
626
598
|
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
627
599
|
invariant(isFunction(callback));
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
634
|
-
addLevel();
|
|
635
|
-
keys.prev = usePrevKeys();
|
|
636
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
600
|
+
// Generate a new Isolate layer, with its own cursor
|
|
601
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
602
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
603
|
+
isolate.keys.prev = usePrevKeys();
|
|
604
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
637
605
|
var res = callback();
|
|
638
|
-
removeLevel();
|
|
639
|
-
moveForward();
|
|
640
606
|
return res;
|
|
641
607
|
});
|
|
608
|
+
// Move the parent cursor forward once we're done
|
|
609
|
+
useCursor().next();
|
|
610
|
+
return output;
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* @returns {Isolate} The current isolate layer
|
|
614
|
+
*/
|
|
615
|
+
function useIsolate() {
|
|
616
|
+
return context.useX().isolate;
|
|
642
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
620
|
+
*/
|
|
643
621
|
function shouldAllowReorder() {
|
|
644
|
-
return
|
|
622
|
+
return useIsolate().type === IsolateTypes.EACH;
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
626
|
+
*/
|
|
627
|
+
function useCurrentPath() {
|
|
628
|
+
var isolate = useIsolate();
|
|
629
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
633
|
+
*/
|
|
634
|
+
function useCursor() {
|
|
635
|
+
return useIsolate().cursor;
|
|
645
636
|
}
|
|
646
637
|
|
|
647
638
|
var Severity;
|
|
@@ -667,17 +658,10 @@ function hasOwnProperty(obj, key) {
|
|
|
667
658
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
668
659
|
}
|
|
669
660
|
|
|
670
|
-
function isNumber(value) {
|
|
671
|
-
return Boolean(typeof value === 'number');
|
|
672
|
-
}
|
|
673
|
-
|
|
674
661
|
function isEmpty(value) {
|
|
675
662
|
if (!value) {
|
|
676
663
|
return true;
|
|
677
664
|
}
|
|
678
|
-
else if (isNumber(value)) {
|
|
679
|
-
return value === 0;
|
|
680
|
-
}
|
|
681
665
|
else if (hasOwnProperty(value, 'length')) {
|
|
682
666
|
return lengthEquals(value, 0);
|
|
683
667
|
}
|
|
@@ -1597,9 +1581,7 @@ function eager() {
|
|
|
1597
1581
|
setMode(Modes.EAGER);
|
|
1598
1582
|
}
|
|
1599
1583
|
function shouldSkipBasedOnMode(testObject) {
|
|
1600
|
-
|
|
1601
|
-
return true;
|
|
1602
|
-
return false;
|
|
1584
|
+
return isEager() && hasErrorsByTestObjects(testObject.fieldName);
|
|
1603
1585
|
}
|
|
1604
1586
|
function isEager() {
|
|
1605
1587
|
return isMode(Modes.EAGER);
|
|
@@ -1663,7 +1645,7 @@ function optional(optionals) {
|
|
|
1663
1645
|
}
|
|
1664
1646
|
}
|
|
1665
1647
|
|
|
1666
|
-
|
|
1648
|
+
/******************************************************************************
|
|
1667
1649
|
Copyright (c) Microsoft Corporation.
|
|
1668
1650
|
|
|
1669
1651
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -1806,30 +1788,23 @@ function useTestAtCursor(newTestObject) {
|
|
|
1806
1788
|
return nextTest;
|
|
1807
1789
|
}
|
|
1808
1790
|
function removeAllNextTestsInIsolate() {
|
|
1809
|
-
var
|
|
1810
|
-
var prevTests = testObjects.prev;
|
|
1811
|
-
var current = getCurrent(prevTests, usePath());
|
|
1812
|
-
var cursorAt = useCursorAt();
|
|
1813
|
-
current.splice(cursorAt);
|
|
1791
|
+
var cursorAt = useCursor().current();
|
|
1814
1792
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
1815
1793
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
1816
1794
|
// to prevent future headaches if we ever do need to rely on prev-state immutability.
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
return
|
|
1820
|
-
prev: prevTests,
|
|
1821
|
-
current: current
|
|
1822
|
-
});
|
|
1795
|
+
useSetTests(function (current) {
|
|
1796
|
+
current.splice(cursorAt);
|
|
1797
|
+
return current;
|
|
1823
1798
|
});
|
|
1824
1799
|
}
|
|
1825
1800
|
function useSetTestAtCursor(testObject) {
|
|
1826
|
-
var cursorPath =
|
|
1801
|
+
var cursorPath = useCurrentPath();
|
|
1827
1802
|
useSetTests(function (tests) {
|
|
1828
1803
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
1829
1804
|
});
|
|
1830
1805
|
}
|
|
1831
1806
|
function useGetTestAtCursor(tests) {
|
|
1832
|
-
var cursorPath =
|
|
1807
|
+
var cursorPath = useCurrentPath();
|
|
1833
1808
|
return valueAtPath(tests, cursorPath);
|
|
1834
1809
|
}
|
|
1835
1810
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -1853,16 +1828,17 @@ function handleKeyTest(key, newTestObject) {
|
|
|
1853
1828
|
|
|
1854
1829
|
// eslint-disable-next-line max-statements
|
|
1855
1830
|
function registerPrevRunTest(testObject) {
|
|
1831
|
+
var cursor = useCursor();
|
|
1856
1832
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
1857
1833
|
testObject.skip();
|
|
1858
1834
|
useTestAtCursor(testObject);
|
|
1859
|
-
|
|
1835
|
+
cursor.next();
|
|
1860
1836
|
return testObject;
|
|
1861
1837
|
}
|
|
1862
1838
|
var prevRunTest = useTestAtCursor(testObject);
|
|
1863
1839
|
if (isOmitted()) {
|
|
1864
1840
|
prevRunTest.omit();
|
|
1865
|
-
|
|
1841
|
+
cursor.next();
|
|
1866
1842
|
return prevRunTest;
|
|
1867
1843
|
}
|
|
1868
1844
|
if (isExcluded(testObject)) {
|
|
@@ -1871,13 +1847,13 @@ function registerPrevRunTest(testObject) {
|
|
|
1871
1847
|
// This mostly means that we're probably giving
|
|
1872
1848
|
// up on this async test intentionally.
|
|
1873
1849
|
prevRunTest.skip(isExcludedIndividually());
|
|
1874
|
-
|
|
1850
|
+
cursor.next();
|
|
1875
1851
|
return prevRunTest;
|
|
1876
1852
|
}
|
|
1877
1853
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
1878
1854
|
useSetTestAtCursor(testObject);
|
|
1879
|
-
moveForward();
|
|
1880
1855
|
registerTestObjectByTier(testObject);
|
|
1856
|
+
cursor.next();
|
|
1881
1857
|
return testObject;
|
|
1882
1858
|
}
|
|
1883
1859
|
function registerTestObjectByTier(testObject) {
|
|
@@ -1900,7 +1876,7 @@ function bindTestMemo(test) {
|
|
|
1900
1876
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1901
1877
|
args[_i - 1] = arguments[_i];
|
|
1902
1878
|
}
|
|
1903
|
-
var cursorAt =
|
|
1879
|
+
var cursorAt = useCursor().current();
|
|
1904
1880
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
1905
1881
|
// Implicit dependency for more specificity
|
|
1906
1882
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -1962,7 +1938,7 @@ function warn() {
|
|
|
1962
1938
|
ctx.currentTest.warn();
|
|
1963
1939
|
}
|
|
1964
1940
|
|
|
1965
|
-
var VERSION = "4.4.
|
|
1941
|
+
var VERSION = "4.4.2";
|
|
1966
1942
|
|
|
1967
1943
|
Object.defineProperty(exports, 'enforce', {
|
|
1968
1944
|
enumerable: true,
|