vest 4.4.0-dev-08ec91 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -176,40 +176,6 @@ function getCurrent(array, path) {
176
176
  return current;
177
177
  }
178
178
 
179
- function createCursor() {
180
- var storage = {
181
- cursor: []
182
- };
183
- function addLevel() {
184
- storage.cursor.push(0);
185
- }
186
- function removeLevel() {
187
- storage.cursor.pop();
188
- }
189
- function cursorAt() {
190
- return last(storage.cursor);
191
- }
192
- function getCursor() {
193
- return asArray(storage.cursor);
194
- }
195
- function next() {
196
- storage.cursor[storage.cursor.length - 1]++;
197
- return last(storage.cursor);
198
- }
199
- function reset() {
200
- storage.cursor = [0];
201
- }
202
- reset();
203
- return {
204
- addLevel: addLevel,
205
- cursorAt: cursorAt,
206
- getCursor: getCursor,
207
- next: next,
208
- removeLevel: removeLevel,
209
- reset: reset
210
- };
211
- }
212
-
213
179
  var IsolateTypes;
214
180
  (function (IsolateTypes) {
215
181
  IsolateTypes[IsolateTypes["DEFAULT"] = 0] = "DEFAULT";
@@ -226,6 +192,133 @@ var Modes;
226
192
  Modes[Modes["EAGER"] = 1] = "EAGER";
227
193
  })(Modes || (Modes = {}));
228
194
 
195
+ function invariant(condition,
196
+ // eslint-disable-next-line @typescript-eslint/ban-types
197
+ message) {
198
+ if (condition) {
199
+ return;
200
+ }
201
+ // If message is a string object (rather than string literal)
202
+ // Throw the value directly as a string
203
+ // Alternatively, throw an error with the message
204
+ throw message instanceof String
205
+ ? message.valueOf()
206
+ : new Error(message ? optionalFunctionValue(message) : message);
207
+ }
208
+
209
+ function createIsolateCursor() {
210
+ var cursor = {
211
+ value: 0
212
+ };
213
+ return {
214
+ current: current,
215
+ next: next
216
+ };
217
+ /**
218
+ * @returns {number} The current value of the cursor
219
+ */
220
+ function current() {
221
+ return cursor.value;
222
+ }
223
+ /**
224
+ * Moves the isolate cursor forward by 1
225
+ */
226
+ function next() {
227
+ cursor.value++;
228
+ }
229
+ }
230
+
231
+ function isNullish(value) {
232
+ return isNull(value) || isUndefined(value);
233
+ }
234
+
235
+ function deferThrow(message) {
236
+ setTimeout(function () {
237
+ throw new Error(message);
238
+ }, 0);
239
+ }
240
+
241
+ function usePrevKeys() {
242
+ var prev = useTestObjects()[0].prev;
243
+ return asArray(getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
244
+ if (!(testObject instanceof VestTest)) {
245
+ return prevKeys;
246
+ }
247
+ if (isNullish(testObject.key)) {
248
+ return prevKeys;
249
+ }
250
+ prevKeys[testObject.key] = testObject;
251
+ return prevKeys;
252
+ }, {});
253
+ }
254
+ function usePrevTestByKey(key) {
255
+ var prev = context.useX().isolate.keys.prev;
256
+ return prev[key];
257
+ }
258
+ function useRetainTestKey(key, testObject) {
259
+ var context$1 = context.useX();
260
+ var current = context$1.isolate.keys.current;
261
+ if (isNullish(current[key])) {
262
+ current[key] = testObject;
263
+ }
264
+ else {
265
+ deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
266
+ }
267
+ }
268
+
269
+ function isolate(_a, callback) {
270
+ var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
271
+ invariant(isFunction(callback));
272
+ // Generate a new Isolate layer, with its own cursor
273
+ var isolate = generateIsolate(type, useCurrentPath());
274
+ var output = context.run({ isolate: isolate }, function () {
275
+ isolate.keys.prev = usePrevKeys();
276
+ useSetTests(function (tests) { return setValueAtPath(tests, isolate.path, []); });
277
+ var res = callback();
278
+ return res;
279
+ });
280
+ // Move the parent cursor forward once we're done
281
+ useCursor().next();
282
+ return output;
283
+ }
284
+ /**
285
+ * @returns {Isolate} The current isolate layer
286
+ */
287
+ function useIsolate() {
288
+ return context.useX().isolate;
289
+ }
290
+ /**
291
+ * @returns {boolean} Whether or not the current isolate allows tests to be reordered
292
+ */
293
+ function shouldAllowReorder() {
294
+ return context.useX().isolate.type === IsolateTypes.EACH;
295
+ }
296
+ /**
297
+ * @returns {number[]} The current cursor path of the isolate tree
298
+ */
299
+ function useCurrentPath() {
300
+ var isolate = useIsolate();
301
+ return isolate.path.concat(isolate.cursor.current());
302
+ }
303
+ /**
304
+ * @returns {IsolateCursor} The cursor object for the current isolate
305
+ */
306
+ function useCursor() {
307
+ return useIsolate().cursor;
308
+ }
309
+ function generateIsolate(type, path) {
310
+ if (path === void 0) { path = []; }
311
+ return {
312
+ cursor: createIsolateCursor(),
313
+ keys: {
314
+ current: {},
315
+ prev: {}
316
+ },
317
+ path: path,
318
+ type: type
319
+ };
320
+ }
321
+
229
322
  var context = createContext(function (ctxRef, parentContext) {
230
323
  return parentContext
231
324
  ? null
@@ -235,15 +328,8 @@ var context = createContext(function (ctxRef, parentContext) {
235
328
  groups: {}
236
329
  },
237
330
  inclusion: {},
238
- isolate: {
239
- type: IsolateTypes.DEFAULT,
240
- keys: {
241
- current: {},
242
- prev: {}
243
- }
244
- },
245
- mode: [Modes.ALL],
246
- testCursor: createCursor()
331
+ isolate: generateIsolate(IsolateTypes.DEFAULT),
332
+ mode: [Modes.ALL]
247
333
  }, ctxRef);
248
334
  });
249
335
 
@@ -462,20 +548,6 @@ var STATUS_PENDING = 'PENDING';
462
548
  var STATUS_CANCELED = 'CANCELED';
463
549
  var STATUS_OMITTED = 'OMITTED';
464
550
 
465
- function invariant(condition,
466
- // eslint-disable-next-line @typescript-eslint/ban-types
467
- message) {
468
- if (condition) {
469
- return;
470
- }
471
- // If message is a string object (rather than string literal)
472
- // Throw the value directly as a string
473
- // Alternatively, throw an error with the message
474
- throw message instanceof String
475
- ? message.valueOf()
476
- : new Error(message ? optionalFunctionValue(message) : message);
477
- }
478
-
479
551
  // eslint-disable-next-line max-lines-per-function
480
552
  function createState(onStateChange) {
481
553
  var state = {
@@ -559,87 +631,6 @@ function createStateRef(state, _a) {
559
631
  };
560
632
  }
561
633
 
562
- function isNullish(value) {
563
- return isNull(value) || isUndefined(value);
564
- }
565
-
566
- function deferThrow(message) {
567
- setTimeout(function () {
568
- throw new Error(message);
569
- }, 0);
570
- }
571
-
572
- function usePath() {
573
- var context$1 = context.useX();
574
- return context$1.testCursor.getCursor();
575
- }
576
- function useCursorAt() {
577
- var context$1 = context.useX();
578
- return context$1.testCursor.cursorAt();
579
- }
580
- function moveForward() {
581
- var context$1 = context.useX();
582
- return context$1.testCursor.next();
583
- }
584
- function addLevel() {
585
- var context$1 = context.useX();
586
- context$1.testCursor.addLevel();
587
- }
588
- function removeLevel() {
589
- var context$1 = context.useX();
590
- context$1.testCursor.removeLevel();
591
- }
592
-
593
- function usePrevKeys() {
594
- var prev = useTestObjects()[0].prev;
595
- return asArray(getCurrent(prev, usePath())).reduce(function (prevKeys, testObject) {
596
- if (!(testObject instanceof VestTest)) {
597
- return prevKeys;
598
- }
599
- if (isNullish(testObject.key)) {
600
- return prevKeys;
601
- }
602
- prevKeys[testObject.key] = testObject;
603
- return prevKeys;
604
- }, {});
605
- }
606
- function usePrevTestByKey(key) {
607
- var prev = context.useX().isolate.keys.prev;
608
- return prev[key];
609
- }
610
- function useRetainTestKey(key, testObject) {
611
- var context$1 = context.useX();
612
- var current = context$1.isolate.keys.current;
613
- if (isNullish(current[key])) {
614
- current[key] = testObject;
615
- }
616
- else {
617
- deferThrow("Encountered the same test key \"".concat(key, "\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."));
618
- }
619
- }
620
-
621
- function isolate(_a, callback) {
622
- var _b = _a.type, type = _b === void 0 ? IsolateTypes.DEFAULT : _b;
623
- invariant(isFunction(callback));
624
- var keys = {
625
- current: {},
626
- prev: {}
627
- };
628
- var path = usePath();
629
- return context.run({ isolate: { type: type, keys: keys } }, function () {
630
- addLevel();
631
- keys.prev = usePrevKeys();
632
- useSetTests(function (tests) { return setValueAtPath(tests, path, []); });
633
- var res = callback();
634
- removeLevel();
635
- moveForward();
636
- return res;
637
- });
638
- }
639
- function shouldAllowReorder() {
640
- return context.useX().isolate.type === IsolateTypes.EACH;
641
- }
642
-
643
634
  var Severity;
644
635
  (function (Severity) {
645
636
  Severity["WARNINGS"] = "warnings";
@@ -1659,7 +1650,7 @@ function optional(optionals) {
1659
1650
  }
1660
1651
  }
1661
1652
 
1662
- /*! *****************************************************************************
1653
+ /******************************************************************************
1663
1654
  Copyright (c) Microsoft Corporation.
1664
1655
 
1665
1656
  Permission to use, copy, modify, and/or distribute this software for any
@@ -1804,8 +1795,8 @@ function useTestAtCursor(newTestObject) {
1804
1795
  function removeAllNextTestsInIsolate() {
1805
1796
  var _a = useTestObjects(), testObjects = _a[0], setTestObjects = _a[1];
1806
1797
  var prevTests = testObjects.prev;
1807
- var current = getCurrent(prevTests, usePath());
1808
- var cursorAt = useCursorAt();
1798
+ var current = getCurrent(prevTests, useCurrentPath());
1799
+ var cursorAt = useCursor().current();
1809
1800
  current.splice(cursorAt);
1810
1801
  // We actually don't mind mutating the state directly (as can be seen above). There is no harm in it
1811
1802
  // since we're only touching the "prev" state. The reason we still use the setter function is
@@ -1819,13 +1810,13 @@ function removeAllNextTestsInIsolate() {
1819
1810
  });
1820
1811
  }
1821
1812
  function useSetTestAtCursor(testObject) {
1822
- var cursorPath = usePath();
1813
+ var cursorPath = useCurrentPath();
1823
1814
  useSetTests(function (tests) {
1824
1815
  return setValueAtPath(tests, cursorPath, testObject);
1825
1816
  });
1826
1817
  }
1827
1818
  function useGetTestAtCursor(tests) {
1828
- var cursorPath = usePath();
1819
+ var cursorPath = useCurrentPath();
1829
1820
  return valueAtPath(tests, cursorPath);
1830
1821
  }
1831
1822
  function testReorderDetected(prevTest, newTest) {
@@ -1849,16 +1840,17 @@ function handleKeyTest(key, newTestObject) {
1849
1840
 
1850
1841
  // eslint-disable-next-line max-statements
1851
1842
  function registerPrevRunTest(testObject) {
1843
+ var cursor = useCursor();
1852
1844
  if (shouldSkipBasedOnMode(testObject)) {
1853
1845
  testObject.skip();
1854
1846
  useTestAtCursor(testObject);
1855
- moveForward();
1847
+ cursor.next();
1856
1848
  return testObject;
1857
1849
  }
1858
1850
  var prevRunTest = useTestAtCursor(testObject);
1859
1851
  if (isOmitted()) {
1860
1852
  prevRunTest.omit();
1861
- moveForward();
1853
+ cursor.next();
1862
1854
  return prevRunTest;
1863
1855
  }
1864
1856
  if (isExcluded(testObject)) {
@@ -1867,13 +1859,13 @@ function registerPrevRunTest(testObject) {
1867
1859
  // This mostly means that we're probably giving
1868
1860
  // up on this async test intentionally.
1869
1861
  prevRunTest.skip(isExcludedIndividually());
1870
- moveForward();
1862
+ cursor.next();
1871
1863
  return prevRunTest;
1872
1864
  }
1873
1865
  cancelOverriddenPendingTest(prevRunTest, testObject);
1874
1866
  useSetTestAtCursor(testObject);
1875
- moveForward();
1876
1867
  registerTestObjectByTier(testObject);
1868
+ cursor.next();
1877
1869
  return testObject;
1878
1870
  }
1879
1871
  function registerTestObjectByTier(testObject) {
@@ -1896,7 +1888,7 @@ function bindTestMemo(test) {
1896
1888
  for (var _i = 1; _i < arguments.length; _i++) {
1897
1889
  args[_i - 1] = arguments[_i];
1898
1890
  }
1899
- var cursorAt = useCursorAt();
1891
+ var cursorAt = useCursor().current();
1900
1892
  var _a = args.reverse(), deps = _a[0], testFn = _a[1], msg = _a[2];
1901
1893
  // Implicit dependency for more specificity
1902
1894
  var dependencies = [useSuiteId(), fieldName, cursorAt].concat(deps);
@@ -1958,6 +1950,6 @@ function warn() {
1958
1950
  ctx.currentTest.warn();
1959
1951
  }
1960
1952
 
1961
- var VERSION = "4.4.0-dev-08ec91";
1953
+ var VERSION = "4.4.0";
1962
1954
 
1963
1955
  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,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];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(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(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 f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=d(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function g(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(g(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function C(){return S.useX().stateRef}function O(t){return C().optionalFields()[0][t]}function T(t,n){(0,C().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=d(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,C().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=C().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,G=U||(U={});G.Error="error",G.Warning="warning";var P=function(){function t(t,n,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=U.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),I()},t.prototype.reset=function(){this.status=W,I()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,d(n,u)),function(){return[r.references[t],function(n){return e(t,d(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(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 B(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 V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return S.useX().testCursor.getCursor()}function z(){return S.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=C().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(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))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return F().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(F())&&!function(t){return ut(k().filter((function(n){return lt(n,t)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||dt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=O(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==A(t.fieldName)}function dt(t,n){return!(!n||it(t,n))||(!0===A(t.fieldName)||t.isTested()||t.isOmitted())}function pt(){var t=S.useX().summary;return M(t),t}function vt(){var t=F(),n=i({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&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return F().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(k().filter((function(e){return!ot(e,t)&&lt(e,n)})))}(u,n)&&function(t,n){return F().every((function(e){return!!ot(e,t)||dt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),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=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function gt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Et(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=pt().tests;return n?gt(e,t,n):Et(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=pt().groups[t],e?gt(t,n,e):Et(t,n)}function Ct(t){return Tt(tt.ERROR_COUNT,t)}function Ot(t){return Tt(tt.WARN_COUNT,t)}function Tt(t,n){var e,r=pt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=pt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[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 kt(t){var n=pt();return t?!!Ft(n.tests,t):n.valid}function Lt(t,n){if(!(t=pt().groups[t]))return!1;if(n)return Ft(t,n);for(var e in t)if(!Ft(t,e))return!1;return!0}function Ft(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=F(),n={stateRef:C()};return Ut([t],S.bind(n,(function(){var t=vt(),n=C().suiteName()[0],e={summary:t};return i(t,{getErrors:S.bind(e,Nt),getErrorsByGroup:S.bind(e,Rt),getWarnings:S.bind(e,mt),getWarningsByGroup:S.bind(e,bt),hasErrors:S.bind(e,Ct),hasErrorsByGroup:S.bind(e,At),hasWarnings:S.bind(e,Ot),hasWarningsByGroup:S.bind(e,It),isValid:S.bind(e,kt),isValidByGroup:S.bind(e,Lt),suiteName:n})})))}function Pt(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function Xt(){var t=F(),n={stateRef:C()};return Wt([t],S.bind(n,(function(){return i({},Gt(),{done:S.bind(n,xt)})})))}function wt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Dt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Xt(),wt(r,n,e)?e:Dt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,C().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=C().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(C().optionalFields()[0])){var n={};_((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(C().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){F().forEach((function(n){it(n,t)&&(n.cancel(),function(t){_((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=S.useX();return M(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=C(),o=S.bind({stateRef:i},(function(){I(),u(qt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=C().testObjects()[0].prev;if(rt(n))return en(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('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!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||Y("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=C().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function rn(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),z(),t;if(n=nn(t),S.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!d(e[n])}(t))return n.skip(!!S.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),en(t),z(),t.isUntested()){n=Mt();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),tn(t)):n.emit(qt.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(n=t.asyncTest)&&l(n.then)&&(t.setPending(),tn(t));return t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),sn("fieldName","string")),M(l(e),sn("Test callback","function"));var i=S.useX();return rn(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[C().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0-dev-08ec91";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),Xt()})),{get:S.bind(t,Gt),remove:S.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:S.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=R.EAGER;S.useX().mode[0]=t}function dn(t,n){M(r(t),Zt("name must be a string")),M(l(n),Zt("callback must be a function")),Q({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function pn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:d(n,d(Gt))}}}}function vn(t,n){Q({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||d(t,d(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function gn(t,n){Q({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||d(t,d(Gt))},(function(){return n()}))}))}function En(){var t=S.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,S as context,cn as create,fn as each,ln as eager,dn as group,pn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,gn as skipWhen,on as test,En as warn};
1
+ import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];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(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(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 f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}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 e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}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(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function S(){var t=0;return{current:function(){return t},next:function(){t++}}}function O(t){return null==t}function T(t){setTimeout((function(){throw Error(t)}),0)}function C(t,n){t=void 0===(t=t.type)?N.DEFAULT:t,b(l(n));var e=I(t,A());return t=_.run({isolate:e},(function(){return e.keys.prev=function(){var t=k().testObjects()[0].prev;return[].concat(g(t,A())).reduce((function(t,n){return n instanceof j&&!O(n.key)?(t[n.key]=n,t):t}),{})}(),P((function(t){var n=e.path;return g(t,n)[v(n)]=[],t})),n()})),_.useX().isolate.cursor.next(),t}function A(){var t=_.useX().isolate;return t.path.concat(t.cursor.current())}function I(t,n){return void 0===n&&(n=[]),{cursor:S(),keys:{current:{},prev:{}},path:n,type:t}}R[R.ALL=0]="ALL",R[R.EAGER=1]="EAGER";var _=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:I(N.DEFAULT),mode:[y.ALL]},t)}));function k(){return _.useX().stateRef}function F(t){return k().optionalFields()[0][t]}function L(t,n){(0,k().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function U(t){var n;return null===(n=F(t))||void 0===n?void 0:n[0]}function G(){P((function(t){return t}))}function P(t){(0,k().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function W(){return D().filter((function(t){return t.isPending()}))}var w=c();function D(){var t=k().testObjects()[0].current;return w([t],(function(){return E(t)}))}var X,x=X||(X={});x.Error="error",x.Warning="warning";var j=function(){function t(t,n,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=X.Error,this.status=H,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==J||(this.status=t)},t.prototype.warns=function(){return this.severity===X.Warning},t.prototype.setPending=function(){this.setStatus(V)},t.prototype.fail=function(){this.setStatus(this.warns()?q:M)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(B)},t.prototype.warn=function(){this.severity=X.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(K)},t.prototype.cancel=function(){this.setStatus(Y),G()},t.prototype.reset=function(){this.status=H,G()},t.prototype.omit=function(){this.setStatus(J)},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(V)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(J)},t.prototype.isUntested=function(){return this.statusEquals(H)},t.prototype.isFailing=function(){return this.statusEquals(M)},t.prototype.isCanceled=function(){return this.statusEquals(Y)},t.prototype.isSkipped=function(){return this.statusEquals(K)},t.prototype.isPassing=function(){return this.statusEquals(B)},t.prototype.isWarning=function(){return this.statusEquals(q)},t.prototype.statusEquals=function(t){return this.status===t},t}(),H="UNTESTED",K="SKIPPED",M="FAILED",q="WARNING",B="PASSING",V="PENDING",Y="CANCELED",J="OMITTED";function z(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(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 Q(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:[]}}))}}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(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))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return D().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(D())&&!function(t){return ut(W().filter((function(n){return lt(n,t)})))}(t)&&function(t){return D().every((function(n){return!(!t||it(n,t))||pt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=F(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==U(t.fieldName)}function pt(t,n){return!(!n||it(t,n))||(!0===U(t.fieldName)||t.isTested()||t.isOmitted())}function dt(){var t=_.useX().summary;return b(t),t}function vt(){var t=D(),n=i({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&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return D().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(W().filter((function(e){return!ot(e,t)&&lt(e,n)})))}(u,n)&&function(t,n){return D().every((function(e){return!!ot(e,t)||pt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),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=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function Et(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function gt(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=dt().tests;return n?Et(e,t,n):gt(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=dt().groups[t],e?Et(t,n,e):gt(t,n)}function Ot(t){return Ct(tt.ERROR_COUNT,t)}function Tt(t){return Ct(tt.WARN_COUNT,t)}function Ct(t,n){var e,r=dt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=dt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[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 kt(t){var n=dt();return t?!!Lt(n.tests,t):n.valid}function Ft(t,n){if(!(t=dt().groups[t]))return!1;if(n)return Lt(t,n);for(var e in t)if(!Lt(t,e))return!1;return!0}function Lt(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=D(),n={stateRef:k()};return Ut([t],_.bind(n,(function(){var t=vt(),n=k().suiteName()[0],e={summary:t};return i(t,{getErrors:_.bind(e,Nt),getErrorsByGroup:_.bind(e,Rt),getWarnings:_.bind(e,mt),getWarningsByGroup:_.bind(e,bt),hasErrors:_.bind(e,Ot),hasErrorsByGroup:_.bind(e,At),hasWarnings:_.bind(e,Tt),hasWarningsByGroup:_.bind(e,It),isValid:_.bind(e,kt),isValidByGroup:_.bind(e,Ft),suiteName:n})})))}function Pt(t){var n=W();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function wt(){var t=D(),n={stateRef:k()};return Wt([t],_.bind(n,(function(){return i({},Gt(),{done:_.bind(n,xt)})})))}function Dt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Xt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=wt(),Dt(r,n,e)?e:Xt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,k().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=k().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),L(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(k().optionalFields()[0])){var n={};P((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=U(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(k().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){D().forEach((function(n){it(n,t)&&(n.cancel(),function(t){P((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){D().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=_.useX();return b(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=_.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=_.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=k(),o=_.bind({stateRef:i},(function(){G(),u(qt.TEST_COMPLETED,t)}));i=_.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=k().testObjects()[0].prev;if(rt(n))return en(t),t;var e=A();if(n=g(n,e)[v(e)],!O(t.key)){n=t.key,(e=_.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=_.useX().isolate.keys.current;return O(r[n])?r[n]=e:T('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!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(_.useX().isolate.type===N.EACH||T("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=k().testObjects(),n=t[1],e=t[0].prev;t=g(e,A());var r=_.useX().isolate.cursor.current();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=d(n,t)),t}function en(t){var n=A();P((function(e){return g(e,n)[v(n)]=t,e}))}function rn(t){var n=_.useX().isolate.cursor,e=y.EAGER;if(e=!(_.useX().mode[0]!==e||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),n.next(),t;if(e=nn(t),_.useX().omitted)return e.omit(),n.next(),e;if(function(t){var n=t.fieldName;if(t=t.groupName,_.useX().skipped)return!0;var e=_.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=_.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!p(e[n])}(t))return e.skip(!!_.useX().skipped),n.next(),e;if(t!==e&&e.fieldName===t.fieldName&&e.groupName===t.groupName&&e.isPending()&&e.cancel(),en(t),t.isUntested()){e=Mt();var r=function(t){return _.run({currentTest:t},(function(){return t.run()}))}(t);try{r&&l(r.then)?(t.asyncTest=r,t.setPending(),tn(t)):e.emit(qt.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(e=t.asyncTest)&&l(e.then)&&(t.setPending(),tn(t));return n.next(),t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],b(r(t),sn("fieldName","string")),b(l(e),sn("Test callback","function"));var i=_.useX();return rn(n=new j(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=_.useX().isolate.cursor.current();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[k().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],b(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=z();return t={stateRef:Q(o,{suiteId:e(),suiteName:t}),bus:u},i(_.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),C({type:N.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),wt()})),{get:_.bind(t,Gt),remove:_.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:_.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){b(l(n),"each callback must be a function"),C({type:N.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=y.EAGER;_.useX().mode[0]=t}function pn(t,n){b(r(t),Zt("name must be a string")),b(l(n),Zt("callback must be a function")),C({type:N.GROUP},(function(){_.run({groupName:t},n)}))}function dn(t){var n=_.useX(),e=n.inclusion;return n=n.exclusion,b(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=_.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Gt))}}}}function vn(t,n){C({type:N.OMIT_WHEN},(function(){_.run({omitted:!!_.useX().omitted||p(t,p(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){L(t,[!0,!1])}));else for(var n in t)L(n,[t[n],!1])}function En(t,n){C({type:N.SKIP_WHEN},(function(){_.run({skipped:!!_.useX().skipped||p(t,p(Gt))},(function(){return n()}))}))}function gn(){var t=_.useX("warn hook called outside of a running suite.");b(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,_ as context,cn as create,fn as each,ln as eager,pn as group,dn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,En as skipWhen,on as test,gn as warn};
@@ -453,7 +453,7 @@
453
453
  return null;
454
454
  }
455
455
 
456
- /*! *****************************************************************************
456
+ /******************************************************************************
457
457
  Copyright (c) Microsoft Corporation.
458
458
 
459
459
  Permission to use, copy, modify, and/or distribute this software for any
@@ -507,7 +507,7 @@
507
507
  return null;
508
508
  }
509
509
 
510
- /*! *****************************************************************************
510
+ /******************************************************************************
511
511
  Copyright (c) Microsoft Corporation.
512
512
 
513
513
  Permission to use, copy, modify, and/or distribute this software for any
@@ -453,7 +453,7 @@
453
453
  return null;
454
454
  }
455
455
 
456
- /*! *****************************************************************************
456
+ /******************************************************************************
457
457
  Copyright (c) Microsoft Corporation.
458
458
 
459
459
  Permission to use, copy, modify, and/or distribute this software for any