vest 4.4.1 → 4.4.2-dev-ae93bf

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.
Files changed (49) hide show
  1. package/dist/cjs/classnames.development.js +9 -60
  2. package/dist/cjs/classnames.production.js +1 -1
  3. package/dist/cjs/enforce/compose.development.js +6 -53
  4. package/dist/cjs/enforce/compose.production.js +1 -1
  5. package/dist/cjs/enforce/compounds.development.js +16 -71
  6. package/dist/cjs/enforce/compounds.production.js +1 -1
  7. package/dist/cjs/enforce/schema.development.js +6 -58
  8. package/dist/cjs/enforce/schema.production.js +1 -1
  9. package/dist/cjs/parser.development.js +8 -59
  10. package/dist/cjs/parser.production.js +1 -1
  11. package/dist/cjs/promisify.development.js +2 -26
  12. package/dist/cjs/promisify.production.js +1 -1
  13. package/dist/cjs/vest.development.js +98 -357
  14. package/dist/cjs/vest.production.js +1 -1
  15. package/dist/es/classnames.development.js +1 -52
  16. package/dist/es/classnames.production.js +1 -1
  17. package/dist/es/enforce/compose.development.js +4 -51
  18. package/dist/es/enforce/compose.production.js +1 -1
  19. package/dist/es/enforce/compounds.development.js +11 -66
  20. package/dist/es/enforce/compounds.production.js +1 -1
  21. package/dist/es/enforce/schema.development.js +2 -54
  22. package/dist/es/enforce/schema.production.js +1 -1
  23. package/dist/es/parser.development.js +1 -52
  24. package/dist/es/parser.production.js +1 -1
  25. package/dist/es/promisify.development.js +1 -25
  26. package/dist/es/promisify.production.js +1 -1
  27. package/dist/es/vest.development.js +23 -282
  28. package/dist/es/vest.production.js +1 -1
  29. package/dist/umd/classnames.development.js +13 -13
  30. package/dist/umd/classnames.production.js +1 -1
  31. package/dist/umd/enforce/compose.development.js +121 -121
  32. package/dist/umd/enforce/compose.production.js +1 -1
  33. package/dist/umd/enforce/compounds.development.js +180 -184
  34. package/dist/umd/enforce/compounds.production.js +1 -1
  35. package/dist/umd/enforce/schema.development.js +132 -132
  36. package/dist/umd/enforce/schema.production.js +1 -1
  37. package/dist/umd/parser.development.js +13 -13
  38. package/dist/umd/parser.production.js +1 -1
  39. package/dist/umd/vest.development.js +277 -277
  40. package/dist/umd/vest.production.js +1 -1
  41. package/package.json +4 -3
  42. package/testUtils/mockThrowError.ts +2 -1
  43. package/testUtils/suiteDummy.ts +1 -1
  44. package/testUtils/testObjects.ts +0 -8
  45. package/types/enforce/compose.d.ts +14 -30
  46. package/types/enforce/compounds.d.ts +14 -30
  47. package/types/enforce/schema.d.ts +14 -30
  48. package/types/vest.d.ts +4 -3
  49. package/testUtils/itWithContext.ts +0 -23
@@ -1,181 +1,12 @@
1
1
  export { enforce } from 'n4s';
2
+ import { isUndefined, isStringValue, assign, cache as cache$2, optionalFunctionValue, nestedArray, asArray, genId, isFunction, isNullish, deferThrow, invariant, bindNot, either, isEmpty, isNotEmpty, isPositive, hasOwnProperty, isArray, callEach, bus, defaultTo, isPromise, isNull } from 'vest-utils';
2
3
  import { createContext } from 'context';
3
4
 
4
- /**
5
- * @returns a unique numeric id.
6
- */
7
- var genId = (function (n) { return function () {
8
- return "".concat(n++);
9
- }; })(0);
10
-
11
- function isStringValue(v) {
12
- return String(v) === v;
13
- }
14
-
15
- function bindNot(fn) {
16
- return function () {
17
- var args = [];
18
- for (var _i = 0; _i < arguments.length; _i++) {
19
- args[_i] = arguments[_i];
20
- }
21
- return !fn.apply(void 0, args);
22
- };
23
- }
24
-
25
- function isUndefined(value) {
26
- return value === undefined;
27
- }
28
-
29
5
  function shouldUseErrorAsMessage(message, error) {
30
6
  // kind of cheating with this safe guard, but it does the job
31
7
  return isUndefined(message) && isStringValue(error);
32
8
  }
33
9
 
34
- function asArray(possibleArg) {
35
- return [].concat(possibleArg);
36
- }
37
-
38
- var assign = Object.assign;
39
-
40
- function isNumeric(value) {
41
- var str = String(value);
42
- var num = Number(value);
43
- var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
44
- return Boolean(result);
45
- }
46
-
47
- function numberEquals(value, eq) {
48
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
49
- }
50
-
51
- function lengthEquals(value, arg1) {
52
- return numberEquals(value.length, arg1);
53
- }
54
-
55
- function greaterThan(value, gt) {
56
- return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
57
- }
58
-
59
- function longerThan(value, arg1) {
60
- return greaterThan(value.length, arg1);
61
- }
62
-
63
- /**
64
- * Creates a cache function
65
- */
66
- function createCache(maxSize) {
67
- if (maxSize === void 0) { maxSize = 1; }
68
- var cacheStorage = [];
69
- var cache = function (deps, cacheAction) {
70
- var cacheHit = cache.get(deps);
71
- // cache hit is not null
72
- if (cacheHit)
73
- return cacheHit[1];
74
- var result = cacheAction();
75
- cacheStorage.unshift([deps.concat(), result]);
76
- if (longerThan(cacheStorage, maxSize))
77
- cacheStorage.length = maxSize;
78
- return result;
79
- };
80
- // invalidate an item in the cache by its dependencies
81
- cache.invalidate = function (deps) {
82
- var index = findIndex(deps);
83
- if (index > -1)
84
- cacheStorage.splice(index, 1);
85
- };
86
- // Retrieves an item from the cache.
87
- cache.get = function (deps) {
88
- return cacheStorage[findIndex(deps)] || null;
89
- };
90
- return cache;
91
- function findIndex(deps) {
92
- return cacheStorage.findIndex(function (_a) {
93
- var cachedDeps = _a[0];
94
- return lengthEquals(deps, cachedDeps.length) &&
95
- deps.every(function (dep, i) { return dep === cachedDeps[i]; });
96
- });
97
- }
98
- }
99
-
100
- // The module is named "isArrayValue" since it
101
- // is conflicting with a nested npm dependency.
102
- // We may need to revisit this in the future.
103
- function isArray(value) {
104
- return Boolean(Array.isArray(value));
105
- }
106
-
107
- function isNull(value) {
108
- return value === null;
109
- }
110
- var isNotNull = bindNot(isNull);
111
-
112
- function isFunction(value) {
113
- return typeof value === 'function';
114
- }
115
-
116
- function optionalFunctionValue(value) {
117
- var args = [];
118
- for (var _i = 1; _i < arguments.length; _i++) {
119
- args[_i - 1] = arguments[_i];
120
- }
121
- return isFunction(value) ? value.apply(void 0, args) : value;
122
- }
123
-
124
- function defaultTo(callback, defaultValue) {
125
- var _a;
126
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
127
- }
128
-
129
- function last(values) {
130
- var valuesArray = asArray(values);
131
- return valuesArray[valuesArray.length - 1];
132
- }
133
-
134
- // This is kind of a map/filter in one function.
135
- // Normally, behaves like a nested-array map,
136
- // but returning `null` will drop the element from the array
137
- function transform(array, cb) {
138
- var res = [];
139
- for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
140
- var v = array_1[_i];
141
- if (isArray(v)) {
142
- res.push(transform(v, cb));
143
- }
144
- else {
145
- var output = cb(v);
146
- if (isNotNull(output)) {
147
- res.push(output);
148
- }
149
- }
150
- }
151
- return res;
152
- }
153
- function valueAtPath(array, path) {
154
- return getCurrent(array, path)[last(path)];
155
- }
156
- function setValueAtPath(array, path, value) {
157
- var current = getCurrent(array, path);
158
- current[last(path)] = value;
159
- return array;
160
- }
161
- function flatten(values) {
162
- return asArray(values).reduce(function (acc, value) {
163
- if (isArray(value)) {
164
- return acc.concat(flatten(value));
165
- }
166
- return asArray(acc).concat(value);
167
- }, []);
168
- }
169
- function getCurrent(array, path) {
170
- var current = array;
171
- for (var _i = 0, _a = path.slice(0, -1); _i < _a.length; _i++) {
172
- var p = _a[_i];
173
- current[p] = defaultTo(current[p], []);
174
- current = current[p];
175
- }
176
- return current;
177
- }
178
-
179
10
  var IsolateTypes;
180
11
  (function (IsolateTypes) {
181
12
  IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
@@ -302,10 +133,10 @@ function useSetTests(handler) {
302
133
  function useAllIncomplete() {
303
134
  return useTestsFlat().filter(function (test) { return test.isPending(); });
304
135
  }
305
- var flatCache = createCache();
136
+ var flatCache = cache$2();
306
137
  function useTestsFlat() {
307
138
  var current = useTestObjects()[0].current;
308
- return flatCache([current], function () { return flatten(current); });
139
+ return flatCache([current], function () { return nestedArray.flatten(current); });
309
140
  }
310
141
  function useEachTestObject(handler) {
311
142
  var testObjects = useTestsFlat();
@@ -456,20 +287,6 @@ var STATUS_PENDING = 'PENDING';
456
287
  var STATUS_CANCELED = 'CANCELED';
457
288
  var STATUS_OMITTED = 'OMITTED';
458
289
 
459
- function invariant(condition,
460
- // eslint-disable-next-line @typescript-eslint/ban-types
461
- message) {
462
- if (condition) {
463
- return;
464
- }
465
- // If message is a string object (rather than string literal)
466
- // Throw the value directly as a string
467
- // Alternatively, throw an error with the message
468
- throw message instanceof String
469
- ? message.valueOf()
470
- : new Error(message ? optionalFunctionValue(message) : message);
471
- }
472
-
473
290
  // eslint-disable-next-line max-lines-per-function
474
291
  function createState(onStateChange) {
475
292
  var state = {
@@ -553,19 +370,9 @@ function createStateRef(state, _a) {
553
370
  };
554
371
  }
555
372
 
556
- function isNullish(value) {
557
- return isNull(value) || isUndefined(value);
558
- }
559
-
560
- function deferThrow(message) {
561
- setTimeout(function () {
562
- throw new Error(message);
563
- }, 0);
564
- }
565
-
566
373
  function usePrevKeys() {
567
374
  var prev = useTestObjects()[0].prev;
568
- return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
375
+ return asArray(nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
569
376
  if (!(testObject instanceof VestTest)) {
570
377
  return prevKeys;
571
378
  }
@@ -597,7 +404,7 @@ function isolate(_a, callback) {
597
404
  var isolate = generateIsolate(type, useCurrentPath());
598
405
  var output = context.run({ isolate: isolate }, function () {
599
406
  isolate.keys.prev = usePrevKeys();
600
- useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
407
+ useSetTests(function (tests) { return nestedArray.setValueAtPath(tests, isolate.path, []); });
601
408
  var res = callback();
602
409
  return res;
603
410
  });
@@ -647,34 +454,6 @@ function countKeyBySeverity(severity) {
647
454
  : SeverityCount.WARN_COUNT;
648
455
  }
649
456
 
650
- /**
651
- * A safe hasOwnProperty access
652
- */
653
- function hasOwnProperty(obj, key) {
654
- return Object.prototype.hasOwnProperty.call(obj, key);
655
- }
656
-
657
- function isNumber(value) {
658
- return Boolean(typeof value === 'number');
659
- }
660
-
661
- function isEmpty(value) {
662
- if (!value) {
663
- return true;
664
- }
665
- else if (isNumber(value)) {
666
- return value === 0;
667
- }
668
- else if (hasOwnProperty(value, 'length')) {
669
- return lengthEquals(value, 0);
670
- }
671
- else if (typeof value === 'object') {
672
- return lengthEquals(Object.keys(value), 0);
673
- }
674
- return false;
675
- }
676
- var isNotEmpty = bindNot(isEmpty);
677
-
678
457
  function nonMatchingFieldName(testObject, fieldName) {
679
458
  return !!fieldName && !matchingFieldName(testObject, fieldName);
680
459
  }
@@ -687,10 +466,6 @@ function matchingGroupName(testObject, groupName) {
687
466
  return testObject.groupName === groupName;
688
467
  }
689
468
 
690
- function either(a, b) {
691
- return !!a !== !!b;
692
- }
693
-
694
469
  /**
695
470
  * Checks that a given test object matches the currently specified severity level
696
471
  */
@@ -914,10 +689,6 @@ function baseTestStats() {
914
689
  });
915
690
  }
916
691
 
917
- function isPositive(value) {
918
- return greaterThan(value, 0);
919
- }
920
-
921
692
  // calls collectAll or getByFieldName depending on whether fieldName is provided
922
693
  function gatherFailures(testGroup, severityKey, fieldName) {
923
694
  return fieldName
@@ -1034,7 +805,7 @@ function isFieldValid(testContainer, fieldName) {
1034
805
  return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
1035
806
  }
1036
807
 
1037
- var cache$1 = createCache(1);
808
+ var cache$1 = cache$2(1);
1038
809
  function produceSuiteResult() {
1039
810
  var testObjects = useTestsFlat();
1040
811
  var ctxRef = { stateRef: useStateRef() };
@@ -1074,7 +845,7 @@ function hasRemainingTests(fieldName) {
1074
845
  return isNotEmpty(allIncomplete);
1075
846
  }
1076
847
 
1077
- var cache = createCache(20);
848
+ var cache = cache$2(20);
1078
849
  function produceFullResult() {
1079
850
  var testObjects = useTestsFlat();
1080
851
  var ctxRef = { stateRef: useStateRef() };
@@ -1133,28 +904,6 @@ function deferDoneCallback(doneCallback, fieldName) {
1133
904
  });
1134
905
  }
1135
906
 
1136
- function createBus() {
1137
- var listeners = {};
1138
- return {
1139
- emit: function (event, data) {
1140
- listener(event).forEach(function (handler) {
1141
- handler(data);
1142
- });
1143
- },
1144
- on: function (event, handler) {
1145
- listeners[event] = listener(event).concat(handler);
1146
- return {
1147
- off: function () {
1148
- listeners[event] = listener(event).filter(function (h) { return h !== handler; });
1149
- }
1150
- };
1151
- }
1152
- };
1153
- function listener(event) {
1154
- return listeners[event] || [];
1155
- }
1156
- }
1157
-
1158
907
  function omitOptionalFields() {
1159
908
  var optionalFields = useOptionalFields()[0];
1160
909
  if (isEmpty(optionalFields)) {
@@ -1162,7 +911,7 @@ function omitOptionalFields() {
1162
911
  }
1163
912
  var shouldOmit = {};
1164
913
  useSetTests(function (tests) {
1165
- return transform(tests, function (testObject) {
914
+ return nestedArray.transform(tests, function (testObject) {
1166
915
  var fieldName = testObject.fieldName;
1167
916
  if (hasOwnProperty(shouldOmit, fieldName)) {
1168
917
  verifyAndOmit(testObject);
@@ -1193,14 +942,10 @@ function omitOptionalFields() {
1193
942
  */
1194
943
  function removeTestFromState (testObject) {
1195
944
  useSetTests(function (tests) {
1196
- return transform(tests, function (test) { return (testObject !== test ? test : null); });
945
+ return nestedArray.transform(tests, function (test) { return (testObject !== test ? test : null); });
1197
946
  });
1198
947
  }
1199
948
 
1200
- function callEach(arr) {
1201
- return arr.forEach(function (fn) { return fn(); });
1202
- }
1203
-
1204
949
  /**
1205
950
  * Runs done callback per field when async tests are finished running.
1206
951
  */
@@ -1222,10 +967,10 @@ function runDoneCallbacks() {
1222
967
 
1223
968
  // eslint-disable-next-line max-lines-per-function
1224
969
  function initBus() {
1225
- var bus = createBus();
970
+ var vestBus = bus.createBus();
1226
971
  // Report a the completion of a test. There may be other tests with the same
1227
972
  // name that are still running, or not yet started.
1228
- bus.on(Events.TEST_COMPLETED, function (testObject) {
973
+ vestBus.on(Events.TEST_COMPLETED, function (testObject) {
1229
974
  if (testObject.isCanceled()) {
1230
975
  return;
1231
976
  }
@@ -1233,21 +978,21 @@ function initBus() {
1233
978
  runFieldCallbacks(testObject.fieldName);
1234
979
  if (!hasRemainingTests()) {
1235
980
  // When no more tests are running, emit the done event
1236
- bus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
981
+ vestBus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
1237
982
  }
1238
983
  });
1239
984
  // Report that the suite completed its synchronous test run.
1240
985
  // Async operations may still be running.
1241
- bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
986
+ vestBus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1242
987
  // Remove tests that are optional and need to be omitted
1243
988
  omitOptionalFields();
1244
989
  });
1245
990
  // Called when all the tests, including async, are done running
1246
- bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
991
+ vestBus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
1247
992
  runDoneCallbacks();
1248
993
  });
1249
994
  // Removes a certain field from the state.
1250
- bus.on(Events.REMOVE_FIELD, function (fieldName) {
995
+ vestBus.on(Events.REMOVE_FIELD, function (fieldName) {
1251
996
  useEachTestObject(function (testObject) {
1252
997
  if (matchingFieldName(testObject, fieldName)) {
1253
998
  testObject.cancel();
@@ -1256,14 +1001,14 @@ function initBus() {
1256
1001
  });
1257
1002
  });
1258
1003
  // Resets a certain field in the state.
1259
- bus.on(Events.RESET_FIELD, function (fieldName) {
1004
+ vestBus.on(Events.RESET_FIELD, function (fieldName) {
1260
1005
  useEachTestObject(function (testObject) {
1261
1006
  if (matchingFieldName(testObject, fieldName)) {
1262
1007
  testObject.reset();
1263
1008
  }
1264
1009
  });
1265
1010
  });
1266
- return bus;
1011
+ return vestBus;
1267
1012
  }
1268
1013
  function useBus() {
1269
1014
  var context$1 = context.useX();
@@ -1584,9 +1329,7 @@ function eager() {
1584
1329
  setMode(Modes.EAGER);
1585
1330
  }
1586
1331
  function shouldSkipBasedOnMode(testObject) {
1587
- if (isEager() && hasErrorsByTestObjects(testObject.fieldName))
1588
- return true;
1589
- return false;
1332
+ return isEager() && hasErrorsByTestObjects(testObject.fieldName);
1590
1333
  }
1591
1334
  function isEager() {
1592
1335
  return isMode(Modes.EAGER);
@@ -1675,9 +1418,7 @@ function __spreadArray(to, from, pack) {
1675
1418
  return to.concat(ar || Array.prototype.slice.call(from));
1676
1419
  }
1677
1420
 
1678
- function isPromise(value) {
1679
- return value && isFunction(value.then);
1680
- }
1421
+ bindNot(isStringValue);
1681
1422
 
1682
1423
  function isSameProfileTest(testObject1, testObject2) {
1683
1424
  return (testObject1.fieldName === testObject2.fieldName &&
@@ -1805,12 +1546,12 @@ function removeAllNextTestsInIsolate() {
1805
1546
  function useSetTestAtCursor(testObject) {
1806
1547
  var cursorPath = useCurrentPath();
1807
1548
  useSetTests(function (tests) {
1808
- return setValueAtPath(tests, cursorPath, testObject);
1549
+ return nestedArray.setValueAtPath(tests, cursorPath, testObject);
1809
1550
  });
1810
1551
  }
1811
1552
  function useGetTestAtCursor(tests) {
1812
1553
  var cursorPath = useCurrentPath();
1813
- return valueAtPath(tests, cursorPath);
1554
+ return nestedArray.valueAtPath(tests, cursorPath);
1814
1555
  }
1815
1556
  function testReorderDetected(prevTest, newTest) {
1816
1557
  return isNotEmpty(prevTest) && !isSameProfileTest(prevTest, newTest);
@@ -1874,7 +1615,7 @@ function registerTestObjectByTier(testObject) {
1874
1615
  /* eslint-disable jest/valid-title */
1875
1616
  // eslint-disable-next-line max-lines-per-function
1876
1617
  function bindTestMemo(test) {
1877
- var cache = createCache(10); // arbitrary cache size
1618
+ var cache = cache$2(10); // arbitrary cache size
1878
1619
  // eslint-disable-next-line max-statements
1879
1620
  function memo(fieldName) {
1880
1621
  var args = [];
@@ -1943,6 +1684,6 @@ function warn() {
1943
1684
  ctx.currentTest.warn();
1944
1685
  }
1945
1686
 
1946
- var VERSION = "4.4.1";
1687
+ var VERSION = "4.4.2-dev-ae93bf";
1947
1688
 
1948
1689
  export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
@@ -1 +1 @@
1
- import{createContext as t}from"context";export{enforce}from"n4s";var n,r=(n=0,function(){return"".concat(n++)});function e(t){return String(t)===t}function u(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),a(e.length,t)&&(e.length=t),u)}function r(t){return e.findIndex((function(n){var r=n[0];return s(t.length,r.length)&&t.every((function(t,n){return t===r[n]}))}))}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){-1<(t=r(t))&&e.splice(t,1)},n.get=function(t){return e[r(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return l(t)?t.apply(void 0,n):t}function p(t,n){var r;return null!==(r=d(t))&&void 0!==r?r:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var r=[],e=0;e<t.length;e++){var u=t[e];Array.isArray(u)?r.push(h(u,n)):(u=n(u),f(u)&&r.push(u))}return r}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function g(t,n){var r=0;for(n=n.slice(0,-1);r<n.length;r++){var e=n[r];t[e]=p(t[e],[]),t=t[e]}return t}var N,m=N||(N={});m[m.DEFAULT=0]="DEFAULT",m[m.SUITE=1]="SUITE",m[m.EACH=2]="EACH",m[m.SKIP_WHEN=3]="SKIP_WHEN",m[m.OMIT_WHEN=4]="OMIT_WHEN",m[m.GROUP=5]="GROUP";var y,R=y||(y={});function b(){var t=0;return{current:function(){return t},next:function(){t++}}}function S(t,n){return void 0===n&&(n=[]),{cursor:b(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var T=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:S(N.DEFAULT),mode:[y.ALL]},t)}));function O(){return T.useX().stateRef}function C(t){return O().optionalFields()[0][t]}function A(t,n){(0,O().optionalFields()[1])((function(r){var e;return i(r,((e={})[t]=d(n,r[t]),e))}))}function I(t){var n;return null===(n=C(t))||void 0===n?void 0:n[0]}function _(){k((function(t){return t}))}function k(t){(0,O().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function F(){return U().filter((function(t){return t.isPending()}))}var L=c();function U(){var t=O().testObjects()[0].current;return L([t],(function(){return E(t)}))}var G,P=G||(G={});P.Error="error",P.Warning="warning";var W=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=G.Error,this.status=w,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&e(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==M||(this.status=t)},t.prototype.warns=function(){return this.severity===G.Warning},t.prototype.setPending=function(){this.setStatus(H)},t.prototype.fail=function(){this.setStatus(this.warns()?X:x)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(j)},t.prototype.warn=function(){this.severity=G.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(D)},t.prototype.cancel=function(){this.setStatus(K),_()},t.prototype.reset=function(){this.status=w,_()},t.prototype.omit=function(){this.setStatus(M)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(H)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(M)},t.prototype.isUntested=function(){return this.statusEquals(w)},t.prototype.isFailing=function(){return this.statusEquals(x)},t.prototype.isCanceled=function(){return this.statusEquals(K)},t.prototype.isSkipped=function(){return this.statusEquals(D)},t.prototype.isPassing=function(){return this.statusEquals(j)},t.prototype.isWarning=function(){return this.statusEquals(X)},t.prototype.statusEquals=function(t){return this.status===t},t}(),w="UNTESTED",D="SKIPPED",x="FAILED",X="WARNING",j="PASSING",H="PENDING",K="CANCELED",M="OMITTED";function q(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function B(t){function n(t,n,u){return e.references.push(),r(t,d(n,u)),function(){return[e.references[t],function(n){return r(t,d(n,e.references[t]))}]}}function r(n,r){var i=e.references[n];e.references[n]=r,l(n=u[n][1])&&n(r,i),l(t)&&t()}var e={references:[]},u=[];return{registerStateKey:function(t,r){var e=u.length;return u.push([t,r]),n(e,t)},reset:function(){var t=e.references;e.references=[],u.forEach((function(r,e){return n(e,r[0],t[e])}))}}}function V(t,n){var r=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(r),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function Y(t){return null==t}function J(t){setTimeout((function(){throw Error(t)}),0)}function z(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,q(l(n));var r=S(t,Z());return t=T.run({isolate:r},(function(){return r.keys.prev=function(){var t=O().testObjects()[0].prev;return[].concat(g(t,Z())).reduce((function(t,n){return n instanceof W&&!Y(n.key)?(t[n.key]=n,t):t}),{})}(),k((function(t){var n=r.path;return g(t,n)[v(n)]=[],t})),n()})),Q().cursor.next(),t}function Q(){return T.useX().isolate}function Z(){var t=Q();return t.path.concat(t.cursor.current())}var $,tt=$||($={});tt.WARNINGS="warnings",tt.ERRORS="errors";var nt,rt=nt||(nt={});function et(t){return t===$.ERRORS?nt.ERROR_COUNT:nt.WARN_COUNT}function ut(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}rt.ERROR_COUNT="errorCount",rt.WARN_COUNT="warnCount";var it=u(ut);function ot(t,n){return!(!n||t.fieldName!==n)}var st=u((function(t,n){return t.groupName===n}));function at(t,n){return U().some((function(r){return ct(r,t,n)}))}function ct(t,n,r){return(r=!t.hasFailures()||r&&!ot(t,r))||(t=t.warns(),r=n===$.WARNINGS!=!!t),!r}function ft(t){return!!lt(t)||!at($.ERRORS,t)&&(!ut(U())&&!function(t){return it(F().filter((function(n){return dt(n,t)})))}(t)&&function(t){return U().every((function(n){return!(!t||ot(n,t))||pt(n,t)}))}(t))}function lt(t){return!!t&&!0===(null===(n=C(t))||void 0===n?void 0:n[1]);var n}function dt(t,n){return!(n&&!ot(t,n))&&!0!==I(t.fieldName)}function pt(t,n){return!(!n||ot(t,n))||(!0===I(t.fieldName)||t.isTested()||t.isOmitted())}function vt(){var t=T.useX().summary;return q(t),t}function ht(){var t=U(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var r=t.tests;r[n.fieldName]=Et(r,n),r[n.fieldName].valid=!1!==r[n.fieldName].valid&&ft(n.fieldName);var e=t.groups,u=n.groupName;return u&&(e[u]=e[u]||{},e[u][n.fieldName]=Et(e[u],n),r=e[u][n.fieldName],!1===e[u][n.fieldName].valid?n=!1:n=!!lt(n=n.fieldName)||!function(t,n,r){return U().some((function(e){return!st(e,n)&&ct(e,t,r)}))}($.ERRORS,u,n)&&!function(t,n){return it(F().filter((function(r){return!st(r,t)&&dt(r,n)})))}(u,n)&&function(t,n){return U().every((function(r){return!!st(r,t)||pt(r,n)}))}(u,n),r.valid=n),t}),n),n.valid=ft(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function Et(t,n){function r(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var e=n.fieldName,u=n.message;t[e]=t[e]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?r($.ERRORS):n.isWarning()&&r($.WARNINGS)),o}function gt(t,n,r){var e;return(null===(e=null==t?void 0:t[r])||void 0===e?void 0:e[n])||[]}function Nt(t,n){var r,e={},u=et(n);for(r in t)a(t[r][u],0)&&(e[r]=t[r][n]||[]);return e}function mt(t){return Rt($.ERRORS,t)}function yt(t){return Rt($.WARNINGS,t)}function Rt(t,n){var r=vt().tests;return n?gt(r,t,n):Nt(r,t)}function bt(t,n){return Tt(t,$.ERRORS,n)}function St(t,n){return Tt(t,$.WARNINGS,n)}function Tt(t,n,r){return t=vt().groups[t],r?gt(t,n,r):Nt(t,n)}function Ot(t){return At(nt.ERROR_COUNT,t)}function Ct(t){return At(nt.WARN_COUNT,t)}function At(t,n){var r,e=vt();return a(n?null===(r=e.tests[n])||void 0===r?void 0:r[t]:e[t],0)}function It(t,n){return kt($.ERRORS,t,n)}function _t(t,n){return kt($.WARNINGS,t,n)}function kt(t,n,r){var e,u,i=vt();if(t=et(t),!(n=i.groups[n]))return!1;if(r)return a(null===(e=n[r])||void 0===e?void 0:e[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function Ft(t){var n=vt();return t?!!Ut(n.tests,t):n.valid}function Lt(t,n){if(!(t=vt().groups[t]))return!1;if(n)return Ut(t,n);for(var r in t)if(!Ut(t,r))return!1;return!0}function Ut(t,n){var r;return!(null===(r=t[n])||void 0===r||!r.valid)}var Gt=c(1);function Pt(){var t=U(),n={stateRef:O()};return Gt([t],T.bind(n,(function(){var t=ht(),n=O().suiteName()[0],r={summary:t};return i(t,{getErrors:T.bind(r,mt),getErrorsByGroup:T.bind(r,bt),getWarnings:T.bind(r,yt),getWarningsByGroup:T.bind(r,St),hasErrors:T.bind(r,Ot),hasErrorsByGroup:T.bind(r,It),hasWarnings:T.bind(r,Ct),hasWarningsByGroup:T.bind(r,_t),isValid:T.bind(r,Ft),isValidByGroup:T.bind(r,Lt),suiteName:n})})))}function Wt(t){var n=F();return!ut(n)&&(t?n.some((function(n){return ot(n,t)})):it(n))}var wt=c(20);function Dt(){var t=U(),n={stateRef:O()};return wt([t],T.bind(n,(function(){return i({},Pt(),{done:T.bind(n,jt)})})))}function xt(t,n,r){return!(l(t)&&(!n||r.tests[n]&&!ut(r.tests[n].testCount)))}function Xt(t){return!(Wt()&&(!t||Wt(t)))}function jt(){function t(){return e(Pt())}for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var e=(n=n.reverse())[0];return n=n[1],r=Dt(),xt(e,n,r)?r:Xt(n)?(t(),r):(Ht(t,n),r)}function Ht(t,n){(0,O().testCallbacks()[1])((function(r){return n?r.fieldCallbacks[n]=(r.fieldCallbacks[n]||[]).concat(t):r.doneCallbacks.push(t),r}))}function Kt(t){return t.forEach((function(t){return t()}))}function Mt(){var t=function(){var t={};return{emit:function(n,r){(t[n]||[]).forEach((function(t){t(r)}))},on:function(n,r){return t[n]=(t[n]||[]).concat(r),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==r}))}}}}}();return t.on(Bt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var r=O().testCallbacks()[0].fieldCallbacks;n&&!Wt(n)&&Array.isArray(r[n])&&Kt(r[n]),Wt()||t.emit(Bt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Bt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),A(t.fieldName,(function(t){return[t[0],!0]})))}if(!ut(O().optionalFields()[0])){var n={};k((function(r){return h(r,(function(r){if(Object.prototype.hasOwnProperty.call(n,r.fieldName))t(r);else{var e=I(r.fieldName);l(e)&&(n[r.fieldName]=e(),t(r))}return r}))}))}}()})),t.on(Bt.ALL_RUNNING_TESTS_FINISHED,(function(){Kt(O().testCallbacks()[0].doneCallbacks)})),t.on(Bt.REMOVE_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&(n.cancel(),function(t){k((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Bt.RESET_FIELD,(function(t){U().forEach((function(n){ot(n,t)&&n.reset()}))})),t}function qt(){var t=T.useX();return q(t.bus),t.bus}var Bt,Vt=Bt||(Bt={});function Yt(t){return zt(0,"tests",t)}function Jt(t){return zt(1,"tests",t)}function zt(t,n,r){var u=T.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){e(r)&&(u.exclusion[n][r]=0===t)}))}function Qt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Zt(){var t,n=T.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t,n,r){if(r||2===arguments.length)for(var e,u=0,i=n.length;u<i;u++)!e&&u in n||(e||(e=Array.prototype.slice.call(n,0,u)),e[u]=n[u]);return t.concat(e||Array.prototype.slice.call(n))}function nn(t){var n=t.asyncTest,r=t.message;if(n&&l(n.then)){var u=qt().emit,i=O(),o=T.bind({stateRef:i},(function(){_(),u(Bt.TEST_COMPLETED,t)}));i=T.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function rn(t){var n=O().testObjects()[0].prev;if(ut(n))return en(t),t;var r=Z();if(n=g(n,r)[v(r)],!Y(t.key)){n=t.key,(r=Q().keys.prev[n])&&(t=r),r=t;var e=Q().keys.current;return Y(e[n])?e[n]=r:J('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!it(r=n)||r.fieldName===t.fieldName&&r.groupName===t.groupName||(Q().type===N.EACH||J("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=Q().cursor.current();k((function(n){return n.splice(t),n}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=Z();k((function(r){return g(r,n)[v(n)]=t,r}))}function un(t){var n=Q().cursor,r=y.EAGER;if(r=!(T.useX().mode[0]!==r||!at($.ERRORS,t.fieldName)))return t.skip(),rn(t),n.next(),t;if(r=rn(t),T.useX().omitted)return r.omit(),n.next(),r;if(function(t){var n=t.fieldName;if(t=t.groupName,T.useX().skipped)return!0;var r=T.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=T.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Zt())return!0;if(!0===e.groups[t])return!(i||!Qt(u)&&!1!==u[n])}return!!(t=!!Zt()&&!t)||!i&&!!Qt(u)&&!d(r[n])}(t))return r.skip(!!T.useX().skipped),n.next(),r;if(t!==r&&r.fieldName===t.fieldName&&r.groupName===t.groupName&&r.isPending()&&r.cancel(),en(t),t.isUntested()){r=qt();var e=function(t){return T.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),nn(t)):r.emit(Bt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(r=t.asyncTest)&&l(r.then)&&(t.setPending(),nn(t));return n.next(),t}function on(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var u=l(n[1])?n:tn([void 0],n,!0);n=u[0],r=u[1],u=u[2],q(e(t),an("fieldName","string")),q(l(r),an("Test callback","function"));var i=T.useX();return un(n=new W(t,r,{message:n,groupName:i.groupName,key:u}))}Vt.TEST_COMPLETED="test_completed",Vt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Vt.REMOVE_FIELD="remove_field",Vt.RESET_FIELD="reset_field",Vt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Yt.group=function(t){return zt(0,"groups",t)},Jt.group=function(t){return zt(1,"groups",t)};var sn=i(on,{memo:function(t){var n=c(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Q().cursor.current();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[O().suiteId()[0],r,u].concat(i),null===(e=n.get(u))?n(u,(function(){return t(r,s,o)})):e[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(r,s,o)}))):un(e[1])}}(on)});function an(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var cn="4.4.1";function fn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],q(l(e),"vest.create: Expected callback to be a function.");var u=Mt(),o=B();return t={stateRef:V(o,{suiteId:r(),suiteName:t}),bus:u},i(T.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),z({type:N.SUITE},(function(){e.apply(void 0,t)})),u.emit(Bt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:T.bind(t,Pt),remove:T.bind(t,(function(t){u.emit(Bt.REMOVE_FIELD,t)})),reset:o.reset,resetField:T.bind(t,(function(t){u.emit(Bt.RESET_FIELD,t)}))})}function ln(t,n){q(l(n),"each callback must be a function"),z({type:N.EACH},(function(){t.forEach((function(t,r){n(t,r)}))}))}function dn(){var t=y.EAGER;T.useX().mode[0]=t}function pn(t,n){q(e(t),$t("name must be a string")),q(l(n),$t("callback must be a function")),z({type:N.GROUP},(function(){T.run({groupName:t},n)}))}function vn(t){var n=T.useX(),r=n.inclusion;return n=n.exclusion,q(e(t)),r[t]=p(n.tests[t],!0),{when:function(n){var r=T.useX(),u=r.exclusion;r.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):e(n)?!!u.tests[n]:d(n,d(Pt))}}}}function hn(t,n){z({type:N.OMIT_WHEN},(function(){T.run({omitted:!!T.useX().omitted||d(t,d(Pt))},(function(){return n()}))}))}function En(t){if(Array.isArray(t)||e(t))[].concat(t).forEach((function(t){A(t,[!0,!1])}));else for(var n in t)A(n,[t[n],!1])}function gn(t,n){z({type:N.SKIP_WHEN},(function(){T.run({skipped:!!T.useX().skipped||d(t,d(Pt))},(function(){return n()}))}))}function Nn(){var t=T.useX("warn hook called outside of a running suite.");q(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{cn as VERSION,T as context,fn as create,ln as each,dn as eager,pn as group,vn as include,hn as omitWhen,Yt as only,En as optional,Jt as skip,gn as skipWhen,sn as test,Nn as warn};
1
+ import{createContext as t}from"context";import{isUndefined as n,isStringValue as e,assign as r,cache as i,optionalFunctionValue as u,nestedArray as o,asArray as s,genId as a,isFunction as c,isNullish as f,deferThrow as l,invariant as d,bindNot as p,either as v,isEmpty as E,isNotEmpty as N,isPositive as m,hasOwnProperty as h,isArray as g,callEach as y,bus as R,defaultTo as S,isPromise as C,isNull as T}from"vest-utils";export{enforce}from"n4s";var b,_=b||(b={});_[_.DEFAULT=0]="DEFAULT",_[_.SUITE=1]="SUITE",_[_.EACH=2]="EACH",_[_.SKIP_WHEN=3]="SKIP_WHEN",_[_.OMIT_WHEN=4]="OMIT_WHEN",_[_.GROUP=5]="GROUP";var I,O=I||(I={});function A(){var t=0;return{current:function(){return t},next:function(){t++}}}function k(t,n){return void 0===n&&(n=[]),{cursor:A(),keys:{current:{},prev:{}},path:n,type:t}}O[O.ALL=0]="ALL",O[O.EAGER=1]="EAGER";var L=t((function(t,n){return n?null:r({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:k(b.DEFAULT),mode:[I.ALL]},t)}));function F(){return L.useX().stateRef}function U(t){return F().optionalFields()[0][t]}function G(t,n){(0,F().optionalFields()[1])((function(e){var i;return r(e,((i={})[t]=u(n,e[t]),i))}))}function W(t){var n;return null===(n=U(t))||void 0===n?void 0:n[0]}function P(){D((function(t){return t}))}function D(t){(0,F().testObjects()[1])((function(n){return{prev:n.prev,current:s(t(n.current))}}))}function x(){return X().filter((function(t){return t.isPending()}))}var w=i();function X(){var t=F().testObjects()[0].current;return w([t],(function(){return o.flatten(t)}))}var H,K=H||(H={});K.Error="error",K.Warning="warning";var M=function(){function t(t,n,e){var r=void 0===e?{}:e;e=r.message;var i=r.groupName;r=r.key,this.key=null,this.id=a(),this.severity=H.Error,this.status=q,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),r&&(this.key=r)}return t.prototype.run=function(){try{var t=this.testFn()}catch(r){t=r,n(this.message)&&e(t)&&(this.message=r),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==Q||(this.status=t)},t.prototype.warns=function(){return this.severity===H.Warning},t.prototype.setPending=function(){this.setStatus(J)},t.prototype.fail=function(){this.setStatus(this.warns()?j:V)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(Y)},t.prototype.warn=function(){this.severity=H.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(B)},t.prototype.cancel=function(){this.setStatus(z),P()},t.prototype.reset=function(){this.status=q,P()},t.prototype.omit=function(){this.setStatus(Q)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(J)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(Q)},t.prototype.isUntested=function(){return this.statusEquals(q)},t.prototype.isFailing=function(){return this.statusEquals(V)},t.prototype.isCanceled=function(){return this.statusEquals(z)},t.prototype.isSkipped=function(){return this.statusEquals(B)},t.prototype.isPassing=function(){return this.statusEquals(Y)},t.prototype.isWarning=function(){return this.statusEquals(j)},t.prototype.statusEquals=function(t){return this.status===t},t}(),q="UNTESTED",B="SKIPPED",V="FAILED",j="WARNING",Y="PASSING",J="PENDING",z="CANCELED",Q="OMITTED";function Z(t){function n(t,n,i){return r.references.push(),e(t,u(n,i)),function(){return[r.references[t],function(n){return e(t,u(n,r.references[t]))}]}}function e(n,e){var u=r.references[n];r.references[n]=e,n=i[n][1],c(n)&&n(e,u),c(t)&&t()}var r={references:[]},i=[];return{registerStateKey:function(t,e){var r=i.length;return i.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],i.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function $(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function tt(t,n){t=void 0===(t=t.type)?b.DEFAULT:t,d(c(n));var e=k(t,et());return t=L.run({isolate:e},(function(){return e.keys.prev=function(){var t=F().testObjects()[0].prev;return s(o.getCurrent(t,et())).reduce((function(t,n){return n instanceof M&&!f(n.key)?(t[n.key]=n,t):t}),{})}(),D((function(t){return o.setValueAtPath(t,e.path,[])})),n()})),nt().cursor.next(),t}function nt(){return L.useX().isolate}function et(){var t=nt();return t.path.concat(t.cursor.current())}var rt,it=rt||(rt={});it.WARNINGS="warnings",it.ERRORS="errors";var ut,ot=ut||(ut={});function st(t){return t===rt.ERRORS?ut.ERROR_COUNT:ut.WARN_COUNT}function at(t,n){return!(!n||t.fieldName!==n)}ot.ERROR_COUNT="errorCount",ot.WARN_COUNT="warnCount";var ct=p((function(t,n){return t.groupName===n}));function ft(t,n){return X().some((function(e){return lt(e,t,n)}))}function lt(t,n,e){return!(!t.hasFailures()||e&&!at(t,e)||v(n===rt.WARNINGS,t.warns()))}function dt(t){if(pt(t))return!0;if(ft(rt.ERRORS,t))return!1;var n=X();return!E(n)&&!function(t){return N(x().filter((function(n){return vt(n,t)})))}(t)&&function(t){return X().every((function(n){return!(!t||at(n,t))||Et(n,t)}))}(t)}function pt(t){return!!t&&!0===(null===(n=U(t))||void 0===n?void 0:n[1]);var n}function vt(t,n){return!(n&&!at(t,n))&&!0!==W(t.fieldName)}function Et(t,n){return!(!n||at(t,n))||(!0===W(t.fieldName)||t.isTested()||t.isOmitted())}function Nt(){var t=L.useX().summary;return d(t),t}function mt(){var t=X(),n=r({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&dt(n.fieldName);var r=t.groups,i=n.groupName;return i&&(r[i]=r[i]||{},r[i][n.fieldName]=ht(r[i],n),e=r[i][n.fieldName],!1===r[i][n.fieldName].valid?n=!1:n=!!pt(n=n.fieldName)||!function(t,n,e){return X().some((function(r){return!ct(r,n)&&lt(r,t,e)}))}(rt.ERRORS,i,n)&&!function(t,n){return N(x().filter((function(e){return!ct(e,t)&&vt(e,n)})))}(i,n)&&function(t,n){return X().every((function(e){return!!ct(e,t)||Et(e,n)}))}(i,n),e.valid=n),t}),n),n.valid=dt(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=st(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var i=n.fieldName,u=n.message;t[i]=t[i]||r({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[i];return n.isNonActionable()||(t[i].testCount++,n.isFailing()?e(rt.ERRORS):n.isWarning()&&e(rt.WARNINGS)),o}function gt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function yt(t,n){var e,r={},i=st(n);for(e in t)m(t[e][i])&&(r[e]=t[e][n]||[]);return r}function Rt(t){return Ct(rt.ERRORS,t)}function St(t){return Ct(rt.WARNINGS,t)}function Ct(t,n){var e=Nt().tests;return n?gt(e,t,n):yt(e,t)}function Tt(t,n){return _t(t,rt.ERRORS,n)}function bt(t,n){return _t(t,rt.WARNINGS,n)}function _t(t,n,e){return t=Nt().groups[t],e?gt(t,n,e):yt(t,n)}function It(t){return At(ut.ERROR_COUNT,t)}function Ot(t){return At(ut.WARN_COUNT,t)}function At(t,n){var e,r=Nt();return m(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t])}function kt(t,n){return Ft(rt.ERRORS,t,n)}function Lt(t,n){return Ft(rt.WARNINGS,t,n)}function Ft(t,n,e){var r,i,u=Nt();if(t=st(t),!(n=u.groups[n]))return!1;if(e)return m(null===(r=n[e])||void 0===r?void 0:r[t]);for(var o in n)if(m(null===(i=n[o])||void 0===i?void 0:i[t]))return!0;return!1}function Ut(t){var n=Nt();return t?!!Wt(n.tests,t):n.valid}function Gt(t,n){if(!(t=Nt().groups[t]))return!1;if(n)return Wt(t,n);for(var e in t)if(!Wt(t,e))return!1;return!0}function Wt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Pt=i(1);function Dt(){var t=X(),n={stateRef:F()};return Pt([t],L.bind(n,(function(){var t=mt(),n=F().suiteName()[0],e={summary:t};return r(t,{getErrors:L.bind(e,Rt),getErrorsByGroup:L.bind(e,Tt),getWarnings:L.bind(e,St),getWarningsByGroup:L.bind(e,bt),hasErrors:L.bind(e,It),hasErrorsByGroup:L.bind(e,kt),hasWarnings:L.bind(e,Ot),hasWarningsByGroup:L.bind(e,Lt),isValid:L.bind(e,Ut),isValidByGroup:L.bind(e,Gt),suiteName:n})})))}function xt(t){var n=x();return!E(n)&&(t?n.some((function(n){return at(n,t)})):N(n))}var wt=i(20);function Xt(){var t=X(),n={stateRef:F()};return wt([t],L.bind(n,(function(){return r({},Dt(),{done:L.bind(n,Mt)})})))}function Ht(t,n,e){return!(c(t)&&(!n||e.tests[n]&&!E(e.tests[n].testCount)))}function Kt(t){return!(xt()&&(!t||xt(t)))}function Mt(){function t(){return r(Dt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Xt(),Ht(r,n,e)?e:Kt(n)?(t(),e):(qt(t,n),e)}function qt(t,n){(0,F().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Bt(){var t=R.createBus();return t.on(jt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=F().testCallbacks()[0].fieldCallbacks;n&&!xt(n)&&g(e[n])&&y(e[n]),xt()||t.emit(jt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(jt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){e[t.fieldName]&&(t.omit(),G(t.fieldName,(function(t){return[t[0],!0]})))}var n=F().optionalFields()[0];if(!E(n)){var e={};D((function(n){return o.transform(n,(function(n){if(h(e,n.fieldName))t(n);else{var r=W(n.fieldName);c(r)&&(e[n.fieldName]=r(),t(n))}return n}))}))}}()})),t.on(jt.ALL_RUNNING_TESTS_FINISHED,(function(){var t=F().testCallbacks()[0].doneCallbacks;y(t)})),t.on(jt.REMOVE_FIELD,(function(t){X().forEach((function(n){at(n,t)&&(n.cancel(),function(t){D((function(n){return o.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(jt.RESET_FIELD,(function(t){X().forEach((function(n){at(n,t)&&n.reset()}))})),t}function Vt(){var t=L.useX();return d(t.bus),t.bus}var jt,Yt=jt||(jt={});function Jt(t){return Qt(0,"tests",t)}function zt(t){return Qt(1,"tests",t)}function Qt(t,n,r){var i=L.useX("hook called outside of a running suite.");r&&s(r).forEach((function(r){e(r)&&(i.exclusion[n][r]=0===t)}))}function Zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function $t(){var t,n=L.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function tn(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function nn(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function en(t){var n=t.asyncTest,r=t.message;if(C(n)){var i=Vt().emit,u=F(),o=L.bind({stateRef:u},(function(){P(),i(jt.TEST_COMPLETED,t)}));u=L.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=e(n)?n:r,t.fail(),o())}));try{n.then(o,u)}catch(t){u()}}}function rn(t){var n=F().testObjects()[0].prev;if(E(n))return un(t),t;var e=et();if(n=o.valueAtPath(n,e),!f(t.key)){n=t.key,(e=nt().keys.prev[n])&&(t=e),e=t;var r=nt().keys.current;return f(r[n])?r[n]=e: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.")),un(t),t}return!N(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(nt().type===b.EACH||l("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=nt().cursor.current();D((function(n){return n.splice(t),n}))}(),n=null),un(t=S(n,t)),t}function un(t){var n=et();D((function(e){return o.setValueAtPath(e,n,t)}))}function on(t){var n=nt().cursor,e=I.EAGER;if(L.useX().mode[0]===e&&ft(rt.ERRORS,t.fieldName))return t.skip(),rn(t),n.next(),t;if(e=rn(t),L.useX().omitted)return e.omit(),n.next(),e;if(function(t){var n=t.fieldName;if(t=t.groupName,L.useX().skipped)return!0;var e=L.useX(),r=e.exclusion;e=e.inclusion;var i=r.tests,o=i[n];if(!1===o)return!0;if(o=!0===o,t){var s=L.useX().exclusion.groups;if(s=h(s,t)?!1===s[t]:$t())return!0;if(!0===r.groups[t])return!(o||!Zt(i)&&!1!==i[n])}return!!(t=!!$t()&&!t)||!o&&!!Zt(i)&&!u(e[n])}(t))return e.skip(!!L.useX().skipped),n.next(),e;if(t!==e&&e.fieldName===t.fieldName&&e.groupName===t.groupName&&e.isPending()&&e.cancel(),un(t),t.isUntested()){e=Vt();var r=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{C(r)?(t.asyncTest=r,t.setPending(),en(t)):e.emit(jt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else C(t.asyncTest)&&(t.setPending(),en(t));return n.next(),t}function sn(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var i=c(n[1])?n:nn([void 0],n,!0);n=i[0],r=i[1],i=i[2],d(e(t),ln("fieldName","string")),d(c(r),ln("Test callback","function"));var u=L.useX();return on(n=new M(t,r,{message:n,groupName:u.groupName,key:i}))}Yt.TEST_COMPLETED="test_completed",Yt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Yt.REMOVE_FIELD="remove_field",Yt.RESET_FIELD="reset_field",Yt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Jt.group=function(t){return Qt(0,"groups",t)},zt.group=function(t){return Qt(1,"groups",t)},p(e);var an,cn,fn=r(sn,{memo:(an=sn,cn=i(10),function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];e=nt().cursor.current();var r=(n=n.reverse())[0],i=n[1],u=n[2];return e=[F().suiteId()[0],t,e].concat(r),n=cn.get(e),T(n)?cn(e,(function(){return an(t,u,i)})):n[1].isCanceled()?(cn.invalidate(e),cn(e,(function(){return an(t,u,i)}))):on(n[1])})});function ln(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var dn="4.4.2-dev-ae93bf";function pn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],d(c(e),"vest.create: Expected callback to be a function.");var i=Bt(),u=Z();return t={stateRef:$(u,{suiteId:a(),suiteName:t}),bus:i},r(L.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return u.reset(),tt({type:b.SUITE},(function(){e.apply(void 0,t)})),i.emit(jt.SUITE_CALLBACK_DONE_RUNNING),Xt()})),{get:L.bind(t,Dt),remove:L.bind(t,(function(t){i.emit(jt.REMOVE_FIELD,t)})),reset:u.reset,resetField:L.bind(t,(function(t){i.emit(jt.RESET_FIELD,t)}))})}function vn(t,n){d(c(n),"each callback must be a function"),tt({type:b.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function En(){var t=I.EAGER;L.useX().mode[0]=t}function Nn(t,n){d(e(t),tn("name must be a string")),d(c(n),tn("callback must be a function")),tt({type:b.GROUP},(function(){L.run({groupName:t},n)}))}function mn(t){var n=L.useX(),r=n.inclusion;return n=n.exclusion,d(e(t)),r[t]=S(n.tests[t],!0),{when:function(n){var r=L.useX(),i=r.exclusion;r.inclusion[t]=function(){return h(i.tests,t)?S(i.tests[t],!0):e(n)?!!i.tests[n]:u(n,u(Dt))}}}}function hn(t,n){tt({type:b.OMIT_WHEN},(function(){L.run({omitted:!!L.useX().omitted||u(t,u(Dt))},(function(){return n()}))}))}function gn(t){if(g(t)||e(t))s(t).forEach((function(t){G(t,[!0,!1])}));else for(var n in t)G(n,[t[n],!1])}function yn(t,n){tt({type:b.SKIP_WHEN},(function(){L.run({skipped:!!L.useX().skipped||u(t,u(Dt))},(function(){return n()}))}))}function Rn(){var t=L.useX("warn hook called outside of a running suite.");d(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{dn as VERSION,L as context,pn as create,vn as each,En as eager,Nn as group,mn as include,hn as omitWhen,Jt as only,gn as optional,zt as skip,yn as skipWhen,fn as test,Rn as warn};
@@ -4,6 +4,17 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.classnames = factory());
5
5
  }(this, (function () { 'use strict';
6
6
 
7
+ function isNumeric(value) {
8
+ var str = String(value);
9
+ var num = Number(value);
10
+ var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
11
+ return Boolean(result);
12
+ }
13
+
14
+ function greaterThan(value, gt) {
15
+ return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
16
+ }
17
+
7
18
  function isFunction(value) {
8
19
  return typeof value === 'function';
9
20
  }
@@ -16,9 +27,9 @@
16
27
  return isFunction(value) ? value.apply(void 0, args) : value;
17
28
  }
18
29
 
19
- function defaultTo(callback, defaultValue) {
30
+ function defaultTo(value, defaultValue) {
20
31
  var _a;
21
- return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
32
+ return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
22
33
  }
23
34
 
24
35
  /**
@@ -42,17 +53,6 @@
42
53
  : new Error(message ? optionalFunctionValue(message) : message);
43
54
  }
44
55
 
45
- function isNumeric(value) {
46
- var str = String(value);
47
- var num = Number(value);
48
- var result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
49
- return Boolean(result);
50
- }
51
-
52
- function greaterThan(value, gt) {
53
- return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
54
- }
55
-
56
56
  function isPositive(value) {
57
57
  return greaterThan(value, 0);
58
58
  }
@@ -1 +1 @@
1
- "use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return"function"==typeof t?t.apply(void 0,n):t}function n(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function e(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}function r(n){function r(r,o){var i,u;return r=o?null===(i=n.tests[o])||void 0===i?void 0:i[r]:n[r],e(i=null!==(u=t(r))&&void 0!==u?u:0,0)}!function(n,e){if(!n)throw e instanceof String?e.valueOf():Error(e?t(e):e)}(n&&Object.prototype.hasOwnProperty.call(n,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return r(u.ERROR_COUNT,t)},tested:function(t){return t?Object.prototype.hasOwnProperty.call(o,t)?o[t]:(o[t]=Object.prototype.hasOwnProperty.call(n.tests,t)&&e(n.tests[t].testCount,0),i.tested(t)):e(n.testCount,0)},untested:function(t){return 0===n.testCount||!i.tested(t)},valid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},warning:function(t){return r(u.WARN_COUNT,t)}};return i}var o,i,u;return(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),function(t,n){void 0===n&&(n={});var e=r(t);return function(t){var r,o=[];for(r in n){var i=r;"function"==typeof e[i]&&e[i](t)&&o.push(n[i])}return o.join(" ")}}}));
1
+ "use strict";!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=n()}(this,(function(){function t(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function n(n,e){return t(n)&&t(e)&&Number(n)>Number(e)}function e(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return"function"==typeof t?t.apply(void 0,n):t}function r(t){function r(r,o){var i,u;return r=o?null===(i=t.tests[o])||void 0===i?void 0:i[r]:t[r],n(i=null!==(u=e(r))&&void 0!==u?u:e(0),0)}!function(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?e(n):n)}(t&&Object.prototype.hasOwnProperty.call(t,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var o={},i={invalid:function(t){return r(u.ERROR_COUNT,t)},tested:function(e){return e?Object.prototype.hasOwnProperty.call(o,e)?o[e]:(o[e]=Object.prototype.hasOwnProperty.call(t.tests,e)&&n(t.tests[e].testCount,0),i.tested(e)):n(t.testCount,0)},untested:function(n){return 0===t.testCount||!i.tested(n)},valid:function(n){var e;return n?!(null===(e=t.tests[n])||void 0===e||!e.valid):t.valid},warning:function(t){return r(u.WARN_COUNT,t)}};return i}var o,i,u;return(i=o||(o={})).WARNINGS="warnings",i.ERRORS="errors",function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(u||(u={})),function(t,n){void 0===n&&(n={});var e=r(t);return function(t){var r,o=[];for(r in n){var i=r;"function"==typeof e[i]&&e[i](t)&&o.push(n[i])}return o.join(" ")}}}));