vest 4.4.1 → 4.4.2-dev-afe5de

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 +94 -293
  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 +19 -218
  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,42 +1,12 @@
1
1
  export { enforce } from 'n4s';
2
+ import { isUndefined, isStringValue, assign, 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
10
  function isNumeric(value) {
41
11
  var str = String(value);
42
12
  var num = Number(value);
@@ -97,85 +67,6 @@ function createCache(maxSize) {
97
67
  }
98
68
  }
99
69
 
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
70
  var IsolateTypes;
180
71
  (function (IsolateTypes) {
181
72
  IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
@@ -305,7 +196,7 @@ function useAllIncomplete() {
305
196
  var flatCache = createCache();
306
197
  function useTestsFlat() {
307
198
  var current = useTestObjects()[0].current;
308
- return flatCache([current], function () { return flatten(current); });
199
+ return flatCache([current], function () { return nestedArray.flatten(current); });
309
200
  }
310
201
  function useEachTestObject(handler) {
311
202
  var testObjects = useTestsFlat();
@@ -456,20 +347,6 @@ var STATUS_PENDING = 'PENDING';
456
347
  var STATUS_CANCELED = 'CANCELED';
457
348
  var STATUS_OMITTED = 'OMITTED';
458
349
 
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
350
  // eslint-disable-next-line max-lines-per-function
474
351
  function createState(onStateChange) {
475
352
  var state = {
@@ -553,19 +430,9 @@ function createStateRef(state, _a) {
553
430
  };
554
431
  }
555
432
 
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
433
  function usePrevKeys() {
567
434
  var prev = useTestObjects()[0].prev;
568
- return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
435
+ return asArray(nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
569
436
  if (!(testObject instanceof VestTest)) {
570
437
  return prevKeys;
571
438
  }
@@ -597,7 +464,7 @@ function isolate(_a, callback) {
597
464
  var isolate = generateIsolate(type, useCurrentPath());
598
465
  var output = context.run({ isolate: isolate }, function () {
599
466
  isolate.keys.prev = usePrevKeys();
600
- useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
467
+ useSetTests(function (tests) { return nestedArray.setValueAtPath(tests, isolate.path, []); });
601
468
  var res = callback();
602
469
  return res;
603
470
  });
@@ -647,34 +514,6 @@ function countKeyBySeverity(severity) {
647
514
  : SeverityCount.WARN_COUNT;
648
515
  }
649
516
 
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
517
  function nonMatchingFieldName(testObject, fieldName) {
679
518
  return !!fieldName && !matchingFieldName(testObject, fieldName);
680
519
  }
@@ -687,10 +526,6 @@ function matchingGroupName(testObject, groupName) {
687
526
  return testObject.groupName === groupName;
688
527
  }
689
528
 
690
- function either(a, b) {
691
- return !!a !== !!b;
692
- }
693
-
694
529
  /**
695
530
  * Checks that a given test object matches the currently specified severity level
696
531
  */
@@ -914,10 +749,6 @@ function baseTestStats() {
914
749
  });
915
750
  }
916
751
 
917
- function isPositive(value) {
918
- return greaterThan(value, 0);
919
- }
920
-
921
752
  // calls collectAll or getByFieldName depending on whether fieldName is provided
922
753
  function gatherFailures(testGroup, severityKey, fieldName) {
923
754
  return fieldName
@@ -1133,28 +964,6 @@ function deferDoneCallback(doneCallback, fieldName) {
1133
964
  });
1134
965
  }
1135
966
 
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
967
  function omitOptionalFields() {
1159
968
  var optionalFields = useOptionalFields()[0];
1160
969
  if (isEmpty(optionalFields)) {
@@ -1162,7 +971,7 @@ function omitOptionalFields() {
1162
971
  }
1163
972
  var shouldOmit = {};
1164
973
  useSetTests(function (tests) {
1165
- return transform(tests, function (testObject) {
974
+ return nestedArray.transform(tests, function (testObject) {
1166
975
  var fieldName = testObject.fieldName;
1167
976
  if (hasOwnProperty(shouldOmit, fieldName)) {
1168
977
  verifyAndOmit(testObject);
@@ -1193,14 +1002,10 @@ function omitOptionalFields() {
1193
1002
  */
1194
1003
  function removeTestFromState (testObject) {
1195
1004
  useSetTests(function (tests) {
1196
- return transform(tests, function (test) { return (testObject !== test ? test : null); });
1005
+ return nestedArray.transform(tests, function (test) { return (testObject !== test ? test : null); });
1197
1006
  });
1198
1007
  }
1199
1008
 
1200
- function callEach(arr) {
1201
- return arr.forEach(function (fn) { return fn(); });
1202
- }
1203
-
1204
1009
  /**
1205
1010
  * Runs done callback per field when async tests are finished running.
1206
1011
  */
@@ -1222,10 +1027,10 @@ function runDoneCallbacks() {
1222
1027
 
1223
1028
  // eslint-disable-next-line max-lines-per-function
1224
1029
  function initBus() {
1225
- var bus = createBus();
1030
+ var vestBus = bus.createBus();
1226
1031
  // Report a the completion of a test. There may be other tests with the same
1227
1032
  // name that are still running, or not yet started.
1228
- bus.on(Events.TEST_COMPLETED, function (testObject) {
1033
+ vestBus.on(Events.TEST_COMPLETED, function (testObject) {
1229
1034
  if (testObject.isCanceled()) {
1230
1035
  return;
1231
1036
  }
@@ -1233,21 +1038,21 @@ function initBus() {
1233
1038
  runFieldCallbacks(testObject.fieldName);
1234
1039
  if (!hasRemainingTests()) {
1235
1040
  // When no more tests are running, emit the done event
1236
- bus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
1041
+ vestBus.emit(Events.ALL_RUNNING_TESTS_FINISHED);
1237
1042
  }
1238
1043
  });
1239
1044
  // Report that the suite completed its synchronous test run.
1240
1045
  // Async operations may still be running.
1241
- bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1046
+ vestBus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1242
1047
  // Remove tests that are optional and need to be omitted
1243
1048
  omitOptionalFields();
1244
1049
  });
1245
1050
  // Called when all the tests, including async, are done running
1246
- bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
1051
+ vestBus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
1247
1052
  runDoneCallbacks();
1248
1053
  });
1249
1054
  // Removes a certain field from the state.
1250
- bus.on(Events.REMOVE_FIELD, function (fieldName) {
1055
+ vestBus.on(Events.REMOVE_FIELD, function (fieldName) {
1251
1056
  useEachTestObject(function (testObject) {
1252
1057
  if (matchingFieldName(testObject, fieldName)) {
1253
1058
  testObject.cancel();
@@ -1256,14 +1061,14 @@ function initBus() {
1256
1061
  });
1257
1062
  });
1258
1063
  // Resets a certain field in the state.
1259
- bus.on(Events.RESET_FIELD, function (fieldName) {
1064
+ vestBus.on(Events.RESET_FIELD, function (fieldName) {
1260
1065
  useEachTestObject(function (testObject) {
1261
1066
  if (matchingFieldName(testObject, fieldName)) {
1262
1067
  testObject.reset();
1263
1068
  }
1264
1069
  });
1265
1070
  });
1266
- return bus;
1071
+ return vestBus;
1267
1072
  }
1268
1073
  function useBus() {
1269
1074
  var context$1 = context.useX();
@@ -1584,9 +1389,7 @@ function eager() {
1584
1389
  setMode(Modes.EAGER);
1585
1390
  }
1586
1391
  function shouldSkipBasedOnMode(testObject) {
1587
- if (isEager() && hasErrorsByTestObjects(testObject.fieldName))
1588
- return true;
1589
- return false;
1392
+ return isEager() && hasErrorsByTestObjects(testObject.fieldName);
1590
1393
  }
1591
1394
  function isEager() {
1592
1395
  return isMode(Modes.EAGER);
@@ -1675,9 +1478,7 @@ function __spreadArray(to, from, pack) {
1675
1478
  return to.concat(ar || Array.prototype.slice.call(from));
1676
1479
  }
1677
1480
 
1678
- function isPromise(value) {
1679
- return value && isFunction(value.then);
1680
- }
1481
+ bindNot(isStringValue);
1681
1482
 
1682
1483
  function isSameProfileTest(testObject1, testObject2) {
1683
1484
  return (testObject1.fieldName === testObject2.fieldName &&
@@ -1805,12 +1606,12 @@ function removeAllNextTestsInIsolate() {
1805
1606
  function useSetTestAtCursor(testObject) {
1806
1607
  var cursorPath = useCurrentPath();
1807
1608
  useSetTests(function (tests) {
1808
- return setValueAtPath(tests, cursorPath, testObject);
1609
+ return nestedArray.setValueAtPath(tests, cursorPath, testObject);
1809
1610
  });
1810
1611
  }
1811
1612
  function useGetTestAtCursor(tests) {
1812
1613
  var cursorPath = useCurrentPath();
1813
- return valueAtPath(tests, cursorPath);
1614
+ return nestedArray.valueAtPath(tests, cursorPath);
1814
1615
  }
1815
1616
  function testReorderDetected(prevTest, newTest) {
1816
1617
  return isNotEmpty(prevTest) && !isSameProfileTest(prevTest, newTest);
@@ -1943,6 +1744,6 @@ function warn() {
1943
1744
  ctx.currentTest.warn();
1944
1745
  }
1945
1746
 
1946
- var VERSION = "4.4.1";
1747
+ var VERSION = "4.4.2-dev-afe5de";
1947
1748
 
1948
1749
  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,optionalFunctionValue as i,nestedArray as u,asArray as o,genId as s,isFunction as a,isNullish as c,deferThrow as f,invariant as l,bindNot as d,either as v,isEmpty as p,isNotEmpty as N,isPositive as E,hasOwnProperty as m,isArray as g,callEach as h,bus as y,defaultTo as R,isPromise as S,isNull as b}from"vest-utils";export{enforce}from"n4s";function C(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function T(t){function n(e,i){var u=n.get(e);return u?u[1]:(i=i(),r.unshift([e.concat(),i]),e=r.length,u=t,C(e)&&C(u)&&Number(e)>Number(u)&&(r.length=t),i)}function e(t){return r.findIndex((function(n){var e=n[0];return function(t,n){return C(t)&&C(n)&&Number(t)===Number(n)}(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var I,_=I||(I={});_[_.DEFAULT=0]="DEFAULT",_[_.SUITE=1]="SUITE",_[_.EACH=2]="EACH",_[_.SKIP_WHEN=3]="SKIP_WHEN",_[_.OMIT_WHEN=4]="OMIT_WHEN",_[_.GROUP=5]="GROUP";var O,A=O||(O={});function k(){var t=0;return{current:function(){return t},next:function(){t++}}}function F(t,n){return void 0===n&&(n=[]),{cursor:k(),keys:{current:{},prev:{}},path:n,type:t}}A[A.ALL=0]="ALL",A[A.EAGER=1]="EAGER";var L=t((function(t,n){return n?null:r({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:F(I.DEFAULT),mode:[O.ALL]},t)}));function U(){return L.useX().stateRef}function G(t){return U().optionalFields()[0][t]}function W(t,n){(0,U().optionalFields()[1])((function(e){var u;return r(e,((u={})[t]=i(n,e[t]),u))}))}function P(t){var n;return null===(n=G(t))||void 0===n?void 0:n[0]}function D(){x((function(t){return t}))}function x(t){(0,U().testObjects()[1])((function(n){return{prev:n.prev,current:o(t(n.current))}}))}function w(){return H().filter((function(t){return t.isPending()}))}var X=T();function H(){var t=U().testObjects()[0].current;return X([t],(function(){return u.flatten(t)}))}var K,M=K||(K={});M.Error="error",M.Warning="warning";var q=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=s(),this.severity=K.Error,this.status=B,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!==Z||(this.status=t)},t.prototype.warns=function(){return this.severity===K.Warning},t.prototype.setPending=function(){this.setStatus(z)},t.prototype.fail=function(){this.setStatus(this.warns()?Y:j)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(J)},t.prototype.warn=function(){this.severity=K.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(V)},t.prototype.cancel=function(){this.setStatus(Q),D()},t.prototype.reset=function(){this.status=B,D()},t.prototype.omit=function(){this.setStatus(Z)},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(z)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(Z)},t.prototype.isUntested=function(){return this.statusEquals(B)},t.prototype.isFailing=function(){return this.statusEquals(j)},t.prototype.isCanceled=function(){return this.statusEquals(Q)},t.prototype.isSkipped=function(){return this.statusEquals(V)},t.prototype.isPassing=function(){return this.statusEquals(J)},t.prototype.isWarning=function(){return this.statusEquals(Y)},t.prototype.statusEquals=function(t){return this.status===t},t}(),B="UNTESTED",V="SKIPPED",j="FAILED",Y="WARNING",J="PASSING",z="PENDING",Q="CANCELED",Z="OMITTED";function $(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,n=u[n][1],a(n)&&n(e,i),a(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function tt(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 nt(t,n){t=void 0===(t=t.type)?I.DEFAULT:t,l(a(n));var e=F(t,rt());return t=L.run({isolate:e},(function(){return e.keys.prev=function(){var t=U().testObjects()[0].prev;return o(u.getCurrent(t,rt())).reduce((function(t,n){return n instanceof q&&!c(n.key)?(t[n.key]=n,t):t}),{})}(),x((function(t){return u.setValueAtPath(t,e.path,[])})),n()})),et().cursor.next(),t}function et(){return L.useX().isolate}function rt(){var t=et();return t.path.concat(t.cursor.current())}var it,ut=it||(it={});ut.WARNINGS="warnings",ut.ERRORS="errors";var ot,st=ot||(ot={});function at(t){return t===it.ERRORS?ot.ERROR_COUNT:ot.WARN_COUNT}function ct(t,n){return!(!n||t.fieldName!==n)}st.ERROR_COUNT="errorCount",st.WARN_COUNT="warnCount";var ft=d((function(t,n){return t.groupName===n}));function lt(t,n){return H().some((function(e){return dt(e,t,n)}))}function dt(t,n,e){return!(!t.hasFailures()||e&&!ct(t,e)||v(n===it.WARNINGS,t.warns()))}function vt(t){if(pt(t))return!0;if(lt(it.ERRORS,t))return!1;var n=H();return!p(n)&&!function(t){return N(w().filter((function(n){return Nt(n,t)})))}(t)&&function(t){return H().every((function(n){return!(!t||ct(n,t))||Et(n,t)}))}(t)}function pt(t){return!!t&&!0===(null===(n=G(t))||void 0===n?void 0:n[1]);var n}function Nt(t,n){return!(n&&!ct(t,n))&&!0!==P(t.fieldName)}function Et(t,n){return!(!n||ct(t,n))||(!0===P(t.fieldName)||t.isTested()||t.isOmitted())}function mt(){var t=L.useX().summary;return l(t),t}function gt(){var t=H(),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&&vt(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 H().some((function(r){return!ft(r,n)&&dt(r,t,e)}))}(it.ERRORS,i,n)&&!function(t,n){return N(w().filter((function(e){return!ft(e,t)&&Nt(e,n)})))}(i,n)&&function(t,n){return H().every((function(e){return!!ft(e,t)||Et(e,n)}))}(i,n),e.valid=n),t}),n),n.valid=vt(),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=at(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(it.ERRORS):n.isWarning()&&e(it.WARNINGS)),o}function yt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Rt(t,n){var e,r={},i=at(n);for(e in t)E(t[e][i])&&(r[e]=t[e][n]||[]);return r}function St(t){return Ct(it.ERRORS,t)}function bt(t){return Ct(it.WARNINGS,t)}function Ct(t,n){var e=mt().tests;return n?yt(e,t,n):Rt(e,t)}function Tt(t,n){return _t(t,it.ERRORS,n)}function It(t,n){return _t(t,it.WARNINGS,n)}function _t(t,n,e){return t=mt().groups[t],e?yt(t,n,e):Rt(t,n)}function Ot(t){return kt(ot.ERROR_COUNT,t)}function At(t){return kt(ot.WARN_COUNT,t)}function kt(t,n){var e,r=mt();return E(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t])}function Ft(t,n){return Ut(it.ERRORS,t,n)}function Lt(t,n){return Ut(it.WARNINGS,t,n)}function Ut(t,n,e){var r,i,u=mt();if(t=at(t),!(n=u.groups[n]))return!1;if(e)return E(null===(r=n[e])||void 0===r?void 0:r[t]);for(var o in n)if(E(null===(i=n[o])||void 0===i?void 0:i[t]))return!0;return!1}function Gt(t){var n=mt();return t?!!Pt(n.tests,t):n.valid}function Wt(t,n){if(!(t=mt().groups[t]))return!1;if(n)return Pt(t,n);for(var e in t)if(!Pt(t,e))return!1;return!0}function Pt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Dt=T(1);function xt(){var t=H(),n={stateRef:U()};return Dt([t],L.bind(n,(function(){var t=gt(),n=U().suiteName()[0],e={summary:t};return r(t,{getErrors:L.bind(e,St),getErrorsByGroup:L.bind(e,Tt),getWarnings:L.bind(e,bt),getWarningsByGroup:L.bind(e,It),hasErrors:L.bind(e,Ot),hasErrorsByGroup:L.bind(e,Ft),hasWarnings:L.bind(e,At),hasWarningsByGroup:L.bind(e,Lt),isValid:L.bind(e,Gt),isValidByGroup:L.bind(e,Wt),suiteName:n})})))}function wt(t){var n=w();return!p(n)&&(t?n.some((function(n){return ct(n,t)})):N(n))}var Xt=T(20);function Ht(){var t=H(),n={stateRef:U()};return Xt([t],L.bind(n,(function(){return r({},xt(),{done:L.bind(n,qt)})})))}function Kt(t,n,e){return!(a(t)&&(!n||e.tests[n]&&!p(e.tests[n].testCount)))}function Mt(t){return!(wt()&&(!t||wt(t)))}function qt(){function t(){return r(xt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Ht(),Kt(r,n,e)?e:Mt(n)?(t(),e):(Bt(t,n),e)}function Bt(t,n){(0,U().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Vt(){var t=y.createBus();return t.on(Yt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=U().testCallbacks()[0].fieldCallbacks;n&&!wt(n)&&g(e[n])&&h(e[n]),wt()||t.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){e[t.fieldName]&&(t.omit(),W(t.fieldName,(function(t){return[t[0],!0]})))}var n=U().optionalFields()[0];if(!p(n)){var e={};x((function(n){return u.transform(n,(function(n){if(m(e,n.fieldName))t(n);else{var r=P(n.fieldName);a(r)&&(e[n.fieldName]=r(),t(n))}return n}))}))}}()})),t.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){var t=U().testCallbacks()[0].doneCallbacks;h(t)})),t.on(Yt.REMOVE_FIELD,(function(t){H().forEach((function(n){ct(n,t)&&(n.cancel(),function(t){x((function(n){return u.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Yt.RESET_FIELD,(function(t){H().forEach((function(n){ct(n,t)&&n.reset()}))})),t}function jt(){var t=L.useX();return l(t.bus),t.bus}var Yt,Jt=Yt||(Yt={});function zt(t){return Zt(0,"tests",t)}function Qt(t){return Zt(1,"tests",t)}function Zt(t,n,r){var i=L.useX("hook called outside of a running suite.");r&&o(r).forEach((function(r){e(r)&&(i.exclusion[n][r]=0===t)}))}function $t(t){for(var n in t)if(!0===t[n])return!0;return!1}function tn(){var t,n=L.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function nn(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function en(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 rn(t){var n=t.asyncTest,r=t.message;if(S(n)){var i=jt().emit,u=U(),o=L.bind({stateRef:u},(function(){D(),i(Yt.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 un(t){var n=U().testObjects()[0].prev;if(p(n))return on(t),t;var e=rt();if(n=u.valueAtPath(n,e),!c(t.key)){n=t.key,(e=et().keys.prev[n])&&(t=e),e=t;var r=et().keys.current;return c(r[n])?r[n]=e:f('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),on(t),t}return!N(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(et().type===I.EACH||f("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=et().cursor.current();x((function(n){return n.splice(t),n}))}(),n=null),on(t=R(n,t)),t}function on(t){var n=rt();x((function(e){return u.setValueAtPath(e,n,t)}))}function sn(t){var n=et().cursor,e=O.EAGER;if(L.useX().mode[0]===e&&lt(it.ERRORS,t.fieldName))return t.skip(),un(t),n.next(),t;if(e=un(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 u=r.tests,o=u[n];if(!1===o)return!0;if(o=!0===o,t){var s=L.useX().exclusion.groups;if(s=m(s,t)?!1===s[t]:tn())return!0;if(!0===r.groups[t])return!(o||!$t(u)&&!1!==u[n])}return!!(t=!!tn()&&!t)||!o&&!!$t(u)&&!i(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(),on(t),t.isUntested()){e=jt();var r=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{S(r)?(t.asyncTest=r,t.setPending(),rn(t)):e.emit(Yt.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 S(t.asyncTest)&&(t.setPending(),rn(t));return n.next(),t}function an(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var i=a(n[1])?n:en([void 0],n,!0);n=i[0],r=i[1],i=i[2],l(e(t),dn("fieldName","string")),l(a(r),dn("Test callback","function"));var u=L.useX();return sn(n=new q(t,r,{message:n,groupName:u.groupName,key:i}))}Jt.TEST_COMPLETED="test_completed",Jt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Jt.REMOVE_FIELD="remove_field",Jt.RESET_FIELD="reset_field",Jt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",zt.group=function(t){return Zt(0,"groups",t)},Qt.group=function(t){return Zt(1,"groups",t)},d(e);var cn,fn,ln=r(an,{memo:(cn=an,fn=T(10),function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];e=et().cursor.current();var r=(n=n.reverse())[0],i=n[1],u=n[2];return e=[U().suiteId()[0],t,e].concat(r),n=fn.get(e),b(n)?fn(e,(function(){return cn(t,u,i)})):n[1].isCanceled()?(fn.invalidate(e),fn(e,(function(){return cn(t,u,i)}))):sn(n[1])})});function dn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var vn="4.4.2-dev-afe5de";function pn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=(t=t.reverse())[0];t=t[1],l(a(e),"vest.create: Expected callback to be a function.");var i=Vt(),u=$();return t={stateRef:tt(u,{suiteId:s(),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(),nt({type:I.SUITE},(function(){e.apply(void 0,t)})),i.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),Ht()})),{get:L.bind(t,xt),remove:L.bind(t,(function(t){i.emit(Yt.REMOVE_FIELD,t)})),reset:u.reset,resetField:L.bind(t,(function(t){i.emit(Yt.RESET_FIELD,t)}))})}function Nn(t,n){l(a(n),"each callback must be a function"),nt({type:I.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function En(){var t=O.EAGER;L.useX().mode[0]=t}function mn(t,n){l(e(t),nn("name must be a string")),l(a(n),nn("callback must be a function")),nt({type:I.GROUP},(function(){L.run({groupName:t},n)}))}function gn(t){var n=L.useX(),r=n.inclusion;return n=n.exclusion,l(e(t)),r[t]=R(n.tests[t],!0),{when:function(n){var r=L.useX(),u=r.exclusion;r.inclusion[t]=function(){return m(u.tests,t)?R(u.tests[t],!0):e(n)?!!u.tests[n]:i(n,i(xt))}}}}function hn(t,n){nt({type:I.OMIT_WHEN},(function(){L.run({omitted:!!L.useX().omitted||i(t,i(xt))},(function(){return n()}))}))}function yn(t){if(g(t)||e(t))o(t).forEach((function(t){W(t,[!0,!1])}));else for(var n in t)W(n,[t[n],!1])}function Rn(t,n){nt({type:I.SKIP_WHEN},(function(){L.run({skipped:!!L.useX().skipped||i(t,i(xt))},(function(){return n()}))}))}function Sn(){var t=L.useX("warn hook called outside of a running suite.");l(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{vn as VERSION,L as context,pn as create,Nn as each,En as eager,mn as group,gn as include,hn as omitWhen,zt as only,yn as optional,Qt as skip,Rn as skipWhen,ln as test,Sn 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(" ")}}}));