vest 4.3.2 → 4.4.0-dev-08ec91

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.
@@ -39,6 +39,8 @@ function asArray(possibleArg) {
39
39
  return [].concat(possibleArg);
40
40
  }
41
41
 
42
+ var assign = Object.assign;
43
+
42
44
  function isNumeric(value) {
43
45
  var str = String(value);
44
46
  var num = Number(value);
@@ -178,8 +180,6 @@ function getCurrent(array, path) {
178
180
  return current;
179
181
  }
180
182
 
181
- var assign = Object.assign;
182
-
183
183
  function createCursor() {
184
184
  var storage = {
185
185
  cursor: []
@@ -266,22 +266,37 @@ function useSuiteName() {
266
266
  function useTestCallbacks() {
267
267
  return useStateRef().testCallbacks();
268
268
  }
269
+ // OPTIONAL FIELDS
270
+ function useOptionalField(fieldName) {
271
+ var optionalFields = useOptionalFields()[0];
272
+ return optionalFields[fieldName];
273
+ }
269
274
  function useOptionalFields() {
270
275
  return useStateRef().optionalFields();
271
276
  }
277
+ function useSetOptionalField(fieldName, setter) {
278
+ var _a = useOptionalFields(), setOptionalFields = _a[1];
279
+ setOptionalFields(function (optionalFields) {
280
+ var _a;
281
+ return assign(optionalFields, (_a = {},
282
+ _a[fieldName] = optionalFunctionValue(setter, optionalFields[fieldName]),
283
+ _a));
284
+ });
285
+ }
286
+ function useOptionalFieldApplied(fieldName) {
287
+ var _a;
288
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[1];
289
+ }
290
+ function useOptionalFieldConfig(fieldName) {
291
+ var _a;
292
+ return (_a = useOptionalField(fieldName)) === null || _a === void 0 ? void 0 : _a[0];
293
+ }
272
294
  function useTestObjects() {
273
295
  return useStateRef().testObjects();
274
296
  }
275
297
  // STATE ACTIONS
276
298
  function useRefreshTestObjects() {
277
- var _a = useTestObjects(), setTestObjects = _a[1];
278
- setTestObjects(function (_a) {
279
- var current = _a.current, prev = _a.prev;
280
- return ({
281
- prev: prev,
282
- current: asArray(current)
283
- });
284
- });
299
+ useSetTests(function (tests) { return tests; });
285
300
  }
286
301
  function useSetTests(handler) {
287
302
  var _a = useTestObjects(), testObjects = _a[1];
@@ -295,10 +310,7 @@ function useSetTests(handler) {
295
310
  }
296
311
  // Derived state
297
312
  function useAllIncomplete() {
298
- var current = useTestObjects()[0].current;
299
- return flatten(transform(current, function (testObject) {
300
- return testObject.isPending() ? testObject : null;
301
- }));
313
+ return useTestsFlat().filter(function (test) { return test.isPending(); });
302
314
  }
303
315
  var flatCache = createCache();
304
316
  function useTestsFlat() {
@@ -683,6 +695,11 @@ function matchingFieldName(testObject, fieldName) {
683
695
  return !!(fieldName && testObject.fieldName === fieldName);
684
696
  }
685
697
 
698
+ var nonMatchingGroupName = bindNot(matchingGroupName);
699
+ function matchingGroupName(testObject, groupName) {
700
+ return testObject.groupName === groupName;
701
+ }
702
+
686
703
  function either(a, b) {
687
704
  return !!a !== !!b;
688
705
  }
@@ -707,6 +724,15 @@ function hasFailuresByTestObjects(severityKey, fieldName) {
707
724
  return hasFailuresByTestObject(testObject, severityKey, fieldName);
708
725
  });
709
726
  }
727
+ function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
728
+ var testObjects = useTestsFlat();
729
+ return testObjects.some(function (testObject) {
730
+ if (nonMatchingGroupName(testObject, groupName)) {
731
+ return false;
732
+ }
733
+ return hasFailuresByTestObject(testObject, severityKey, fieldName);
734
+ });
735
+ }
710
736
  /**
711
737
  * Determines whether a certain test profile has failures.
712
738
  */
@@ -724,7 +750,7 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
724
750
  }
725
751
 
726
752
  // eslint-disable-next-line max-statements, complexity
727
- function shouldAddValidProp(fieldName) {
753
+ function shouldAddValidProperty(fieldName) {
728
754
  if (fieldIsOmitted(fieldName)) {
729
755
  return true;
730
756
  }
@@ -735,39 +761,78 @@ function shouldAddValidProp(fieldName) {
735
761
  if (isEmpty(testObjects)) {
736
762
  return false;
737
763
  }
764
+ // Does the given field have any pending tests that are not optional?
738
765
  if (hasNonOptionalIncomplete(fieldName)) {
739
766
  return false;
740
767
  }
741
768
  return noMissingTests(fieldName);
742
769
  }
770
+ function shouldAddValidPropertyInGroup(groupName, fieldName) {
771
+ if (fieldIsOmitted(fieldName)) {
772
+ return true;
773
+ }
774
+ if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
775
+ return false;
776
+ }
777
+ // Do the given group/field have any pending tests that are not optional?
778
+ if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
779
+ return false;
780
+ }
781
+ return noMissingTestsByGroup(groupName, fieldName);
782
+ }
743
783
  function fieldIsOmitted(fieldName) {
744
784
  if (!fieldName) {
745
785
  return false;
746
786
  }
747
- var flatTests = useTestsFlat();
748
- return flatTests.some(function (testObject) { return testObject.fieldName === fieldName && testObject.isOmitted(); });
787
+ return useOptionalFieldApplied(fieldName) === true;
749
788
  }
789
+ // Does the given field have any pending tests that are not optional?
750
790
  function hasNonOptionalIncomplete(fieldName) {
751
- var optionalFields = useOptionalFields()[0];
752
791
  return isNotEmpty(useAllIncomplete().filter(function (testObject) {
753
- if (nonMatchingFieldName(testObject, fieldName)) {
792
+ return isOptionalFieldIncomplete(testObject, fieldName);
793
+ }));
794
+ }
795
+ // Do the given group/field have any pending tests that are not optional?
796
+ function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
797
+ return isNotEmpty(useAllIncomplete().filter(function (testObject) {
798
+ if (nonMatchingGroupName(testObject, groupName)) {
754
799
  return false;
755
800
  }
756
- return optionalFields[testObject.fieldName] !== true;
801
+ return isOptionalFieldIncomplete(testObject, fieldName);
757
802
  }));
758
803
  }
804
+ function isOptionalFieldIncomplete(testObject, fieldName) {
805
+ if (nonMatchingFieldName(testObject, fieldName)) {
806
+ return false;
807
+ }
808
+ return useOptionalFieldConfig(testObject.fieldName) !== true;
809
+ }
759
810
  function noMissingTests(fieldName) {
760
811
  var testObjects = useTestsFlat();
761
- var optionalFields = useOptionalFields()[0];
762
812
  return testObjects.every(function (testObject) {
763
813
  if (nonMatchingFieldName(testObject, fieldName)) {
764
814
  return true;
765
815
  }
766
- return (optionalFields[testObject.fieldName] === true ||
767
- testObject.isTested() ||
768
- testObject.isOmitted());
816
+ return missingTestsLogic(testObject, fieldName);
817
+ });
818
+ }
819
+ function noMissingTestsByGroup(groupName, fieldName) {
820
+ var testObjects = useTestsFlat();
821
+ return testObjects.every(function (testObject) {
822
+ if (nonMatchingGroupName(testObject, groupName)) {
823
+ return true;
824
+ }
825
+ return missingTestsLogic(testObject, fieldName);
769
826
  });
770
827
  }
828
+ function missingTestsLogic(testObject, fieldName) {
829
+ if (nonMatchingFieldName(testObject, fieldName)) {
830
+ return true;
831
+ }
832
+ return (useOptionalFieldConfig(testObject.fieldName) === true ||
833
+ testObject.isTested() ||
834
+ testObject.isOmitted());
835
+ }
771
836
 
772
837
  function useSummary() {
773
838
  var summary = context.useX().summary;
@@ -789,7 +854,7 @@ function genTestsSummary() {
789
854
  appendToGroup(summary.groups, testObject);
790
855
  return summary;
791
856
  }, summary);
792
- summary.valid = shouldAddValidProp();
857
+ summary.valid = shouldAddValidProperty();
793
858
  return countFailures(summary);
794
859
  }
795
860
  function appendToTest(tests, testObject) {
@@ -798,7 +863,7 @@ function appendToTest(tests, testObject) {
798
863
  tests[testObject.fieldName].valid =
799
864
  tests[testObject.fieldName].valid === false
800
865
  ? false
801
- : shouldAddValidProp(testObject.fieldName);
866
+ : shouldAddValidProperty(testObject.fieldName);
802
867
  }
803
868
  /**
804
869
  * Appends to a group object if within a group
@@ -810,6 +875,10 @@ function appendToGroup(groups, testObject) {
810
875
  }
811
876
  groups[groupName] = groups[groupName] || {};
812
877
  groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
878
+ groups[groupName][testObject.fieldName].valid =
879
+ groups[groupName][testObject.fieldName].valid === false
880
+ ? false
881
+ : shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
813
882
  }
814
883
  /**
815
884
  * Counts the failed tests and adds global counters
@@ -858,6 +927,10 @@ function baseTestStats() {
858
927
  });
859
928
  }
860
929
 
930
+ function isPositive(value) {
931
+ return greaterThan(value, 0);
932
+ }
933
+
861
934
  // calls collectAll or getByFieldName depending on whether fieldName is provided
862
935
  function gatherFailures(testGroup, severityKey, fieldName) {
863
936
  return fieldName
@@ -870,10 +943,13 @@ function getByFieldName(testGroup, severityKey, fieldName) {
870
943
  }
871
944
  function collectAll(testGroup, severityKey) {
872
945
  var output = {};
946
+ var countKey = countKeyBySeverity(severityKey);
873
947
  for (var field in testGroup) {
874
- // We will probably never get to the fallback array
875
- // leaving it just in case the implementation changes
876
- output[field] = testGroup[field][severityKey] || [];
948
+ if (isPositive(testGroup[field][countKey])) {
949
+ // We will probably never get to the fallback array
950
+ // leaving it just in case the implementation changes
951
+ output[field] = testGroup[field][severityKey] || [];
952
+ }
877
953
  }
878
954
  return output;
879
955
  }
@@ -903,10 +979,6 @@ function getFailuresByGroup(groupName, severityKey, fieldName) {
903
979
  return gatherFailures(summary.groups[groupName], severityKey, fieldName);
904
980
  }
905
981
 
906
- function isPositive(value) {
907
- return greaterThan(value, 0);
908
- }
909
-
910
982
  function hasErrors(fieldName) {
911
983
  return hasFailures(SeverityCount.ERROR_COUNT, fieldName);
912
984
  }
@@ -949,9 +1021,30 @@ function hasFailuresByGroup(severityKey, groupName, fieldName) {
949
1021
  }
950
1022
 
951
1023
  function isValid(fieldName) {
952
- var _a;
953
1024
  var summary = useSummary();
954
- return fieldName ? Boolean((_a = summary.tests[fieldName]) === null || _a === void 0 ? void 0 : _a.valid) : summary.valid;
1025
+ return fieldName
1026
+ ? Boolean(isFieldValid(summary.tests, fieldName))
1027
+ : summary.valid;
1028
+ }
1029
+ function isValidByGroup(groupName, fieldName) {
1030
+ var summary = useSummary();
1031
+ var group = summary.groups[groupName];
1032
+ if (!group) {
1033
+ return false;
1034
+ }
1035
+ if (fieldName) {
1036
+ return isFieldValid(group, fieldName);
1037
+ }
1038
+ for (var fieldName_1 in group) {
1039
+ if (!isFieldValid(group, fieldName_1)) {
1040
+ return false;
1041
+ }
1042
+ }
1043
+ return true;
1044
+ }
1045
+ function isFieldValid(testContainer, fieldName) {
1046
+ var _a;
1047
+ return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
955
1048
  }
956
1049
 
957
1050
  var cache$1 = createCache(1);
@@ -972,6 +1065,7 @@ function produceSuiteResult() {
972
1065
  hasWarnings: context.bind(ref, hasWarnings),
973
1066
  hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
974
1067
  isValid: context.bind(ref, isValid),
1068
+ isValidByGroup: context.bind(ref, isValidByGroup),
975
1069
  suiteName: suiteName
976
1070
  });
977
1071
  }));
@@ -1074,7 +1168,7 @@ function createBus() {
1074
1168
  }
1075
1169
  }
1076
1170
 
1077
- function omitOptionalTests() {
1171
+ function omitOptionalFields() {
1078
1172
  var optionalFields = useOptionalFields()[0];
1079
1173
  if (isEmpty(optionalFields)) {
1080
1174
  return;
@@ -1095,10 +1189,11 @@ function omitOptionalTests() {
1095
1189
  function verifyAndOmit(testObject) {
1096
1190
  if (shouldOmit[testObject.fieldName]) {
1097
1191
  testObject.omit();
1192
+ useSetOptionalField(testObject.fieldName, function (current) { return [current[0], true]; });
1098
1193
  }
1099
1194
  }
1100
1195
  function runOptionalConfig(testObject) {
1101
- var optionalConfig = optionalFields[testObject.fieldName];
1196
+ var optionalConfig = useOptionalFieldConfig(testObject.fieldName);
1102
1197
  if (isFunction(optionalConfig)) {
1103
1198
  shouldOmit[testObject.fieldName] = optionalConfig();
1104
1199
  verifyAndOmit(testObject);
@@ -1158,7 +1253,7 @@ function initBus() {
1158
1253
  // Async operations may still be running.
1159
1254
  bus.on(Events.SUITE_CALLBACK_DONE_RUNNING, function () {
1160
1255
  // Remove tests that are optional and need to be omitted
1161
- omitOptionalTests();
1256
+ omitOptionalFields();
1162
1257
  });
1163
1258
  // Called when all the tests, including async, are done running
1164
1259
  bus.on(Events.ALL_RUNNING_TESTS_FINISHED, function () {
@@ -1551,22 +1646,21 @@ function isOmitted() {
1551
1646
  * });
1552
1647
  */
1553
1648
  function optional(optionals) {
1554
- var _a = useOptionalFields(), setOptionalFields = _a[1];
1555
- setOptionalFields(function (state) {
1556
- if (!isArray(optionals) && !isStringValue(optionals)) {
1557
- var optionalFunctions = optionals;
1558
- for (var field in optionalFunctions) {
1559
- var predicate = optionalFunctions[field];
1560
- state[field] = predicate;
1561
- }
1562
- }
1563
- else {
1564
- asArray(optionals).forEach(function (optionalField) {
1565
- state[optionalField] = true;
1566
- });
1649
+ // When the optional is given as a string or a list of strings
1650
+ // we just add them to the list of optional fields.
1651
+ if (isArray(optionals) || isStringValue(optionals)) {
1652
+ asArray(optionals).forEach(function (optionalField) {
1653
+ useSetOptionalField(optionalField, [true, false]);
1654
+ });
1655
+ }
1656
+ else {
1657
+ // if it's an object, we iterate over the keys and add them to the list
1658
+ var optionalFunctions = optionals;
1659
+ for (var field in optionalFunctions) {
1660
+ var predicate = optionalFunctions[field];
1661
+ useSetOptionalField(field, [predicate, false]);
1567
1662
  }
1568
- return state;
1569
- });
1663
+ }
1570
1664
  }
1571
1665
 
1572
1666
  /*! *****************************************************************************
@@ -1868,7 +1962,7 @@ function warn() {
1868
1962
  ctx.currentTest.warn();
1869
1963
  }
1870
1964
 
1871
- var VERSION = "4.3.2";
1965
+ var VERSION = "4.4.0-dev-08ec91";
1872
1966
 
1873
1967
  Object.defineProperty(exports, 'enforce', {
1874
1968
  enumerable: true,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function a(n,t){return function(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}(n.length,t)}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n){function t(n){return e.findIndex((function(t){var e=t[0];return a(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return f(n.length,t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function p(n){return!!Array.isArray(n)}function d(n){return null===n}var v=i(d);function h(n){return"function"==typeof n}function g(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return h(n)?n.apply(void 0,t):n}function E(n,t){var e;return null!==(e=g(n))&&void 0!==e?e:t}function N(n){return(n=s(n))[n.length-1]}function m(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(m(u,t)):(u=t(u),v(u)&&e.push(u))}return e}function y(n,t,e){return S(n,t)[N(t)]=e,n}function R(n){return s(n).reduce((function(n,t){return p(t)?n.concat(R(t)):s(n).concat(t)}),[])}function S(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=E(n[r],[]),n=n[r]}return n}var C,b,T=Object.assign;function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return N(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,N(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(C||(C={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(b||(b={}));var I=e.createContext((function(n,t){return t?null:T({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:C.DEFAULT,keys:{current:{},prev:{}}},mode:[b.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(){return O().optionalFields()}function x(){return O().testObjects()}function F(){(0,x()[1])((function(n){return{prev:n.prev,current:s(n.current)}}))}function U(n){(0,x()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function W(){return R(m(x()[0].current,(function(n){return n.isPending()?n:null})))}var G,P=l();function D(){var n=x()[0].current;return P([n],(function(){return R(n)}))}function w(n){D().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(G||(G={}));var X,H,K=function(){function n(n,t,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=M,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==z||(this.status=n)},n.prototype.warns=function(){return this.severity===G.Warning},n.prototype.setPending=function(){this.setStatus(Y)},n.prototype.fail=function(){this.setStatus(this.warns()?B:j)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(V)},n.prototype.warn=function(){this.severity=G.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(q)},n.prototype.cancel=function(){this.setStatus(J),F()},n.prototype.reset=function(){this.status=M,F()},n.prototype.omit=function(){this.setStatus(z)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Y)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(z)},n.prototype.isUntested=function(){return this.statusEquals(M)},n.prototype.isFailing=function(){return this.statusEquals(j)},n.prototype.isCanceled=function(){return this.statusEquals(J)},n.prototype.isSkipped=function(){return this.statusEquals(q)},n.prototype.isPassing=function(){return this.statusEquals(V)},n.prototype.isWarning=function(){return this.statusEquals(B)},n.prototype.statusEquals=function(n){return this.status===n},n}(),M="UNTESTED",q="SKIPPED",j="FAILED",B="WARNING",V="PASSING",Y="PENDING",J="CANCELED",z="OMITTED";function Q(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?g(t):t)}function Z(n){function t(n,t,u){return r.references.push(),e(n,g(t,u)),function(){return[r.references[n],function(t){return e(n,g(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,h(t=u[t][1])&&t(e,i),h(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function $(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function nn(n){return d(n)||o(n)}function tn(n){setTimeout((function(){throw Error(n)}),0)}function en(){return I.useX().testCursor.getCursor()}function rn(){return I.useX().testCursor.cursorAt()}function un(){return I.useX().testCursor.next()}function on(n,t){n=void 0===(n=n.type)?C.DEFAULT:n,Q(h(t));var e={current:{},prev:{}},r=en();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=s(S(x()[0].prev,en())).reduce((function(n,t){return t instanceof K&&!nn(t.key)?(n[t.key]=t,n):n}),{}),U((function(n){return y(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),un(),n}))}function sn(n){return n===X.ERRORS?H.ERROR_COUNT:H.WARN_COUNT}function cn(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function an(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:cn(n,"length")?a(n,0):"object"==typeof n&&a(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(X||(X={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(H||(H={}));var fn=i(an);function ln(n,t){return!!t&&!pn(n,t)}function pn(n,t){return!(!t||n.fieldName!==t)}function dn(n){return function(n,t){return D().some((function(e){return function(n,t,e){return!(!n.hasFailures()||ln(n,e)||function(n,t){return function(n,t){return!!n!=!!t}(n===X.WARNINGS,t.warns())}(t,n))}(e,n,t)}))}(X.ERRORS,n)}function vn(n){return!!function(n){return!!n&&D().some((function(t){return t.fieldName===n&&t.isOmitted()}))}(n)||!dn(n)&&(!an(D())&&!function(n){var t=L()[0];return fn(W().filter((function(e){return!ln(e,n)&&!0!==t[e.fieldName]})))}(n)&&function(n){var t=D(),e=L()[0];return t.every((function(t){return!!ln(t,n)||(!0===e[t.fieldName]||t.isTested()||t.isOmitted())}))}(n))}function hn(){var n=I.useX().summary;return Q(n),n}function gn(){var n=D(),t=T({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=En(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&vn(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=En(n[e],t))}(n.groups,t),n}),t),t.valid=vn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function En(n,t){function e(n){var t=sn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||T({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(X.ERRORS):t.isWarning()&&e(X.WARNINGS)),i}function Nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={};for(e in n)r[e]=n[e][t]||[];return r}(n,t)}function mn(n){return Rn(X.ERRORS,n)}function yn(n){return Rn(X.WARNINGS,n)}function Rn(n,t){return Nn(hn().tests,n,t)}function Sn(n,t){return bn(n,X.ERRORS,t)}function Cn(n,t){return bn(n,X.WARNINGS,t)}function bn(n,t,e){return Nn(hn().groups[n],t,e)}function Tn(n){return f(n,0)}function _n(n){return On(H.ERROR_COUNT,n)}function In(n){return On(H.WARN_COUNT,n)}function On(n,t){var e,r=hn();return Tn(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function An(n,t){return Ln(X.ERRORS,n,t)}function kn(n,t){return Ln(X.WARNINGS,n,t)}function Ln(n,t,e){var r,u,i=hn();if(n=sn(n),!(t=i.groups[t]))return!1;if(e)return Tn(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(Tn(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t,e=hn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}var Fn=l(1);function Un(){var n=D(),t={stateRef:O()};return Fn([n],I.bind(t,(function(){var n=gn(),t=O().suiteName()[0],e={summary:n};return T(n,{getErrors:I.bind(e,mn),getErrorsByGroup:I.bind(e,Sn),getWarnings:I.bind(e,yn),getWarningsByGroup:I.bind(e,Cn),hasErrors:I.bind(e,_n),hasErrorsByGroup:I.bind(e,An),hasWarnings:I.bind(e,In),hasWarningsByGroup:I.bind(e,kn),isValid:I.bind(e,xn),suiteName:t})})))}function Wn(n){var t=W();return!an(t)&&(n?t.some((function(t){return pn(t,n)})):fn(t))}var Gn=l(20);function Pn(){var n=D(),t={stateRef:O()};return Gn([n],I.bind(t,(function(){return T({},Un(),{done:I.bind(t,Hn)})})))}function Dn(n,t,e){return!(h(n)&&(!t||e.tests[t]&&!an(e.tests[t].testCount)))}function wn(n){return!(Wn()&&(!n||Wn(n)))}var Xn,Hn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Pn(),Dn(e,n,t))return t;var r=function(){return e(Un())};return wn(n)?(r(),t):(Kn(r,n),t)};function Kn(n,t){(0,k()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Mn(n){return n.forEach((function(n){return n()}))}function qn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Xn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Wn(n)&&p(t[n])&&Mn(t[n])}(t.fieldName),Wn()||n.emit(Xn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Xn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){var n=L()[0];if(!an(n)){var t={};U((function(e){return m(e,(function(e){if(cn(t,e.fieldName))t[e.fieldName]&&e.omit();else{var r=n[e.fieldName];h(r)&&(t[e.fieldName]=r(),t[e.fieldName]&&e.omit())}return e}))}))}}()})),n.on(Xn.ALL_RUNNING_TESTS_FINISHED,(function(){Mn(k()[0].doneCallbacks)})),n.on(Xn.REMOVE_FIELD,(function(n){w((function(t){pn(t,n)&&(t.cancel(),function(n){U((function(t){return m(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Xn.RESET_FIELD,(function(n){w((function(t){pn(t,n)&&t.reset()}))})),n}function jn(){var n=I.useX();return Q(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Xn||(Xn={}));function Bn(){return!!I.useX().skipped}function Vn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function Jn(n){var t=n.fieldName;if(n=n.groupName,Bn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return cn(t,n)?!1===t[n]:Zn()}(n))return!0;if(!0===r.groups[n])return!i&&(!!Qn(u)||!1===u[t])}return!!function(n){return!!Zn()&&!n}(n)||!i&&(!!Qn(u)&&!g(e[t]))}function zn(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&s(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){return!(!function(n){return I.useX().mode[0]===n}(b.EAGER)||!dn(n.fieldName))}function tt(){return!!I.useX().omitted}function et(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function rt(n){return n&&h(n.then)}function ut(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function it(n){var t=n.asyncTest,e=n.message;if(rt(t)){var r=jn().emit,i=O(),o=I.bind({stateRef:i},(function(){F(),r(Xn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function ot(n){var t=jn(),e=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{rt(e)?(n.asyncTest=e,n.setPending(),it(n)):t.emit(Xn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function st(n){var t=x()[0].prev;return an(t)?(ct(n),n):(t=function(n){var t=en();return function(n,t){return S(n,t)[N(t)]}(n,t)}(t),nn(n.key)?(function(n,t){return fn(n)&&!ut(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===C.EACH||tn("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.'))}(t,n),function(){var n=x(),t=n[1],e=n[0].prev;n=S(e,en());var r=rn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),ct(n=E(t,n)),n):(ct(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;nn(e[n])?e[n]=t:tn('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function ct(n){var t=en();U((function(e){return y(e,t,n)}))}function at(n){if(nt(n))return n.skip(),st(n),un(),n;var t=st(n);return tt()?(t.omit(),un(),t):Jn(n)?(t.skip(Bn()),un(),t):(function(n,t){t!==n&&ut(n,t)&&n.isPending()&&n.cancel()}(t,n),ct(n),un(),function(n){n.isUntested()?ot(n):rt(n.asyncTest)&&(n.setPending(),it(n))}(n),n)}function ft(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=h(t[1])?t:et([void 0],t,!0);t=r[0],e=r[1],r=r[2],Q(u(n),pt("fieldName","string")),Q(h(e),pt("Test callback","function"));var i=I.useX();return at(t=new K(n,e,{message:t,groupName:i.groupName,key:r}))}Vn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var lt=T(ft,{memo:function(n){var t=l(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=rn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[A(),e,u].concat(i),d(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):at(r[1])}}(ft)});function pt(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.3.2",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],Q(h(e),"vest.create: Expected callback to be a function.");var u=qn(),i=Z();return n={stateRef:$(i,{suiteId:r(),suiteName:n}),bus:u},T(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),on({type:C.SUITE},(function(){e.apply(void 0,n)})),u.emit(Xn.SUITE_CALLBACK_DONE_RUNNING),Pn()})),{get:I.bind(n,Un),remove:I.bind(n,(function(n){u.emit(Xn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Xn.RESET_FIELD,n)}))})},exports.each=function(n,t){Q(h(t),"each callback must be a function"),on({type:C.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(b.EAGER)},exports.group=function(n,t){Q(u(n),$n("name must be a string")),Q(h(t),$n("callback must be a function")),on({type:C.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),e=t.inclusion;return t=t.exclusion,Q(u(n)),e[n]=E(t.tests[n],!0),{when:function(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return cn(r.tests,n)?E(r.tests[n],!0):u(t)?!!r.tests[t]:g(t,g(Un))}}}},exports.omitWhen=function(n,t){on({type:C.OMIT_WHEN},(function(){I.run({omitted:tt()||g(n,g(Un))},(function(){return t()}))}))},exports.only=Vn,exports.optional=function(n){(0,L()[1])((function(t){if(p(n)||u(n))s(n).forEach((function(n){t[n]=!0}));else for(var e in n)t[e]=n[e];return t}))},exports.skip=Yn,exports.skipWhen=function(n,t){on({type:C.SKIP_WHEN},(function(){I.run({skipped:Bn()||g(n,g(Un))},(function(){return t()}))}))},exports.test=lt,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");Q(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),r=require("context"),e=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}var c=Object.assign;function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function p(n){function t(n){return r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))}void 0===n&&(n=1);var r=[],e=function(t,u){var i=e.get(t);return i?i[1]:(u=u(),r.unshift([t.concat(),u]),function(n,t){return l(n.length,t)}(r,n)&&(r.length=n),u)};return e.invalidate=function(n){-1<(n=t(n))&&r.splice(n,1)},e.get=function(n){return r[t(n)]||null},e}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var g,h,E=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return N(n)?n.apply(void 0,t):n}function y(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];d(u)?r.push(S(u,t)):(u=t(u),E(u)&&r.push(u))}return r}function C(n,t,r){return T(n,t)[R(t)]=r,n}function b(n){return s(n).reduce((function(n,t){return d(t)?n.concat(b(t)):s(n).concat(t)}),[])}function T(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=y(n[e],[]),n=n[e]}return n}function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return R(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,R(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(g||(g={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(h||(h={}));var I=r.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[h.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(n){return x()[0][n]}function x(){return O().optionalFields()}function F(n,t){(0,x()[1])((function(r){var e;return c(r,((e={})[n]=m(t,r[n]),e))}))}function U(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function W(){return O().testObjects()}function G(){P((function(n){return n}))}function P(n){(0,W()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function D(){return H().filter((function(n){return n.isPending()}))}var w,X=p();function H(){var n=W()[0].current;return X([n],(function(){return b(n)}))}function K(n){H().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(w||(w={}));var M,q,j=function(){function n(n,t,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=w.Error,this.status=B,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==$||(this.status=n)},n.prototype.warns=function(){return this.severity===w.Warning},n.prototype.setPending=function(){this.setStatus(Q)},n.prototype.fail=function(){this.setStatus(this.warns()?J:Y)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=w.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(Z),G()},n.prototype.reset=function(){this.status=B,G()},n.prototype.omit=function(){this.setStatus($)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Q)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals($)},n.prototype.isUntested=function(){return this.statusEquals(B)},n.prototype.isFailing=function(){return this.statusEquals(Y)},n.prototype.isCanceled=function(){return this.statusEquals(Z)},n.prototype.isSkipped=function(){return this.statusEquals(V)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(J)},n.prototype.statusEquals=function(n){return this.status===n},n}(),B="UNTESTED",V="SKIPPED",Y="FAILED",J="WARNING",z="PASSING",Q="PENDING",Z="CANCELED",$="OMITTED";function nn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function tn(n){function t(n,t,u){return e.references.push(),r(n,m(t,u)),function(){return[e.references[n],function(t){return r(n,m(t,e.references[n]))}]}}function r(t,r){var i=e.references[t];e.references[t]=r,N(t=u[t][1])&&t(r,i),N(n)&&n()}var e={references:[]},u=[];return{registerStateKey:function(n,r){var e=u.length;return u.push([n,r]),t(e,n)},reset:function(){var n=e.references;e.references=[],u.forEach((function(r,e){return t(e,r[0],n[e])}))}}}function rn(n,t){var r=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(r),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function en(n){return v(n)||o(n)}function un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return I.useX().testCursor.getCursor()}function sn(){return I.useX().testCursor.cursorAt()}function cn(){return I.useX().testCursor.next()}function an(n,t){n=void 0===(n=n.type)?g.DEFAULT:n,nn(N(t));var r={current:{},prev:{}},e=on();return I.run({isolate:{type:n,keys:r}},(function(){I.useX().testCursor.addLevel(),r.prev=s(T(W()[0].prev,on())).reduce((function(n,t){return t instanceof j&&!en(t.key)?(n[t.key]=t,n):n}),{}),P((function(n){return C(n,e,[])}));var n=t();return I.useX().testCursor.removeLevel(),cn(),n}))}function fn(n){return n===M.ERRORS?q.ERROR_COUNT:q.WARN_COUNT}function ln(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function pn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:ln(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(M||(M={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(q||(q={}));var dn=i(pn);function vn(n,t){return!!t&&!gn(n,t)}function gn(n,t){return!(!t||n.fieldName!==t)}var hn=i((function(n,t){return n.groupName===t}));function En(n){return function(n,t){return H().some((function(r){return Nn(r,n,t)}))}(M.ERRORS,n)}function Nn(n,t,r){return!(!n.hasFailures()||vn(n,r)||function(n,t){return function(n,t){return!!n!=!!t}(n===M.WARNINGS,t.warns())}(t,n))}function mn(n){return!!Rn(n)||!En(n)&&(!pn(H())&&!function(n){return dn(D().filter((function(t){return Sn(t,n)})))}(n)&&function(n){return H().every((function(t){return!!vn(t,n)||Cn(t,n)}))}(n))}function yn(n,t){return!!Rn(t)||!function(n,t,r){return H().some((function(e){return!hn(e,t)&&Nn(e,n,r)}))}(M.ERRORS,n,t)&&!function(n,t){return dn(D().filter((function(r){return!hn(r,n)&&Sn(r,t)})))}(n,t)&&function(n,t){return H().every((function(r){return!!hn(r,n)||Cn(r,t)}))}(n,t)}function Rn(n){return!!n&&!0===function(n){var t;return null===(t=L(n))||void 0===t?void 0:t[1]}(n)}function Sn(n,t){return!vn(n,t)&&!0!==U(n.fieldName)}function Cn(n,t){return!!vn(n,t)||(!0===U(n.fieldName)||n.isTested()||n.isOmitted())}function bn(){var n=I.useX().summary;return nn(n),n}function Tn(){var n=H(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=_n(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&mn(t.fieldName)}(n.tests,t),function(n,t){var r=t.groupName;r&&(n[r]=n[r]||{},n[r][t.fieldName]=_n(n[r],t),n[r][t.fieldName].valid=!1!==n[r][t.fieldName].valid&&yn(r,t.fieldName))}(n.groups,t),n}),t),t.valid=mn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function _n(n,t){function r(n){var t=fn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[e];return t.isNonActionable()||(n[e].testCount++,t.isFailing()?r(M.ERRORS):t.isWarning()&&r(M.WARNINGS)),i}function In(n){return l(n,0)}function On(n,t,r){return r?function(n,t,r){var e;return(null===(e=null==n?void 0:n[r])||void 0===e?void 0:e[t])||[]}(n,t,r):function(n,t){var r,e={},u=fn(t);for(r in n)In(n[r][u])&&(e[r]=n[r][t]||[]);return e}(n,t)}function An(n){return Ln(M.ERRORS,n)}function kn(n){return Ln(M.WARNINGS,n)}function Ln(n,t){return On(bn().tests,n,t)}function xn(n,t){return Un(n,M.ERRORS,t)}function Fn(n,t){return Un(n,M.WARNINGS,t)}function Un(n,t,r){return On(bn().groups[n],t,r)}function Wn(n){return Pn(q.ERROR_COUNT,n)}function Gn(n){return Pn(q.WARN_COUNT,n)}function Pn(n,t){var r,e=bn();return In(t?null===(r=e.tests[t])||void 0===r?void 0:r[n]:e[n])}function Dn(n,t){return Xn(M.ERRORS,n,t)}function wn(n,t){return Xn(M.WARNINGS,n,t)}function Xn(n,t,r){var e,u,i=bn();if(n=fn(n),!(t=i.groups[t]))return!1;if(r)return In(null===(e=t[r])||void 0===e?void 0:e[n]);for(var o in t)if(In(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Hn(n){var t=bn();return n?!!Mn(t.tests,n):t.valid}function Kn(n,t){if(!(n=bn().groups[n]))return!1;if(t)return Mn(n,t);for(var r in n)if(!Mn(n,r))return!1;return!0}function Mn(n,t){var r;return!(null===(r=n[t])||void 0===r||!r.valid)}var qn=p(1);function jn(){var n=H(),t={stateRef:O()};return qn([n],I.bind(t,(function(){var n=Tn(),t=O().suiteName()[0],r={summary:n};return c(n,{getErrors:I.bind(r,An),getErrorsByGroup:I.bind(r,xn),getWarnings:I.bind(r,kn),getWarningsByGroup:I.bind(r,Fn),hasErrors:I.bind(r,Wn),hasErrorsByGroup:I.bind(r,Dn),hasWarnings:I.bind(r,Gn),hasWarningsByGroup:I.bind(r,wn),isValid:I.bind(r,Hn),isValidByGroup:I.bind(r,Kn),suiteName:t})})))}function Bn(n){var t=D();return!pn(t)&&(n?t.some((function(t){return gn(t,n)})):dn(t))}var Vn=p(20);function Yn(){var n=H(),t={stateRef:O()};return Vn([n],I.bind(t,(function(){return c({},jn(),{done:I.bind(t,Zn)})})))}function Jn(n,t,r){return!(N(n)&&(!t||r.tests[t]&&!pn(r.tests[t].testCount)))}function zn(n){return!(Bn()&&(!n||Bn(n)))}var Qn,Zn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Yn(),Jn(r,n,t))return t;var e=function(){return r(jn())};return zn(n)?(e(),t):($n(e,n),t)};function $n(n,t){(0,k()[1])((function(r){return t?r.fieldCallbacks[t]=(r.fieldCallbacks[t]||[]).concat(n):r.doneCallbacks.push(n),r}))}function nt(n){return n.forEach((function(n){return n()}))}function tt(){var n=function(){var n={};return{emit:function(t,r){(n[t]||[]).forEach((function(n){n(r)}))},on:function(t,r){return n[t]=(n[t]||[]).concat(r),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==r}))}}}}}();return n.on(Qn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Bn(n)&&d(t[n])&&nt(t[n])}(t.fieldName),Bn()||n.emit(Qn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Qn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),F(n.fieldName,(function(n){return[n[0],!0]})))}if(!pn(x()[0])){var t={};P((function(r){return S(r,(function(r){if(ln(t,r.fieldName))n(r);else{var e=U(r.fieldName);N(e)&&(t[r.fieldName]=e(),n(r))}return r}))}))}}()})),n.on(Qn.ALL_RUNNING_TESTS_FINISHED,(function(){nt(k()[0].doneCallbacks)})),n.on(Qn.REMOVE_FIELD,(function(n){K((function(t){gn(t,n)&&(t.cancel(),function(n){P((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Qn.RESET_FIELD,(function(n){K((function(t){gn(t,n)&&t.reset()}))})),n}function rt(){var n=I.useX();return nn(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Qn||(Qn={}));function et(){return!!I.useX().skipped}function ut(n){return st(0,"tests",n)}function it(n){return st(1,"tests",n)}function ot(n){var t=n.fieldName;if(n=n.groupName,et())return!0;var r=I.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return ln(t,n)?!1===t[n]:at()}(n))return!0;if(!0===e.groups[n])return!i&&(!!ct(u)||!1===u[t])}return!!function(n){return!!at()&&!n}(n)||!i&&(!!ct(u)&&!m(r[t]))}function st(n,t,r){var e=I.useX("hook called outside of a running suite.");r&&s(r).forEach((function(r){u(r)&&(e.exclusion[t][r]=0===n)}))}function ct(n){for(var t in n)if(!0===n[t])return!0;return!1}function at(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function ft(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function lt(n){return!(!function(n){return I.useX().mode[0]===n}(h.EAGER)||!En(n.fieldName))}function pt(){return!!I.useX().omitted}function dt(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function vt(n){return n&&N(n.then)}function gt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ht(n){var t=n.asyncTest,r=n.message;if(vt(t)){var e=rt().emit,i=O(),o=I.bind({stateRef:i},(function(){G(),e(Qn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Et(n){var t=rt(),r=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{vt(r)?(n.asyncTest=r,n.setPending(),ht(n)):t.emit(Qn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Nt(n){var t=W()[0].prev;return pn(t)?(mt(n),n):(t=function(n){var t=on();return function(n,t){return T(n,t)[R(t)]}(n,t)}(t),en(n.key)?(function(n,t){return dn(n)&&!gt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===g.EACH||un("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.'))}(t,n),function(){var n=W(),t=n[1],r=n[0].prev;n=T(r,on());var e=sn();n.splice(e),t((function(n){return{prev:r,current:n.current}}))}(),t=null),mt(n=y(t,n)),n):(mt(n=function(n,t){var r=function(n){return I.useX().isolate.keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=I.useX().isolate.keys.current;en(r[n])?r[n]=t:un('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function mt(n){var t=on();P((function(r){return C(r,t,n)}))}function yt(n){if(lt(n))return n.skip(),Nt(n),cn(),n;var t=Nt(n);return pt()?(t.omit(),cn(),t):ot(n)?(t.skip(et()),cn(),t):(function(n,t){t!==n&&gt(n,t)&&n.isPending()&&n.cancel()}(t,n),mt(n),cn(),function(n){n.isUntested()?Et(n):vt(n.asyncTest)&&(n.setPending(),ht(n))}(n),n)}function Rt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=N(t[1])?t:dt([void 0],t,!0);t=e[0],r=e[1],e=e[2],nn(u(n),Ct("fieldName","string")),nn(N(r),Ct("Test callback","function"));var i=I.useX();return yt(t=new j(n,r,{message:t,groupName:i.groupName,key:e}))}ut.group=function(n){return st(0,"groups",n)},it.group=function(n){return st(1,"groups",n)};var St=c(Rt,{memo:function(n){var t=p(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=sn();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[A(),r,u].concat(i),v(e=t.get(u))?t(u,(function(){return n(r,s,o)})):e[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(r,s,o)}))):yt(e[1])}}(Rt)});function Ct(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.4.0-dev-08ec91",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];n=n[1],nn(N(r),"vest.create: Expected callback to be a function.");var u=tt(),i=tn();return n={stateRef:rn(i,{suiteId:e(),suiteName:n}),bus:u},c(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:g.SUITE},(function(){r.apply(void 0,n)})),u.emit(Qn.SUITE_CALLBACK_DONE_RUNNING),Yn()})),{get:I.bind(n,jn),remove:I.bind(n,(function(n){u.emit(Qn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Qn.RESET_FIELD,n)}))})},exports.each=function(n,t){nn(N(t),"each callback must be a function"),an({type:g.EACH},(function(){n.forEach((function(n,r){t(n,r)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(h.EAGER)},exports.group=function(n,t){nn(u(n),ft("name must be a string")),nn(N(t),ft("callback must be a function")),an({type:g.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),r=t.inclusion;return t=t.exclusion,nn(u(n)),r[n]=y(t.tests[n],!0),{when:function(t){var r=I.useX(),e=r.exclusion;r.inclusion[n]=function(){return ln(e.tests,n)?y(e.tests[n],!0):u(t)?!!e.tests[t]:m(t,m(jn))}}}},exports.omitWhen=function(n,t){an({type:g.OMIT_WHEN},(function(){I.run({omitted:pt()||m(n,m(jn))},(function(){return t()}))}))},exports.only=ut,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){F(n,[!0,!1])}));else for(var t in n)F(t,[n[t],!1])},exports.skip=it,exports.skipWhen=function(n,t){an({type:g.SKIP_WHEN},(function(){I.run({skipped:et()||m(n,m(jn))},(function(){return t()}))}))},exports.test=St,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");nn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};