vest 4.4.0-dev-08ec91 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vest.development.js +141 -149
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +141 -149
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +1 -1
- package/dist/umd/enforce/compounds.development.js +1 -1
- package/dist/umd/enforce/schema.development.js +1 -1
- package/dist/umd/vest.development.js +123 -131
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/vest.d.ts +11 -13
|
@@ -438,7 +438,7 @@
|
|
|
438
438
|
return null;
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
|
|
441
|
+
/******************************************************************************
|
|
442
442
|
Copyright (c) Microsoft Corporation.
|
|
443
443
|
|
|
444
444
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -775,40 +775,6 @@
|
|
|
775
775
|
return current;
|
|
776
776
|
}
|
|
777
777
|
|
|
778
|
-
function createCursor() {
|
|
779
|
-
var storage = {
|
|
780
|
-
cursor: []
|
|
781
|
-
};
|
|
782
|
-
function addLevel() {
|
|
783
|
-
storage.cursor.push(0);
|
|
784
|
-
}
|
|
785
|
-
function removeLevel() {
|
|
786
|
-
storage.cursor.pop();
|
|
787
|
-
}
|
|
788
|
-
function cursorAt() {
|
|
789
|
-
return last(storage.cursor);
|
|
790
|
-
}
|
|
791
|
-
function getCursor() {
|
|
792
|
-
return asArray(storage.cursor);
|
|
793
|
-
}
|
|
794
|
-
function next() {
|
|
795
|
-
storage.cursor[storage.cursor.length - 1]++;
|
|
796
|
-
return last(storage.cursor);
|
|
797
|
-
}
|
|
798
|
-
function reset() {
|
|
799
|
-
storage.cursor = [0];
|
|
800
|
-
}
|
|
801
|
-
reset();
|
|
802
|
-
return {
|
|
803
|
-
addLevel: addLevel,
|
|
804
|
-
cursorAt: cursorAt,
|
|
805
|
-
getCursor: getCursor,
|
|
806
|
-
next: next,
|
|
807
|
-
removeLevel: removeLevel,
|
|
808
|
-
reset: reset
|
|
809
|
-
};
|
|
810
|
-
}
|
|
811
|
-
|
|
812
778
|
var IsolateTypes;
|
|
813
779
|
(function (IsolateTypes) {
|
|
814
780
|
IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -825,6 +791,115 @@
|
|
|
825
791
|
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
826
792
|
})(Modes || (Modes = {}));
|
|
827
793
|
|
|
794
|
+
function createIsolateCursor() {
|
|
795
|
+
var cursor = {
|
|
796
|
+
value: 0
|
|
797
|
+
};
|
|
798
|
+
return {
|
|
799
|
+
current: current,
|
|
800
|
+
next: next
|
|
801
|
+
};
|
|
802
|
+
/**
|
|
803
|
+
* @returns {number} The current value of the cursor
|
|
804
|
+
*/
|
|
805
|
+
function current() {
|
|
806
|
+
return cursor.value;
|
|
807
|
+
}
|
|
808
|
+
/**
|
|
809
|
+
* Moves the isolate cursor forward by 1
|
|
810
|
+
*/
|
|
811
|
+
function next() {
|
|
812
|
+
cursor.value++;
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
function deferThrow(message) {
|
|
817
|
+
setTimeout(function () {
|
|
818
|
+
throw new Error(message);
|
|
819
|
+
}, 0);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
function usePrevKeys() {
|
|
823
|
+
var prev = useTestObjects()[0].prev;
|
|
824
|
+
return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
825
|
+
if (!(testObject instanceof VestTest)) {
|
|
826
|
+
return prevKeys;
|
|
827
|
+
}
|
|
828
|
+
if (isNullish(testObject.key)) {
|
|
829
|
+
return prevKeys;
|
|
830
|
+
}
|
|
831
|
+
prevKeys[testObject.key] = testObject;
|
|
832
|
+
return prevKeys;
|
|
833
|
+
}, {});
|
|
834
|
+
}
|
|
835
|
+
function usePrevTestByKey(key) {
|
|
836
|
+
var prev = context.useX().isolate.keys.prev;
|
|
837
|
+
return prev[key];
|
|
838
|
+
}
|
|
839
|
+
function useRetainTestKey(key, testObject) {
|
|
840
|
+
var context$1 = context.useX();
|
|
841
|
+
var current = context$1.isolate.keys.current;
|
|
842
|
+
if (isNullish(current[key])) {
|
|
843
|
+
current[key] = testObject;
|
|
844
|
+
}
|
|
845
|
+
else {
|
|
846
|
+
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
function isolate(_a, callback) {
|
|
851
|
+
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
852
|
+
invariant(isFunction(callback));
|
|
853
|
+
// Generate a new Isolate layer, with its own cursor
|
|
854
|
+
var isolate = generateIsolate(type, useCurrentPath());
|
|
855
|
+
var output = context.run({ isolate: isolate }, function () {
|
|
856
|
+
isolate.keys.prev = usePrevKeys();
|
|
857
|
+
useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
|
|
858
|
+
var res = callback();
|
|
859
|
+
return res;
|
|
860
|
+
});
|
|
861
|
+
// Move the parent cursor forward once we're done
|
|
862
|
+
useCursor().next();
|
|
863
|
+
return output;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* @returns {Isolate} The current isolate layer
|
|
867
|
+
*/
|
|
868
|
+
function useIsolate() {
|
|
869
|
+
return context.useX().isolate;
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* @returns {boolean} Whether or not the current isolate allows tests to be reordered
|
|
873
|
+
*/
|
|
874
|
+
function shouldAllowReorder() {
|
|
875
|
+
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
879
|
+
*/
|
|
880
|
+
function useCurrentPath() {
|
|
881
|
+
var isolate = useIsolate();
|
|
882
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
886
|
+
*/
|
|
887
|
+
function useCursor() {
|
|
888
|
+
return useIsolate().cursor;
|
|
889
|
+
}
|
|
890
|
+
function generateIsolate(type, path) {
|
|
891
|
+
if (path === void 0) { path = []; }
|
|
892
|
+
return {
|
|
893
|
+
cursor: createIsolateCursor(),
|
|
894
|
+
keys: {
|
|
895
|
+
current: {},
|
|
896
|
+
prev: {}
|
|
897
|
+
},
|
|
898
|
+
path: path,
|
|
899
|
+
type: type
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
|
|
828
903
|
var context = createContext(function (ctxRef, parentContext) {
|
|
829
904
|
return parentContext
|
|
830
905
|
? null
|
|
@@ -834,15 +909,8 @@
|
|
|
834
909
|
groups: {}
|
|
835
910
|
},
|
|
836
911
|
inclusion: {},
|
|
837
|
-
isolate:
|
|
838
|
-
|
|
839
|
-
keys: {
|
|
840
|
-
current: {},
|
|
841
|
-
prev: {}
|
|
842
|
-
}
|
|
843
|
-
},
|
|
844
|
-
mode: [Modes.ALL],
|
|
845
|
-
testCursor: createCursor()
|
|
912
|
+
isolate: generateIsolate(IsolateTypes.DEFAULT),
|
|
913
|
+
mode: [Modes.ALL]
|
|
846
914
|
}, ctxRef);
|
|
847
915
|
});
|
|
848
916
|
|
|
@@ -1144,83 +1212,6 @@
|
|
|
1144
1212
|
};
|
|
1145
1213
|
}
|
|
1146
1214
|
|
|
1147
|
-
function deferThrow(message) {
|
|
1148
|
-
setTimeout(function () {
|
|
1149
|
-
throw new Error(message);
|
|
1150
|
-
}, 0);
|
|
1151
|
-
}
|
|
1152
|
-
|
|
1153
|
-
function usePath() {
|
|
1154
|
-
var context$1 = context.useX();
|
|
1155
|
-
return context$1.testCursor.getCursor();
|
|
1156
|
-
}
|
|
1157
|
-
function useCursorAt() {
|
|
1158
|
-
var context$1 = context.useX();
|
|
1159
|
-
return context$1.testCursor.cursorAt();
|
|
1160
|
-
}
|
|
1161
|
-
function moveForward() {
|
|
1162
|
-
var context$1 = context.useX();
|
|
1163
|
-
return context$1.testCursor.next();
|
|
1164
|
-
}
|
|
1165
|
-
function addLevel() {
|
|
1166
|
-
var context$1 = context.useX();
|
|
1167
|
-
context$1.testCursor.addLevel();
|
|
1168
|
-
}
|
|
1169
|
-
function removeLevel() {
|
|
1170
|
-
var context$1 = context.useX();
|
|
1171
|
-
context$1.testCursor.removeLevel();
|
|
1172
|
-
}
|
|
1173
|
-
|
|
1174
|
-
function usePrevKeys() {
|
|
1175
|
-
var prev = useTestObjects()[0].prev;
|
|
1176
|
-
return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
|
|
1177
|
-
if (!(testObject instanceof VestTest)) {
|
|
1178
|
-
return prevKeys;
|
|
1179
|
-
}
|
|
1180
|
-
if (isNullish(testObject.key)) {
|
|
1181
|
-
return prevKeys;
|
|
1182
|
-
}
|
|
1183
|
-
prevKeys[testObject.key] = testObject;
|
|
1184
|
-
return prevKeys;
|
|
1185
|
-
}, {});
|
|
1186
|
-
}
|
|
1187
|
-
function usePrevTestByKey(key) {
|
|
1188
|
-
var prev = context.useX().isolate.keys.prev;
|
|
1189
|
-
return prev[key];
|
|
1190
|
-
}
|
|
1191
|
-
function useRetainTestKey(key, testObject) {
|
|
1192
|
-
var context$1 = context.useX();
|
|
1193
|
-
var current = context$1.isolate.keys.current;
|
|
1194
|
-
if (isNullish(current[key])) {
|
|
1195
|
-
current[key] = testObject;
|
|
1196
|
-
}
|
|
1197
|
-
else {
|
|
1198
|
-
deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
1199
|
-
}
|
|
1200
|
-
}
|
|
1201
|
-
|
|
1202
|
-
function isolate(_a, callback) {
|
|
1203
|
-
var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
|
|
1204
|
-
invariant(isFunction(callback));
|
|
1205
|
-
var keys = {
|
|
1206
|
-
current: {},
|
|
1207
|
-
prev: {}
|
|
1208
|
-
};
|
|
1209
|
-
var path = usePath();
|
|
1210
|
-
return context.run({ isolate: { type: type, keys: keys } }, function () {
|
|
1211
|
-
addLevel();
|
|
1212
|
-
keys.prev = usePrevKeys();
|
|
1213
|
-
useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
|
|
1214
|
-
var res = callback();
|
|
1215
|
-
removeLevel();
|
|
1216
|
-
moveForward();
|
|
1217
|
-
return res;
|
|
1218
|
-
});
|
|
1219
|
-
}
|
|
1220
|
-
function shouldAllowReorder() {
|
|
1221
|
-
return context.useX().isolate.type === IsolateTypes.EACH;
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
1215
|
var Severity;
|
|
1225
1216
|
(function (Severity) {
|
|
1226
1217
|
Severity["WARNINGS"] = "warnings";
|
|
@@ -2328,8 +2319,8 @@
|
|
|
2328
2319
|
function removeAllNextTestsInIsolate() {
|
|
2329
2320
|
var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
|
|
2330
2321
|
var prevTests = testObjects.prev;
|
|
2331
|
-
var current = getCurrent(prevTests,
|
|
2332
|
-
var cursorAt =
|
|
2322
|
+
var current = getCurrent(prevTests, useCurrentPath());
|
|
2323
|
+
var cursorAt = useCursor().current();
|
|
2333
2324
|
current.splice(cursorAt);
|
|
2334
2325
|
// We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
|
|
2335
2326
|
// since we're only touching the "prev" state. The reason we still use the setter function is
|
|
@@ -2343,13 +2334,13 @@
|
|
|
2343
2334
|
});
|
|
2344
2335
|
}
|
|
2345
2336
|
function useSetTestAtCursor(testObject) {
|
|
2346
|
-
var cursorPath =
|
|
2337
|
+
var cursorPath = useCurrentPath();
|
|
2347
2338
|
useSetTests(function (tests) {
|
|
2348
2339
|
return setValueAtPath(tests, cursorPath, testObject);
|
|
2349
2340
|
});
|
|
2350
2341
|
}
|
|
2351
2342
|
function useGetTestAtCursor(tests) {
|
|
2352
|
-
var cursorPath =
|
|
2343
|
+
var cursorPath = useCurrentPath();
|
|
2353
2344
|
return valueAtPath(tests, cursorPath);
|
|
2354
2345
|
}
|
|
2355
2346
|
function testReorderDetected(prevTest, newTest) {
|
|
@@ -2373,16 +2364,17 @@
|
|
|
2373
2364
|
|
|
2374
2365
|
// eslint-disable-next-line max-statements
|
|
2375
2366
|
function registerPrevRunTest(testObject) {
|
|
2367
|
+
var cursor = useCursor();
|
|
2376
2368
|
if (shouldSkipBasedOnMode(testObject)) {
|
|
2377
2369
|
testObject.skip();
|
|
2378
2370
|
useTestAtCursor(testObject);
|
|
2379
|
-
|
|
2371
|
+
cursor.next();
|
|
2380
2372
|
return testObject;
|
|
2381
2373
|
}
|
|
2382
2374
|
var prevRunTest = useTestAtCursor(testObject);
|
|
2383
2375
|
if (isOmitted()) {
|
|
2384
2376
|
prevRunTest.omit();
|
|
2385
|
-
|
|
2377
|
+
cursor.next();
|
|
2386
2378
|
return prevRunTest;
|
|
2387
2379
|
}
|
|
2388
2380
|
if (isExcluded(testObject)) {
|
|
@@ -2391,13 +2383,13 @@
|
|
|
2391
2383
|
// This mostly means that we're probably giving
|
|
2392
2384
|
// up on this async test intentionally.
|
|
2393
2385
|
prevRunTest.skip(isExcludedIndividually());
|
|
2394
|
-
|
|
2386
|
+
cursor.next();
|
|
2395
2387
|
return prevRunTest;
|
|
2396
2388
|
}
|
|
2397
2389
|
cancelOverriddenPendingTest(prevRunTest, testObject);
|
|
2398
2390
|
useSetTestAtCursor(testObject);
|
|
2399
|
-
moveForward();
|
|
2400
2391
|
registerTestObjectByTier(testObject);
|
|
2392
|
+
cursor.next();
|
|
2401
2393
|
return testObject;
|
|
2402
2394
|
}
|
|
2403
2395
|
function registerTestObjectByTier(testObject) {
|
|
@@ -2420,7 +2412,7 @@
|
|
|
2420
2412
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
2421
2413
|
args[_i - 1] = arguments[_i];
|
|
2422
2414
|
}
|
|
2423
|
-
var cursorAt =
|
|
2415
|
+
var cursorAt = useCursor().current();
|
|
2424
2416
|
var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
|
|
2425
2417
|
// Implicit dependency for more specificity
|
|
2426
2418
|
var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
|
|
@@ -2482,7 +2474,7 @@
|
|
|
2482
2474
|
ctx.currentTest.warn();
|
|
2483
2475
|
}
|
|
2484
2476
|
|
|
2485
|
-
var VERSION = "4.4.0
|
|
2477
|
+
var VERSION = "4.4.0";
|
|
2486
2478
|
|
|
2487
2479
|
exports.VERSION = VERSION;
|
|
2488
2480
|
exports.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function c(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return d(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function E(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Lt){var r=Lt[e];t(r)&&n(e,r)}}function w(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=at({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function U(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 X(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(E(n)||n&&E(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),E(n)?G(n):G(n.pass,w.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([wt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Lt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Lt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=wt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Lt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(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]),_(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 H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return xt.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return at(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function on(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 sn(n){setTimeout((function(){throw Error(n)}),0)}function cn(){return xt.useX().testCursor.getCursor()}function an(){return xt.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=cn();return xt.run({isolate:{type:n,keys:r}},(function(){xt.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,cn())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return xt.useX().testCursor.removeLevel(),an(),n}))}function ln(n){return n===Xt.ERRORS?Gt.ERROR_COUNT:Gt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return rn().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Xt.WARNINGS!=!!n),!e}function hn(n){return!!gn(n)||!pn(Xt.ERRORS,n)&&(!R(rn())&&!function(n){return St(en().filter((function(t){return Nn(t,n)})))}(n)&&function(n){return rn().every((function(t){return!(!n||dn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);var t}function Nn(n,t){return!(t&&!dn(n,t))&&!0!==$(n.fieldName)}function mn(n,t){return!(!t||dn(n,t))||(!0===$(n.fieldName)||n.isTested()||n.isOmitted())}function En(){var n=xt.useX().summary;return F(n),n}function yn(){var n=rn(),t=at({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!gn(t=t.fieldName)||!function(n,t,e){return rn().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Xt.ERRORS,u,t)&&!function(n,t){return St(en().filter((function(e){return!zt(e,n)&&Nn(e,t)})))}(u,t)&&function(n,t){return rn().every((function(e){return!!zt(e,n)||mn(e,t)}))}(u,t),e.valid=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 bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||at({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Xt.ERRORS):t.isWarning()&&e(Xt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Xt.ERRORS,n)}function Tn(n){return Cn(Xt.WARNINGS,n)}function Cn(n,t){var e=En().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return An(n,Xt.ERRORS,t)}function _n(n,t){return An(n,Xt.WARNINGS,t)}function An(n,t,e){return n=En().groups[n],e?Rn(n,t,e):On(n,t)}function kn(n){return wn(Gt.ERROR_COUNT,n)}function Ln(n){return wn(Gt.WARN_COUNT,n)}function wn(n,t){var e,r=En();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Pn(Xt.ERRORS,n,t)}function Fn(n,t){return Pn(Xt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=En();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t=En();return n?!!Xn(t.tests,n):t.valid}function Un(n,t){if(!(n=En().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Gn(){var n=rn(),t={stateRef:z()};return Qt([n],xt.bind(t,(function(){var n=yn(),t=z().suiteName()[0],e={summary:n};return at(n,{getErrors:xt.bind(e,Sn),getErrorsByGroup:xt.bind(e,In),getWarnings:xt.bind(e,Tn),getWarningsByGroup:xt.bind(e,_n),hasErrors:xt.bind(e,kn),hasErrorsByGroup:xt.bind(e,Wn),hasWarnings:xt.bind(e,Ln),hasWarningsByGroup:xt.bind(e,Fn),isValid:xt.bind(e,xn),isValidByGroup:xt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=en();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=rn(),t={stateRef:z()};return Zt([n],xt.bind(t,(function(){return at({},Gn(),{done:xt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,z().testCallbacks()[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 Mn(){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(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(z().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=xt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=xt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=xt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=z(),s=xt.bind({stateRef:i},(function(){nn(),u(Yt.TEST_COMPLETED,n)}));i=xt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function tt(n){var t=z().testObjects()[0].prev;if(R(t))return et(n),n;var e=cn();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=xt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=xt.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(xt.useX().isolate.type===ot.EACH||sn("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=z().testObjects(),t=n[1],e=n[0].prev;n=J(e,cn());var r=xt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=cn();tn((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=ct.EAGER;if(e=!(xt.useX().mode[0]!==e||!pn(Xt.ERRORS,n.fieldName)))return n.skip(),tt(n),an(),n;if(e=tt(n),xt.useX().omitted)return e.omit(),an(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,xt.useX().skipped)return!0;var e=xt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=xt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!w(e[t])}(n))return e.skip(!!xt.useX().skipped),an(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),et(n),an(),n.isUntested()){e=Vn();var r=function(n){return xt.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),nt(n)):e.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),nt(n));return n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=xt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,ct,at=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(c),ht=e(a),gt=e(l),Nt=e(p),mt=e(v),Et=e(N),yt=e(m),bt=e(E),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),At=e(I),kt=e(A),Lt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(k),endsWith:s,equals:c,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:N,isBlank:m,isBoolean:E,isEmpty:R,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:Nt,isNotBetween:Et,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:g,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:g,matches:A,notEquals:vt,notInside:mt,notMatches:kt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:k},wt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?at(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:at(e,{parent:x})})),Wt=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),at(q,t)}var t={context:function(){return wt.useX()},extend:function(t){at(Lt,t),n()}};return n(),new Proxy(at(q,t),{get:function(n,t){return t in n?n[t]:Lt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!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"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,xt=P((function(n,t){return t?null:at({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:ot.DEFAULT,keys:{current:{},prev:{}}},mode:[ct.ALL],testCursor:Y()},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Xt,Gt,Dt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Ft(),this.severity=Pt.Error,this.status=qt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),nn()},n.prototype.reset=function(){this.status=qt,nn()},n.prototype.omit=function(){this.setStatus(Jt)},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(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Xt||(Xt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Gt||(Gt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=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=qn(),jn(e,n,t))return t;var r=function(){return e(Gn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!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"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=at(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=xt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[z().suiteId()[0],e,u].concat(i),null===(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)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0-dev-08ec91",n.context=xt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=un();return n={stateRef:on(i,{suiteId:Ft(),suiteName:n}),bus:u},at(xt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:xt.bind(n,Gn),remove:xt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:xt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=ct.EAGER;xt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),fn({type:ot.GROUP},(function(){xt.run({groupName:n},e)}))},n.include=function(n){var t=xt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=xt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(Gn))}}}},n.omitWhen=function(n,t){fn({type:ot.OMIT_WHEN},(function(){xt.run({omitted:!!xt.useX().omitted||w(n,w(Gn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){fn({type:ot.SKIP_WHEN},(function(){xt.run({skipped:!!xt.useX().skipped||w(n,w(Gn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=xt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function N(n,t){return l(n,t)||h(n,t)}function g(n,t,e){return d(n,t)&&N(n,e)}function E(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function k(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function A(n,t){return o(n)&&o(t)&&n.startsWith(t)}function w(n){for(var e in wt){var r=wt[e];t(r)&&n(e,r)}}function x(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=x(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?x(t):t)}function L(n){function t(t,u){var i,o,s=e();return t=ct({},s||{},null!==(i=x(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function P(){return null}function U(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 G(){try{return t(Proxy)}catch(n){return!1}}function X(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?X(n):X(n.pass,x.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([xt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!G())return w((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=wt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=wt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=xt.run({value:n},(function(){return e(n)}));i.pass||r(X(!!i.pass,null!==(u=x(t,n,i.message))&&void 0!==u?u:i.message))})),X(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return G()?s=new Proxy(s,{get:function(t,e){return wt[e]?n(e):t[e]}}):(w((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(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]),_(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 H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){var n=0;return{current:function(){return n},next:function(){n++}}}function z(n){setTimeout((function(){throw Error(n)}),0)}function Q(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r=$(n,Z());return n=Pt.run({isolate:r},(function(){return r.keys.prev=function(){var n=nn().testObjects()[0].prev;return[].concat(J(n,Z())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),on((function(n){var t=r.path;return J(n,t)[H(t)]=[],n})),e()})),Pt.useX().isolate.cursor.next(),n}function Z(){var n=Pt.useX().isolate;return n.path.concat(n.cursor.current())}function $(n,t){return void 0===t&&(t=[]),{cursor:Y(),keys:{current:{},prev:{}},path:t,type:n}}function nn(){return Pt.useX().stateRef}function tn(n){return nn().optionalFields()[0][n]}function en(n,t){(0,nn().optionalFields()[1])((function(e){var r;return ct(e,((r={})[n]=x(t,e[n]),r))}))}function rn(n){var t;return null===(t=tn(n))||void 0===t?void 0:t[0]}function un(){on((function(n){return n}))}function on(n){(0,nn().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function sn(){return an().filter((function(n){return n.isPending()}))}function an(){var n=nn().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function cn(n){function e(n,t,e){return u.references.push(),r(n,x(t,e)),function(){return[u.references[n],function(t){return r(n,x(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function fn(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 ln(n){return n===Gt.ERRORS?Xt.ERROR_COUNT:Xt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return an().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Gt.WARNINGS!=!!n),!e}function hn(n){return!!Nn(n)||!pn(Gt.ERRORS,n)&&(!R(an())&&!function(n){return St(sn().filter((function(t){return gn(t,n)})))}(n)&&function(n){return an().every((function(t){return!(!n||dn(t,n))||En(t,n)}))}(n))}function Nn(n){return!!n&&!0===(null===(t=tn(n))||void 0===t?void 0:t[1]);var t}function gn(n,t){return!(t&&!dn(n,t))&&!0!==rn(n.fieldName)}function En(n,t){return!(!t||dn(n,t))||(!0===rn(n.fieldName)||n.isTested()||n.isOmitted())}function mn(){var n=Pt.useX().summary;return F(n),n}function yn(){var n=an(),t=ct({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!Nn(t=t.fieldName)||!function(n,t,e){return an().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Gt.ERRORS,u,t)&&!function(n,t){return St(sn().filter((function(e){return!zt(e,n)&&gn(e,t)})))}(u,t)&&function(n,t){return an().every((function(e){return!!zt(e,n)||En(e,t)}))}(u,t),e.valid=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 bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||ct({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Gt.ERRORS):t.isWarning()&&e(Gt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Gt.ERRORS,n)}function Tn(n){return Cn(Gt.WARNINGS,n)}function Cn(n,t){var e=mn().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return kn(n,Gt.ERRORS,t)}function _n(n,t){return kn(n,Gt.WARNINGS,t)}function kn(n,t,e){return n=mn().groups[n],e?Rn(n,t,e):On(n,t)}function An(n){return xn(Xt.ERROR_COUNT,n)}function wn(n){return xn(Xt.WARN_COUNT,n)}function xn(n,t){var e,r=mn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Ln(Gt.ERRORS,n,t)}function Fn(n,t){return Ln(Gt.WARNINGS,n,t)}function Ln(n,t,e){var r,u,i=mn();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Pn(n){var t=mn();return n?!!Gn(t.tests,n):t.valid}function Un(n,t){if(!(n=mn().groups[n]))return!1;if(t)return Gn(n,t);for(var e in n)if(!Gn(n,e))return!1;return!0}function Gn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Xn(){var n=an(),t={stateRef:nn()};return Qt([n],Pt.bind(t,(function(){var n=yn(),t=nn().suiteName()[0],e={summary:n};return ct(n,{getErrors:Pt.bind(e,Sn),getErrorsByGroup:Pt.bind(e,In),getWarnings:Pt.bind(e,Tn),getWarningsByGroup:Pt.bind(e,_n),hasErrors:Pt.bind(e,An),hasErrorsByGroup:Pt.bind(e,Wn),hasWarnings:Pt.bind(e,wn),hasWarningsByGroup:Pt.bind(e,Fn),isValid:Pt.bind(e,Pn),isValidByGroup:Pt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=sn();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=an(),t={stateRef:nn()};return Zt([n],Pt.bind(t,(function(){return ct({},Xn(),{done:Pt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,nn().testCallbacks()[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 Mn(){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(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=nn().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),en(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(nn().optionalFields()[0])){var e={};on((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=rn(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(nn().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){an().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){on((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){an().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=Pt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=Pt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=Pt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=nn(),s=Pt.bind({stateRef:i},(function(){un(),u(Yt.TEST_COMPLETED,n)}));i=Pt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function tt(n){var t=nn().testObjects()[0].prev;if(R(t))return et(n),n;var e=Z();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=Pt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=Pt.useX().isolate.keys.current;return i(r[t])?r[t]=e:z('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(Pt.useX().isolate.type===ot.EACH||z("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var n=nn().testObjects(),t=n[1],e=n[0].prev;n=J(e,Z());var r=Pt.useX().isolate.cursor.current();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=Z();on((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=Pt.useX().isolate.cursor,r=at.EAGER;if(r=!(Pt.useX().mode[0]!==r||!pn(Gt.ERRORS,n.fieldName)))return n.skip(),tt(n),e.next(),n;if(r=tt(n),Pt.useX().omitted)return r.omit(),e.next(),r;if(function(n){var t=n.fieldName;if(n=n.groupName,Pt.useX().skipped)return!0;var e=Pt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=Pt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!x(e[t])}(n))return r.skip(!!Pt.useX().skipped),e.next(),r;if(n!==r&&r.fieldName===n.fieldName&&r.groupName===n.groupName&&r.isPending()&&r.cancel(),et(n),n.isUntested()){r=Vn();var u=function(n){return Pt.run({currentTest:n},(function(){return n.run()}))}(n);try{u&&t(u.then)?(n.asyncTest=u,n.setPending(),nt(n)):r.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(r=n.asyncTest)&&t(r.then)&&(n.setPending(),nt(n));return e.next(),n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=Pt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,at,ct=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(a),ht=e(c),Nt=e(l),gt=e(p),Et=e(v),mt=e(g),yt=e(E),bt=e(m),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),kt=e(I),At=e(k),wt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(A),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:g,isBlank:E,isBoolean:m,isEmpty:R,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:gt,isNotBetween:mt,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:kt,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:N,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:N,matches:k,notEquals:vt,notInside:Et,notMatches:At,numberEquals:l,numberNotEquals:Nt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return N(n.length,t)},startsWith:A},xt=L((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?ct(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:ct(e,{parent:P})})),Wt=function(){function n(){if(!G())return w((function(n){t[n]=K(n)})),ct(q,t)}var t={context:function(){return xt.useX()},extend:function(t){ct(wt,t),n()}};return n(),new Proxy(ct(q,t),{get:function(n,t){return t in n?n[t]:wt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!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"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(at||(at={}));var Lt,Pt=L((function(n,t){return t?null:ct({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:$(ot.DEFAULT),mode:[at.ALL]},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Lt||(Lt={}));var Gt,Xt,Dt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Ft(),this.severity=Lt.Error,this.status=qt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Lt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Lt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),un()},n.prototype.reset=function(){this.status=qt,un()},n.prototype.omit=function(){this.setStatus(Jt)},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(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Gt||(Gt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Xt||(Xt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=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=qn(),jn(e,n,t))return t;var r=function(){return e(Xn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!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"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=ct(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=Pt.useX().isolate.cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[nn().suiteId()[0],e,u].concat(i),null===(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)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0",n.context=Pt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=cn();return n={stateRef:fn(i,{suiteId:Ft(),suiteName:n}),bus:u},ct(Pt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),Q({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:Pt.bind(n,Xn),remove:Pt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:Pt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),Q({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=at.EAGER;Pt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),Q({type:ot.GROUP},(function(){Pt.run({groupName:n},e)}))},n.include=function(n){var t=Pt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=Pt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:x(t,x(Xn))}}}},n.omitWhen=function(n,t){Q({type:ot.OMIT_WHEN},(function(){Pt.run({omitted:!!Pt.useX().omitted||x(n,x(Xn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){en(n,[!0,!1])}));else for(var t in n)en(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){Q({type:ot.SKIP_WHEN},(function(){Pt.run({skipped:!!Pt.useX().skipped||x(n,x(Xn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=Pt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.4.0
|
|
2
|
+
"version": "4.4.0",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "
|
|
24
|
-
"n4s": "
|
|
23
|
+
"context": "^2.0.6",
|
|
24
|
+
"n4s": "^4.1.7"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
package/types/vest.d.ts
CHANGED
|
@@ -138,13 +138,9 @@ type Suite<T extends CB> = {
|
|
|
138
138
|
*/
|
|
139
139
|
declare function create<T extends CB>(suiteName: string, suiteCallback: T): Suite<T>;
|
|
140
140
|
declare function create<T extends CB>(suiteCallback: T): Suite<T>;
|
|
141
|
-
type
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
getCursor: () => number[];
|
|
145
|
-
next: () => number;
|
|
146
|
-
removeLevel: () => void;
|
|
147
|
-
reset: () => void;
|
|
141
|
+
type IsolateCursor = {
|
|
142
|
+
current: () => number;
|
|
143
|
+
next: () => void;
|
|
148
144
|
};
|
|
149
145
|
declare enum IsolateTypes {
|
|
150
146
|
DEFAULT = 0,
|
|
@@ -158,6 +154,12 @@ type IsolateKeys = {
|
|
|
158
154
|
current: Record<string, VestTest>;
|
|
159
155
|
prev: Record<string, VestTest>;
|
|
160
156
|
};
|
|
157
|
+
type Isolate = {
|
|
158
|
+
type: IsolateTypes;
|
|
159
|
+
keys: IsolateKeys;
|
|
160
|
+
path: number[];
|
|
161
|
+
cursor: IsolateCursor;
|
|
162
|
+
};
|
|
161
163
|
declare enum Modes {
|
|
162
164
|
ALL = 0,
|
|
163
165
|
EAGER = 1
|
|
@@ -196,11 +198,7 @@ declare const _default: {
|
|
|
196
198
|
useX: (errorMessage?: string | undefined) => CTXType;
|
|
197
199
|
};
|
|
198
200
|
type CTXType = {
|
|
199
|
-
isolate:
|
|
200
|
-
type: IsolateTypes;
|
|
201
|
-
keys: IsolateKeys;
|
|
202
|
-
};
|
|
203
|
-
testCursor: Cursor;
|
|
201
|
+
isolate: Isolate;
|
|
204
202
|
stateRef?: StateRef;
|
|
205
203
|
exclusion: {
|
|
206
204
|
tests: Record<string, boolean>;
|
|
@@ -350,6 +348,6 @@ declare const test: typeof testBase & {
|
|
|
350
348
|
* Sets a running test to warn only mode.
|
|
351
349
|
*/
|
|
352
350
|
declare function warn(): void;
|
|
353
|
-
declare const VERSION = "4.4.0
|
|
351
|
+
declare const VERSION = "4.4.0";
|
|
354
352
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
355
353
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|