vest 4.6.6 → 4.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vest.development.js +46 -46
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +47 -47
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +49 -49
- package/dist/umd/vest.production.js +1 -1
- package/package.json +15 -2
- package/types/vest.d.ts +1 -1
|
@@ -3,14 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var n4s = require('n4s');
|
|
6
|
+
var vast = require('vast');
|
|
6
7
|
var vestUtils = require('vest-utils');
|
|
7
8
|
var context$1 = require('context');
|
|
8
|
-
var vast = require('vast');
|
|
9
|
-
|
|
10
|
-
function shouldUseErrorAsMessage(message, error) {
|
|
11
|
-
// kind of cheating with this safe guard, but it does the job
|
|
12
|
-
return vestUtils.isUndefined(message) && vestUtils.isStringValue(error);
|
|
13
|
-
}
|
|
14
9
|
|
|
15
10
|
var IsolateTypes;
|
|
16
11
|
(function (IsolateTypes) {
|
|
@@ -22,6 +17,25 @@ var IsolateTypes;
|
|
|
22
17
|
IsolateTypes[IsolateTypes["GROUP"] = 5] = "GROUP";
|
|
23
18
|
})(IsolateTypes || (IsolateTypes = {}));
|
|
24
19
|
|
|
20
|
+
function createStateRef(state, _a) {
|
|
21
|
+
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
22
|
+
return {
|
|
23
|
+
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
24
|
+
suiteId: state.registerStateKey(suiteId),
|
|
25
|
+
suiteName: state.registerStateKey(suiteName),
|
|
26
|
+
testCallbacks: state.registerStateKey(function () { return ({
|
|
27
|
+
fieldCallbacks: {},
|
|
28
|
+
doneCallbacks: []
|
|
29
|
+
}); }),
|
|
30
|
+
testObjects: state.registerStateKey(function (prev) {
|
|
31
|
+
return {
|
|
32
|
+
prev: prev ? prev.current : [],
|
|
33
|
+
current: []
|
|
34
|
+
};
|
|
35
|
+
})
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
25
39
|
var Modes;
|
|
26
40
|
(function (Modes) {
|
|
27
41
|
Modes[Modes["ALL"] = 0] = "ALL";
|
|
@@ -77,6 +91,31 @@ var context = context$1.createCascade(function (ctxRef, parentContext) {
|
|
|
77
91
|
}, ctxRef);
|
|
78
92
|
});
|
|
79
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @returns {Isolate} The current isolate layer
|
|
96
|
+
*/
|
|
97
|
+
function useIsolate() {
|
|
98
|
+
return context.useX().isolate;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
102
|
+
*/
|
|
103
|
+
function useCurrentPath() {
|
|
104
|
+
var isolate = useIsolate();
|
|
105
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
109
|
+
*/
|
|
110
|
+
function useCursor() {
|
|
111
|
+
return useIsolate().cursor;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function shouldUseErrorAsMessage(message, error) {
|
|
115
|
+
// kind of cheating with this safe guard, but it does the job
|
|
116
|
+
return vestUtils.isUndefined(message) && vestUtils.isStringValue(error);
|
|
117
|
+
}
|
|
118
|
+
|
|
80
119
|
// STATE REF
|
|
81
120
|
function useStateRef() {
|
|
82
121
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -290,45 +329,6 @@ var STATUS_PENDING = 'PENDING';
|
|
|
290
329
|
var STATUS_CANCELED = 'CANCELED';
|
|
291
330
|
var STATUS_OMITTED = 'OMITTED';
|
|
292
331
|
|
|
293
|
-
function createStateRef(state, _a) {
|
|
294
|
-
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
295
|
-
return {
|
|
296
|
-
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
297
|
-
suiteId: state.registerStateKey(suiteId),
|
|
298
|
-
suiteName: state.registerStateKey(suiteName),
|
|
299
|
-
testCallbacks: state.registerStateKey(function () { return ({
|
|
300
|
-
fieldCallbacks: {},
|
|
301
|
-
doneCallbacks: []
|
|
302
|
-
}); }),
|
|
303
|
-
testObjects: state.registerStateKey(function (prev) {
|
|
304
|
-
return {
|
|
305
|
-
prev: prev ? prev.current : [],
|
|
306
|
-
current: []
|
|
307
|
-
};
|
|
308
|
-
})
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* @returns {Isolate} The current isolate layer
|
|
314
|
-
*/
|
|
315
|
-
function useIsolate() {
|
|
316
|
-
return context.useX().isolate;
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* @returns {number[]} The current cursor path of the isolate tree
|
|
320
|
-
*/
|
|
321
|
-
function useCurrentPath() {
|
|
322
|
-
var isolate = useIsolate();
|
|
323
|
-
return isolate.path.concat(isolate.cursor.current());
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
327
|
-
*/
|
|
328
|
-
function useCursor() {
|
|
329
|
-
return useIsolate().cursor;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
332
|
function usePrevKeys() {
|
|
333
333
|
var prev = useTestObjects()[0].prev;
|
|
334
334
|
return vestUtils.asArray(vestUtils.nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
@@ -1661,7 +1661,7 @@ function warn() {
|
|
|
1661
1661
|
ctx.currentTest.warn();
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
|
-
var VERSION = "4.6.
|
|
1664
|
+
var VERSION = "4.6.7";
|
|
1665
1665
|
|
|
1666
1666
|
Object.defineProperty(exports, 'enforce', {
|
|
1667
1667
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,n,e=require("n4s"),r=require("vest-utils"),i=require("context"),u=require("vast");function o(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(t||(t={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(n||(n={}));var s=i.createCascade((function(e,i){return i?null:r.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:o(t.DEFAULT),mode:[n.ALL]},e)}));function a(){return s.useX().stateRef}function c(){return a().suiteId()[0]}function f(){return a().testCallbacks()}function l(){return a().optionalFields()}function p(t,n){(0,l()[1])((function(e){var i;return r.assign(e,((i={})[t]=r.assign({},e[t],n(e[t])),i))}))}function d(t){var n;return null!==(n=l()[0][t])&&void 0!==n?n:{}}function v(){return a().testObjects()}function E(){h((function(t){return t}))}function h(t){(0,v()[1])((function(n){var e=n.current;return{prev:n.prev,current:r.asArray(t(e))}}))}function g(){return m().filter((function(t){return t.isPending()}))}var N,y=r.cache();function m(){var t=v()[0].current;return y([t],(function(){return r.nestedArray.flatten(t)}))}function R(t){m().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(N||(N={}));var S,T,C=function(){function t(t,n,e){var i=void 0===e?{}:e,u=i.message,o=i.groupName,s=i.key;this.key=null,this.id=r.seq(),this.severity=N.Error,this.status=A,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return r.isUndefined(t)&&r.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==P||(this.status=t)},t.prototype.warns=function(){return this.severity===N.Warning},t.prototype.setPending=function(){this.setStatus(b)},t.prototype.fail=function(){this.setStatus(this.warns()?O:I)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(F)},t.prototype.warn=function(){this.severity=N.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(_)},t.prototype.cancel=function(){this.setStatus(k),E()},t.prototype.reset=function(){this.status=A,E()},t.prototype.omit=function(){this.setStatus(P)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(b)},t.prototype.isOmitted=function(){return this.statusEquals(P)},t.prototype.isUntested=function(){return this.statusEquals(A)},t.prototype.isFailing=function(){return this.statusEquals(I)},t.prototype.isCanceled=function(){return this.statusEquals(k)},t.prototype.isSkipped=function(){return this.statusEquals(_)},t.prototype.isPassing=function(){return this.statusEquals(F)},t.prototype.isWarning=function(){return this.statusEquals(O)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),A="UNTESTED",_="SKIPPED",I="FAILED",O="WARNING",F="PASSING",b="PENDING",k="CANCELED",P="OMITTED";function x(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function L(){return s.useX().isolate}function U(){var t=L();return t.path.concat(t.cursor.current())}function D(){return L().cursor}function W(n,e){var i=n.type,u=void 0===i?t.DEFAULT:i;r.invariant(r.isFunction(e));var a=o(u,U()),c=s.run({isolate:a},(function(){var t;return a.keys.prev=(t=v()[0].prev,r.asArray(r.nestedArray.getCurrent(t,U())).reduce((function(t,n){return n instanceof C?(r.isNullish(n.key)||(t[n.key]=n),t):t}),{})),h((function(t){return r.nestedArray.setValueAtPath(t,a.path,[])})),e()}));return D().next(),c}function w(t){return t===S.ERRORS?T.ERROR_COUNT:T.WARN_COUNT}function G(t,n){return!!n&&!V(t,n)}function V(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(S||(S={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(T||(T={}));var q,X=r.bindNot((function(t,n){return t.groupName===n}));function H(t){return function(t,n){return m().some((function(e){return K(e,t,n)}))}(S.ERRORS,t)}function K(t,n,e){return!!t.hasFailures()&&(!G(t,e)&&!function(t,n){return r.either(t===S.WARNINGS,n.warns())}(n,t))}function M(t){return!!t&&d(t).applied}function B(t){if(M(t))return!0;var n=m();return!r.isEmpty(n)&&(!H(t)&&(!function(t){return r.isNotEmpty(g().filter((function(n){return Y(n,t)})))}(t)&&function(t){return m().every((function(n){return J(n,t)}))}(t)))}function j(t,n){return!!M(n)||!function(t,n,e){return m().some((function(r){return!X(r,n)&&K(r,t,e)}))}(S.ERRORS,t,n)&&(!function(t,n){return r.isNotEmpty(g().filter((function(e){return!X(e,t)&&Y(e,n)})))}(t,n)&&function(t,n){return m().every((function(e){return!!X(e,t)||J(e,n)}))}(t,n))}function Y(t,n){return!G(t,n)&&M(n)}function J(t,n){return!!G(t,n)||(function(t){return d(t.fieldName).type===q.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function z(){var t=m(),n=r.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Q(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&B(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Q(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&j(e,n.fieldName)}(t.groups,n),t}),n),n.valid=B(),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 Q(t,n){var e=n.fieldName,i=n.message;t[e]=t[e]||r.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(S.ERRORS):n.isWarning()&&o(S.WARNINGS)),u;function o(t){var n=w(t);u[n]++,i&&(u[t]=(u[t]||[]).concat(i))}}function Z(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},i=w(n);for(var u in t)r.isPositive(t[u][i])&&(e[u]=t[u][n]||[]);return e}(t,n)}function $(t){var n={getErrors:function(n){return tt(t,S.ERRORS,n)},getErrorsByGroup:function(n,e){return nt(t,S.ERRORS,n,e)},getWarnings:function(n){return tt(t,S.WARNINGS,n)},getWarningsByGroup:function(n,e){return nt(t,S.WARNINGS,n,e)},hasErrors:function(n){return it(t,T.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return rt(t,T.ERROR_COUNT,n,e)},hasWarnings:function(n){return it(t,T.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return rt(t,T.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return et(r,e);for(var i in r)if(!et(r,i))return!1;return!0}};return n}function tt(t,n,e){return Z(t.tests,n,e)}function nt(t,n,e,r){return Z(t.groups[e],n,r)}function et(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function rt(t,n,e,i){var u,o,s=t.groups[e];if(!s)return!1;if(i)return r.isPositive(null===(u=s[i])||void 0===u?void 0:u[n]);for(var a in s)if(r.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function it(t,n,e){var i,u=e?null===(i=t.tests[e])||void 0===i?void 0:i[n]:t[n]||0;return r.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(q||(q={}));var ut=r.cache(1);function ot(){var t=m(),n={stateRef:a()};return ut([t],s.bind(n,(function(){var t=z(),n=a().suiteName()[0];return r.assign(t,$(t),{suiteName:n})})))}function st(t){var n=g();return!r.isEmpty(n)&&(!t||n.some((function(n){return V(n,t)})))}var at=r.cache(20);function ct(){var t=m(),n={stateRef:a()};return at([t],s.bind(n,(function(){return r.assign({},ot(),{done:s.bind(n,dt)})})))}function ft(t,n,e){var i;return!!(!r.isFunction(t)||n&&r.numberEquals(null===(i=e.tests[n])||void 0===i?void 0:i.testCount,0))}function lt(t){return!(st()&&(!t||st(t)))}var pt,dt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ct();if(ft(r,i,u))return u;var o=function(){return r(ot())};return lt(i)?(o(),u):(vt(o,i),u)};function vt(t,n){(0,f()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Et(){var t=l()[0];if(!r.isEmpty(t)){var n={};m().forEach((function(t){r.hasOwnProperty(n,t.fieldName)?e(t):function(t){var i=d(t.fieldName);i.type===q.Immediate&&(n[t.fieldName]=r.optionalFunctionValue(i.rule),e(t))}(t)})),E()}function e(t){n[t.fieldName]&&(t.omit(),p(t.fieldName,(function(){return{applied:!0}})))}}function ht(){var t=r.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,i;n.isCanceled()||(n.done(),e=n.fieldName,i=f()[0].fieldCallbacks,e&&!st(e)&&r.isArray(i[e])&&r.callEach(i[e]),st()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){Et()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=f()[0].doneCallbacks,r.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){R((function(n){V(n,t)&&(n.cancel(),function(t){h((function(n){return r.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){R((function(n){V(n,t)&&n.reset()}))})),t}function gt(){var t=s.useX();return r.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));function Nt(){return!!s.useX().skipped}function yt(t){return St(0,"tests",t)}function mt(t){return St(1,"tests",t)}function Rt(t){var n=t.fieldName,e=t.groupName;if(Nt())return!0;var i=s.useX(),u=i.exclusion,o=i.inclusion,a=u.tests,c=a[n];if(!1===c)return!0;var f=!0===c;if(e){if(function(t){var n=s.useX().exclusion.groups;if(r.hasOwnProperty(n,t))return!1===n[t];return Ct()}(e))return!0;if(!0===u.groups[e])return!f&&(!!Tt(a)||!1===a[n])}return!!function(t){if(!Ct())return!1;return!t}(e)||!f&&(!!Tt(a)&&!r.optionalFunctionValue(o[n]))}function St(t,n,e){var i=s.useX("hook called outside of a running suite.");e&&r.asArray(e).forEach((function(e){r.isStringValue(e)&&(i.exclusion[n][e]=0===t)}))}function Tt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ct(){var t=s.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function At(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function _t(t){return e=n.EAGER,s.useX().mode[0]===e&&H(t.fieldName);var e}function It(){return!!s.useX().omitted}function Ot(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function Ft(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function bt(t){var n=t.asyncTest,e=t.message;if(r.isPromise(n)){var i=gt().emit,u=a(),o=s.bind({stateRef:u},(function(){E(),i(pt.TEST_COMPLETED,t)})),c=s.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=r.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,c)}}function kt(t){var n=gt(),e=function(t){return s.run({currentTest:t},(function(){return t.run()}))}(t);try{r.isPromise(e)?(t.asyncTest=e,t.setPending(),bt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Pt(n){var e=v()[0].prev;if(r.isEmpty(e))return xt(n),n;var i,u,o,s=(i=e,u=U(),r.nestedArray.valueAtPath(i,u));if(!r.isNullish(n.key)){var a=function(t,n){var e=function(t){return L().keys.prev[t]}(t),i=n;e&&(i=e);return function(t,n){var e=L().keys.current;r.isNullish(e[t])?e[t]=n:r.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,i),i}(n.key,n);return xt(a),a}(function(t,n){return r.isNotEmpty(t)&&!Ft(t,n)})(s,n)&&(!function(n,e){if(L().type===t.EACH)return;r.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(s,n),o=D().current(),h((function(t){return t.splice(o),t})),s=null);var c=r.defaultTo(s,n);return xt(c),c}function xt(t){var n=U();h((function(e){return r.nestedArray.setValueAtPath(e,n,t)}))}function Lt(t){var n=D();if(_t(t))return t.skip(),Pt(t),n.next(),t;var e,i,u=Pt(t);return It()||M(t.fieldName)?(u.omit(),n.next(),u):Rt(t)?(u.skip(Nt()),n.next(),u):((i=t)!==(e=u)&&Ft(e,i)&&e.isPending()&&e.cancel(),xt(t),function(t){t.isUntested()?kt(t):r.isPromise(t.asyncTest)&&(t.setPending(),bt(t))}(t),n.next(),t)}function Ut(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var i=r.isFunction(n[1])?n:Ot([void 0],n,!0),u=i[0],o=i[1],a=i[2];r.invariant(r.isStringValue(t),Wt("fieldName","string")),r.invariant(r.isFunction(o),Wt("Test callback","function"));var c=s.useX(),f=new C(t,o,{message:u,groupName:c.groupName,key:a});return Lt(f)}yt.group=function(t){return St(0,"groups",t)},mt.group=function(t){return St(1,"groups",t)};var Dt=r.assign(Ut,{memo:function(t){var n=r.cache(10);return function(e){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];var o=D().current(),s=i.reverse(),a=s[0],f=s[1],l=s[2],p=[c(),e,o].concat(a),d=n.get(p);return r.isNull(d)?n(p,(function(){return t(e,l,f)})):d[1].isCanceled()?(n.invalidate(p),n(p,(function(){return t(e,l,f)}))):Lt(d[1])}}(Ut)});function Wt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.6.6",exports.context=s,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var i=n.reverse(),o=i[0],a=i[1];r.invariant(r.isFunction(o),"vest.create: Expected callback to be a function.");var c=ht(),f=u.createState(),l=x(f,{suiteId:r.seq(),suiteName:a}),p={stateRef:l,bus:c},d=r.assign(s.bind(p,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return f.reset(),W({type:t.SUITE},(function(){o.apply(void 0,n)})),c.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ct()})),{get:s.bind(p,ot),remove:s.bind(p,(function(t){c.emit(pt.REMOVE_FIELD,t)})),reset:f.reset,resetField:s.bind(p,(function(t){c.emit(pt.RESET_FIELD,t)}))});return d},exports.each=function(n,e){r.invariant(r.isFunction(e),"each callback must be a function"),W({type:t.EACH},(function(){n.forEach((function(t,n){e(t,n)}))}))},exports.eager=function(){var t;t=n.EAGER,s.useX().mode[0]=t},exports.group=function(n,e){r.invariant(r.isStringValue(n),At("name must be a string")),r.invariant(r.isFunction(e),At("callback must be a function")),W({type:t.GROUP},(function(){s.run({groupName:n},e)}))},exports.include=function(t){var n=s.useX(),e=n.inclusion,i=n.exclusion;return r.invariant(r.isStringValue(t)),e[t]=r.defaultTo(i.tests[t],!0),{when:function(n){var e=s.useX(),i=e.inclusion,u=e.exclusion;i[t]=function(){return r.hasOwnProperty(u.tests,t)?r.defaultTo(u.tests[t],!0):r.isStringValue(n)?Boolean(u.tests[n]):r.optionalFunctionValue(n,r.optionalFunctionValue(ot))}}}},exports.omitWhen=function(n,e){W({type:t.OMIT_WHEN},(function(){s.run({omitted:It()||r.optionalFunctionValue(n,r.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.only=yt,exports.optional=function(t){if(r.isArray(t)||r.isStringValue(t))r.asArray(t).forEach((function(t){p(t,(function(){return{type:q.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];p(n,(function(){return{type:q.Immediate,rule:e,applied:r.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},exports.skip=mt,exports.skipWhen=function(n,e){W({type:t.SKIP_WHEN},(function(){s.run({skipped:Nt()||r.optionalFunctionValue(n,r.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.suiteSelectors=$,exports.test=Dt,exports.warn=function(){var t=s.useX("warn hook called outside of a running suite.");r.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,n,e=require("n4s"),r=require("vast"),i=require("vest-utils"),u=require("context");function o(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function s(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(t||(t={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(n||(n={}));var a=u.createCascade((function(e,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(t.DEFAULT),mode:[n.ALL]},e)}));function c(){return a.useX().isolate}function f(){var t=c();return t.path.concat(t.cursor.current())}function l(){return c().cursor}function p(){return a.useX().stateRef}function d(){return p().suiteId()[0]}function v(){return p().testCallbacks()}function E(){return p().optionalFields()}function h(t,n){(0,E()[1])((function(e){var r;return i.assign(e,((r={})[t]=i.assign({},e[t],n(e[t])),r))}))}function g(t){var n;return null!==(n=E()[0][t])&&void 0!==n?n:{}}function N(){return p().testObjects()}function y(){m((function(t){return t}))}function m(t){(0,N()[1])((function(n){var e=n.current;return{prev:n.prev,current:i.asArray(t(e))}}))}function R(){return C().filter((function(t){return t.isPending()}))}var S,T=i.cache();function C(){var t=N()[0].current;return T([t],(function(){return i.nestedArray.flatten(t)}))}function A(t){C().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(S||(S={}));var _,I,O=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,o=r.groupName,s=r.key;this.key=null,this.id=i.seq(),this.severity=S.Error,this.status=F,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return i.isUndefined(t)&&i.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==D||(this.status=t)},t.prototype.warns=function(){return this.severity===S.Warning},t.prototype.setPending=function(){this.setStatus(L)},t.prototype.fail=function(){this.setStatus(this.warns()?P:k)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=S.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(b)},t.prototype.cancel=function(){this.setStatus(U),y()},t.prototype.reset=function(){this.status=F,y()},t.prototype.omit=function(){this.setStatus(D)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(L)},t.prototype.isOmitted=function(){return this.statusEquals(D)},t.prototype.isUntested=function(){return this.statusEquals(F)},t.prototype.isFailing=function(){return this.statusEquals(k)},t.prototype.isCanceled=function(){return this.statusEquals(U)},t.prototype.isSkipped=function(){return this.statusEquals(b)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(P)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),F="UNTESTED",b="SKIPPED",k="FAILED",P="WARNING",x="PASSING",L="PENDING",U="CANCELED",D="OMITTED";function W(n,e){var r=n.type,u=void 0===r?t.DEFAULT:r;i.invariant(i.isFunction(e));var o=s(u,f()),c=a.run({isolate:o},(function(){var t;return o.keys.prev=(t=N()[0].prev,i.asArray(i.nestedArray.getCurrent(t,f())).reduce((function(t,n){return n instanceof O?(i.isNullish(n.key)||(t[n.key]=n),t):t}),{})),m((function(t){return i.nestedArray.setValueAtPath(t,o.path,[])})),e()}));return l().next(),c}function w(t){return t===_.ERRORS?I.ERROR_COUNT:I.WARN_COUNT}function G(t,n){return!!n&&!V(t,n)}function V(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(_||(_={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(I||(I={}));var q,X=i.bindNot((function(t,n){return t.groupName===n}));function H(t){return function(t,n){return C().some((function(e){return K(e,t,n)}))}(_.ERRORS,t)}function K(t,n,e){return!!t.hasFailures()&&(!G(t,e)&&!function(t,n){return i.either(t===_.WARNINGS,n.warns())}(n,t))}function M(t){return!!t&&g(t).applied}function B(t){if(M(t))return!0;var n=C();return!i.isEmpty(n)&&(!H(t)&&(!function(t){return i.isNotEmpty(R().filter((function(n){return Y(n,t)})))}(t)&&function(t){return C().every((function(n){return J(n,t)}))}(t)))}function j(t,n){return!!M(n)||!function(t,n,e){return C().some((function(r){return!X(r,n)&&K(r,t,e)}))}(_.ERRORS,t,n)&&(!function(t,n){return i.isNotEmpty(R().filter((function(e){return!X(e,t)&&Y(e,n)})))}(t,n)&&function(t,n){return C().every((function(e){return!!X(e,t)||J(e,n)}))}(t,n))}function Y(t,n){return!G(t,n)&&M(n)}function J(t,n){return!!G(t,n)||(function(t){return g(t.fieldName).type===q.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function z(){var t=C(),n=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Q(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&B(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Q(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&j(e,n.fieldName)}(t.groups,n),t}),n),n.valid=B(),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 Q(t,n){var e=n.fieldName,r=n.message;t[e]=t[e]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(_.ERRORS):n.isWarning()&&o(_.WARNINGS)),u;function o(t){var n=w(t);u[n]++,r&&(u[t]=(u[t]||[]).concat(r))}}function Z(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=w(n);for(var u in t)i.isPositive(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function $(t){var n={getErrors:function(n){return tt(t,_.ERRORS,n)},getErrorsByGroup:function(n,e){return nt(t,_.ERRORS,n,e)},getWarnings:function(n){return tt(t,_.WARNINGS,n)},getWarningsByGroup:function(n,e){return nt(t,_.WARNINGS,n,e)},hasErrors:function(n){return it(t,I.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return rt(t,I.ERROR_COUNT,n,e)},hasWarnings:function(n){return it(t,I.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return rt(t,I.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return et(r,e);for(var i in r)if(!et(r,i))return!1;return!0}};return n}function tt(t,n,e){return Z(t.tests,n,e)}function nt(t,n,e,r){return Z(t.groups[e],n,r)}function et(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function rt(t,n,e,r){var u,o,s=t.groups[e];if(!s)return!1;if(r)return i.isPositive(null===(u=s[r])||void 0===u?void 0:u[n]);for(var a in s)if(i.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function it(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return i.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(q||(q={}));var ut=i.cache(1);function ot(){var t=C(),n={stateRef:p()};return ut([t],a.bind(n,(function(){var t=z(),n=p().suiteName()[0];return i.assign(t,$(t),{suiteName:n})})))}function st(t){var n=R();return!i.isEmpty(n)&&(!t||n.some((function(n){return V(n,t)})))}var at=i.cache(20);function ct(){var t=C(),n={stateRef:p()};return at([t],a.bind(n,(function(){return i.assign({},ot(),{done:a.bind(n,dt)})})))}function ft(t,n,e){var r;return!!(!i.isFunction(t)||n&&i.numberEquals(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function lt(t){return!(st()&&(!t||st(t)))}var pt,dt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ct();if(ft(r,i,u))return u;var o=function(){return r(ot())};return lt(i)?(o(),u):(vt(o,i),u)};function vt(t,n){(0,v()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Et(){var t=E()[0];if(!i.isEmpty(t)){var n={};C().forEach((function(t){i.hasOwnProperty(n,t.fieldName)?e(t):function(t){var r=g(t.fieldName);r.type===q.Immediate&&(n[t.fieldName]=i.optionalFunctionValue(r.rule),e(t))}(t)})),y()}function e(t){n[t.fieldName]&&(t.omit(),h(t.fieldName,(function(){return{applied:!0}})))}}function ht(){var t=i.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=v()[0].fieldCallbacks,e&&!st(e)&&i.isArray(r[e])&&i.callEach(r[e]),st()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){Et()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=v()[0].doneCallbacks,i.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){A((function(n){V(n,t)&&(n.cancel(),function(t){m((function(n){return i.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){A((function(n){V(n,t)&&n.reset()}))})),t}function gt(){var t=a.useX();return i.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));function Nt(){return!!a.useX().skipped}function yt(t){return St(0,"tests",t)}function mt(t){return St(1,"tests",t)}function Rt(t){var n=t.fieldName,e=t.groupName;if(Nt())return!0;var r=a.useX(),u=r.exclusion,o=r.inclusion,s=u.tests,c=s[n];if(!1===c)return!0;var f=!0===c;if(e){if(function(t){var n=a.useX().exclusion.groups;if(i.hasOwnProperty(n,t))return!1===n[t];return Ct()}(e))return!0;if(!0===u.groups[e])return!f&&(!!Tt(s)||!1===s[n])}return!!function(t){if(!Ct())return!1;return!t}(e)||!f&&(!!Tt(s)&&!i.optionalFunctionValue(o[n]))}function St(t,n,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[n][e]=0===t)}))}function Tt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Ct(){var t=a.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function At(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function _t(t){return e=n.EAGER,a.useX().mode[0]===e&&H(t.fieldName);var e}function It(){return!!a.useX().omitted}function Ot(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function Ft(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function bt(t){var n=t.asyncTest,e=t.message;if(i.isPromise(n)){var r=gt().emit,u=p(),o=a.bind({stateRef:u},(function(){y(),r(pt.TEST_COMPLETED,t)})),s=a.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=i.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,s)}}function kt(t){var n=gt(),e=function(t){return a.run({currentTest:t},(function(){return t.run()}))}(t);try{i.isPromise(e)?(t.asyncTest=e,t.setPending(),bt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Pt(n){var e=N()[0].prev;if(i.isEmpty(e))return xt(n),n;var r,u,o,s=(r=e,u=f(),i.nestedArray.valueAtPath(r,u));if(!i.isNullish(n.key)){var a=function(t,n){var e=function(t){return c().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=c().keys.current;i.isNullish(e[t])?e[t]=n:i.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(n.key,n);return xt(a),a}(function(t,n){return i.isNotEmpty(t)&&!Ft(t,n)})(s,n)&&(!function(n,e){if(c().type===t.EACH)return;i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(e.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(s,n),o=l().current(),m((function(t){return t.splice(o),t})),s=null);var p=i.defaultTo(s,n);return xt(p),p}function xt(t){var n=f();m((function(e){return i.nestedArray.setValueAtPath(e,n,t)}))}function Lt(t){var n=l();if(_t(t))return t.skip(),Pt(t),n.next(),t;var e,r,u=Pt(t);return It()||M(t.fieldName)?(u.omit(),n.next(),u):Rt(t)?(u.skip(Nt()),n.next(),u):((r=t)!==(e=u)&&Ft(e,r)&&e.isPending()&&e.cancel(),xt(t),function(t){t.isUntested()?kt(t):i.isPromise(t.asyncTest)&&(t.setPending(),bt(t))}(t),n.next(),t)}function Ut(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=i.isFunction(n[1])?n:Ot([void 0],n,!0),u=r[0],o=r[1],s=r[2];i.invariant(i.isStringValue(t),Wt("fieldName","string")),i.invariant(i.isFunction(o),Wt("Test callback","function"));var c=a.useX(),f=new O(t,o,{message:u,groupName:c.groupName,key:s});return Lt(f)}yt.group=function(t){return St(0,"groups",t)},mt.group=function(t){return St(1,"groups",t)};var Dt=i.assign(Ut,{memo:function(t){var n=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var o=l().current(),s=r.reverse(),a=s[0],c=s[1],f=s[2],p=[d(),e,o].concat(a),v=n.get(p);return i.isNull(v)?n(p,(function(){return t(e,f,c)})):v[1].isCanceled()?(n.invalidate(p),n(p,(function(){return t(e,f,c)}))):Lt(v[1])}}(Ut)});function Wt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return e.enforce}}),exports.VERSION="4.6.7",exports.context=a,exports.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var u=n.reverse(),s=u[0],c=u[1];i.invariant(i.isFunction(s),"vest.create: Expected callback to be a function.");var f=ht(),l=r.createState(),p=o(l,{suiteId:i.seq(),suiteName:c}),d={stateRef:p,bus:f},v=i.assign(a.bind(d,(function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return l.reset(),W({type:t.SUITE},(function(){s.apply(void 0,n)})),f.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ct()})),{get:a.bind(d,ot),remove:a.bind(d,(function(t){f.emit(pt.REMOVE_FIELD,t)})),reset:l.reset,resetField:a.bind(d,(function(t){f.emit(pt.RESET_FIELD,t)}))});return v},exports.each=function(n,e){i.invariant(i.isFunction(e),"each callback must be a function"),W({type:t.EACH},(function(){n.forEach((function(t,n){e(t,n)}))}))},exports.eager=function(){var t;t=n.EAGER,a.useX().mode[0]=t},exports.group=function(n,e){i.invariant(i.isStringValue(n),At("name must be a string")),i.invariant(i.isFunction(e),At("callback must be a function")),W({type:t.GROUP},(function(){a.run({groupName:n},e)}))},exports.include=function(t){var n=a.useX(),e=n.inclusion,r=n.exclusion;return i.invariant(i.isStringValue(t)),e[t]=i.defaultTo(r.tests[t],!0),{when:function(n){var e=a.useX(),r=e.inclusion,u=e.exclusion;r[t]=function(){return i.hasOwnProperty(u.tests,t)?i.defaultTo(u.tests[t],!0):i.isStringValue(n)?Boolean(u.tests[n]):i.optionalFunctionValue(n,i.optionalFunctionValue(ot))}}}},exports.omitWhen=function(n,e){W({type:t.OMIT_WHEN},(function(){a.run({omitted:It()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.only=yt,exports.optional=function(t){if(i.isArray(t)||i.isStringValue(t))i.asArray(t).forEach((function(t){h(t,(function(){return{type:q.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];h(n,(function(){return{type:q.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},exports.skip=mt,exports.skipWhen=function(n,e){W({type:t.SKIP_WHEN},(function(){a.run({skipped:Nt()||i.optionalFunctionValue(n,i.optionalFunctionValue(ot))},(function(){return e()}))}))},exports.suiteSelectors=$,exports.test=Dt,exports.warn=function(){var t=a.useX("warn hook called outside of a running suite.");i.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()};
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
export { enforce } from 'n4s';
|
|
2
|
-
import { isUndefined, isStringValue, assign, cache as cache$2, asArray, nestedArray, seq, isNullish, deferThrow, invariant, isFunction, bindNot, either, isArray, optionalFunctionValue, isEmpty, isNotEmpty, isPositive, numberEquals, hasOwnProperty, callEach, bus, defaultTo, isPromise, isNull } from 'vest-utils';
|
|
3
|
-
import { createCascade } from 'context';
|
|
4
2
|
import { createState } from 'vast';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// kind of cheating with this safe guard, but it does the job
|
|
8
|
-
return isUndefined(message) && isStringValue(error);
|
|
9
|
-
}
|
|
3
|
+
import { assign, isUndefined, isStringValue, cache as cache$2, asArray, nestedArray, seq, isNullish, deferThrow, invariant, isFunction, bindNot, either, isArray, optionalFunctionValue, isEmpty, isNotEmpty, isPositive, numberEquals, hasOwnProperty, callEach, bus, defaultTo, isPromise, isNull } from 'vest-utils';
|
|
4
|
+
import { createCascade } from 'context';
|
|
10
5
|
|
|
11
6
|
var IsolateTypes;
|
|
12
7
|
(function (IsolateTypes) {
|
|
@@ -18,6 +13,25 @@ var IsolateTypes;
|
|
|
18
13
|
IsolateTypes[IsolateTypes["GROUP"] = 5] = "GROUP";
|
|
19
14
|
})(IsolateTypes || (IsolateTypes = {}));
|
|
20
15
|
|
|
16
|
+
function createStateRef(state, _a) {
|
|
17
|
+
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
18
|
+
return {
|
|
19
|
+
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
20
|
+
suiteId: state.registerStateKey(suiteId),
|
|
21
|
+
suiteName: state.registerStateKey(suiteName),
|
|
22
|
+
testCallbacks: state.registerStateKey(function () { return ({
|
|
23
|
+
fieldCallbacks: {},
|
|
24
|
+
doneCallbacks: []
|
|
25
|
+
}); }),
|
|
26
|
+
testObjects: state.registerStateKey(function (prev) {
|
|
27
|
+
return {
|
|
28
|
+
prev: prev ? prev.current : [],
|
|
29
|
+
current: []
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
21
35
|
var Modes;
|
|
22
36
|
(function (Modes) {
|
|
23
37
|
Modes[Modes["ALL"] = 0] = "ALL";
|
|
@@ -73,6 +87,31 @@ var context = createCascade(function (ctxRef, parentContext) {
|
|
|
73
87
|
}, ctxRef);
|
|
74
88
|
});
|
|
75
89
|
|
|
90
|
+
/**
|
|
91
|
+
* @returns {Isolate} The current isolate layer
|
|
92
|
+
*/
|
|
93
|
+
function useIsolate() {
|
|
94
|
+
return context.useX().isolate;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
98
|
+
*/
|
|
99
|
+
function useCurrentPath() {
|
|
100
|
+
var isolate = useIsolate();
|
|
101
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
105
|
+
*/
|
|
106
|
+
function useCursor() {
|
|
107
|
+
return useIsolate().cursor;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function shouldUseErrorAsMessage(message, error) {
|
|
111
|
+
// kind of cheating with this safe guard, but it does the job
|
|
112
|
+
return isUndefined(message) && isStringValue(error);
|
|
113
|
+
}
|
|
114
|
+
|
|
76
115
|
// STATE REF
|
|
77
116
|
function useStateRef() {
|
|
78
117
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -286,45 +325,6 @@ var STATUS_PENDING = 'PENDING';
|
|
|
286
325
|
var STATUS_CANCELED = 'CANCELED';
|
|
287
326
|
var STATUS_OMITTED = 'OMITTED';
|
|
288
327
|
|
|
289
|
-
function createStateRef(state, _a) {
|
|
290
|
-
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
291
|
-
return {
|
|
292
|
-
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
293
|
-
suiteId: state.registerStateKey(suiteId),
|
|
294
|
-
suiteName: state.registerStateKey(suiteName),
|
|
295
|
-
testCallbacks: state.registerStateKey(function () { return ({
|
|
296
|
-
fieldCallbacks: {},
|
|
297
|
-
doneCallbacks: []
|
|
298
|
-
}); }),
|
|
299
|
-
testObjects: state.registerStateKey(function (prev) {
|
|
300
|
-
return {
|
|
301
|
-
prev: prev ? prev.current : [],
|
|
302
|
-
current: []
|
|
303
|
-
};
|
|
304
|
-
})
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
/**
|
|
309
|
-
* @returns {Isolate} The current isolate layer
|
|
310
|
-
*/
|
|
311
|
-
function useIsolate() {
|
|
312
|
-
return context.useX().isolate;
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* @returns {number[]} The current cursor path of the isolate tree
|
|
316
|
-
*/
|
|
317
|
-
function useCurrentPath() {
|
|
318
|
-
var isolate = useIsolate();
|
|
319
|
-
return isolate.path.concat(isolate.cursor.current());
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
323
|
-
*/
|
|
324
|
-
function useCursor() {
|
|
325
|
-
return useIsolate().cursor;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
328
|
function usePrevKeys() {
|
|
329
329
|
var prev = useTestObjects()[0].prev;
|
|
330
330
|
return asArray(nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
@@ -1657,6 +1657,6 @@ function warn() {
|
|
|
1657
1657
|
ctx.currentTest.warn();
|
|
1658
1658
|
}
|
|
1659
1659
|
|
|
1660
|
-
var VERSION = "4.6.
|
|
1660
|
+
var VERSION = "4.6.7";
|
|
1661
1661
|
|
|
1662
1662
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, suiteSelectors, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{enforce}from"n4s";import{isUndefined as t,isStringValue as n,assign as e,cache as r,asArray as u,nestedArray as i,seq as o,isNullish as s,deferThrow as a,invariant as c,isFunction as f,bindNot as l,either as d,isArray as p,optionalFunctionValue as v,isEmpty as E,isNotEmpty as m,isPositive as N,numberEquals as h,hasOwnProperty as g,callEach as y,bus as R,defaultTo as S,isPromise as T,isNull as C}from"vest-utils";import{createCascade as I}from"context";import{createState as _}from"vast";var A,O;function k(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(A||(A={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(O||(O={}));var b=I((function(t,n){return n?null:e({exclusion:{tests:{},groups:{}},inclusion:{},isolate:k(A.DEFAULT),mode:[O.ALL]},t)}));function L(){return b.useX().stateRef}function U(){return L().suiteId()[0]}function D(){return L().testCallbacks()}function F(){return L().optionalFields()}function P(t,n){(0,F()[1])((function(r){var u;return e(r,((u={})[t]=e({},r[t],n(r[t])),u))}))}function W(t){var n;return null!==(n=F()[0][t])&&void 0!==n?n:{}}function G(){return L().testObjects()}function w(){x((function(t){return t}))}function x(t){(0,G()[1])((function(n){var e=n.current;return{prev:n.prev,current:u(t(e))}}))}function X(){return B().filter((function(t){return t.isPending()}))}var H,K=r();function B(){var t=G()[0].current;return K([t],(function(){return i.flatten(t)}))}function M(t){B().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(H||(H={}));var q,V,j=function(){function e(t,n,e){var r=void 0===e?{}:e,u=r.message,i=r.groupName,s=r.key;this.key=null,this.id=o(),this.severity=H.Error,this.status=Y,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),u&&(this.message=u),s&&(this.key=s)}return e.prototype.run=function(){var e;try{e=this.testFn()}catch(r){(function(e,r){return t(e)&&n(r)})(this.message,r)&&(this.message=r),e=!1}return!1===e&&this.fail(),e},e.prototype.setStatus=function(t){this.isFinalStatus()&&t!==nt||(this.status=t)},e.prototype.warns=function(){return this.severity===H.Warning},e.prototype.setPending=function(){this.setStatus($)},e.prototype.fail=function(){this.setStatus(this.warns()?Q:z)},e.prototype.done=function(){this.isFinalStatus()||this.setStatus(Z)},e.prototype.warn=function(){this.severity=H.Warning},e.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},e.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(J)},e.prototype.cancel=function(){this.setStatus(tt),w()},e.prototype.reset=function(){this.status=Y,w()},e.prototype.omit=function(){this.setStatus(nt)},e.prototype.valueOf=function(){return!this.isFailing()},e.prototype.isPending=function(){return this.statusEquals($)},e.prototype.isOmitted=function(){return this.statusEquals(nt)},e.prototype.isUntested=function(){return this.statusEquals(Y)},e.prototype.isFailing=function(){return this.statusEquals(z)},e.prototype.isCanceled=function(){return this.statusEquals(tt)},e.prototype.isSkipped=function(){return this.statusEquals(J)},e.prototype.isPassing=function(){return this.statusEquals(Z)},e.prototype.isWarning=function(){return this.statusEquals(Q)},e.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},e.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},e.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},e.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},e.prototype.statusEquals=function(t){return this.status===t},e}(),Y="UNTESTED",J="SKIPPED",z="FAILED",Q="WARNING",Z="PASSING",$="PENDING",tt="CANCELED",nt="OMITTED";function et(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function rt(){return b.useX().isolate}function ut(){var t=rt();return t.path.concat(t.cursor.current())}function it(){return rt().cursor}function ot(t,n){var e=t.type,r=void 0===e?A.DEFAULT:e;c(f(n));var o=k(r,ut()),a=b.run({isolate:o},(function(){var t;return o.keys.prev=(t=G()[0].prev,u(i.getCurrent(t,ut())).reduce((function(t,n){return n instanceof j?(s(n.key)||(t[n.key]=n),t):t}),{})),x((function(t){return i.setValueAtPath(t,o.path,[])})),n()}));return it().next(),a}function st(t){return t===q.ERRORS?V.ERROR_COUNT:V.WARN_COUNT}function at(t,n){return!!n&&!ct(t,n)}function ct(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(q||(q={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(V||(V={}));var ft,lt=l((function(t,n){return t.groupName===n}));function dt(t){return function(t,n){return B().some((function(e){return pt(e,t,n)}))}(q.ERRORS,t)}function pt(t,n,e){return!!t.hasFailures()&&(!at(t,e)&&!function(t,n){return d(t===q.WARNINGS,n.warns())}(n,t))}function vt(t){if(p(t)||n(t))u(t).forEach((function(t){P(t,(function(){return{type:ft.Delayed,applied:!1,rule:null}}))}));else{var e=function(n){var e=t[n];P(n,(function(){return{type:ft.Immediate,rule:e,applied:v(e)}}))};for(var r in t)e(r)}}function Et(t){return!!t&&W(t).applied}function mt(t){if(Et(t))return!0;var n=B();return!E(n)&&(!dt(t)&&(!function(t){return m(X().filter((function(n){return ht(n,t)})))}(t)&&function(t){return B().every((function(n){return gt(n,t)}))}(t)))}function Nt(t,n){return!!Et(n)||!function(t,n,e){return B().some((function(r){return!lt(r,n)&&pt(r,t,e)}))}(q.ERRORS,t,n)&&(!function(t,n){return m(X().filter((function(e){return!lt(e,t)&&ht(e,n)})))}(t,n)&&function(t,n){return B().every((function(e){return!!lt(e,t)||gt(e,n)}))}(t,n))}function ht(t,n){return!at(t,n)&&Et(n)}function gt(t,n){return!!at(t,n)||(function(t){return W(t.fieldName).type===ft.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function yt(){var t=B(),n=e({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Rt(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&mt(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Rt(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Nt(e,n.fieldName)}(t.groups,n),t}),n),n.valid=mt(),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 Rt(t,n){var r=n.fieldName,u=n.message;t[r]=t[r]||e({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?o(q.ERRORS):n.isWarning()&&o(q.WARNINGS)),i;function o(t){var n=st(t);i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}}function St(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=st(n);for(var u in t)N(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function Tt(t){var n={getErrors:function(n){return Ct(t,q.ERRORS,n)},getErrorsByGroup:function(n,e){return It(t,q.ERRORS,n,e)},getWarnings:function(n){return Ct(t,q.WARNINGS,n)},getWarningsByGroup:function(n,e){return It(t,q.WARNINGS,n,e)},hasErrors:function(n){return Ot(t,V.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return At(t,V.ERROR_COUNT,n,e)},hasWarnings:function(n){return Ot(t,V.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return At(t,V.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return _t(r,e);for(var u in r)if(!_t(r,u))return!1;return!0}};return n}function Ct(t,n,e){return St(t.tests,n,e)}function It(t,n,e,r){return St(t.groups[e],n,r)}function _t(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function At(t,n,e,r){var u,i,o=t.groups[e];if(!o)return!1;if(r)return N(null===(u=o[r])||void 0===u?void 0:u[n]);for(var s in o)if(N(null===(i=o[s])||void 0===i?void 0:i[n]))return!0;return!1}function Ot(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return N(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(ft||(ft={}));var kt=r(1);function bt(){var t=B(),n={stateRef:L()};return kt([t],b.bind(n,(function(){var t=yt(),n=L().suiteName()[0];return e(t,Tt(t),{suiteName:n})})))}function Lt(t){var n=X();return!E(n)&&(!t||n.some((function(n){return ct(n,t)})))}var Ut=r(20);function Dt(){var t=B(),n={stateRef:L()};return Ut([t],b.bind(n,(function(){return e({},bt(),{done:b.bind(n,Gt)})})))}function Ft(t,n,e){var r;return!!(!f(t)||n&&h(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function Pt(t){return!(Lt()&&(!t||Lt(t)))}var Wt,Gt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],u=e[1],i=Dt();if(Ft(r,u,i))return i;var o=function(){return r(bt())};return Pt(u)?(o(),i):(wt(o,u),i)};function wt(t,n){(0,D()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function xt(){var t=F()[0];if(!E(t)){var n={};B().forEach((function(t){g(n,t.fieldName)?e(t):function(t){var r=W(t.fieldName);r.type===ft.Immediate&&(n[t.fieldName]=v(r.rule),e(t))}(t)})),w()}function e(t){n[t.fieldName]&&(t.omit(),P(t.fieldName,(function(){return{applied:!0}})))}}function Xt(){var t=R.createBus();return t.on(Wt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=D()[0].fieldCallbacks,e&&!Lt(e)&&p(r[e])&&y(r[e]),Lt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED))})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){xt()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=D()[0].doneCallbacks,y(t)})),t.on(Wt.REMOVE_FIELD,(function(t){M((function(n){ct(n,t)&&(n.cancel(),function(t){x((function(n){return i.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){M((function(n){ct(n,t)&&n.reset()}))})),t}function Ht(){var t=b.useX();return c(t.bus),t.bus}function Kt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=t.reverse(),u=r[0],i=r[1];c(f(u),"vest.create: Expected callback to be a function.");var s=Xt(),a=_(),l=et(a,{suiteId:o(),suiteName:i}),d={stateRef:l,bus:s},p=e(b.bind(d,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),ot({type:A.SUITE},(function(){u.apply(void 0,t)})),s.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:b.bind(d,bt),remove:b.bind(d,(function(t){s.emit(Wt.REMOVE_FIELD,t)})),reset:a.reset,resetField:b.bind(d,(function(t){s.emit(Wt.RESET_FIELD,t)}))});return p}function Bt(t,n){c(f(n),"each callback must be a function"),ot({type:A.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Wt||(Wt={}));function Mt(t,n){ot({type:A.SKIP_WHEN},(function(){b.run({skipped:qt()||v(t,v(bt))},(function(){return n()}))}))}function qt(){return!!b.useX().skipped}function Vt(t){return Jt(0,"tests",t)}function jt(t){return Jt(1,"tests",t)}function Yt(t){var n=t.fieldName,e=t.groupName;if(qt())return!0;var r=b.useX(),u=r.exclusion,i=r.inclusion,o=u.tests,s=o[n];if(!1===s)return!0;var a=!0===s;if(e){if(function(t){var n=b.useX().exclusion.groups;if(g(n,t))return!1===n[t];return Qt()}(e))return!0;if(!0===u.groups[e])return!a&&(!!zt(o)||!1===o[n])}return!!function(t){if(!Qt())return!1;return!t}(e)||!a&&(!!zt(o)&&!v(i[n]))}function Jt(t,e,r){var i=b.useX("hook called outside of a running suite.");r&&u(r).forEach((function(r){n(r)&&(i.exclusion[e][r]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t=b.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function Zt(t,e){c(n(t),$t("name must be a string")),c(f(e),$t("callback must be a function")),ot({type:A.GROUP},(function(){b.run({groupName:t},e)}))}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t){var e=b.useX(),r=e.inclusion,u=e.exclusion;return c(n(t)),r[t]=S(u.tests[t],!0),{when:function(e){var r=b.useX(),u=r.inclusion,i=r.exclusion;u[t]=function(){return g(i.tests,t)?S(i.tests[t],!0):n(e)?Boolean(i.tests[e]):v(e,v(bt))}}}}function nn(){var t;t=O.EAGER,b.useX().mode[0]=t}function en(t){return n=O.EAGER,b.useX().mode[0]===n&&dt(t.fieldName);var n}function rn(t,n){ot({type:A.OMIT_WHEN},(function(){b.run({omitted:un()||v(t,v(bt))},(function(){return n()}))}))}function un(){return!!b.useX().omitted}function on(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 sn(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function an(t){var e=t.asyncTest,r=t.message;if(T(e)){var u=Ht().emit,i=L(),o=b.bind({stateRef:i},(function(){w(),u(Wt.TEST_COMPLETED,t)})),s=b.bind({stateRef:i},(function(e){t.isCanceled()||(t.message=n(e)?e:r,t.fail(),o())}));e.then(o,s)}}function cn(t){var n=Ht(),e=function(t){return b.run({currentTest:t},(function(){return t.run()}))}(t);try{T(e)?(t.asyncTest=e,t.setPending(),an(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function fn(t){var n=G()[0].prev;if(E(n))return ln(t),t;var e,r,u,o=(e=n,r=ut(),i.valueAtPath(e,r));if(!s(t.key)){var c=function(t,n){var e=function(t){return rt().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=rt().keys.current;s(e[t])?e[t]=n:a('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(t.key,t);return ln(c),c}(function(t,n){return m(t)&&!sn(t,n)})(o,t)&&(!function(t,n){if(rt().type===A.EACH)return;a("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.'))}(o,t),u=it().current(),x((function(t){return t.splice(u),t})),o=null);var f=S(o,t);return ln(f),f}function ln(t){var n=ut();x((function(e){return i.setValueAtPath(e,n,t)}))}function dn(t){var n=it();if(en(t))return t.skip(),fn(t),n.next(),t;var e,r,u=fn(t);return un()||Et(t.fieldName)?(u.omit(),n.next(),u):Yt(t)?(u.skip(qt()),n.next(),u):((r=t)!==(e=u)&&sn(e,r)&&e.isPending()&&e.cancel(),ln(t),function(t){t.isUntested()?cn(t):T(t.asyncTest)&&(t.setPending(),an(t))}(t),n.next(),t)}function pn(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=f(e[1])?e:on([void 0],e,!0),i=u[0],o=u[1],s=u[2];c(n(t),En("fieldName","string")),c(f(o),En("Test callback","function"));var a=b.useX(),l=new j(t,o,{message:i,groupName:a.groupName,key:s});return dn(l)}Vt.group=function(t){return Jt(0,"groups",t)},jt.group=function(t){return Jt(1,"groups",t)};var vn=e(pn,{memo:function(t){var n=r(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var i=it().current(),o=r.reverse(),s=o[0],a=o[1],c=o[2],f=[U(),e,i].concat(s),l=n.get(f);return C(l)?n(f,(function(){return t(e,c,a)})):l[1].isCanceled()?(n.invalidate(f),n(f,(function(){return t(e,c,a)}))):dn(l[1])}}(pn)});function En(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}function mn(){var t=b.useX("warn hook called outside of a running suite.");c(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}var Nn="4.6.6";export{Nn as VERSION,b as context,Kt as create,Bt as each,nn as eager,Zt as group,tn as include,rn as omitWhen,Vt as only,vt as optional,jt as skip,Mt as skipWhen,Tt as suiteSelectors,vn as test,mn as warn};
|
|
1
|
+
export{enforce}from"n4s";import{createState as t}from"vast";import{assign as n,isUndefined as e,isStringValue as r,cache as u,asArray as i,nestedArray as o,seq as s,isNullish as a,deferThrow as c,invariant as f,isFunction as l,bindNot as d,either as p,isArray as v,optionalFunctionValue as E,isEmpty as m,isNotEmpty as N,isPositive as h,numberEquals as g,hasOwnProperty as y,callEach as R,bus as S,defaultTo as T,isPromise as C,isNull as I}from"vest-utils";import{createCascade as _}from"context";var A,O;function k(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function b(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(A||(A={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(O||(O={}));var L=_((function(t,e){return e?null:n({exclusion:{tests:{},groups:{}},inclusion:{},isolate:b(A.DEFAULT),mode:[O.ALL]},t)}));function U(){return L.useX().isolate}function D(){var t=U();return t.path.concat(t.cursor.current())}function F(){return U().cursor}function P(){return L.useX().stateRef}function W(){return P().suiteId()[0]}function G(){return P().testCallbacks()}function w(){return P().optionalFields()}function x(t,e){(0,w()[1])((function(r){var u;return n(r,((u={})[t]=n({},r[t],e(r[t])),u))}))}function X(t){var n;return null!==(n=w()[0][t])&&void 0!==n?n:{}}function H(){return P().testObjects()}function K(){B((function(t){return t}))}function B(t){(0,H()[1])((function(n){var e=n.current;return{prev:n.prev,current:i(t(e))}}))}function M(){return j().filter((function(t){return t.isPending()}))}var q,V=u();function j(){var t=H()[0].current;return V([t],(function(){return o.flatten(t)}))}function Y(t){j().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(q||(q={}));var J,z,Q=function(){function t(t,n,e){var r=void 0===e?{}:e,u=r.message,i=r.groupName,o=r.key;this.key=null,this.id=s(),this.severity=q.Error,this.status=Z,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),u&&(this.message=u),o&&(this.key=o)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return e(t)&&r(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==it||(this.status=t)},t.prototype.warns=function(){return this.severity===q.Warning},t.prototype.setPending=function(){this.setStatus(rt)},t.prototype.fail=function(){this.setStatus(this.warns()?nt:tt)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(et)},t.prototype.warn=function(){this.severity=q.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus($)},t.prototype.cancel=function(){this.setStatus(ut),K()},t.prototype.reset=function(){this.status=Z,K()},t.prototype.omit=function(){this.setStatus(it)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(rt)},t.prototype.isOmitted=function(){return this.statusEquals(it)},t.prototype.isUntested=function(){return this.statusEquals(Z)},t.prototype.isFailing=function(){return this.statusEquals(tt)},t.prototype.isCanceled=function(){return this.statusEquals(ut)},t.prototype.isSkipped=function(){return this.statusEquals($)},t.prototype.isPassing=function(){return this.statusEquals(et)},t.prototype.isWarning=function(){return this.statusEquals(nt)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),Z="UNTESTED",$="SKIPPED",tt="FAILED",nt="WARNING",et="PASSING",rt="PENDING",ut="CANCELED",it="OMITTED";function ot(t,n){var e=t.type,r=void 0===e?A.DEFAULT:e;f(l(n));var u=b(r,D()),s=L.run({isolate:u},(function(){var t;return u.keys.prev=(t=H()[0].prev,i(o.getCurrent(t,D())).reduce((function(t,n){return n instanceof Q?(a(n.key)||(t[n.key]=n),t):t}),{})),B((function(t){return o.setValueAtPath(t,u.path,[])})),n()}));return F().next(),s}function st(t){return t===J.ERRORS?z.ERROR_COUNT:z.WARN_COUNT}function at(t,n){return!!n&&!ct(t,n)}function ct(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(J||(J={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(z||(z={}));var ft,lt=d((function(t,n){return t.groupName===n}));function dt(t){return function(t,n){return j().some((function(e){return pt(e,t,n)}))}(J.ERRORS,t)}function pt(t,n,e){return!!t.hasFailures()&&(!at(t,e)&&!function(t,n){return p(t===J.WARNINGS,n.warns())}(n,t))}function vt(t){if(v(t)||r(t))i(t).forEach((function(t){x(t,(function(){return{type:ft.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];x(n,(function(){return{type:ft.Immediate,rule:e,applied:E(e)}}))};for(var e in t)n(e)}}function Et(t){return!!t&&X(t).applied}function mt(t){if(Et(t))return!0;var n=j();return!m(n)&&(!dt(t)&&(!function(t){return N(M().filter((function(n){return ht(n,t)})))}(t)&&function(t){return j().every((function(n){return gt(n,t)}))}(t)))}function Nt(t,n){return!!Et(n)||!function(t,n,e){return j().some((function(r){return!lt(r,n)&&pt(r,t,e)}))}(J.ERRORS,t,n)&&(!function(t,n){return N(M().filter((function(e){return!lt(e,t)&&ht(e,n)})))}(t,n)&&function(t,n){return j().every((function(e){return!!lt(e,t)||gt(e,n)}))}(t,n))}function ht(t,n){return!at(t,n)&&Et(n)}function gt(t,n){return!!at(t,n)||(function(t){return X(t.fieldName).type===ft.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function yt(){var t=j(),e=n({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Rt(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&mt(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Rt(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Nt(e,n.fieldName)}(t.groups,n),t}),e),e.valid=mt(),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}(e)}function Rt(t,e){var r=e.fieldName,u=e.message;t[r]=t[r]||n({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=t[r];return e.isNonActionable()||(t[r].testCount++,e.isFailing()?o(J.ERRORS):e.isWarning()&&o(J.WARNINGS)),i;function o(t){var n=st(t);i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}}function St(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},r=st(n);for(var u in t)h(t[u][r])&&(e[u]=t[u][n]||[]);return e}(t,n)}function Tt(t){var n={getErrors:function(n){return Ct(t,J.ERRORS,n)},getErrorsByGroup:function(n,e){return It(t,J.ERRORS,n,e)},getWarnings:function(n){return Ct(t,J.WARNINGS,n)},getWarningsByGroup:function(n,e){return It(t,J.WARNINGS,n,e)},hasErrors:function(n){return Ot(t,z.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return At(t,z.ERROR_COUNT,n,e)},hasWarnings:function(n){return Ot(t,z.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return At(t,z.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return _t(r,e);for(var u in r)if(!_t(r,u))return!1;return!0}};return n}function Ct(t,n,e){return St(t.tests,n,e)}function It(t,n,e,r){return St(t.groups[e],n,r)}function _t(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function At(t,n,e,r){var u,i,o=t.groups[e];if(!o)return!1;if(r)return h(null===(u=o[r])||void 0===u?void 0:u[n]);for(var s in o)if(h(null===(i=o[s])||void 0===i?void 0:i[n]))return!0;return!1}function Ot(t,n,e){var r,u=e?null===(r=t.tests[e])||void 0===r?void 0:r[n]:t[n]||0;return h(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(ft||(ft={}));var kt=u(1);function bt(){var t=j(),e={stateRef:P()};return kt([t],L.bind(e,(function(){var t=yt(),e=P().suiteName()[0];return n(t,Tt(t),{suiteName:e})})))}function Lt(t){var n=M();return!m(n)&&(!t||n.some((function(n){return ct(n,t)})))}var Ut=u(20);function Dt(){var t=j(),e={stateRef:P()};return Ut([t],L.bind(e,(function(){return n({},bt(),{done:L.bind(e,Gt)})})))}function Ft(t,n,e){var r;return!!(!l(t)||n&&g(null===(r=e.tests[n])||void 0===r?void 0:r.testCount,0))}function Pt(t){return!(Lt()&&(!t||Lt(t)))}var Wt,Gt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],u=e[1],i=Dt();if(Ft(r,u,i))return i;var o=function(){return r(bt())};return Pt(u)?(o(),i):(wt(o,u),i)};function wt(t,n){(0,G()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function xt(){var t=w()[0];if(!m(t)){var n={};j().forEach((function(t){y(n,t.fieldName)?e(t):function(t){var r=X(t.fieldName);r.type===ft.Immediate&&(n[t.fieldName]=E(r.rule),e(t))}(t)})),K()}function e(t){n[t.fieldName]&&(t.omit(),x(t.fieldName,(function(){return{applied:!0}})))}}function Xt(){var t=S.createBus();return t.on(Wt.TEST_COMPLETED,(function(n){var e,r;n.isCanceled()||(n.done(),e=n.fieldName,r=G()[0].fieldCallbacks,e&&!Lt(e)&&v(r[e])&&R(r[e]),Lt()||t.emit(Wt.ALL_RUNNING_TESTS_FINISHED))})),t.on(Wt.SUITE_CALLBACK_DONE_RUNNING,(function(){xt()})),t.on(Wt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=G()[0].doneCallbacks,R(t)})),t.on(Wt.REMOVE_FIELD,(function(t){Y((function(n){ct(n,t)&&(n.cancel(),function(t){B((function(n){return o.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Wt.RESET_FIELD,(function(t){Y((function(n){ct(n,t)&&n.reset()}))})),t}function Ht(){var t=L.useX();return f(t.bus),t.bus}function Kt(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var u=e.reverse(),i=u[0],o=u[1];f(l(i),"vest.create: Expected callback to be a function.");var a=Xt(),c=t(),d=k(c,{suiteId:s(),suiteName:o}),p={stateRef:d,bus:a},v=n(L.bind(p,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return c.reset(),ot({type:A.SUITE},(function(){i.apply(void 0,t)})),a.emit(Wt.SUITE_CALLBACK_DONE_RUNNING),Dt()})),{get:L.bind(p,bt),remove:L.bind(p,(function(t){a.emit(Wt.REMOVE_FIELD,t)})),reset:c.reset,resetField:L.bind(p,(function(t){a.emit(Wt.RESET_FIELD,t)}))});return v}function Bt(t,n){f(l(n),"each callback must be a function"),ot({type:A.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Wt||(Wt={}));function Mt(t,n){ot({type:A.SKIP_WHEN},(function(){L.run({skipped:qt()||E(t,E(bt))},(function(){return n()}))}))}function qt(){return!!L.useX().skipped}function Vt(t){return Jt(0,"tests",t)}function jt(t){return Jt(1,"tests",t)}function Yt(t){var n=t.fieldName,e=t.groupName;if(qt())return!0;var r=L.useX(),u=r.exclusion,i=r.inclusion,o=u.tests,s=o[n];if(!1===s)return!0;var a=!0===s;if(e){if(function(t){var n=L.useX().exclusion.groups;if(y(n,t))return!1===n[t];return Qt()}(e))return!0;if(!0===u.groups[e])return!a&&(!!zt(o)||!1===o[n])}return!!function(t){if(!Qt())return!1;return!t}(e)||!a&&(!!zt(o)&&!E(i[n]))}function Jt(t,n,e){var u=L.useX("hook called outside of a running suite.");e&&i(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=L.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function Zt(t,n){f(r(t),$t("name must be a string")),f(l(n),$t("callback must be a function")),ot({type:A.GROUP},(function(){L.run({groupName:t},n)}))}function $t(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function tn(t){var n=L.useX(),e=n.inclusion,u=n.exclusion;return f(r(t)),e[t]=T(u.tests[t],!0),{when:function(n){var e=L.useX(),u=e.inclusion,i=e.exclusion;u[t]=function(){return y(i.tests,t)?T(i.tests[t],!0):r(n)?Boolean(i.tests[n]):E(n,E(bt))}}}}function nn(){var t;t=O.EAGER,L.useX().mode[0]=t}function en(t){return n=O.EAGER,L.useX().mode[0]===n&&dt(t.fieldName);var n}function rn(t,n){ot({type:A.OMIT_WHEN},(function(){L.run({omitted:un()||E(t,E(bt))},(function(){return n()}))}))}function un(){return!!L.useX().omitted}function on(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 sn(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function an(t){var n=t.asyncTest,e=t.message;if(C(n)){var u=Ht().emit,i=P(),o=L.bind({stateRef:i},(function(){K(),u(Wt.TEST_COMPLETED,t)})),s=L.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));n.then(o,s)}}function cn(t){var n=Ht(),e=function(t){return L.run({currentTest:t},(function(){return t.run()}))}(t);try{C(e)?(t.asyncTest=e,t.setPending(),an(t)):n.emit(Wt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function fn(t){var n=H()[0].prev;if(m(n))return ln(t),t;var e,r,u,i=(e=n,r=D(),o.valueAtPath(e,r));if(!a(t.key)){var s=function(t,n){var e=function(t){return U().keys.prev[t]}(t),r=n;e&&(r=e);return function(t,n){var e=U().keys.current;a(e[t])?e[t]=n:c('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,r),r}(t.key,t);return ln(s),s}(function(t,n){return N(t)&&!sn(t,n)})(i,t)&&(!function(t,n){if(U().type===A.EACH)return;c("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.'))}(i,t),u=F().current(),B((function(t){return t.splice(u),t})),i=null);var f=T(i,t);return ln(f),f}function ln(t){var n=D();B((function(e){return o.setValueAtPath(e,n,t)}))}function dn(t){var n=F();if(en(t))return t.skip(),fn(t),n.next(),t;var e,r,u=fn(t);return un()||Et(t.fieldName)?(u.omit(),n.next(),u):Yt(t)?(u.skip(qt()),n.next(),u):((r=t)!==(e=u)&&sn(e,r)&&e.isPending()&&e.cancel(),ln(t),function(t){t.isUntested()?cn(t):C(t.asyncTest)&&(t.setPending(),an(t))}(t),n.next(),t)}function pn(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:on([void 0],n,!0),i=u[0],o=u[1],s=u[2];f(r(t),En("fieldName","string")),f(l(o),En("Test callback","function"));var a=L.useX(),c=new Q(t,o,{message:i,groupName:a.groupName,key:s});return dn(c)}Vt.group=function(t){return Jt(0,"groups",t)},jt.group=function(t){return Jt(1,"groups",t)};var vn=n(pn,{memo:function(t){var n=u(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];var i=F().current(),o=r.reverse(),s=o[0],a=o[1],c=o[2],f=[W(),e,i].concat(s),l=n.get(f);return I(l)?n(f,(function(){return t(e,c,a)})):l[1].isCanceled()?(n.invalidate(f),n(f,(function(){return t(e,c,a)}))):dn(l[1])}}(pn)});function En(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}function mn(){var t=L.useX("warn hook called outside of a running suite.");f(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}var Nn="4.6.7";export{Nn as VERSION,L as context,Kt as create,Bt as each,nn as eager,Zt as group,tn as include,rn as omitWhen,Vt as only,vt as optional,jt as skip,Mt as skipWhen,Tt as suiteSelectors,vn as test,mn as warn};
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('n4s'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'n4s', 'vest-utils', 'context'
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vest = {}, global.n4s, global["vest-utils"], global.context
|
|
5
|
-
})(this, (function (exports, n4s, vestUtils, context$1
|
|
6
|
-
|
|
7
|
-
function shouldUseErrorAsMessage(message, error) {
|
|
8
|
-
// kind of cheating with this safe guard, but it does the job
|
|
9
|
-
return vestUtils.isUndefined(message) && vestUtils.isStringValue(error);
|
|
10
|
-
}
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('n4s'), require('vast'), require('vest-utils'), require('context')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'n4s', 'vast', 'vest-utils', 'context'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vest = {}, global.n4s, global.vast, global["vest-utils"], global.context));
|
|
5
|
+
})(this, (function (exports, n4s, vast, vestUtils, context$1) { 'use strict';
|
|
11
6
|
|
|
12
7
|
var IsolateTypes;
|
|
13
8
|
(function (IsolateTypes) {
|
|
@@ -19,6 +14,25 @@
|
|
|
19
14
|
IsolateTypes[IsolateTypes["GROUP"] = 5] = "GROUP";
|
|
20
15
|
})(IsolateTypes || (IsolateTypes = {}));
|
|
21
16
|
|
|
17
|
+
function createStateRef(state, _a) {
|
|
18
|
+
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
19
|
+
return {
|
|
20
|
+
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
21
|
+
suiteId: state.registerStateKey(suiteId),
|
|
22
|
+
suiteName: state.registerStateKey(suiteName),
|
|
23
|
+
testCallbacks: state.registerStateKey(function () { return ({
|
|
24
|
+
fieldCallbacks: {},
|
|
25
|
+
doneCallbacks: []
|
|
26
|
+
}); }),
|
|
27
|
+
testObjects: state.registerStateKey(function (prev) {
|
|
28
|
+
return {
|
|
29
|
+
prev: prev ? prev.current : [],
|
|
30
|
+
current: []
|
|
31
|
+
};
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
22
36
|
var Modes;
|
|
23
37
|
(function (Modes) {
|
|
24
38
|
Modes[Modes["ALL"] = 0] = "ALL";
|
|
@@ -74,6 +88,31 @@
|
|
|
74
88
|
}, ctxRef);
|
|
75
89
|
});
|
|
76
90
|
|
|
91
|
+
/**
|
|
92
|
+
* @returns {Isolate} The current isolate layer
|
|
93
|
+
*/
|
|
94
|
+
function useIsolate() {
|
|
95
|
+
return context.useX().isolate;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @returns {number[]} The current cursor path of the isolate tree
|
|
99
|
+
*/
|
|
100
|
+
function useCurrentPath() {
|
|
101
|
+
var isolate = useIsolate();
|
|
102
|
+
return isolate.path.concat(isolate.cursor.current());
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
106
|
+
*/
|
|
107
|
+
function useCursor() {
|
|
108
|
+
return useIsolate().cursor;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function shouldUseErrorAsMessage(message, error) {
|
|
112
|
+
// kind of cheating with this safe guard, but it does the job
|
|
113
|
+
return vestUtils.isUndefined(message) && vestUtils.isStringValue(error);
|
|
114
|
+
}
|
|
115
|
+
|
|
77
116
|
// STATE REF
|
|
78
117
|
function useStateRef() {
|
|
79
118
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -287,45 +326,6 @@
|
|
|
287
326
|
var STATUS_CANCELED = 'CANCELED';
|
|
288
327
|
var STATUS_OMITTED = 'OMITTED';
|
|
289
328
|
|
|
290
|
-
function createStateRef(state, _a) {
|
|
291
|
-
var suiteId = _a.suiteId, suiteName = _a.suiteName;
|
|
292
|
-
return {
|
|
293
|
-
optionalFields: state.registerStateKey(function () { return ({}); }),
|
|
294
|
-
suiteId: state.registerStateKey(suiteId),
|
|
295
|
-
suiteName: state.registerStateKey(suiteName),
|
|
296
|
-
testCallbacks: state.registerStateKey(function () { return ({
|
|
297
|
-
fieldCallbacks: {},
|
|
298
|
-
doneCallbacks: []
|
|
299
|
-
}); }),
|
|
300
|
-
testObjects: state.registerStateKey(function (prev) {
|
|
301
|
-
return {
|
|
302
|
-
prev: prev ? prev.current : [],
|
|
303
|
-
current: []
|
|
304
|
-
};
|
|
305
|
-
})
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* @returns {Isolate} The current isolate layer
|
|
311
|
-
*/
|
|
312
|
-
function useIsolate() {
|
|
313
|
-
return context.useX().isolate;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* @returns {number[]} The current cursor path of the isolate tree
|
|
317
|
-
*/
|
|
318
|
-
function useCurrentPath() {
|
|
319
|
-
var isolate = useIsolate();
|
|
320
|
-
return isolate.path.concat(isolate.cursor.current());
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* @returns {IsolateCursor} The cursor object for the current isolate
|
|
324
|
-
*/
|
|
325
|
-
function useCursor() {
|
|
326
|
-
return useIsolate().cursor;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
329
|
function usePrevKeys() {
|
|
330
330
|
var prev = useTestObjects()[0].prev;
|
|
331
331
|
return vestUtils.asArray(vestUtils.nestedArray.getCurrent(prev, useCurrentPath())).reduce(function (prevKeys, testObject) {
|
|
@@ -1658,7 +1658,7 @@
|
|
|
1658
1658
|
ctx.currentTest.warn();
|
|
1659
1659
|
}
|
|
1660
1660
|
|
|
1661
|
-
var VERSION = "4.6.
|
|
1661
|
+
var VERSION = "4.6.7";
|
|
1662
1662
|
|
|
1663
1663
|
Object.defineProperty(exports, 'enforce', {
|
|
1664
1664
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vest-utils"),require("context"),require("vast")):"function"==typeof define&&define.amd?define(["exports","n4s","vest-utils","context","vast"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t["vest-utils"],t.context,t.vast)}(this,(function(t,n,e,r,i){"use strict";var u,o;function s(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(u||(u={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(o||(o={}));var a=r.createCascade((function(t,n){return n?null:e.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(u.DEFAULT),mode:[o.ALL]},t)}));function c(){return a.useX().stateRef}function f(){return c().suiteId()[0]}function l(){return c().testCallbacks()}function d(){return c().optionalFields()}function p(t,n){(0,d()[1])((function(r){var i;return e.assign(r,((i={})[t]=e.assign({},r[t],n(r[t])),i))}))}function v(t){var n;return null!==(n=d()[0][t])&&void 0!==n?n:{}}function E(){return c().testObjects()}function h(){g((function(t){return t}))}function g(t){(0,E()[1])((function(n){var r=n.current;return{prev:n.prev,current:e.asArray(t(r))}}))}function y(){return R().filter((function(t){return t.isPending()}))}var N,m=e.cache();function R(){var t=E()[0].current;return m([t],(function(){return e.nestedArray.flatten(t)}))}function S(t){R().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(N||(N={}));var T,C,A=function(){function t(t,n,r){var i=void 0===r?{}:r,u=i.message,o=i.groupName,s=i.key;this.key=null,this.id=e.seq(),this.severity=N.Error,this.status=_,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return e.isUndefined(t)&&e.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==L||(this.status=t)},t.prototype.warns=function(){return this.severity===N.Warning},t.prototype.setPending=function(){this.setStatus(k)},t.prototype.fail=function(){this.setStatus(this.warns()?b:O)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(F)},t.prototype.warn=function(){this.severity=N.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(I)},t.prototype.cancel=function(){this.setStatus(P),h()},t.prototype.reset=function(){this.status=_,h()},t.prototype.omit=function(){this.setStatus(L)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(k)},t.prototype.isOmitted=function(){return this.statusEquals(L)},t.prototype.isUntested=function(){return this.statusEquals(_)},t.prototype.isFailing=function(){return this.statusEquals(O)},t.prototype.isCanceled=function(){return this.statusEquals(P)},t.prototype.isSkipped=function(){return this.statusEquals(I)},t.prototype.isPassing=function(){return this.statusEquals(F)},t.prototype.isWarning=function(){return this.statusEquals(b)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),_="UNTESTED",I="SKIPPED",O="FAILED",b="WARNING",F="PASSING",k="PENDING",P="CANCELED",L="OMITTED";function U(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function D(){return a.useX().isolate}function W(){var t=D();return t.path.concat(t.cursor.current())}function w(){return D().cursor}function G(t,n){var r=t.type,i=void 0===r?u.DEFAULT:r;e.invariant(e.isFunction(n));var o=s(i,W()),c=a.run({isolate:o},(function(){var t;return o.keys.prev=(t=E()[0].prev,e.asArray(e.nestedArray.getCurrent(t,W())).reduce((function(t,n){return n instanceof A?(e.isNullish(n.key)||(t[n.key]=n),t):t}),{})),g((function(t){return e.nestedArray.setValueAtPath(t,o.path,[])})),n()}));return w().next(),c}function V(t){return t===T.ERRORS?C.ERROR_COUNT:C.WARN_COUNT}function x(t,n){return!!n&&!q(t,n)}function q(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(T||(T={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(C||(C={}));var X,H=e.bindNot((function(t,n){return t.groupName===n}));function K(t){return function(t,n){return R().some((function(e){return M(e,t,n)}))}(T.ERRORS,t)}function M(t,n,r){return!!t.hasFailures()&&(!x(t,r)&&!function(t,n){return e.either(t===T.WARNINGS,n.warns())}(n,t))}function B(t){return!!t&&v(t).applied}function j(t){if(B(t))return!0;var n=R();return!e.isEmpty(n)&&(!K(t)&&(!function(t){return e.isNotEmpty(y().filter((function(n){return J(n,t)})))}(t)&&function(t){return R().every((function(n){return z(n,t)}))}(t)))}function Y(t,n){return!!B(n)||!function(t,n,e){return R().some((function(r){return!H(r,n)&&M(r,t,e)}))}(T.ERRORS,t,n)&&(!function(t,n){return e.isNotEmpty(y().filter((function(e){return!H(e,t)&&J(e,n)})))}(t,n)&&function(t,n){return R().every((function(e){return!!H(e,t)||z(e,n)}))}(t,n))}function J(t,n){return!x(t,n)&&B(n)}function z(t,n){return!!x(t,n)||(function(t){return v(t.fieldName).type===X.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function Q(){var t=R(),n=e.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Z(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&j(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Z(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Y(e,n.fieldName)}(t.groups,n),t}),n),n.valid=j(),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 Z(t,n){var r=n.fieldName,i=n.message;t[r]=t[r]||e.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?o(T.ERRORS):n.isWarning()&&o(T.WARNINGS)),u;function o(t){var n=V(t);u[n]++,i&&(u[t]=(u[t]||[]).concat(i))}}function $(t,n,r){return r?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,r):function(t,n){var r={},i=V(n);for(var u in t)e.isPositive(t[u][i])&&(r[u]=t[u][n]||[]);return r}(t,n)}function tt(t){var n={getErrors:function(n){return nt(t,T.ERRORS,n)},getErrorsByGroup:function(n,e){return et(t,T.ERRORS,n,e)},getWarnings:function(n){return nt(t,T.WARNINGS,n)},getWarningsByGroup:function(n,e){return et(t,T.WARNINGS,n,e)},hasErrors:function(n){return ut(t,C.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return it(t,C.ERROR_COUNT,n,e)},hasWarnings:function(n){return ut(t,C.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return it(t,C.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return rt(r,e);for(var i in r)if(!rt(r,i))return!1;return!0}};return n}function nt(t,n,e){return $(t.tests,n,e)}function et(t,n,e,r){return $(t.groups[e],n,r)}function rt(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function it(t,n,r,i){var u,o,s=t.groups[r];if(!s)return!1;if(i)return e.isPositive(null===(u=s[i])||void 0===u?void 0:u[n]);for(var a in s)if(e.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function ut(t,n,r){var i,u=r?null===(i=t.tests[r])||void 0===i?void 0:i[n]:t[n]||0;return e.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(X||(X={}));var ot=e.cache(1);function st(){var t=R(),n={stateRef:c()};return ot([t],a.bind(n,(function(){var t=Q(),n=c().suiteName()[0];return e.assign(t,tt(t),{suiteName:n})})))}function at(t){var n=y();return!e.isEmpty(n)&&(!t||n.some((function(n){return q(n,t)})))}var ct=e.cache(20);function ft(){var t=R(),n={stateRef:c()};return ct([t],a.bind(n,(function(){return e.assign({},st(),{done:a.bind(n,vt)})})))}function lt(t,n,r){var i;return!!(!e.isFunction(t)||n&&e.numberEquals(null===(i=r.tests[n])||void 0===i?void 0:i.testCount,0))}function dt(t){return!(at()&&(!t||at(t)))}var pt,vt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ft();if(lt(r,i,u))return u;var o=function(){return r(st())};return dt(i)?(o(),u):(Et(o,i),u)};function Et(t,n){(0,l()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function ht(){var t=d()[0];if(!e.isEmpty(t)){var n={};R().forEach((function(t){e.hasOwnProperty(n,t.fieldName)?r(t):function(t){var i=v(t.fieldName);i.type===X.Immediate&&(n[t.fieldName]=e.optionalFunctionValue(i.rule),r(t))}(t)})),h()}function r(t){n[t.fieldName]&&(t.omit(),p(t.fieldName,(function(){return{applied:!0}})))}}function gt(){var t=e.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var r,i;n.isCanceled()||(n.done(),r=n.fieldName,i=l()[0].fieldCallbacks,r&&!at(r)&&e.isArray(i[r])&&e.callEach(i[r]),at()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){ht()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=l()[0].doneCallbacks,e.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){S((function(n){q(n,t)&&(n.cancel(),function(t){g((function(n){return e.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){S((function(n){q(n,t)&&n.reset()}))})),t}function yt(){var t=a.useX();return e.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));var Nt="hook called outside of a running suite.";function mt(){return!!a.useX().skipped}function Rt(t){return Ct(0,"tests",t)}function St(t){return Ct(1,"tests",t)}function Tt(t){var n=t.fieldName,r=t.groupName;if(mt())return!0;var i=a.useX(),u=i.exclusion,o=i.inclusion,s=u.tests,c=s[n];if(!1===c)return!0;var f=!0===c;if(r){if(function(t){var n=a.useX().exclusion.groups;if(e.hasOwnProperty(n,t))return!1===n[t];return _t()}(r))return!0;if(!0===u.groups[r])return!f&&(!!At(s)||!1===s[n])}return!!function(t){if(!_t())return!1;return!t}(r)||!f&&(!!At(s)&&!e.optionalFunctionValue(o[n]))}function Ct(t,n,r){var i=a.useX(Nt);r&&e.asArray(r).forEach((function(r){e.isStringValue(r)&&(i.exclusion[n][r]=0===t)}))}function At(t){for(var n in t)if(!0===t[n])return!0;return!1}function _t(){var t=a.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function It(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Ot(t){return n=o.EAGER,a.useX().mode[0]===n&&K(t.fieldName);var n}function bt(){return!!a.useX().omitted}function Ft(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function kt(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function Pt(t){var n=t.asyncTest,r=t.message;if(e.isPromise(n)){var i=yt().emit,u=c(),o=a.bind({stateRef:u},(function(){h(),i(pt.TEST_COMPLETED,t)})),s=a.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=e.isStringValue(n)?n:r,t.fail(),o())}));n.then(o,s)}}function Lt(t){var n=yt(),r=function(t){return a.run({currentTest:t},(function(){return t.run()}))}(t);try{e.isPromise(r)?(t.asyncTest=r,t.setPending(),Pt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Ut(t){var n=E()[0].prev;if(e.isEmpty(n))return Dt(t),t;var r,i,o,s=(r=n,i=W(),e.nestedArray.valueAtPath(r,i));if(!e.isNullish(t.key)){var a=function(t,n){var r=function(t){return D().keys.prev[t]}(t),i=n;r&&(i=r);return function(t,n){var r=D().keys.current;e.isNullish(r[t])?r[t]=n:e.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,i),i}(t.key,t);return Dt(a),a}(function(t,n){return e.isNotEmpty(t)&&!kt(t,n)})(s,t)&&(!function(t,n){if(D().type===u.EACH)return;e.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.'))}(s,t),o=w().current(),g((function(t){return t.splice(o),t})),s=null);var c=e.defaultTo(s,t);return Dt(c),c}function Dt(t){var n=W();g((function(r){return e.nestedArray.setValueAtPath(r,n,t)}))}function Wt(t){var n=w();if(Ot(t))return t.skip(),Ut(t),n.next(),t;var r,i,u=Ut(t);return bt()||B(t.fieldName)?(u.omit(),n.next(),u):Tt(t)?(u.skip(mt()),n.next(),u):((i=t)!==(r=u)&&kt(r,i)&&r.isPending()&&r.cancel(),Dt(t),function(t){t.isUntested()?Lt(t):e.isPromise(t.asyncTest)&&(t.setPending(),Pt(t))}(t),n.next(),t)}function wt(t){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];var i=e.isFunction(n[1])?n:Ft([void 0],n,!0),u=i[0],o=i[1],s=i[2];e.invariant(e.isStringValue(t),Vt("fieldName","string")),e.invariant(e.isFunction(o),Vt("Test callback","function"));var c=a.useX(),f=new A(t,o,{message:u,groupName:c.groupName,key:s});return Wt(f)}Rt.group=function(t){return Ct(0,"groups",t)},St.group=function(t){return Ct(1,"groups",t)};var Gt=e.assign(wt,{memo:function(t){var n=e.cache(10);return function(r){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];var o=w().current(),s=i.reverse(),a=s[0],c=s[1],l=s[2],d=[f(),r,o].concat(a),p=n.get(d);return e.isNull(p)?n(d,(function(){return t(r,l,c)})):p[1].isCanceled()?(n.invalidate(d),n(d,(function(){return t(r,l,c)}))):Wt(p[1])}}(wt)});function Vt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.VERSION="4.6.6",t.context=a,t.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=t.reverse(),o=r[0],s=r[1];e.invariant(e.isFunction(o),"vest.create: Expected callback to be a function.");var c=gt(),f=i.createState(),l=U(f,{suiteId:e.seq(),suiteName:s}),d={stateRef:l,bus:c},p=e.assign(a.bind(d,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return f.reset(),G({type:u.SUITE},(function(){o.apply(void 0,t)})),c.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ft()})),{get:a.bind(d,st),remove:a.bind(d,(function(t){c.emit(pt.REMOVE_FIELD,t)})),reset:f.reset,resetField:a.bind(d,(function(t){c.emit(pt.RESET_FIELD,t)}))});return p},t.each=function(t,n){e.invariant(e.isFunction(n),"each callback must be a function"),G({type:u.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))},t.eager=function(){var t;t=o.EAGER,a.useX().mode[0]=t},t.group=function(t,n){e.invariant(e.isStringValue(t),It("name must be a string")),e.invariant(e.isFunction(n),It("callback must be a function")),G({type:u.GROUP},(function(){a.run({groupName:t},n)}))},t.include=function(t){var n=a.useX(),r=n.inclusion,i=n.exclusion;return e.invariant(e.isStringValue(t)),r[t]=e.defaultTo(i.tests[t],!0),{when:function(n){var r=a.useX(),i=r.inclusion,u=r.exclusion;i[t]=function(){return e.hasOwnProperty(u.tests,t)?e.defaultTo(u.tests[t],!0):e.isStringValue(n)?Boolean(u.tests[n]):e.optionalFunctionValue(n,e.optionalFunctionValue(st))}}}},t.omitWhen=function(t,n){G({type:u.OMIT_WHEN},(function(){a.run({omitted:bt()||e.optionalFunctionValue(t,e.optionalFunctionValue(st))},(function(){return n()}))}))},t.only=Rt,t.optional=function(t){if(e.isArray(t)||e.isStringValue(t))e.asArray(t).forEach((function(t){p(t,(function(){return{type:X.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var r=t[n];p(n,(function(){return{type:X.Immediate,rule:r,applied:e.optionalFunctionValue(r)}}))};for(var r in t)n(r)}},t.skip=St,t.skipWhen=function(t,n){G({type:u.SKIP_WHEN},(function(){a.run({skipped:mt()||e.optionalFunctionValue(t,e.optionalFunctionValue(st))},(function(){return n()}))}))},t.suiteSelectors=tt,t.test=Gt,t.warn=function(){var t=a.useX("warn "+Nt);e.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("n4s"),require("vast"),require("vest-utils"),require("context")):"function"==typeof define&&define.amd?define(["exports","n4s","vast","vest-utils","context"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vest={},t.n4s,t.vast,t["vest-utils"],t.context)}(this,(function(t,n,e,r,i){"use strict";var u,o;function s(t,n){var e=n.suiteId,r=n.suiteName;return{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(r),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function a(t,n){return void 0===n&&(n=[]),{cursor:(e={value:0},{current:function(){return e.value},next:function(){e.value++}}),keys:{current:{},prev:{}},path:n,type:t};var e}!function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP"}(u||(u={})),function(t){t[t.ALL=0]="ALL",t[t.EAGER=1]="EAGER"}(o||(o={}));var c=i.createCascade((function(t,n){return n?null:r.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:a(u.DEFAULT),mode:[o.ALL]},t)}));function f(){return c.useX().isolate}function l(){var t=f();return t.path.concat(t.cursor.current())}function d(){return f().cursor}function p(){return c.useX().stateRef}function v(){return p().suiteId()[0]}function E(){return p().testCallbacks()}function h(){return p().optionalFields()}function g(t,n){(0,h()[1])((function(e){var i;return r.assign(e,((i={})[t]=r.assign({},e[t],n(e[t])),i))}))}function y(t){var n;return null!==(n=h()[0][t])&&void 0!==n?n:{}}function N(){return p().testObjects()}function m(){R((function(t){return t}))}function R(t){(0,N()[1])((function(n){var e=n.current;return{prev:n.prev,current:r.asArray(t(e))}}))}function S(){return A().filter((function(t){return t.isPending()}))}var T,C=r.cache();function A(){var t=N()[0].current;return C([t],(function(){return r.nestedArray.flatten(t)}))}function _(t){A().forEach(t)}!function(t){t.Error="error",t.Warning="warning"}(T||(T={}));var I,O,b=function(){function t(t,n,e){var i=void 0===e?{}:e,u=i.message,o=i.groupName,s=i.key;this.key=null,this.id=r.seq(),this.severity=T.Error,this.status=F,this.fieldName=t,this.testFn=n,o&&(this.groupName=o),u&&(this.message=u),s&&(this.key=s)}return t.prototype.run=function(){var t;try{t=this.testFn()}catch(n){(function(t,n){return r.isUndefined(t)&&r.isStringValue(n)})(this.message,n)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==w||(this.status=t)},t.prototype.warns=function(){return this.severity===T.Warning},t.prototype.setPending=function(){this.setStatus(D)},t.prototype.fail=function(){this.setStatus(this.warns()?L:P)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(U)},t.prototype.warn=function(){this.severity=T.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(W),m()},t.prototype.reset=function(){this.status=F,m()},t.prototype.omit=function(){this.setStatus(w)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.isPending=function(){return this.statusEquals(D)},t.prototype.isOmitted=function(){return this.statusEquals(w)},t.prototype.isUntested=function(){return this.statusEquals(F)},t.prototype.isFailing=function(){return this.statusEquals(P)},t.prototype.isCanceled=function(){return this.statusEquals(W)},t.prototype.isSkipped=function(){return this.statusEquals(k)},t.prototype.isPassing=function(){return this.statusEquals(U)},t.prototype.isWarning=function(){return this.statusEquals(L)},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},t.prototype.statusEquals=function(t){return this.status===t},t}(),F="UNTESTED",k="SKIPPED",P="FAILED",L="WARNING",U="PASSING",D="PENDING",W="CANCELED",w="OMITTED";function G(t,n){var e=t.type,i=void 0===e?u.DEFAULT:e;r.invariant(r.isFunction(n));var o=a(i,l()),s=c.run({isolate:o},(function(){var t;return o.keys.prev=(t=N()[0].prev,r.asArray(r.nestedArray.getCurrent(t,l())).reduce((function(t,n){return n instanceof b?(r.isNullish(n.key)||(t[n.key]=n),t):t}),{})),R((function(t){return r.nestedArray.setValueAtPath(t,o.path,[])})),n()}));return d().next(),s}function V(t){return t===I.ERRORS?O.ERROR_COUNT:O.WARN_COUNT}function x(t,n){return!!n&&!q(t,n)}function q(t,n){return!(!n||t.fieldName!==n)}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(I||(I={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(O||(O={}));var X,H=r.bindNot((function(t,n){return t.groupName===n}));function K(t){return function(t,n){return A().some((function(e){return M(e,t,n)}))}(I.ERRORS,t)}function M(t,n,e){return!!t.hasFailures()&&(!x(t,e)&&!function(t,n){return r.either(t===I.WARNINGS,n.warns())}(n,t))}function B(t){return!!t&&y(t).applied}function j(t){if(B(t))return!0;var n=A();return!r.isEmpty(n)&&(!K(t)&&(!function(t){return r.isNotEmpty(S().filter((function(n){return J(n,t)})))}(t)&&function(t){return A().every((function(n){return z(n,t)}))}(t)))}function Y(t,n){return!!B(n)||!function(t,n,e){return A().some((function(r){return!H(r,n)&&M(r,t,e)}))}(I.ERRORS,t,n)&&(!function(t,n){return r.isNotEmpty(S().filter((function(e){return!H(e,t)&&J(e,n)})))}(t,n)&&function(t,n){return A().every((function(e){return!!H(e,t)||z(e,n)}))}(t,n))}function J(t,n){return!x(t,n)&&B(n)}function z(t,n){return!!x(t,n)||(function(t){return y(t.fieldName).type===X.Delayed&&t.awaitsResolution()}(t)||t.isTested()||t.isOmitted())}function Q(){var t=A(),n=r.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){return function(t,n){t[n.fieldName]=Z(t,n),t[n.fieldName].valid=!1!==t[n.fieldName].valid&&j(n.fieldName)}(t.tests,n),function(t,n){var e=n.groupName;if(!e)return;t[e]=t[e]||{},t[e][n.fieldName]=Z(t[e],n),t[e][n.fieldName].valid=!1!==t[e][n.fieldName].valid&&Y(e,n.fieldName)}(t.groups,n),t}),n),n.valid=j(),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 Z(t,n){var e=n.fieldName,i=n.message;t[e]=t[e]||r.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var u=t[e];return n.isNonActionable()||(t[e].testCount++,n.isFailing()?o(I.ERRORS):n.isWarning()&&o(I.WARNINGS)),u;function o(t){var n=V(t);u[n]++,i&&(u[t]=(u[t]||[]).concat(i))}}function $(t,n,e){return e?function(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}(t,n,e):function(t,n){var e={},i=V(n);for(var u in t)r.isPositive(t[u][i])&&(e[u]=t[u][n]||[]);return e}(t,n)}function tt(t){var n={getErrors:function(n){return nt(t,I.ERRORS,n)},getErrorsByGroup:function(n,e){return et(t,I.ERRORS,n,e)},getWarnings:function(n){return nt(t,I.WARNINGS,n)},getWarningsByGroup:function(n,e){return et(t,I.WARNINGS,n,e)},hasErrors:function(n){return ut(t,O.ERROR_COUNT,n)},hasErrorsByGroup:function(n,e){return it(t,O.ERROR_COUNT,n,e)},hasWarnings:function(n){return ut(t,O.WARN_COUNT,n)},hasWarningsByGroup:function(n,e){return it(t,O.WARN_COUNT,n,e)},isValid:function(n){var e;return n?Boolean(null===(e=t.tests[n])||void 0===e?void 0:e.valid):t.valid},isValidByGroup:function(n,e){var r=t.groups[n];if(!r)return!1;if(e)return rt(r,e);for(var i in r)if(!rt(r,i))return!1;return!0}};return n}function nt(t,n,e){return $(t.tests,n,e)}function et(t,n,e,r){return $(t.groups[e],n,r)}function rt(t,n){var e;return!!(null===(e=t[n])||void 0===e?void 0:e.valid)}function it(t,n,e,i){var u,o,s=t.groups[e];if(!s)return!1;if(i)return r.isPositive(null===(u=s[i])||void 0===u?void 0:u[n]);for(var a in s)if(r.isPositive(null===(o=s[a])||void 0===o?void 0:o[n]))return!0;return!1}function ut(t,n,e){var i,u=e?null===(i=t.tests[e])||void 0===i?void 0:i[n]:t[n]||0;return r.isPositive(u)}!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=1]="Delayed"}(X||(X={}));var ot=r.cache(1);function st(){var t=A(),n={stateRef:p()};return ot([t],c.bind(n,(function(){var t=Q(),n=p().suiteName()[0];return r.assign(t,tt(t),{suiteName:n})})))}function at(t){var n=S();return!r.isEmpty(n)&&(!t||n.some((function(n){return q(n,t)})))}var ct=r.cache(20);function ft(){var t=A(),n={stateRef:p()};return ct([t],c.bind(n,(function(){return r.assign({},st(),{done:c.bind(n,vt)})})))}function lt(t,n,e){var i;return!!(!r.isFunction(t)||n&&r.numberEquals(null===(i=e.tests[n])||void 0===i?void 0:i.testCount,0))}function dt(t){return!(at()&&(!t||at(t)))}var pt,vt=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=t.reverse(),r=e[0],i=e[1],u=ft();if(lt(r,i,u))return u;var o=function(){return r(st())};return dt(i)?(o(),u):(Et(o,i),u)};function Et(t,n){(0,E()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function ht(){var t=h()[0];if(!r.isEmpty(t)){var n={};A().forEach((function(t){r.hasOwnProperty(n,t.fieldName)?e(t):function(t){var i=y(t.fieldName);i.type===X.Immediate&&(n[t.fieldName]=r.optionalFunctionValue(i.rule),e(t))}(t)})),m()}function e(t){n[t.fieldName]&&(t.omit(),g(t.fieldName,(function(){return{applied:!0}})))}}function gt(){var t=r.bus.createBus();return t.on(pt.TEST_COMPLETED,(function(n){var e,i;n.isCanceled()||(n.done(),e=n.fieldName,i=E()[0].fieldCallbacks,e&&!at(e)&&r.isArray(i[e])&&r.callEach(i[e]),at()||t.emit(pt.ALL_RUNNING_TESTS_FINISHED))})),t.on(pt.SUITE_CALLBACK_DONE_RUNNING,(function(){ht()})),t.on(pt.ALL_RUNNING_TESTS_FINISHED,(function(){var t;t=E()[0].doneCallbacks,r.callEach(t)})),t.on(pt.REMOVE_FIELD,(function(t){_((function(n){q(n,t)&&(n.cancel(),function(t){R((function(n){return r.nestedArray.transform(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(pt.RESET_FIELD,(function(t){_((function(n){q(n,t)&&n.reset()}))})),t}function yt(){var t=c.useX();return r.invariant(t.bus),t.bus}!function(t){t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(pt||(pt={}));var Nt="hook called outside of a running suite.";function mt(){return!!c.useX().skipped}function Rt(t){return Ct(0,"tests",t)}function St(t){return Ct(1,"tests",t)}function Tt(t){var n=t.fieldName,e=t.groupName;if(mt())return!0;var i=c.useX(),u=i.exclusion,o=i.inclusion,s=u.tests,a=s[n];if(!1===a)return!0;var f=!0===a;if(e){if(function(t){var n=c.useX().exclusion.groups;if(r.hasOwnProperty(n,t))return!1===n[t];return _t()}(e))return!0;if(!0===u.groups[e])return!f&&(!!At(s)||!1===s[n])}return!!function(t){if(!_t())return!1;return!t}(e)||!f&&(!!At(s)&&!r.optionalFunctionValue(o[n]))}function Ct(t,n,e){var i=c.useX(Nt);e&&r.asArray(e).forEach((function(e){r.isStringValue(e)&&(i.exclusion[n][e]=0===t)}))}function At(t){for(var n in t)if(!0===t[n])return!0;return!1}function _t(){var t=c.useX().exclusion;for(var n in t.groups)if(t.groups[n])return!0;return!1}function It(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function Ot(t){return n=o.EAGER,c.useX().mode[0]===n&&K(t.fieldName);var n}function bt(){return!!c.useX().omitted}function Ft(t,n,e){if(e||2===arguments.length)for(var r,i=0,u=n.length;i<u;i++)!r&&i in n||(r||(r=Array.prototype.slice.call(n,0,i)),r[i]=n[i]);return t.concat(r||Array.prototype.slice.call(n))}function kt(t,n){return t.fieldName===n.fieldName&&t.groupName===n.groupName}function Pt(t){var n=t.asyncTest,e=t.message;if(r.isPromise(n)){var i=yt().emit,u=p(),o=c.bind({stateRef:u},(function(){m(),i(pt.TEST_COMPLETED,t)})),s=c.bind({stateRef:u},(function(n){t.isCanceled()||(t.message=r.isStringValue(n)?n:e,t.fail(),o())}));n.then(o,s)}}function Lt(t){var n=yt(),e=function(t){return c.run({currentTest:t},(function(){return t.run()}))}(t);try{r.isPromise(e)?(t.asyncTest=e,t.setPending(),Pt(t)):n.emit(pt.TEST_COMPLETED,t)}catch(n){throw new Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}function Ut(t){var n=N()[0].prev;if(r.isEmpty(n))return Dt(t),t;var e,i,o,s=(e=n,i=l(),r.nestedArray.valueAtPath(e,i));if(!r.isNullish(t.key)){var a=function(t,n){var e=function(t){return f().keys.prev[t]}(t),i=n;e&&(i=e);return function(t,n){var e=f().keys.current;r.isNullish(e[t])?e[t]=n:r.deferThrow('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(t,i),i}(t.key,t);return Dt(a),a}(function(t,n){return r.isNotEmpty(t)&&!kt(t,n)})(s,t)&&(!function(t,n){if(f().type===u.EACH)return;r.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(n.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.'))}(s,t),o=d().current(),R((function(t){return t.splice(o),t})),s=null);var c=r.defaultTo(s,t);return Dt(c),c}function Dt(t){var n=l();R((function(e){return r.nestedArray.setValueAtPath(e,n,t)}))}function Wt(t){var n=d();if(Ot(t))return t.skip(),Ut(t),n.next(),t;var e,i,u=Ut(t);return bt()||B(t.fieldName)?(u.omit(),n.next(),u):Tt(t)?(u.skip(mt()),n.next(),u):((i=t)!==(e=u)&&kt(e,i)&&e.isPending()&&e.cancel(),Dt(t),function(t){t.isUntested()?Lt(t):r.isPromise(t.asyncTest)&&(t.setPending(),Pt(t))}(t),n.next(),t)}function wt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var i=r.isFunction(n[1])?n:Ft([void 0],n,!0),u=i[0],o=i[1],s=i[2];r.invariant(r.isStringValue(t),Vt("fieldName","string")),r.invariant(r.isFunction(o),Vt("Test callback","function"));var a=c.useX(),f=new b(t,o,{message:u,groupName:a.groupName,key:s});return Wt(f)}Rt.group=function(t){return Ct(0,"groups",t)},St.group=function(t){return Ct(1,"groups",t)};var Gt=r.assign(wt,{memo:function(t){var n=r.cache(10);return function(e){for(var i=[],u=1;u<arguments.length;u++)i[u-1]=arguments[u];var o=d().current(),s=i.reverse(),a=s[0],c=s[1],f=s[2],l=[v(),e,o].concat(a),p=n.get(l);return r.isNull(p)?n(l,(function(){return t(e,f,c)})):p[1].isCanceled()?(n.invalidate(l),n(l,(function(){return t(e,f,c)}))):Wt(p[1])}}(wt)});function Vt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}Object.defineProperty(t,"enforce",{enumerable:!0,get:function(){return n.enforce}}),t.VERSION="4.6.7",t.context=c,t.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=t.reverse(),o=i[0],a=i[1];r.invariant(r.isFunction(o),"vest.create: Expected callback to be a function.");var f=gt(),l=e.createState(),d=s(l,{suiteId:r.seq(),suiteName:a}),p={stateRef:d,bus:f},v=r.assign(c.bind(p,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return l.reset(),G({type:u.SUITE},(function(){o.apply(void 0,t)})),f.emit(pt.SUITE_CALLBACK_DONE_RUNNING),ft()})),{get:c.bind(p,st),remove:c.bind(p,(function(t){f.emit(pt.REMOVE_FIELD,t)})),reset:l.reset,resetField:c.bind(p,(function(t){f.emit(pt.RESET_FIELD,t)}))});return v},t.each=function(t,n){r.invariant(r.isFunction(n),"each callback must be a function"),G({type:u.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))},t.eager=function(){var t;t=o.EAGER,c.useX().mode[0]=t},t.group=function(t,n){r.invariant(r.isStringValue(t),It("name must be a string")),r.invariant(r.isFunction(n),It("callback must be a function")),G({type:u.GROUP},(function(){c.run({groupName:t},n)}))},t.include=function(t){var n=c.useX(),e=n.inclusion,i=n.exclusion;return r.invariant(r.isStringValue(t)),e[t]=r.defaultTo(i.tests[t],!0),{when:function(n){var e=c.useX(),i=e.inclusion,u=e.exclusion;i[t]=function(){return r.hasOwnProperty(u.tests,t)?r.defaultTo(u.tests[t],!0):r.isStringValue(n)?Boolean(u.tests[n]):r.optionalFunctionValue(n,r.optionalFunctionValue(st))}}}},t.omitWhen=function(t,n){G({type:u.OMIT_WHEN},(function(){c.run({omitted:bt()||r.optionalFunctionValue(t,r.optionalFunctionValue(st))},(function(){return n()}))}))},t.only=Rt,t.optional=function(t){if(r.isArray(t)||r.isStringValue(t))r.asArray(t).forEach((function(t){g(t,(function(){return{type:X.Delayed,applied:!1,rule:null}}))}));else{var n=function(n){var e=t[n];g(n,(function(){return{type:X.Immediate,rule:e,applied:r.optionalFunctionValue(e)}}))};for(var e in t)n(e)}},t.skip=St,t.skipWhen=function(t,n){G({type:u.SKIP_WHEN},(function(){c.run({skipped:mt()||r.optionalFunctionValue(t,r.optionalFunctionValue(st))},(function(){return n()}))}))},t.suiteSelectors=tt,t.test=Gt,t.warn=function(){var t=c.useX("warn "+Nt);r.invariant(t.currentTest,"warn called outside of a test."),t.currentTest.warn()},Object.defineProperty(t,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.6.
|
|
2
|
+
"version": "4.6.7",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
6
|
+
"description": "A lightweight, extensible, and framework agnostic validation framework inspired by unit testing libraries.",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"vest",
|
|
9
|
+
"enforce",
|
|
10
|
+
"validation",
|
|
11
|
+
"form",
|
|
12
|
+
"react-validation",
|
|
13
|
+
"vue-validation",
|
|
14
|
+
"angular-validation",
|
|
15
|
+
"validation-framework",
|
|
16
|
+
"svelte-validation",
|
|
17
|
+
"schema-validation"
|
|
18
|
+
],
|
|
6
19
|
"scripts": {
|
|
7
20
|
"test": "vx test",
|
|
8
21
|
"build": "vx build",
|
|
@@ -21,7 +34,7 @@
|
|
|
21
34
|
},
|
|
22
35
|
"dependencies": {
|
|
23
36
|
"context": "^3.0.4",
|
|
24
|
-
"n4s": "^4.3.
|
|
37
|
+
"n4s": "^4.3.3",
|
|
25
38
|
"vast": "^1.0.14",
|
|
26
39
|
"vest-utils": "^0.0.4"
|
|
27
40
|
},
|
package/types/vest.d.ts
CHANGED
|
@@ -334,7 +334,7 @@ declare const test: typeof testBase & {
|
|
|
334
334
|
* Sets a running test to warn only mode.
|
|
335
335
|
*/
|
|
336
336
|
declare function warn(): void;
|
|
337
|
-
declare const VERSION = "4.6.
|
|
337
|
+
declare const VERSION = "4.6.7";
|
|
338
338
|
export { suiteSelectors, test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
339
339
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|
|
340
340
|
//# sourceMappingURL=vest.d.ts.map
|