vest 4.1.0 → 4.2.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/classnames/package.json +2 -0
- package/dist/cjs/vest.development.js +158 -91
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +158 -92
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +5 -5
- package/dist/umd/enforce/compose.production.js +1 -1
- package/dist/umd/enforce/compounds.development.js +5 -5
- package/dist/umd/enforce/compounds.production.js +1 -1
- package/dist/umd/enforce/schema.development.js +5 -5
- package/dist/umd/enforce/schema.production.js +1 -1
- package/dist/umd/vest.development.js +163 -96
- package/dist/umd/vest.production.js +1 -1
- package/enforce/compose/package.json +2 -0
- package/enforce/compounds/package.json +2 -0
- package/enforce/schema/package.json +2 -0
- package/package.json +5 -3
- package/parser/package.json +2 -0
- package/promisify/package.json +2 -0
- package/types/vest.d.ts +30 -2
package/classnames/package.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"main": "../dist/cjs/classnames.js",
|
|
3
3
|
"module": "../dist/es/classnames.production.js",
|
|
4
|
+
"unpkg": "../dist/umd/classnames.production.js",
|
|
5
|
+
"jsdelivr": "../dist/umd/classnames.production.js",
|
|
4
6
|
"name": "classnames",
|
|
5
7
|
"types": "../types/classnames.d.ts",
|
|
6
8
|
"private": true
|
|
@@ -11,7 +11,7 @@ var assign = Object.assign;
|
|
|
11
11
|
* @returns a unique numeric id.
|
|
12
12
|
*/
|
|
13
13
|
var genId = (function (n) { return function () {
|
|
14
|
-
return ""
|
|
14
|
+
return "".concat(n++);
|
|
15
15
|
}; })(0);
|
|
16
16
|
|
|
17
17
|
function isFunction(value) {
|
|
@@ -179,6 +179,12 @@ function createCursor() {
|
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
var Modes;
|
|
183
|
+
(function (Modes) {
|
|
184
|
+
Modes[Modes["ALL"] = 0] = "ALL";
|
|
185
|
+
Modes[Modes["EAGER"] = 1] = "EAGER";
|
|
186
|
+
})(Modes || (Modes = {}));
|
|
187
|
+
|
|
182
188
|
var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
183
189
|
return parentContext
|
|
184
190
|
? null
|
|
@@ -195,6 +201,7 @@ var context = context$1.createContext(function (ctxRef, parentContext) {
|
|
|
195
201
|
prev: {}
|
|
196
202
|
}
|
|
197
203
|
},
|
|
204
|
+
mode: [Modes.ALL],
|
|
198
205
|
testCursor: createCursor()
|
|
199
206
|
}, ctxRef);
|
|
200
207
|
});
|
|
@@ -221,9 +228,9 @@ function isNull(value) {
|
|
|
221
228
|
}
|
|
222
229
|
var isNotNull = bindNot(isNull);
|
|
223
230
|
|
|
224
|
-
// This is
|
|
225
|
-
// Normally, behaves like a nested-array map
|
|
226
|
-
//
|
|
231
|
+
// This is kind of a map/filter in one function.
|
|
232
|
+
// Normally, behaves like a nested-array map,
|
|
233
|
+
// but returning `null` will drop the element from the array
|
|
227
234
|
function transform(array, cb) {
|
|
228
235
|
var res = [];
|
|
229
236
|
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
@@ -310,23 +317,22 @@ function createCache(maxSize) {
|
|
|
310
317
|
};
|
|
311
318
|
// invalidate an item in the cache by its dependencies
|
|
312
319
|
cache.invalidate = function (deps) {
|
|
313
|
-
var index =
|
|
314
|
-
var cachedDeps = _a[0];
|
|
315
|
-
return lengthEquals(deps, cachedDeps.length) &&
|
|
316
|
-
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
317
|
-
});
|
|
320
|
+
var index = findIndex(deps);
|
|
318
321
|
if (index > -1)
|
|
319
322
|
cacheStorage.splice(index, 1);
|
|
320
323
|
};
|
|
321
324
|
// Retrieves an item from the cache.
|
|
322
325
|
cache.get = function (deps) {
|
|
323
|
-
return cacheStorage[
|
|
326
|
+
return cacheStorage[findIndex(deps)] || null;
|
|
327
|
+
};
|
|
328
|
+
return cache;
|
|
329
|
+
function findIndex(deps) {
|
|
330
|
+
return cacheStorage.findIndex(function (_a) {
|
|
324
331
|
var cachedDeps = _a[0];
|
|
325
332
|
return lengthEquals(deps, cachedDeps.length) &&
|
|
326
333
|
deps.every(function (dep, i) { return dep === cachedDeps[i]; });
|
|
327
|
-
})
|
|
328
|
-
}
|
|
329
|
-
return cache;
|
|
334
|
+
});
|
|
335
|
+
}
|
|
330
336
|
}
|
|
331
337
|
|
|
332
338
|
// STATE REF
|
|
@@ -504,31 +510,34 @@ var VestTest = /** @class */ (function () {
|
|
|
504
510
|
return this.isSkipped() || this.isOmitted() || this.isCanceled();
|
|
505
511
|
};
|
|
506
512
|
VestTest.prototype.isPending = function () {
|
|
507
|
-
return this.
|
|
513
|
+
return this.statusEquals(STATUS_PENDING);
|
|
508
514
|
};
|
|
509
515
|
VestTest.prototype.isTested = function () {
|
|
510
516
|
return this.hasFailures() || this.isPassing();
|
|
511
517
|
};
|
|
512
518
|
VestTest.prototype.isOmitted = function () {
|
|
513
|
-
return this.
|
|
519
|
+
return this.statusEquals(STATUS_OMITTED);
|
|
514
520
|
};
|
|
515
521
|
VestTest.prototype.isUntested = function () {
|
|
516
|
-
return this.
|
|
522
|
+
return this.statusEquals(STATUS_UNTESTED);
|
|
517
523
|
};
|
|
518
524
|
VestTest.prototype.isFailing = function () {
|
|
519
|
-
return this.
|
|
525
|
+
return this.statusEquals(STATUS_FAILED);
|
|
520
526
|
};
|
|
521
527
|
VestTest.prototype.isCanceled = function () {
|
|
522
|
-
return this.
|
|
528
|
+
return this.statusEquals(STATUS_CANCELED);
|
|
523
529
|
};
|
|
524
530
|
VestTest.prototype.isSkipped = function () {
|
|
525
|
-
return this.
|
|
531
|
+
return this.statusEquals(STATUS_SKIPPED);
|
|
526
532
|
};
|
|
527
533
|
VestTest.prototype.isPassing = function () {
|
|
528
|
-
return this.
|
|
534
|
+
return this.statusEquals(STATUS_PASSING);
|
|
529
535
|
};
|
|
530
536
|
VestTest.prototype.isWarning = function () {
|
|
531
|
-
return this.
|
|
537
|
+
return this.statusEquals(STATUS_WARNING);
|
|
538
|
+
};
|
|
539
|
+
VestTest.prototype.statusEquals = function (status) {
|
|
540
|
+
return this.status === status;
|
|
532
541
|
};
|
|
533
542
|
return VestTest;
|
|
534
543
|
}());
|
|
@@ -586,7 +595,7 @@ function useRetainTestKey(key, testObject) {
|
|
|
586
595
|
current[key] = testObject;
|
|
587
596
|
}
|
|
588
597
|
else {
|
|
589
|
-
throwErrorDeferred("Encountered the same test key \""
|
|
598
|
+
throwErrorDeferred("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
|
|
590
599
|
}
|
|
591
600
|
}
|
|
592
601
|
|
|
@@ -665,18 +674,21 @@ function hasRemainingTests(fieldName) {
|
|
|
665
674
|
return isNotEmpty(allIncomplete);
|
|
666
675
|
}
|
|
667
676
|
|
|
677
|
+
var Severity;
|
|
678
|
+
(function (Severity) {
|
|
679
|
+
Severity["WARNINGS"] = "warnings";
|
|
680
|
+
Severity["ERRORS"] = "errors";
|
|
681
|
+
})(Severity || (Severity = {}));
|
|
682
|
+
|
|
668
683
|
/**
|
|
669
684
|
* Reads the testObjects list and gets full validation result from it.
|
|
670
685
|
*/
|
|
671
686
|
function genTestsSummary() {
|
|
672
687
|
var testObjects = useTestsFlat();
|
|
673
|
-
var summary = {
|
|
674
|
-
errorCount: 0,
|
|
688
|
+
var summary = assign(baseStats(), {
|
|
675
689
|
groups: {},
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
warnCount: 0
|
|
679
|
-
};
|
|
690
|
+
tests: {}
|
|
691
|
+
});
|
|
680
692
|
appendSummary(testObjects);
|
|
681
693
|
return countFailures(summary);
|
|
682
694
|
function appendSummary(testObjects) {
|
|
@@ -704,30 +716,34 @@ function countFailures(summary) {
|
|
|
704
716
|
// eslint-disable-next-line max-statements
|
|
705
717
|
function genTestObject(summaryKey, testObject) {
|
|
706
718
|
var fieldName = testObject.fieldName, message = testObject.message;
|
|
707
|
-
summaryKey[fieldName] = summaryKey[fieldName] ||
|
|
708
|
-
errorCount: 0,
|
|
709
|
-
warnCount: 0,
|
|
710
|
-
testCount: 0
|
|
711
|
-
};
|
|
719
|
+
summaryKey[fieldName] = summaryKey[fieldName] || baseStats();
|
|
712
720
|
var testKey = summaryKey[fieldName];
|
|
713
721
|
if (testObject.isNonActionable())
|
|
714
722
|
return testKey;
|
|
715
723
|
summaryKey[fieldName].testCount++;
|
|
716
724
|
// Adds to severity group
|
|
717
|
-
function addTo(
|
|
725
|
+
function addTo(severity) {
|
|
726
|
+
var countKey = severity === Severity.ERRORS ? 'errorCount' : 'warnCount';
|
|
718
727
|
testKey[countKey]++;
|
|
719
728
|
if (message) {
|
|
720
|
-
testKey[
|
|
729
|
+
testKey[severity] = (testKey[severity] || []).concat(message);
|
|
721
730
|
}
|
|
722
731
|
}
|
|
723
732
|
if (testObject.isFailing()) {
|
|
724
|
-
addTo(
|
|
733
|
+
addTo(Severity.ERRORS);
|
|
725
734
|
}
|
|
726
735
|
else if (testObject.isWarning()) {
|
|
727
|
-
addTo(
|
|
736
|
+
addTo(Severity.WARNINGS);
|
|
728
737
|
}
|
|
729
738
|
return testKey;
|
|
730
739
|
}
|
|
740
|
+
function baseStats() {
|
|
741
|
+
return {
|
|
742
|
+
errorCount: 0,
|
|
743
|
+
warnCount: 0,
|
|
744
|
+
testCount: 0
|
|
745
|
+
};
|
|
746
|
+
}
|
|
731
747
|
|
|
732
748
|
/*! *****************************************************************************
|
|
733
749
|
Copyright (c) Microsoft Corporation.
|
|
@@ -773,7 +789,7 @@ function either(a, b) {
|
|
|
773
789
|
* Checks that a given test object matches the currently specified severity level
|
|
774
790
|
*/
|
|
775
791
|
function nonMatchingSeverityProfile(severity, testObject) {
|
|
776
|
-
return either(severity ===
|
|
792
|
+
return either(severity === Severity.WARNINGS, testObject.warns());
|
|
777
793
|
}
|
|
778
794
|
|
|
779
795
|
function collectFailureMessages(severity, testObjects, options) {
|
|
@@ -815,10 +831,10 @@ function getFailuresArrayOrObject(group, fieldName) {
|
|
|
815
831
|
}
|
|
816
832
|
|
|
817
833
|
function getErrors(fieldName) {
|
|
818
|
-
return getFailures(
|
|
834
|
+
return getFailures(Severity.ERRORS, fieldName);
|
|
819
835
|
}
|
|
820
836
|
function getWarnings(fieldName) {
|
|
821
|
-
return getFailures(
|
|
837
|
+
return getFailures(Severity.WARNINGS, fieldName);
|
|
822
838
|
}
|
|
823
839
|
/**
|
|
824
840
|
* @returns suite or field's errors or warnings.
|
|
@@ -832,11 +848,11 @@ function getFailures(severityKey, fieldName) {
|
|
|
832
848
|
}
|
|
833
849
|
|
|
834
850
|
function getErrorsByGroup(groupName, fieldName) {
|
|
835
|
-
var errors = getByGroup(
|
|
851
|
+
var errors = getByGroup(Severity.ERRORS, groupName, fieldName);
|
|
836
852
|
return getFailuresArrayOrObject(errors, fieldName);
|
|
837
853
|
}
|
|
838
854
|
function getWarningsByGroup(groupName, fieldName) {
|
|
839
|
-
var warnings = getByGroup(
|
|
855
|
+
var warnings = getByGroup(Severity.WARNINGS, groupName, fieldName);
|
|
840
856
|
return getFailuresArrayOrObject(warnings, fieldName);
|
|
841
857
|
}
|
|
842
858
|
/**
|
|
@@ -844,7 +860,7 @@ function getWarningsByGroup(groupName, fieldName) {
|
|
|
844
860
|
*/
|
|
845
861
|
function getByGroup(severityKey, group, fieldName) {
|
|
846
862
|
if (!group) {
|
|
847
|
-
throwError("get"
|
|
863
|
+
throwError("get".concat(severityKey[0].toUpperCase()).concat(severityKey.slice(1), "ByGroup requires a group name. Received `").concat(group, "` instead."));
|
|
848
864
|
}
|
|
849
865
|
var testObjects = useTestsFlat();
|
|
850
866
|
return collectFailureMessages(severityKey, testObjects, {
|
|
@@ -870,10 +886,10 @@ function hasFailuresLogic(testObject, severityKey, fieldName) {
|
|
|
870
886
|
}
|
|
871
887
|
|
|
872
888
|
function hasErrors(fieldName) {
|
|
873
|
-
return has(
|
|
889
|
+
return has(Severity.ERRORS, fieldName);
|
|
874
890
|
}
|
|
875
891
|
function hasWarnings(fieldName) {
|
|
876
|
-
return has(
|
|
892
|
+
return has(Severity.WARNINGS, fieldName);
|
|
877
893
|
}
|
|
878
894
|
function has(severityKey, fieldName) {
|
|
879
895
|
var testObjects = useTestsFlat();
|
|
@@ -883,10 +899,10 @@ function has(severityKey, fieldName) {
|
|
|
883
899
|
}
|
|
884
900
|
|
|
885
901
|
function hasErrorsByGroup(groupName, fieldName) {
|
|
886
|
-
return hasByGroup(
|
|
902
|
+
return hasByGroup(Severity.ERRORS, groupName, fieldName);
|
|
887
903
|
}
|
|
888
904
|
function hasWarningsByGroup(groupName, fieldName) {
|
|
889
|
-
return hasByGroup(
|
|
905
|
+
return hasByGroup(Severity.WARNINGS, groupName, fieldName);
|
|
890
906
|
}
|
|
891
907
|
/**
|
|
892
908
|
* Checks whether there are failures in a given group.
|
|
@@ -1039,18 +1055,12 @@ function createBus() {
|
|
|
1039
1055
|
var listeners = {};
|
|
1040
1056
|
return {
|
|
1041
1057
|
emit: function (event, data) {
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
}
|
|
1045
|
-
listeners[event].forEach(function (listener) {
|
|
1046
|
-
listener(data);
|
|
1058
|
+
(listeners[event] || []).forEach(function (handler) {
|
|
1059
|
+
handler(data);
|
|
1047
1060
|
});
|
|
1048
1061
|
},
|
|
1049
1062
|
on: function (event, handler) {
|
|
1050
|
-
|
|
1051
|
-
listeners[event] = [];
|
|
1052
|
-
}
|
|
1053
|
-
listeners[event].push(handler);
|
|
1063
|
+
listeners[event] = (listeners[event] || []).concat(handler);
|
|
1054
1064
|
return {
|
|
1055
1065
|
off: function () {
|
|
1056
1066
|
listeners[event] = listeners[event].filter(function (h) { return h !== handler; });
|
|
@@ -1118,9 +1128,7 @@ function runFieldCallbacks(fieldName) {
|
|
|
1118
1128
|
*/
|
|
1119
1129
|
function runDoneCallbacks() {
|
|
1120
1130
|
var doneCallbacks = useTestCallbacks()[0].doneCallbacks;
|
|
1121
|
-
|
|
1122
|
-
callEach(doneCallbacks);
|
|
1123
|
-
}
|
|
1131
|
+
callEach(doneCallbacks);
|
|
1124
1132
|
}
|
|
1125
1133
|
|
|
1126
1134
|
// eslint-disable-next-line max-lines-per-function
|
|
@@ -1134,14 +1142,21 @@ function initBus() {
|
|
|
1134
1142
|
}
|
|
1135
1143
|
testObject.done();
|
|
1136
1144
|
runFieldCallbacks(testObject.fieldName);
|
|
1137
|
-
|
|
1145
|
+
if (!hasRemainingTests()) {
|
|
1146
|
+
// When no more tests are running, emit the done event
|
|
1147
|
+
bus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
|
|
1148
|
+
}
|
|
1138
1149
|
});
|
|
1139
1150
|
// Report that the suite completed its synchronous test run.
|
|
1140
1151
|
// Async operations may still be running.
|
|
1141
|
-
bus.on(Events.
|
|
1152
|
+
bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
|
|
1142
1153
|
// Remove tests that are optional and need to be omitted
|
|
1143
1154
|
omitOptionalTests();
|
|
1144
1155
|
});
|
|
1156
|
+
// Called when all the tests, including async, are done running
|
|
1157
|
+
bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
|
|
1158
|
+
runDoneCallbacks();
|
|
1159
|
+
});
|
|
1145
1160
|
// Removes a certain field from the state.
|
|
1146
1161
|
bus.on(Events.REMOVE_FIELD, function (fieldName) {
|
|
1147
1162
|
useEachTestObject(function (testObject) {
|
|
@@ -1171,9 +1186,10 @@ function useBus() {
|
|
|
1171
1186
|
var Events;
|
|
1172
1187
|
(function (Events) {
|
|
1173
1188
|
Events["TEST_COMPLETED"] = "test_completed";
|
|
1189
|
+
Events["ALL_RUNNING_TESTS_FINISHED"] = "all_running_tests_finished";
|
|
1174
1190
|
Events["REMOVE_FIELD"] = "remove_field";
|
|
1175
1191
|
Events["RESET_FIELD"] = "reset_field";
|
|
1176
|
-
Events["
|
|
1192
|
+
Events["SUITE_CALLBACK_DONE_RUNNING"] = "suite_callback_done_running";
|
|
1177
1193
|
})(Events || (Events = {}));
|
|
1178
1194
|
|
|
1179
1195
|
// eslint-disable-next-line max-lines-per-function
|
|
@@ -1210,7 +1226,7 @@ function create() {
|
|
|
1210
1226
|
});
|
|
1211
1227
|
// Report the suite is done registering tests
|
|
1212
1228
|
// Async tests may still be running
|
|
1213
|
-
bus.emit(Events.
|
|
1229
|
+
bus.emit(Events.SUITE_CALLBACK_DONE_RUNNING);
|
|
1214
1230
|
// Return the result
|
|
1215
1231
|
return produceFullResult();
|
|
1216
1232
|
}), {
|
|
@@ -1241,7 +1257,7 @@ function create() {
|
|
|
1241
1257
|
*/
|
|
1242
1258
|
function each(list, callback) {
|
|
1243
1259
|
if (!isFunction(callback)) {
|
|
1244
|
-
throwError('callback must be a function');
|
|
1260
|
+
throwError('each callback must be a function');
|
|
1245
1261
|
}
|
|
1246
1262
|
isolate({ type: IsolateTypes.EACH }, function () {
|
|
1247
1263
|
list.forEach(function (arg, index) {
|
|
@@ -1255,6 +1271,31 @@ function each(list, callback) {
|
|
|
1255
1271
|
*/
|
|
1256
1272
|
var ERROR_HOOK_CALLED_OUTSIDE = 'hook called outside of a running suite.';
|
|
1257
1273
|
|
|
1274
|
+
/**
|
|
1275
|
+
* Conditionally skips running tests within the callback.
|
|
1276
|
+
*
|
|
1277
|
+
* @example
|
|
1278
|
+
*
|
|
1279
|
+
* skipWhen(res => res.hasErrors('username'), () => {
|
|
1280
|
+
* test('username', 'User already taken', async () => await doesUserExist(username)
|
|
1281
|
+
* });
|
|
1282
|
+
*/
|
|
1283
|
+
function skipWhen(conditional, callback) {
|
|
1284
|
+
isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
|
|
1285
|
+
context.run({
|
|
1286
|
+
skipped:
|
|
1287
|
+
// Checking for nested conditional. If we're in a nested skipWhen,
|
|
1288
|
+
// we should skip the test if the parent conditional is true.
|
|
1289
|
+
isExcludedIndividually() ||
|
|
1290
|
+
// Otherwise, we should skip the test if the conditional is true.
|
|
1291
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
|
|
1292
|
+
}, function () { return callback(); });
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
function isExcludedIndividually() {
|
|
1296
|
+
return !!context.useX().skipped;
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1258
1299
|
/**
|
|
1259
1300
|
* Adds a field or a list of fields into the inclusion list
|
|
1260
1301
|
*
|
|
@@ -1281,9 +1322,6 @@ function skip(item) {
|
|
|
1281
1322
|
skip.group = function (item) {
|
|
1282
1323
|
return addTo(1 /* SKIP */, 'groups', item);
|
|
1283
1324
|
};
|
|
1284
|
-
function isExcludedIndividually() {
|
|
1285
|
-
return !!context.useX().skipped;
|
|
1286
|
-
}
|
|
1287
1325
|
//Checks whether a certain test profile excluded by any of the exclusion groups.
|
|
1288
1326
|
// eslint-disable-next-line complexity, max-statements, max-lines-per-function
|
|
1289
1327
|
function isExcluded(testObject) {
|
|
@@ -1429,7 +1467,7 @@ function group(groupName, tests) {
|
|
|
1429
1467
|
});
|
|
1430
1468
|
}
|
|
1431
1469
|
function throwGroupError(error) {
|
|
1432
|
-
throwError("Wrong arguments passed to group. Group "
|
|
1470
|
+
throwError("Wrong arguments passed to group. Group ".concat(error, "."));
|
|
1433
1471
|
}
|
|
1434
1472
|
|
|
1435
1473
|
function include(fieldName) {
|
|
@@ -1455,6 +1493,45 @@ function include(fieldName) {
|
|
|
1455
1493
|
}
|
|
1456
1494
|
}
|
|
1457
1495
|
|
|
1496
|
+
/**
|
|
1497
|
+
* Sets the suite to "eager" (fail fast) mode.
|
|
1498
|
+
* Eager mode will skip running subsequent tests of a failing fields.
|
|
1499
|
+
*
|
|
1500
|
+
* @example
|
|
1501
|
+
* // in the following example, the second test of username will not run
|
|
1502
|
+
* // if the first test of username failed.
|
|
1503
|
+
* const suite = create((data) => {
|
|
1504
|
+
* eager();
|
|
1505
|
+
*
|
|
1506
|
+
* test('username', 'username is required', () => {
|
|
1507
|
+
* enforce(data.username).isNotBlank();
|
|
1508
|
+
* });
|
|
1509
|
+
*
|
|
1510
|
+
* test('username', 'username is too short', () => {
|
|
1511
|
+
* enforce(data.username).longerThan(2);
|
|
1512
|
+
* });
|
|
1513
|
+
* });
|
|
1514
|
+
*/
|
|
1515
|
+
function eager() {
|
|
1516
|
+
setMode(Modes.EAGER);
|
|
1517
|
+
}
|
|
1518
|
+
function shouldSkipBasedOnMode(testObject) {
|
|
1519
|
+
if (isEager() && hasErrors(testObject.fieldName))
|
|
1520
|
+
return true;
|
|
1521
|
+
return false;
|
|
1522
|
+
}
|
|
1523
|
+
function isEager() {
|
|
1524
|
+
return isMode(Modes.EAGER);
|
|
1525
|
+
}
|
|
1526
|
+
function isMode(mode) {
|
|
1527
|
+
var currentMode = context.useX().mode;
|
|
1528
|
+
return currentMode[0] === mode;
|
|
1529
|
+
}
|
|
1530
|
+
function setMode(nextMode) {
|
|
1531
|
+
var mode = context.useX().mode;
|
|
1532
|
+
mode[0] = nextMode;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1458
1535
|
/**
|
|
1459
1536
|
* Conditionally omits tests from the suite.
|
|
1460
1537
|
*
|
|
@@ -1467,7 +1544,8 @@ function include(fieldName) {
|
|
|
1467
1544
|
function omitWhen(conditional, callback) {
|
|
1468
1545
|
isolate({ type: IsolateTypes.OMIT_WHEN }, function () {
|
|
1469
1546
|
context.run({
|
|
1470
|
-
omitted:
|
|
1547
|
+
omitted: isOmitted() ||
|
|
1548
|
+
optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
|
|
1471
1549
|
}, function () { return callback(); });
|
|
1472
1550
|
});
|
|
1473
1551
|
}
|
|
@@ -1505,23 +1583,6 @@ function optional(optionals) {
|
|
|
1505
1583
|
});
|
|
1506
1584
|
}
|
|
1507
1585
|
|
|
1508
|
-
/**
|
|
1509
|
-
* Conditionally skips running tests within the callback.
|
|
1510
|
-
*
|
|
1511
|
-
* @example
|
|
1512
|
-
*
|
|
1513
|
-
* skipWhen(res => res.hasErrors('username'), () => {
|
|
1514
|
-
* test('username', 'User already taken', async () => await doesUserExist(username)
|
|
1515
|
-
* });
|
|
1516
|
-
*/
|
|
1517
|
-
function skipWhen(conditional, callback) {
|
|
1518
|
-
isolate({ type: IsolateTypes.SKIP_WHEN }, function () {
|
|
1519
|
-
context.run({
|
|
1520
|
-
skipped: optionalFunctionValue(conditional, optionalFunctionValue(produceDraft))
|
|
1521
|
-
}, function () { return callback(); });
|
|
1522
|
-
});
|
|
1523
|
-
}
|
|
1524
|
-
|
|
1525
1586
|
var isNotString = bindNot(isStringValue);
|
|
1526
1587
|
|
|
1527
1588
|
function isPromise(value) {
|
|
@@ -1617,7 +1678,7 @@ function registerTest(testObject) {
|
|
|
1617
1678
|
}
|
|
1618
1679
|
}
|
|
1619
1680
|
catch (e) {
|
|
1620
|
-
throwError("
|
|
1681
|
+
throwError("Unexpected error encountered during test registration.\n Test Object: ".concat(testObject, ".\n Error: ").concat(e, "."));
|
|
1621
1682
|
}
|
|
1622
1683
|
}
|
|
1623
1684
|
|
|
@@ -1688,7 +1749,7 @@ function throwTestOrderError(prevTest, newTestObject) {
|
|
|
1688
1749
|
if (shouldAllowReorder()) {
|
|
1689
1750
|
return;
|
|
1690
1751
|
}
|
|
1691
|
-
throwErrorDeferred("Vest Critical Error: Tests called in different order than previous run.\n expected: "
|
|
1752
|
+
throwErrorDeferred("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(prevTest.fieldName, "\n received: ").concat(newTestObject.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."));
|
|
1692
1753
|
}
|
|
1693
1754
|
function handleKeyTest(key, newTestObject) {
|
|
1694
1755
|
var prevTestByKey = usePrevTestByKey(key);
|
|
@@ -1703,6 +1764,11 @@ function handleKeyTest(key, newTestObject) {
|
|
|
1703
1764
|
// eslint-disable-next-line max-statements
|
|
1704
1765
|
function registerPrevRunTest(testObject) {
|
|
1705
1766
|
var prevRunTest = useTestAtCursor(testObject);
|
|
1767
|
+
if (shouldSkipBasedOnMode(testObject)) {
|
|
1768
|
+
moveForward();
|
|
1769
|
+
testObject.skip();
|
|
1770
|
+
return testObject;
|
|
1771
|
+
}
|
|
1706
1772
|
if (isOmitted()) {
|
|
1707
1773
|
prevRunTest.omit();
|
|
1708
1774
|
moveForward();
|
|
@@ -1767,7 +1833,7 @@ function testBase(fieldName) {
|
|
|
1767
1833
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
1768
1834
|
args[_i - 1] = arguments[_i];
|
|
1769
1835
|
}
|
|
1770
|
-
var _a = (isFunction(args[1]) ? args : __spreadArray([undefined], args)), message = _a[0], testFn = _a[1], key = _a[2];
|
|
1836
|
+
var _a = (isFunction(args[1]) ? args : __spreadArray([undefined], args, true)), message = _a[0], testFn = _a[1], key = _a[2];
|
|
1771
1837
|
if (isNotString(fieldName)) {
|
|
1772
1838
|
throwIncompatibleParamsError('fieldName', 'string');
|
|
1773
1839
|
}
|
|
@@ -1795,7 +1861,7 @@ var test = assign(testBase, {
|
|
|
1795
1861
|
memo: bindTestMemo(testBase)
|
|
1796
1862
|
});
|
|
1797
1863
|
function throwIncompatibleParamsError(name, expected) {
|
|
1798
|
-
throwError("Incompatible params passed to test function. "
|
|
1864
|
+
throwError("Incompatible params passed to test function. ".concat(name, " must be a ").concat(expected));
|
|
1799
1865
|
}
|
|
1800
1866
|
|
|
1801
1867
|
var ERROR_OUTSIDE_OF_TEST = "warn hook called outside of a test callback. It won't have an effect."
|
|
@@ -1811,7 +1877,7 @@ function warn() {
|
|
|
1811
1877
|
ctx.currentTest.warn();
|
|
1812
1878
|
}
|
|
1813
1879
|
|
|
1814
|
-
var VERSION = "4.0
|
|
1880
|
+
var VERSION = "4.2.0";
|
|
1815
1881
|
|
|
1816
1882
|
Object.defineProperty(exports, 'enforce', {
|
|
1817
1883
|
enumerable: true,
|
|
@@ -1823,6 +1889,7 @@ exports.VERSION = VERSION;
|
|
|
1823
1889
|
exports.context = context;
|
|
1824
1890
|
exports.create = create;
|
|
1825
1891
|
exports.each = each;
|
|
1892
|
+
exports.eager = eager;
|
|
1826
1893
|
exports.group = group;
|
|
1827
1894
|
exports.include = include;
|
|
1828
1895
|
exports.omitWhen = omitWhen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e=require("n4s"),r=require("context"),u=Object.assign,i=(n=0,function(){return""+n++});function o(n){return"function"==typeof n}function s(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return o(n)?n.apply(void 0,t):n}function c(n,t){var e;return null!==(e=s(n))&&void 0!==e?e:t}function a(n,t){throw Error(c(t,n))}function f(n,t){setTimeout((function(){a(n,t)}),0)}function l(n){function t(n,t,u){return r.references.push(),e(n,s(t,u)),function(){return[r.references[n],function(t){return e(n,s(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,o(t=u[t][1])&&t(e,i),o(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function p(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 v(n){return[].concat(n)}function d(n){return(n=v(n))[n.length-1]}function g(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return d(t)},getCursor:function(){return v(t)},next:function(){return t[t.length-1]++,d(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(t||(t={}));var h=r.createContext((function(n,e){return e?null:u({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},testCursor:g()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function E(n){return null===n}var b=m(E);function N(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(N(u,t)):(u=t(u),b(u)&&e.push(u))}return e}function C(n,t,e){return S(n,t)[d(t)]=e,n}function T(n){return v(n).reduce((function(n,t){return y(t)?n.concat(T(t)):v(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=c(n[r],[]),n=n[r]}return n}function k(n){return void 0===n}function O(n){return E(n)||k(n)}function x(n){return String(n)===n}function I(n,t){return k(n)&&x(t)}function P(n,t){return n.length===Number(t)}function w(n){void 0===n&&(n=1);var t=[],e=function(r,u){var i=e.get(r);return i?i[1]:(u=u(),t.unshift([r.concat(),u]),function(n,t){return n.length>Number(t)}(t,n)&&(t.length=n),u)};return e.invalidate=function(n){var e=t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}));-1<e&&t.splice(e,1)},e.get=function(n){return t[t.findIndex((function(t){var e=t[0];return P(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))]||null},e}function F(){return h.useX().stateRef}function _(){return F().suiteId()[0]}function D(){return F().testCallbacks()}function L(){return F().optionalFields()}function W(){return F().testObjects()}function X(){(0,W()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function A(n){(0,W()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function R(){return T(N(W()[0].current,(function(n){return n.isPending()?n:null})))}var U,M=w();function G(){var n=W()[0].current;return M([n],(function(){return T(n)}))}function j(n){G().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(U||(U={}));var H=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=i(),this.severity=U.Error,this.status=K,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){I(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Q||(this.status=n)},n.prototype.warns=function(){return this.severity===U.Warning},n.prototype.setPending=function(){this.setStatus(z)},n.prototype.fail=function(){this.setStatus(this.warns()?q:B)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Y)},n.prototype.warn=function(){this.severity=U.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(J),X()},n.prototype.reset=function(){this.status=K,X()},n.prototype.omit=function(){this.setStatus(Q)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.status===z},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Q},n.prototype.isUntested=function(){return this.status===K},n.prototype.isFailing=function(){return this.status===B},n.prototype.isCanceled=function(){return this.status===J},n.prototype.isSkipped=function(){return this.status===V},n.prototype.isPassing=function(){return this.status===Y},n.prototype.isWarning=function(){return this.status===q},n}(),K="UNTESTED",V="SKIPPED",B="FAILED",q="WARNING",Y="PASSING",z="PENDING",J="CANCELED",Q="OMITTED";function Z(){return h.useX().testCursor.getCursor()}function $(){return h.useX().testCursor.cursorAt()}function nn(){return h.useX().testCursor.next()}function tn(n,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,o(e)){var r={current:{},prev:{}},u=Z();return h.run({isolate:{type:n,keys:r}},(function(){h.useX().testCursor.addLevel(),r.prev=v(S(W()[0].prev,Z())).reduce((function(n,t){return t instanceof H&&!O(t.key)?(n[t.key]=t,n):n}),{}),A((function(n){return C(n,u,[])}));var n=e();return h.useX().testCursor.removeLevel(),nn(),n}))}}function en(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function rn(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(en(n,"length"))return P(n,0);if("object"==typeof n)return P(Object.keys(n),0)}return!0}var un=m(rn);function on(n,t){return!!t&&!sn(n,t)}function sn(n,t){return!(!t||n.fieldName!==t)}function cn(n){var t=R();return!rn(t)&&(n?t.some((function(t){return sn(t,n)})):un(t))}function an(n,t){function e(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e("errorCount","errors"):t.isWarning()&&e("warnCount","warnings")),i}var fn=function(){return(fn=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function ln(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 pn(n,t){return function(n,t){return!!n!=!!t}("warnings"===n,t.warns())}function vn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||on(n,r)||pn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),fn({},i&&((r={})[i]=[],r)))}function dn(n,t){return t?n[t]:n}function gn(n){return mn("errors",n)}function hn(n){return mn("warnings",n)}function mn(n,t){return dn(n=vn(n,G(),{fieldName:t}),t)}function yn(n,t){return dn(n=bn("errors",n,t),t)}function En(n,t){return dn(n=bn("warnings",n,t),t)}function bn(n,t,e){return t||a("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),vn(n,G(),{group:t,fieldName:e})}function Nn(n,t,e){return!(!n.hasFailures()||on(n,e)||pn(t,n))}function Cn(n){return Sn("errors",n)}function Tn(n){return Sn("warnings",n)}function Sn(n,t){return G().some((function(e){return Nn(e,n,t)}))}function kn(n,t){return xn("errors",n,t)}function On(n,t){return xn("warnings",n,t)}function xn(n,t,e){return G().some((function(r){return t===r.groupName&&Nn(r,n,e)}))}function In(n,t){return!!function(n){var t=G().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(rn(G())||function(n,t){return!!t&&rn(n.tests[t])}(n,t)||function(n){var t=L()[0];return un(R().filter((function(e){return!on(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=G(),e=L()[0];return t.every((function(t){return!!on(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Pn=w(20);function wn(){var n=G(),t={stateRef:F()};return Pn([n],h.bind(t,(function(){var n=F().suiteName()[0];return u(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return G().forEach((function(t){var e=t.fieldName,r=t.groupName;n.tests[e]=an(n.tests,t),r&&(n.groups[r]=n.groups[r]||{},n.groups[r][e]=an(n.groups[r],t))})),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}(n)}(),{getErrors:h.bind(t,gn),getErrorsByGroup:h.bind(t,yn),getWarnings:h.bind(t,hn),getWarningsByGroup:h.bind(t,En),hasErrors:h.bind(t,Cn),hasErrorsByGroup:h.bind(t,kn),hasWarnings:h.bind(t,Tn),hasWarningsByGroup:h.bind(t,On),isValid:h.bind(t,(function(n){return In(wn(),n)})),suiteName:n})})))}var Fn=w(20);function _n(){var n=G(),t={stateRef:F()};return Fn([n],h.bind(t,(function(){return u({},wn(),{done:h.bind(t,Xn)})})))}function Dn(n,t,e){return!(o(n)&&(!t||e.tests[t]&&!rn(e.tests[t].testCount)))}function Ln(n){return!(cn()&&(!n||cn(n)))}var Wn,Xn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=_n(),Dn(e,n,t))return t;var r=function(){return e(wn())};return Ln(n)?(r(),t):(An(r,n),t)};function An(n,t){var e=h.bind({},n);(0,D()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Rn(n){return n.forEach((function(n){return n()}))}function Un(){var n=function(){var n={};return{emit:function(t,e){n[t]&&n[t].forEach((function(n){n(e)}))},on:function(t,e){return n[t]||(n[t]=[]),n[t].push(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Wn.TEST_COMPLETED,(function(n){n.isCanceled()||(n.done(),function(n){var t=D()[0].fieldCallbacks;n&&!cn(n)&&y(t[n])&&Rn(t[n])}(n.fieldName),function(){var n=D()[0].doneCallbacks;cn()||Rn(n)}())})),n.on(Wn.SUITE_COMPLETED,(function(){!function(){var n=L()[0];if(!rn(n)){var t={};A((function(e){return N(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];o(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Wn.REMOVE_FIELD,(function(n){j((function(t){sn(t,n)&&(t.cancel(),function(n){A((function(t){return N(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Wn.RESET_FIELD,(function(n){j((function(t){sn(t,n)&&t.reset()}))})),n}function Mn(){var n=h.useX();return n.bus||a(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_COMPLETED="suite_completed"}(Wn||(Wn={}));function Gn(n){return Vn(0,"tests",n)}function jn(n){return Vn(1,"tests",n)}function Hn(){return!!h.useX().skipped}function Kn(n){var t=n.fieldName;if(n=n.groupName,Hn())return!0;var e=h.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=h.useX().exclusion.groups;if(en(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Bn(u)||!1===u[t])}return!!function(n){var t=h.useX().exclusion;return!!function(){var n,t=h.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Bn(u)&&!s(e[t]))}function Vn(n,t,e){var r=h.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){x(e)&&(r.exclusion[t][e]=0===n)}))}function Bn(n){for(var t in n)if(!0===n[t])return!0;return!1}function qn(n){a("Wrong arguments passed to group. Group "+n+".")}Gn.group=function(n){return Vn(0,"groups",n)},jn.group=function(n){return Vn(1,"groups",n)};var Yn=m(x);function zn(n){return n&&o(n.then)}function Jn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Qn(n){var t=n.asyncTest,e=n.message;if(zn(t)){var r=Mn().emit,u=F(),i=h.bind({stateRef:u},(function(){X(),r(Wn.TEST_COMPLETED,n)}));u=h.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=x(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function Zn(n){var t=Mn(),e=function(n){return h.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){I(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{zn(e)?(n.asyncTest=e,n.setPending(),Qn(n)):t.emit(Wn.TEST_COMPLETED,n)}catch(t){a("Your test function "+n.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}function $n(n){var e=W()[0].prev;return rn(e)?(nt(n),n):(e=function(n){var t=Z();return function(n,t){return S(n,t)[d(t)]}(n,t)}(e),O(n.key)?(function(n,t){return un(n)&&!Jn(n,t)}(e,n)&&(function(n,e){h.useX().isolate.type===t.EACH||f("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+e.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.')}(e,n),function(){var n=W(),t=n[1],e=n[0].prev;n=S(e,Z());var r=$();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),nt(n=c(e,n)),n):(nt(n=function(n,t){var e=function(n){return h.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=h.useX().isolate.keys.current;O(e[n])?e[n]=t:f('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")}(n,t),t}(n.key,n)),n))}function nt(n){var t=Z();A((function(e){return C(e,t,n)}))}function tt(n){var t=$n(n);return h.useX().omitted?(t.omit(),nn(),t):Kn(n)?(t.skip(Hn()),nn(),t):(function(n,t){t!==n&&Jn(n,t)&&n.isPending()&&n.cancel()}(t,n),nt(n),nn(),function(n){n.isUntested()?Zn(n):zn(n.asyncTest)&&(n.setPending(),Qn(n))}(n),n)}function et(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o(t[1])?t:ln([void 0],t);t=r[0],e=r[1],r=r[2],Yn(n)&&ut("fieldName","string"),o(e)||ut("Test callback","function");var u=h.useX();return tt(t=new H(n,e,{message:t,groupName:u.groupName,key:r}))}var rt=u(et,{memo:function(n){var t=w(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=$();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[_(),e,u].concat(i),E(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)}))):tt(r[1])}}(et)});function ut(n,t){a("Incompatible params passed to test function. "+n+" must be a "+t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.0.3",exports.context=h,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],o(r)||a("vest.create: Expected callback to be a function.");var s=Un(),c=l();return n={stateRef:p(c,{suiteId:i(),suiteName:n}),bus:s},u(h.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),tn({type:t.SUITE},(function(){r.apply(void 0,n)})),s.emit(Wn.SUITE_COMPLETED),_n()})),{get:h.bind(n,wn),remove:h.bind(n,(function(n){s.emit(Wn.REMOVE_FIELD,n)})),reset:c.reset,resetField:h.bind(n,(function(n){s.emit(Wn.RESET_FIELD,n)}))})},exports.each=function(n,e){o(e)||a("callback must be a function"),tn({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.group=function(n,e){x(n)||qn("name must be a string"),o(e)||qn("callback must be a function"),tn({type:t.GROUP},(function(){h.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=h.useX(),r=e.exclusion;e.inclusion[n]=function(){return en(r.tests,n)?c(r.tests[n],!0):x(t)?!!r.tests[t]:s(t,s(wn))}}var e=h.useX();return n?(e.inclusion[n]=c(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){tn({type:t.OMIT_WHEN},(function(){h.run({omitted:s(n,s(wn))},(function(){return e()}))}))},exports.only=Gn,exports.optional=function(n){(0,L()[1])((function(t){if(y(n)||x(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=jn,exports.skipWhen=function(n,e){tn({type:t.SKIP_WHEN},(function(){h.run({skipped:s(n,s(wn))},(function(){return e()}))}))},exports.test=rt,exports.warn=function(){var n=h.useX("warn hook called outside of a running suite.");n.currentTest||a("warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e,r=require("n4s"),u=require("context"),i=Object.assign,o=(n=0,function(){return"".concat(n++)});function s(n){return"function"==typeof n}function c(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return s(n)?n.apply(void 0,t):n}function a(n,t){var e;return null!==(e=c(n))&&void 0!==e?e:t}function f(n,t){throw Error(a(t,n))}function l(n,t){setTimeout((function(){f(n,t)}),0)}function p(n){function t(n,t,u){return r.references.push(),e(n,c(t,u)),function(){return[r.references[n],function(t){return e(n,c(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,s(t=u[t][1])&&t(e,i),s(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function d(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 v(n){return[].concat(n)}function g(n){return(n=v(n))[n.length-1]}function h(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return g(t)},getCursor:function(){return v(t)},next:function(){return t[t.length-1]++,g(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(t||(t={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(e||(e={}));var E=u.createContext((function(n,r){return r?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:t.DEFAULT,keys:{current:{},prev:{}}},mode:[e.ALL],testCursor:h()},n)}));function m(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function y(n){return!!Array.isArray(n)}function N(n){return null===n}var S=m(N);function b(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];y(u)?e.push(b(u,t)):(u=t(u),S(u)&&e.push(u))}return e}function C(n,t,e){return T(n,t)[g(t)]=e,n}function R(n){return v(n).reduce((function(n,t){return y(t)?n.concat(R(t)):v(n).concat(t)}),[])}function T(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=a(n[r],[]),n=n[r]}return n}function I(n){return void 0===n}function _(n){return N(n)||I(n)}function A(n){return String(n)===n}function O(n,t){return I(n)&&A(t)}function k(n,t){return n.length===Number(t)}function L(n){function t(n){return e.findIndex((function(t){var e=t[0];return k(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return n.length>Number(t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function x(){return E.useX().stateRef}function F(){return x().suiteId()[0]}function G(){return x().testCallbacks()}function P(){return x().optionalFields()}function W(){return x().testObjects()}function D(){(0,W()[1])((function(n){return{prev:n.prev,current:v(n.current)}}))}function U(n){(0,W()[1])((function(t){return{prev:t.prev,current:v(n(t.current))}}))}function w(){return R(b(W()[0].current,(function(n){return n.isPending()?n:null})))}var X,H=L();function K(){var n=W()[0].current;return H([n],(function(){return R(n)}))}function q(n){K().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(X||(X={}));var M=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=o(),this.severity=X.Error,this.status=j,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){O(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Z||(this.status=n)},n.prototype.warns=function(){return this.severity===X.Warning},n.prototype.setPending=function(){this.setStatus(J)},n.prototype.fail=function(){this.setStatus(this.warns()?Y:V)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=X.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(B)},n.prototype.cancel=function(){this.setStatus(Q),D()},n.prototype.reset=function(){this.status=j,D()},n.prototype.omit=function(){this.setStatus(Z)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(J)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Z)},n.prototype.isUntested=function(){return this.statusEquals(j)},n.prototype.isFailing=function(){return this.statusEquals(V)},n.prototype.isCanceled=function(){return this.statusEquals(Q)},n.prototype.isSkipped=function(){return this.statusEquals(B)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(Y)},n.prototype.statusEquals=function(n){return this.status===n},n}(),j="UNTESTED",B="SKIPPED",V="FAILED",Y="WARNING",z="PASSING",J="PENDING",Q="CANCELED",Z="OMITTED";function $(){return E.useX().testCursor.getCursor()}function nn(){return E.useX().testCursor.cursorAt()}function tn(){return E.useX().testCursor.next()}function en(n,e){if(n=void 0===(n=n.type)?t.DEFAULT:n,s(e)){var r={current:{},prev:{}},u=$();return E.run({isolate:{type:n,keys:r}},(function(){E.useX().testCursor.addLevel(),r.prev=v(T(W()[0].prev,$())).reduce((function(n,t){return t instanceof M&&!_(t.key)?(n[t.key]=t,n):n}),{}),U((function(n){return C(n,u,[])}));var n=e();return E.useX().testCursor.removeLevel(),tn(),n}))}}function rn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function un(n){if(n){if(function(n){return"number"==typeof n}(n))return 0===n;if(rn(n,"length"))return k(n,0);if("object"==typeof n)return k(Object.keys(n),0)}return!0}var on,sn=m(un);function cn(n,t){return!!t&&!an(n,t)}function an(n,t){return!(!t||n.fieldName!==t)}function fn(n){var t=w();return!un(t)&&(n?t.some((function(t){return an(t,n)})):sn(t))}function ln(n,t){function e(n){i[n===on.ERRORS?"errorCount":"warnCount"]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||{errorCount:0,warnCount:0,testCount:0};var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(on.ERRORS):t.isWarning()&&e(on.WARNINGS)),i}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(on||(on={}));var pn=function(){return(pn=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var u in t=arguments[e])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)};function dn(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 vn(n,t){return function(n,t){return!!n!=!!t}(n===on.WARNINGS,t.warns())}function gn(n,t,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return t.reduce((function(t,e){return function(n,t,e,r){return!!(function(n,t){return!(!t||n.groupName===t)}(n,e)||cn(n,r)||vn(t,n))}(e,n,u,i)||!e.hasFailures()||(t[e.fieldName]=(t[e.fieldName]||[]).concat(e.message||[])),t}),pn({},i&&((r={})[i]=[],r)))}function hn(n,t){return t?n[t]:n}function En(n){return yn(on.ERRORS,n)}function mn(n){return yn(on.WARNINGS,n)}function yn(n,t){return hn(n=gn(n,K(),{fieldName:t}),t)}function Nn(n,t){return hn(n=bn(on.ERRORS,n,t),t)}function Sn(n,t){return hn(n=bn(on.WARNINGS,n,t),t)}function bn(n,t,e){return t||f("get".concat(n[0].toUpperCase()).concat(n.slice(1),"ByGroup requires a group name. Received `").concat(t,"` instead.")),gn(n,K(),{group:t,fieldName:e})}function Cn(n,t,e){return!(!n.hasFailures()||cn(n,e)||vn(t,n))}function Rn(n){return In(on.ERRORS,n)}function Tn(n){return In(on.WARNINGS,n)}function In(n,t){return K().some((function(e){return Cn(e,n,t)}))}function _n(n,t){return On(on.ERRORS,n,t)}function An(n,t){return On(on.WARNINGS,n,t)}function On(n,t,e){return K().some((function(r){return t===r.groupName&&Cn(r,n,e)}))}function kn(n,t){return!!function(n){var t=K().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return!!n&&!!t[n]}(t)||!n.hasErrors(t)&&(!(un(K())||function(n,t){return!!t&&un(n.tests[t])}(n,t)||function(n){var t=P()[0];return sn(w().filter((function(e){return!cn(e,n)&&!0!==t[e.fieldName]})))}(t))&&function(n){var t=K(),e=P()[0];return t.every((function(t){return!!cn(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(t))}var Ln=L(20);function xn(){var n=K(),t={stateRef:x()};return Ln([n],E.bind(t,(function(){var n=x().suiteName()[0];return i(function(){var n=K(),t=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{}});return n.forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=ln(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=ln(t.groups[r],n))})),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)}(),{getErrors:E.bind(t,En),getErrorsByGroup:E.bind(t,Nn),getWarnings:E.bind(t,mn),getWarningsByGroup:E.bind(t,Sn),hasErrors:E.bind(t,Rn),hasErrorsByGroup:E.bind(t,_n),hasWarnings:E.bind(t,Tn),hasWarningsByGroup:E.bind(t,An),isValid:E.bind(t,(function(n){return kn(xn(),n)})),suiteName:n})})))}var Fn=L(20);function Gn(){var n=K(),t={stateRef:x()};return Fn([n],E.bind(t,(function(){return i({},xn(),{done:E.bind(t,Un)})})))}function Pn(n,t,e){return!(s(n)&&(!t||e.tests[t]&&!un(e.tests[t].testCount)))}function Wn(n){return!(fn()&&(!n||fn(n)))}var Dn,Un=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Gn(),Pn(e,n,t))return t;var r=function(){return e(xn())};return Wn(n)?(r(),t):(wn(r,n),t)};function wn(n,t){var e=E.bind({},n);(0,G()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(e):n.doneCallbacks.push(e),n}))}function Xn(n){return n.forEach((function(n){return n()}))}function Hn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=n[t].filter((function(n){return n!==e}))}}}}}();return n.on(Dn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=G()[0].fieldCallbacks;n&&!fn(n)&&y(t[n])&&Xn(t[n])}(t.fieldName),fn()||n.emit(Dn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Dn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=P()[0];if(!un(n)){var t={};U((function(e){return b(e,(function(e){var r=e.fieldName;if(t.hasOwnProperty(r))t[e.fieldName]&&e.omit();else{var u=n[r];s(u)&&(t[r]=u(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Dn.ALL_RUNNING_TESTS_FINISHED,(function(){Xn(G()[0].doneCallbacks)})),n.on(Dn.REMOVE_FIELD,(function(n){q((function(t){an(t,n)&&(t.cancel(),function(n){U((function(t){return b(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Dn.RESET_FIELD,(function(n){q((function(t){an(t,n)&&t.reset()}))})),n}function Kn(){var n=E.useX();return n.bus||f(),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Dn||(Dn={}));function qn(){return!!E.useX().skipped}function Mn(n){return Vn(0,"tests",n)}function jn(n){return Vn(1,"tests",n)}function Bn(n){var t=n.fieldName;if(n=n.groupName,qn())return!0;var e=E.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=E.useX().exclusion.groups;if(rn(t,n))return!1===t[n];for(var e in t)if(!0===t[e])return!0;return!1}(n))return!0;if(!0===r.groups[n])return!i&&(!!Yn(u)||!1===u[t])}return!!function(n){var t=E.useX().exclusion;return!!function(){var n,t=E.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}()&&(!n||(!(n in t.groups)||!t.groups[n]))}(n)||!i&&(!!Yn(u)&&!c(e[t]))}function Vn(n,t,e){var r=E.useX("hook called outside of a running suite.");e&&v(e).forEach((function(e){A(e)&&(r.exclusion[t][e]=0===n)}))}function Yn(n){for(var t in n)if(!0===n[t])return!0;return!1}function zn(n){f("Wrong arguments passed to group. Group ".concat(n,"."))}function Jn(n){return!(!function(n){return E.useX().mode[0]===n}(e.EAGER)||!Rn(n.fieldName))}function Qn(){return!!E.useX().omitted}Mn.group=function(n){return Vn(0,"groups",n)},jn.group=function(n){return Vn(1,"groups",n)};var Zn=m(A);function $n(n){return n&&s(n.then)}function nt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function tt(n){var t=n.asyncTest,e=n.message;if($n(t)){var r=Kn().emit,u=x(),i=E.bind({stateRef:u},(function(){D(),r(Dn.TEST_COMPLETED,n)}));u=E.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=A(t)?t:e,n.fail(),i())}));try{t.then(i,u)}catch(n){u()}}}function et(n){var t=Kn(),e=function(n){return E.run({currentTest:n},(function(){try{var t=n.testFn()}catch(e){O(n.message,e)&&(n.message=e),t=!1}return!1===t&&n.fail(),t}))}(n);try{$n(e)?(n.asyncTest=e,n.setPending(),tt(n)):t.emit(Dn.TEST_COMPLETED,n)}catch(t){f("Unexpected error encountered during test registration.\n Test Object: ".concat(n,".\n Error: ").concat(t,"."))}}function rt(n){var e=W()[0].prev;return un(e)?(ut(n),n):(e=function(n){var t=$();return function(n,t){return T(n,t)[g(t)]}(n,t)}(e),_(n.key)?(function(n,t){return sn(n)&&!nt(n,t)}(e,n)&&(function(n,e){E.useX().isolate.type===t.EACH||l("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.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.'))}(e,n),function(){var n=W(),t=n[1],e=n[0].prev;n=T(e,$());var r=nn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),e=null),ut(n=a(e,n)),n):(ut(n=function(n,t){var e=function(n){return E.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=E.useX().isolate.keys.current;_(e[n])?e[n]=t:l('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function ut(n){var t=$();U((function(e){return C(e,t,n)}))}function it(n){var t=rt(n);return Jn(n)?(tn(),n.skip(),n):Qn()?(t.omit(),tn(),t):Bn(n)?(t.skip(qn()),tn(),t):(function(n,t){t!==n&&nt(n,t)&&n.isPending()&&n.cancel()}(t,n),ut(n),tn(),function(n){n.isUntested()?et(n):$n(n.asyncTest)&&(n.setPending(),tt(n))}(n),n)}function ot(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=s(t[1])?t:dn([void 0],t,!0);t=r[0],e=r[1],r=r[2],Zn(n)&&ct("fieldName","string"),s(e)||ct("Test callback","function");var u=E.useX();return it(t=new M(n,e,{message:t,groupName:u.groupName,key:r}))}var st=i(ot,{memo:function(n){var t=L(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=nn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[F(),e,u].concat(i),N(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)}))):it(r[1])}}(ot)});function ct(n,t){f("Incompatible params passed to test function. ".concat(n," must be a ").concat(t))}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return r.enforce}}),exports.VERSION="4.2.0",exports.context=E,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],s(r)||f("vest.create: Expected callback to be a function.");var u=Hn(),c=p();return n={stateRef:d(c,{suiteId:o(),suiteName:n}),bus:u},i(E.bind(n,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return c.reset(),en({type:t.SUITE},(function(){r.apply(void 0,n)})),u.emit(Dn.SUITE_CALLBACK_DONE_RUNNING),Gn()})),{get:E.bind(n,xn),remove:E.bind(n,(function(n){u.emit(Dn.REMOVE_FIELD,n)})),reset:c.reset,resetField:E.bind(n,(function(n){u.emit(Dn.RESET_FIELD,n)}))})},exports.each=function(n,e){s(e)||f("each callback must be a function"),en({type:t.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},exports.eager=function(){!function(n){E.useX().mode[0]=n}(e.EAGER)},exports.group=function(n,e){A(n)||zn("name must be a string"),s(e)||zn("callback must be a function"),en({type:t.GROUP},(function(){E.run({groupName:n},e)}))},exports.include=function(n){function t(t){var e=E.useX(),r=e.exclusion;e.inclusion[n]=function(){return rn(r.tests,n)?a(r.tests[n],!0):A(t)?!!r.tests[t]:c(t,c(xn))}}var e=E.useX();return n?(e.inclusion[n]=a(e.exclusion.tests[n],!0),{when:t}):{when:t}},exports.omitWhen=function(n,e){en({type:t.OMIT_WHEN},(function(){E.run({omitted:Qn()||c(n,c(xn))},(function(){return e()}))}))},exports.only=Mn,exports.optional=function(n){(0,P()[1])((function(t){if(y(n)||A(n))v(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=jn,exports.skipWhen=function(n,e){en({type:t.SKIP_WHEN},(function(){E.run({skipped:qn()||c(n,c(xn))},(function(){return e()}))}))},exports.test=st,exports.warn=function(){var n=E.useX("warn hook called outside of a running suite.");n.currentTest||f("warn called outside of a test."),n.currentTest.warn()};
|