vest 4.3.4 → 4.4.0-dev-08ec91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/vest.development.js +93 -11
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/vest.development.js +93 -11
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/vest.development.js +93 -11
- package/dist/umd/vest.production.js +1 -1
- package/package.json +3 -3
- package/types/classnames.d.ts +3 -5
- package/types/parser.d.ts +3 -5
- package/types/promisify.d.ts +7 -6
- package/types/vest.d.ts +29 -35
|
@@ -695,6 +695,11 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
695
695
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
696
696
|
}
|
|
697
697
|
|
|
698
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
699
|
+
function matchingGroupName(testObject, groupName) {
|
|
700
|
+
return testObject.groupName === groupName;
|
|
701
|
+
}
|
|
702
|
+
|
|
698
703
|
function either(a, b) {
|
|
699
704
|
return !!a !== !!b;
|
|
700
705
|
}
|
|
@@ -719,6 +724,15 @@ function hasFailuresByTestObjects(severityKey, fieldName) {
|
|
|
719
724
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
720
725
|
});
|
|
721
726
|
}
|
|
727
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
728
|
+
var testObjects = useTestsFlat();
|
|
729
|
+
return testObjects.some(function (testObject) {
|
|
730
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
731
|
+
return false;
|
|
732
|
+
}
|
|
733
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
734
|
+
});
|
|
735
|
+
}
|
|
722
736
|
/**
|
|
723
737
|
* Determines whether a certain test profile has failures.
|
|
724
738
|
*/
|
|
@@ -736,7 +750,7 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
|
|
|
736
750
|
}
|
|
737
751
|
|
|
738
752
|
// eslint-disable-next-line max-statements, complexity
|
|
739
|
-
function
|
|
753
|
+
function shouldAddValidProperty(fieldName) {
|
|
740
754
|
if (fieldIsOmitted(fieldName)) {
|
|
741
755
|
return true;
|
|
742
756
|
}
|
|
@@ -747,36 +761,78 @@ function shouldAddValidProp(fieldName) {
|
|
|
747
761
|
if (isEmpty(testObjects)) {
|
|
748
762
|
return false;
|
|
749
763
|
}
|
|
764
|
+
// Does the given field have any pending tests that are not optional?
|
|
750
765
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
751
766
|
return false;
|
|
752
767
|
}
|
|
753
768
|
return noMissingTests(fieldName);
|
|
754
769
|
}
|
|
770
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
771
|
+
if (fieldIsOmitted(fieldName)) {
|
|
772
|
+
return true;
|
|
773
|
+
}
|
|
774
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
775
|
+
return false;
|
|
776
|
+
}
|
|
777
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
778
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
779
|
+
return false;
|
|
780
|
+
}
|
|
781
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
782
|
+
}
|
|
755
783
|
function fieldIsOmitted(fieldName) {
|
|
756
784
|
if (!fieldName) {
|
|
757
785
|
return false;
|
|
758
786
|
}
|
|
759
787
|
return useOptionalFieldApplied(fieldName) === true;
|
|
760
788
|
}
|
|
789
|
+
// Does the given field have any pending tests that are not optional?
|
|
761
790
|
function hasNonOptionalIncomplete(fieldName) {
|
|
762
791
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
763
|
-
|
|
792
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
793
|
+
}));
|
|
794
|
+
}
|
|
795
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
796
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
797
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
798
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
764
799
|
return false;
|
|
765
800
|
}
|
|
766
|
-
return
|
|
801
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
767
802
|
}));
|
|
768
803
|
}
|
|
804
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
805
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
806
|
+
return false;
|
|
807
|
+
}
|
|
808
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
809
|
+
}
|
|
769
810
|
function noMissingTests(fieldName) {
|
|
770
811
|
var testObjects = useTestsFlat();
|
|
771
812
|
return testObjects.every(function (testObject) {
|
|
772
813
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
773
814
|
return true;
|
|
774
815
|
}
|
|
775
|
-
return (
|
|
776
|
-
|
|
777
|
-
|
|
816
|
+
return missingTestsLogic(testObject, fieldName);
|
|
817
|
+
});
|
|
818
|
+
}
|
|
819
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
820
|
+
var testObjects = useTestsFlat();
|
|
821
|
+
return testObjects.every(function (testObject) {
|
|
822
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
823
|
+
return true;
|
|
824
|
+
}
|
|
825
|
+
return missingTestsLogic(testObject, fieldName);
|
|
778
826
|
});
|
|
779
827
|
}
|
|
828
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
829
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
830
|
+
return true;
|
|
831
|
+
}
|
|
832
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
833
|
+
testObject.isTested() ||
|
|
834
|
+
testObject.isOmitted());
|
|
835
|
+
}
|
|
780
836
|
|
|
781
837
|
function useSummary() {
|
|
782
838
|
var summary = context.useX().summary;
|
|
@@ -798,7 +854,7 @@ function genTestsSummary() {
|
|
|
798
854
|
appendToGroup(summary.groups, testObject);
|
|
799
855
|
return summary;
|
|
800
856
|
}, summary);
|
|
801
|
-
summary.valid =
|
|
857
|
+
summary.valid = shouldAddValidProperty();
|
|
802
858
|
return countFailures(summary);
|
|
803
859
|
}
|
|
804
860
|
function appendToTest(tests, testObject) {
|
|
@@ -807,7 +863,7 @@ function appendToTest(tests, testObject) {
|
|
|
807
863
|
tests[testObject.fieldName].valid =
|
|
808
864
|
tests[testObject.fieldName].valid === false
|
|
809
865
|
? false
|
|
810
|
-
:
|
|
866
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
811
867
|
}
|
|
812
868
|
/**
|
|
813
869
|
* Appends to a group object if within a group
|
|
@@ -819,6 +875,10 @@ function appendToGroup(groups, testObject) {
|
|
|
819
875
|
}
|
|
820
876
|
groups[groupName] = groups[groupName] || {};
|
|
821
877
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
878
|
+
groups[groupName][testObject.fieldName].valid =
|
|
879
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
880
|
+
? false
|
|
881
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
822
882
|
}
|
|
823
883
|
/**
|
|
824
884
|
* Counts the failed tests and adds global counters
|
|
@@ -961,9 +1021,30 @@ function hasFailuresByGroup(severityKey, groupName, fieldName) {
|
|
|
961
1021
|
}
|
|
962
1022
|
|
|
963
1023
|
function isValid(fieldName) {
|
|
964
|
-
var _a;
|
|
965
1024
|
var summary = useSummary();
|
|
966
|
-
return fieldName
|
|
1025
|
+
return fieldName
|
|
1026
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1027
|
+
: summary.valid;
|
|
1028
|
+
}
|
|
1029
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1030
|
+
var summary = useSummary();
|
|
1031
|
+
var group = summary.groups[groupName];
|
|
1032
|
+
if (!group) {
|
|
1033
|
+
return false;
|
|
1034
|
+
}
|
|
1035
|
+
if (fieldName) {
|
|
1036
|
+
return isFieldValid(group, fieldName);
|
|
1037
|
+
}
|
|
1038
|
+
for (var fieldName_1 in group) {
|
|
1039
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1040
|
+
return false;
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
return true;
|
|
1044
|
+
}
|
|
1045
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1046
|
+
var _a;
|
|
1047
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
967
1048
|
}
|
|
968
1049
|
|
|
969
1050
|
var cache$1 = createCache(1);
|
|
@@ -984,6 +1065,7 @@ function produceSuiteResult() {
|
|
|
984
1065
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
985
1066
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
986
1067
|
isValid: context.bind(ref, isValid),
|
|
1068
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
987
1069
|
suiteName: suiteName
|
|
988
1070
|
});
|
|
989
1071
|
}));
|
|
@@ -1880,7 +1962,7 @@ function warn() {
|
|
|
1880
1962
|
ctx.currentTest.warn();
|
|
1881
1963
|
}
|
|
1882
1964
|
|
|
1883
|
-
var VERSION = "4.
|
|
1965
|
+
var VERSION = "4.4.0-dev-08ec91";
|
|
1884
1966
|
|
|
1885
1967
|
Object.defineProperty(exports, 'enforce', {
|
|
1886
1968
|
enumerable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),e=require("context"),r=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}var c=Object.assign;function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function p(n){function t(n){return e.findIndex((function(t){var e=t[0];return f(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),function(n,t){return l(n.length,t)}(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var h,g,E=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return N(n)?n.apply(void 0,t):n}function y(n,t){var e;return null!==(e=m(n))&&void 0!==e?e:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];d(u)?e.push(S(u,t)):(u=t(u),E(u)&&e.push(u))}return e}function C(n,t,e){return T(n,t)[R(t)]=e,n}function b(n){return s(n).reduce((function(n,t){return d(t)?n.concat(b(t)):s(n).concat(t)}),[])}function T(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=y(n[r],[]),n=n[r]}return n}function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return R(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,R(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(h||(h={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(g||(g={}));var I=e.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:h.DEFAULT,keys:{current:{},prev:{}}},mode:[g.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(n){return x()[0][n]}function x(){return O().optionalFields()}function F(n,t){(0,x()[1])((function(e){var r;return c(e,((r={})[n]=m(t,e[n]),r))}))}function U(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function W(){return O().testObjects()}function G(){P((function(n){return n}))}function P(n){(0,W()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function D(){return H().filter((function(n){return n.isPending()}))}var w,X=p();function H(){var n=W()[0].current;return X([n],(function(){return b(n)}))}function K(n){H().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(w||(w={}));var M,q,j=function(){function n(n,t,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=w.Error,this.status=B,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==$||(this.status=n)},n.prototype.warns=function(){return this.severity===w.Warning},n.prototype.setPending=function(){this.setStatus(Q)},n.prototype.fail=function(){this.setStatus(this.warns()?J:Y)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=w.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(Z),G()},n.prototype.reset=function(){this.status=B,G()},n.prototype.omit=function(){this.setStatus($)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Q)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals($)},n.prototype.isUntested=function(){return this.statusEquals(B)},n.prototype.isFailing=function(){return this.statusEquals(Y)},n.prototype.isCanceled=function(){return this.statusEquals(Z)},n.prototype.isSkipped=function(){return this.statusEquals(V)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(J)},n.prototype.statusEquals=function(n){return this.status===n},n}(),B="UNTESTED",V="SKIPPED",Y="FAILED",J="WARNING",z="PASSING",Q="PENDING",Z="CANCELED",$="OMITTED";function nn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function tn(n){function t(n,t,u){return r.references.push(),e(n,m(t,u)),function(){return[r.references[n],function(t){return e(n,m(t,r.references[n]))}]}}function e(t,e){var i=r.references[t];r.references[t]=e,N(t=u[t][1])&&t(e,i),N(n)&&n()}var r={references:[]},u=[];return{registerStateKey:function(n,e){var r=u.length;return u.push([n,e]),t(r,n)},reset:function(){var n=r.references;r.references=[],u.forEach((function(e,r){return t(r,e[0],n[r])}))}}}function en(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function rn(n){return v(n)||o(n)}function un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return I.useX().testCursor.getCursor()}function sn(){return I.useX().testCursor.cursorAt()}function cn(){return I.useX().testCursor.next()}function an(n,t){n=void 0===(n=n.type)?h.DEFAULT:n,nn(N(t));var e={current:{},prev:{}},r=on();return I.run({isolate:{type:n,keys:e}},(function(){I.useX().testCursor.addLevel(),e.prev=s(T(W()[0].prev,on())).reduce((function(n,t){return t instanceof j&&!rn(t.key)?(n[t.key]=t,n):n}),{}),P((function(n){return C(n,r,[])}));var n=t();return I.useX().testCursor.removeLevel(),cn(),n}))}function fn(n){return n===M.ERRORS?q.ERROR_COUNT:q.WARN_COUNT}function ln(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function pn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:ln(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(M||(M={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(q||(q={}));var dn=i(pn);function vn(n,t){return!!t&&!hn(n,t)}function hn(n,t){return!(!t||n.fieldName!==t)}function gn(n){return function(n,t){return H().some((function(e){return function(n,t,e){return!(!n.hasFailures()||vn(n,e)||function(n,t){return function(n,t){return!!n!=!!t}(n===M.WARNINGS,t.warns())}(t,n))}(e,n,t)}))}(M.ERRORS,n)}function En(n){return!!function(n){return!!n&&!0===function(n){var t;return null===(t=L(n))||void 0===t?void 0:t[1]}(n)}(n)||!gn(n)&&(!pn(H())&&!function(n){return dn(D().filter((function(t){return!vn(t,n)&&!0!==U(t.fieldName)})))}(n)&&function(n){return H().every((function(t){return!!vn(t,n)||(!0===U(t.fieldName)||t.isTested()||t.isOmitted())}))}(n))}function Nn(){var n=I.useX().summary;return nn(n),n}function mn(){var n=H(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=yn(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&En(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=yn(n[e],t))}(n.groups,t),n}),t),t.valid=En(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function yn(n,t){function e(n){var t=fn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(M.ERRORS):t.isWarning()&&e(M.WARNINGS)),i}function Rn(n){return l(n,0)}function Sn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={},u=fn(t);for(e in n)Rn(n[e][u])&&(r[e]=n[e][t]||[]);return r}(n,t)}function Cn(n){return Tn(M.ERRORS,n)}function bn(n){return Tn(M.WARNINGS,n)}function Tn(n,t){return Sn(Nn().tests,n,t)}function _n(n,t){return On(n,M.ERRORS,t)}function In(n,t){return On(n,M.WARNINGS,t)}function On(n,t,e){return Sn(Nn().groups[n],t,e)}function An(n){return Ln(q.ERROR_COUNT,n)}function kn(n){return Ln(q.WARN_COUNT,n)}function Ln(n,t){var e,r=Nn();return Rn(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function xn(n,t){return Un(M.ERRORS,n,t)}function Fn(n,t){return Un(M.WARNINGS,n,t)}function Un(n,t,e){var r,u,i=Nn();if(n=fn(n),!(t=i.groups[t]))return!1;if(e)return Rn(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(Rn(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Wn(n){var t,e=Nn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}var Gn=p(1);function Pn(){var n=H(),t={stateRef:O()};return Gn([n],I.bind(t,(function(){var n=mn(),t=O().suiteName()[0],e={summary:n};return c(n,{getErrors:I.bind(e,Cn),getErrorsByGroup:I.bind(e,_n),getWarnings:I.bind(e,bn),getWarningsByGroup:I.bind(e,In),hasErrors:I.bind(e,An),hasErrorsByGroup:I.bind(e,xn),hasWarnings:I.bind(e,kn),hasWarningsByGroup:I.bind(e,Fn),isValid:I.bind(e,Wn),suiteName:t})})))}function Dn(n){var t=D();return!pn(t)&&(n?t.some((function(t){return hn(t,n)})):dn(t))}var wn=p(20);function Xn(){var n=H(),t={stateRef:O()};return wn([n],I.bind(t,(function(){return c({},Pn(),{done:I.bind(t,qn)})})))}function Hn(n,t,e){return!(N(n)&&(!t||e.tests[t]&&!pn(e.tests[t].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}var Mn,qn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Xn(),Hn(e,n,t))return t;var r=function(){return e(Pn())};return Kn(n)?(r(),t):(jn(r,n),t)};function jn(n,t){(0,k()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Bn(n){return n.forEach((function(n){return n()}))}function Vn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Mn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Dn(n)&&d(t[n])&&Bn(t[n])}(t.fieldName),Dn()||n.emit(Mn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Mn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),F(n.fieldName,(function(n){return[n[0],!0]})))}if(!pn(x()[0])){var t={};P((function(e){return S(e,(function(e){if(ln(t,e.fieldName))n(e);else{var r=U(e.fieldName);N(r)&&(t[e.fieldName]=r(),n(e))}return e}))}))}}()})),n.on(Mn.ALL_RUNNING_TESTS_FINISHED,(function(){Bn(k()[0].doneCallbacks)})),n.on(Mn.REMOVE_FIELD,(function(n){K((function(t){hn(t,n)&&(t.cancel(),function(n){P((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Mn.RESET_FIELD,(function(n){K((function(t){hn(t,n)&&t.reset()}))})),n}function Yn(){var n=I.useX();return nn(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Mn||(Mn={}));function Jn(){return!!I.useX().skipped}function zn(n){return $n(0,"tests",n)}function Qn(n){return $n(1,"tests",n)}function Zn(n){var t=n.fieldName;if(n=n.groupName,Jn())return!0;var e=I.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return ln(t,n)?!1===t[n]:tt()}(n))return!0;if(!0===r.groups[n])return!i&&(!!nt(u)||!1===u[t])}return!!function(n){return!!tt()&&!n}(n)||!i&&(!!nt(u)&&!m(e[t]))}function $n(n,t,e){var r=I.useX("hook called outside of a running suite.");e&&s(e).forEach((function(e){u(e)&&(r.exclusion[t][e]=0===n)}))}function nt(n){for(var t in n)if(!0===n[t])return!0;return!1}function tt(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function et(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function rt(n){return!(!function(n){return I.useX().mode[0]===n}(g.EAGER)||!gn(n.fieldName))}function ut(){return!!I.useX().omitted}function it(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function ot(n){return n&&N(n.then)}function st(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ct(n){var t=n.asyncTest,e=n.message;if(ot(t)){var r=Yn().emit,i=O(),o=I.bind({stateRef:i},(function(){G(),r(Mn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:e,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function at(n){var t=Yn(),e=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{ot(e)?(n.asyncTest=e,n.setPending(),ct(n)):t.emit(Mn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function ft(n){var t=W()[0].prev;return pn(t)?(lt(n),n):(t=function(n){var t=on();return function(n,t){return T(n,t)[R(t)]}(n,t)}(t),rn(n.key)?(function(n,t){return dn(n)&&!st(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===h.EACH||un("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=W(),t=n[1],e=n[0].prev;n=T(e,on());var r=sn();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),lt(n=y(t,n)),n):(lt(n=function(n,t){var e=function(n){return I.useX().isolate.keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=I.useX().isolate.keys.current;rn(e[n])?e[n]=t:un('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function lt(n){var t=on();P((function(e){return C(e,t,n)}))}function pt(n){if(rt(n))return n.skip(),ft(n),cn(),n;var t=ft(n);return ut()?(t.omit(),cn(),t):Zn(n)?(t.skip(Jn()),cn(),t):(function(n,t){t!==n&&st(n,t)&&n.isPending()&&n.cancel()}(t,n),lt(n),cn(),function(n){n.isUntested()?at(n):ot(n.asyncTest)&&(n.setPending(),ct(n))}(n),n)}function dt(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=N(t[1])?t:it([void 0],t,!0);t=r[0],e=r[1],r=r[2],nn(u(n),ht("fieldName","string")),nn(N(e),ht("Test callback","function"));var i=I.useX();return pt(t=new j(n,e,{message:t,groupName:i.groupName,key:r}))}zn.group=function(n){return $n(0,"groups",n)},Qn.group=function(n){return $n(1,"groups",n)};var vt=c(dt,{memo:function(n){var t=p(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=sn();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[A(),e,u].concat(i),v(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):pt(r[1])}}(dt)});function ht(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.3.4",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];n=n[1],nn(N(e),"vest.create: Expected callback to be a function.");var u=Vn(),i=tn();return n={stateRef:en(i,{suiteId:r(),suiteName:n}),bus:u},c(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:h.SUITE},(function(){e.apply(void 0,n)})),u.emit(Mn.SUITE_CALLBACK_DONE_RUNNING),Xn()})),{get:I.bind(n,Pn),remove:I.bind(n,(function(n){u.emit(Mn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Mn.RESET_FIELD,n)}))})},exports.each=function(n,t){nn(N(t),"each callback must be a function"),an({type:h.EACH},(function(){n.forEach((function(n,e){t(n,e)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(g.EAGER)},exports.group=function(n,t){nn(u(n),et("name must be a string")),nn(N(t),et("callback must be a function")),an({type:h.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),e=t.inclusion;return t=t.exclusion,nn(u(n)),e[n]=y(t.tests[n],!0),{when:function(t){var e=I.useX(),r=e.exclusion;e.inclusion[n]=function(){return ln(r.tests,n)?y(r.tests[n],!0):u(t)?!!r.tests[t]:m(t,m(Pn))}}}},exports.omitWhen=function(n,t){an({type:h.OMIT_WHEN},(function(){I.run({omitted:ut()||m(n,m(Pn))},(function(){return t()}))}))},exports.only=zn,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){F(n,[!0,!1])}));else for(var t in n)F(t,[n[t],!1])},exports.skip=Qn,exports.skipWhen=function(n,t){an({type:h.SKIP_WHEN},(function(){I.run({skipped:Jn()||m(n,m(Pn))},(function(){return t()}))}))},exports.test=vt,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");nn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("n4s"),r=require("context"),e=(n=0,function(){return"".concat(n++)});function u(n){return String(n)===n}function i(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function o(n){return void 0===n}function s(n){return[].concat(n)}var c=Object.assign;function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return function(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}(n.length,t)}function l(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function p(n){function t(n){return r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))}void 0===n&&(n=1);var r=[],e=function(t,u){var i=e.get(t);return i?i[1]:(u=u(),r.unshift([t.concat(),u]),function(n,t){return l(n.length,t)}(r,n)&&(r.length=n),u)};return e.invalidate=function(n){-1<(n=t(n))&&r.splice(n,1)},e.get=function(n){return r[t(n)]||null},e}function d(n){return!!Array.isArray(n)}function v(n){return null===n}var g,h,E=i(v);function N(n){return"function"==typeof n}function m(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return N(n)?n.apply(void 0,t):n}function y(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:t}function R(n){return(n=s(n))[n.length-1]}function S(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];d(u)?r.push(S(u,t)):(u=t(u),E(u)&&r.push(u))}return r}function C(n,t,r){return T(n,t)[R(t)]=r,n}function b(n){return s(n).reduce((function(n,t){return d(t)?n.concat(b(t)):s(n).concat(t)}),[])}function T(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=y(n[e],[]),n=n[e]}return n}function _(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return R(t)},getCursor:function(){return s(t)},next:function(){return t[t.length-1]++,R(t)},removeLevel:function(){t.pop()},reset:n}}!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(g||(g={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(h||(h={}));var I=r.createContext((function(n,t){return t?null:c({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:g.DEFAULT,keys:{current:{},prev:{}}},mode:[h.ALL],testCursor:_()},n)}));function O(){return I.useX().stateRef}function A(){return O().suiteId()[0]}function k(){return O().testCallbacks()}function L(n){return x()[0][n]}function x(){return O().optionalFields()}function F(n,t){(0,x()[1])((function(r){var e;return c(r,((e={})[n]=m(t,r[n]),e))}))}function U(n){var t;return null===(t=L(n))||void 0===t?void 0:t[0]}function W(){return O().testObjects()}function G(){P((function(n){return n}))}function P(n){(0,W()[1])((function(t){return{prev:t.prev,current:s(n(t.current))}}))}function D(){return H().filter((function(n){return n.isPending()}))}var w,X=p();function H(){var n=W()[0].current;return X([n],(function(){return b(n)}))}function K(n){H().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(w||(w={}));var M,q,j=function(){function n(n,t,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=w.Error,this.status=B,this.fieldName=n,this.testFn=t,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){(function(n,t){return o(n)&&u(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==$||(this.status=n)},n.prototype.warns=function(){return this.severity===w.Warning},n.prototype.setPending=function(){this.setStatus(Q)},n.prototype.fail=function(){this.setStatus(this.warns()?J:Y)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(z)},n.prototype.warn=function(){this.severity=w.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(V)},n.prototype.cancel=function(){this.setStatus(Z),G()},n.prototype.reset=function(){this.status=B,G()},n.prototype.omit=function(){this.setStatus($)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Q)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals($)},n.prototype.isUntested=function(){return this.statusEquals(B)},n.prototype.isFailing=function(){return this.statusEquals(Y)},n.prototype.isCanceled=function(){return this.statusEquals(Z)},n.prototype.isSkipped=function(){return this.statusEquals(V)},n.prototype.isPassing=function(){return this.statusEquals(z)},n.prototype.isWarning=function(){return this.statusEquals(J)},n.prototype.statusEquals=function(n){return this.status===n},n}(),B="UNTESTED",V="SKIPPED",Y="FAILED",J="WARNING",z="PASSING",Q="PENDING",Z="CANCELED",$="OMITTED";function nn(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?m(t):t)}function tn(n){function t(n,t,u){return e.references.push(),r(n,m(t,u)),function(){return[e.references[n],function(t){return r(n,m(t,e.references[n]))}]}}function r(t,r){var i=e.references[t];e.references[t]=r,N(t=u[t][1])&&t(r,i),N(n)&&n()}var e={references:[]},u=[];return{registerStateKey:function(n,r){var e=u.length;return u.push([n,r]),t(e,n)},reset:function(){var n=e.references;e.references=[],u.forEach((function(r,e){return t(e,r[0],n[e])}))}}}function rn(n,t){var r=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(r),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function en(n){return v(n)||o(n)}function un(n){setTimeout((function(){throw Error(n)}),0)}function on(){return I.useX().testCursor.getCursor()}function sn(){return I.useX().testCursor.cursorAt()}function cn(){return I.useX().testCursor.next()}function an(n,t){n=void 0===(n=n.type)?g.DEFAULT:n,nn(N(t));var r={current:{},prev:{}},e=on();return I.run({isolate:{type:n,keys:r}},(function(){I.useX().testCursor.addLevel(),r.prev=s(T(W()[0].prev,on())).reduce((function(n,t){return t instanceof j&&!en(t.key)?(n[t.key]=t,n):n}),{}),P((function(n){return C(n,e,[])}));var n=t();return I.useX().testCursor.removeLevel(),cn(),n}))}function fn(n){return n===M.ERRORS?q.ERROR_COUNT:q.WARN_COUNT}function ln(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function pn(n){return!n||(function(n){return"number"==typeof n}(n)?0===n:ln(n,"length")?f(n,0):"object"==typeof n&&f(Object.keys(n),0))}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(M||(M={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(q||(q={}));var dn=i(pn);function vn(n,t){return!!t&&!gn(n,t)}function gn(n,t){return!(!t||n.fieldName!==t)}var hn=i((function(n,t){return n.groupName===t}));function En(n){return function(n,t){return H().some((function(r){return Nn(r,n,t)}))}(M.ERRORS,n)}function Nn(n,t,r){return!(!n.hasFailures()||vn(n,r)||function(n,t){return function(n,t){return!!n!=!!t}(n===M.WARNINGS,t.warns())}(t,n))}function mn(n){return!!Rn(n)||!En(n)&&(!pn(H())&&!function(n){return dn(D().filter((function(t){return Sn(t,n)})))}(n)&&function(n){return H().every((function(t){return!!vn(t,n)||Cn(t,n)}))}(n))}function yn(n,t){return!!Rn(t)||!function(n,t,r){return H().some((function(e){return!hn(e,t)&&Nn(e,n,r)}))}(M.ERRORS,n,t)&&!function(n,t){return dn(D().filter((function(r){return!hn(r,n)&&Sn(r,t)})))}(n,t)&&function(n,t){return H().every((function(r){return!!hn(r,n)||Cn(r,t)}))}(n,t)}function Rn(n){return!!n&&!0===function(n){var t;return null===(t=L(n))||void 0===t?void 0:t[1]}(n)}function Sn(n,t){return!vn(n,t)&&!0!==U(n.fieldName)}function Cn(n,t){return!!vn(n,t)||(!0===U(n.fieldName)||n.isTested()||n.isOmitted())}function bn(){var n=I.useX().summary;return nn(n),n}function Tn(){var n=H(),t=c({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=_n(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&mn(t.fieldName)}(n.tests,t),function(n,t){var r=t.groupName;r&&(n[r]=n[r]||{},n[r][t.fieldName]=_n(n[r],t),n[r][t.fieldName].valid=!1!==n[r][t.fieldName].valid&&yn(r,t.fieldName))}(n.groups,t),n}),t),t.valid=mn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function _n(n,t){function r(n){var t=fn(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||c({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[e];return t.isNonActionable()||(n[e].testCount++,t.isFailing()?r(M.ERRORS):t.isWarning()&&r(M.WARNINGS)),i}function In(n){return l(n,0)}function On(n,t,r){return r?function(n,t,r){var e;return(null===(e=null==n?void 0:n[r])||void 0===e?void 0:e[t])||[]}(n,t,r):function(n,t){var r,e={},u=fn(t);for(r in n)In(n[r][u])&&(e[r]=n[r][t]||[]);return e}(n,t)}function An(n){return Ln(M.ERRORS,n)}function kn(n){return Ln(M.WARNINGS,n)}function Ln(n,t){return On(bn().tests,n,t)}function xn(n,t){return Un(n,M.ERRORS,t)}function Fn(n,t){return Un(n,M.WARNINGS,t)}function Un(n,t,r){return On(bn().groups[n],t,r)}function Wn(n){return Pn(q.ERROR_COUNT,n)}function Gn(n){return Pn(q.WARN_COUNT,n)}function Pn(n,t){var r,e=bn();return In(t?null===(r=e.tests[t])||void 0===r?void 0:r[n]:e[n])}function Dn(n,t){return Xn(M.ERRORS,n,t)}function wn(n,t){return Xn(M.WARNINGS,n,t)}function Xn(n,t,r){var e,u,i=bn();if(n=fn(n),!(t=i.groups[t]))return!1;if(r)return In(null===(e=t[r])||void 0===e?void 0:e[n]);for(var o in t)if(In(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Hn(n){var t=bn();return n?!!Mn(t.tests,n):t.valid}function Kn(n,t){if(!(n=bn().groups[n]))return!1;if(t)return Mn(n,t);for(var r in n)if(!Mn(n,r))return!1;return!0}function Mn(n,t){var r;return!(null===(r=n[t])||void 0===r||!r.valid)}var qn=p(1);function jn(){var n=H(),t={stateRef:O()};return qn([n],I.bind(t,(function(){var n=Tn(),t=O().suiteName()[0],r={summary:n};return c(n,{getErrors:I.bind(r,An),getErrorsByGroup:I.bind(r,xn),getWarnings:I.bind(r,kn),getWarningsByGroup:I.bind(r,Fn),hasErrors:I.bind(r,Wn),hasErrorsByGroup:I.bind(r,Dn),hasWarnings:I.bind(r,Gn),hasWarningsByGroup:I.bind(r,wn),isValid:I.bind(r,Hn),isValidByGroup:I.bind(r,Kn),suiteName:t})})))}function Bn(n){var t=D();return!pn(t)&&(n?t.some((function(t){return gn(t,n)})):dn(t))}var Vn=p(20);function Yn(){var n=H(),t={stateRef:O()};return Vn([n],I.bind(t,(function(){return c({},jn(),{done:I.bind(t,Zn)})})))}function Jn(n,t,r){return!(N(n)&&(!t||r.tests[t]&&!pn(r.tests[t].testCount)))}function zn(n){return!(Bn()&&(!n||Bn(n)))}var Qn,Zn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];if(n=n[1],t=Yn(),Jn(r,n,t))return t;var e=function(){return r(jn())};return zn(n)?(e(),t):($n(e,n),t)};function $n(n,t){(0,k()[1])((function(r){return t?r.fieldCallbacks[t]=(r.fieldCallbacks[t]||[]).concat(n):r.doneCallbacks.push(n),r}))}function nt(n){return n.forEach((function(n){return n()}))}function tt(){var n=function(){var n={};return{emit:function(t,r){(n[t]||[]).forEach((function(n){n(r)}))},on:function(t,r){return n[t]=(n[t]||[]).concat(r),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==r}))}}}}}();return n.on(Qn.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=k()[0].fieldCallbacks;n&&!Bn(n)&&d(t[n])&&nt(t[n])}(t.fieldName),Bn()||n.emit(Qn.ALL_RUNNING_TESTS_FINISHED))})),n.on(Qn.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){t[n.fieldName]&&(n.omit(),F(n.fieldName,(function(n){return[n[0],!0]})))}if(!pn(x()[0])){var t={};P((function(r){return S(r,(function(r){if(ln(t,r.fieldName))n(r);else{var e=U(r.fieldName);N(e)&&(t[r.fieldName]=e(),n(r))}return r}))}))}}()})),n.on(Qn.ALL_RUNNING_TESTS_FINISHED,(function(){nt(k()[0].doneCallbacks)})),n.on(Qn.REMOVE_FIELD,(function(n){K((function(t){gn(t,n)&&(t.cancel(),function(n){P((function(t){return S(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Qn.RESET_FIELD,(function(n){K((function(t){gn(t,n)&&t.reset()}))})),n}function rt(){var n=I.useX();return nn(n.bus),n.bus}!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Qn||(Qn={}));function et(){return!!I.useX().skipped}function ut(n){return st(0,"tests",n)}function it(n){return st(1,"tests",n)}function ot(n){var t=n.fieldName;if(n=n.groupName,et())return!0;var r=I.useX(),e=r.exclusion;r=r.inclusion;var u=e.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){if(function(n){var t=I.useX().exclusion.groups;return ln(t,n)?!1===t[n]:at()}(n))return!0;if(!0===e.groups[n])return!i&&(!!ct(u)||!1===u[t])}return!!function(n){return!!at()&&!n}(n)||!i&&(!!ct(u)&&!m(r[t]))}function st(n,t,r){var e=I.useX("hook called outside of a running suite.");r&&s(r).forEach((function(r){u(r)&&(e.exclusion[t][r]=0===n)}))}function ct(n){for(var t in n)if(!0===n[t])return!0;return!1}function at(){var n,t=I.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function ft(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function lt(n){return!(!function(n){return I.useX().mode[0]===n}(h.EAGER)||!En(n.fieldName))}function pt(){return!!I.useX().omitted}function dt(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||Array.prototype.slice.call(t))}function vt(n){return n&&N(n.then)}function gt(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function ht(n){var t=n.asyncTest,r=n.message;if(vt(t)){var e=rt().emit,i=O(),o=I.bind({stateRef:i},(function(){G(),e(Qn.TEST_COMPLETED,n)}));i=I.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=u(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Et(n){var t=rt(),r=function(n){return I.run({currentTest:n},(function(){return n.run()}))}(n);try{vt(r)?(n.asyncTest=r,n.setPending(),ht(n)):t.emit(Qn.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}function Nt(n){var t=W()[0].prev;return pn(t)?(mt(n),n):(t=function(n){var t=on();return function(n,t){return T(n,t)[R(t)]}(n,t)}(t),en(n.key)?(function(n,t){return dn(n)&&!gt(n,t)}(t,n)&&(function(n,t){I.useX().isolate.type===g.EACH||un("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(t,n),function(){var n=W(),t=n[1],r=n[0].prev;n=T(r,on());var e=sn();n.splice(e),t((function(n){return{prev:r,current:n.current}}))}(),t=null),mt(n=y(t,n)),n):(mt(n=function(n,t){var r=function(n){return I.useX().isolate.keys.prev[n]}(n);return r&&(t=r),function(n,t){var r=I.useX().isolate.keys.current;en(r[n])?r[n]=t:un('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."))}(n,t),t}(n.key,n)),n))}function mt(n){var t=on();P((function(r){return C(r,t,n)}))}function yt(n){if(lt(n))return n.skip(),Nt(n),cn(),n;var t=Nt(n);return pt()?(t.omit(),cn(),t):ot(n)?(t.skip(et()),cn(),t):(function(n,t){t!==n&>(n,t)&&n.isPending()&&n.cancel()}(t,n),mt(n),cn(),function(n){n.isUntested()?Et(n):vt(n.asyncTest)&&(n.setPending(),ht(n))}(n),n)}function Rt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=N(t[1])?t:dt([void 0],t,!0);t=e[0],r=e[1],e=e[2],nn(u(n),Ct("fieldName","string")),nn(N(r),Ct("Test callback","function"));var i=I.useX();return yt(t=new j(n,r,{message:t,groupName:i.groupName,key:e}))}ut.group=function(n){return st(0,"groups",n)},it.group=function(n){return st(1,"groups",n)};var St=c(Rt,{memo:function(n){var t=p(10);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=sn();var i=(e=e.reverse())[0],o=e[1],s=e[2];return u=[A(),r,u].concat(i),v(e=t.get(u))?t(u,(function(){return n(r,s,o)})):e[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(r,s,o)}))):yt(e[1])}}(Rt)});function Ct(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return t.enforce}}),exports.VERSION="4.4.0-dev-08ec91",exports.context=I,exports.create=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=(n=n.reverse())[0];n=n[1],nn(N(r),"vest.create: Expected callback to be a function.");var u=tt(),i=tn();return n={stateRef:rn(i,{suiteId:e(),suiteName:n}),bus:u},c(I.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),an({type:g.SUITE},(function(){r.apply(void 0,n)})),u.emit(Qn.SUITE_CALLBACK_DONE_RUNNING),Yn()})),{get:I.bind(n,jn),remove:I.bind(n,(function(n){u.emit(Qn.REMOVE_FIELD,n)})),reset:i.reset,resetField:I.bind(n,(function(n){u.emit(Qn.RESET_FIELD,n)}))})},exports.each=function(n,t){nn(N(t),"each callback must be a function"),an({type:g.EACH},(function(){n.forEach((function(n,r){t(n,r)}))}))},exports.eager=function(){!function(n){I.useX().mode[0]=n}(h.EAGER)},exports.group=function(n,t){nn(u(n),ft("name must be a string")),nn(N(t),ft("callback must be a function")),an({type:g.GROUP},(function(){I.run({groupName:n},t)}))},exports.include=function(n){var t=I.useX(),r=t.inclusion;return t=t.exclusion,nn(u(n)),r[n]=y(t.tests[n],!0),{when:function(t){var r=I.useX(),e=r.exclusion;r.inclusion[n]=function(){return ln(e.tests,n)?y(e.tests[n],!0):u(t)?!!e.tests[t]:m(t,m(jn))}}}},exports.omitWhen=function(n,t){an({type:g.OMIT_WHEN},(function(){I.run({omitted:pt()||m(n,m(jn))},(function(){return t()}))}))},exports.only=ut,exports.optional=function(n){if(d(n)||u(n))s(n).forEach((function(n){F(n,[!0,!1])}));else for(var t in n)F(t,[n[t],!1])},exports.skip=it,exports.skipWhen=function(n,t){an({type:g.SKIP_WHEN},(function(){I.run({skipped:et()||m(n,m(jn))},(function(){return t()}))}))},exports.test=St,exports.warn=function(){var n=I.useX("warn hook called outside of a running suite.");nn(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
|
|
@@ -691,6 +691,11 @@ function matchingFieldName(testObject, fieldName) {
|
|
|
691
691
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
692
692
|
}
|
|
693
693
|
|
|
694
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
695
|
+
function matchingGroupName(testObject, groupName) {
|
|
696
|
+
return testObject.groupName === groupName;
|
|
697
|
+
}
|
|
698
|
+
|
|
694
699
|
function either(a, b) {
|
|
695
700
|
return !!a !== !!b;
|
|
696
701
|
}
|
|
@@ -715,6 +720,15 @@ function hasFailuresByTestObjects(severityKey, fieldName) {
|
|
|
715
720
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
716
721
|
});
|
|
717
722
|
}
|
|
723
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
724
|
+
var testObjects = useTestsFlat();
|
|
725
|
+
return testObjects.some(function (testObject) {
|
|
726
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
727
|
+
return false;
|
|
728
|
+
}
|
|
729
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
730
|
+
});
|
|
731
|
+
}
|
|
718
732
|
/**
|
|
719
733
|
* Determines whether a certain test profile has failures.
|
|
720
734
|
*/
|
|
@@ -732,7 +746,7 @@ function hasFailuresByTestObject(testObject, severityKey, fieldName) {
|
|
|
732
746
|
}
|
|
733
747
|
|
|
734
748
|
// eslint-disable-next-line max-statements, complexity
|
|
735
|
-
function
|
|
749
|
+
function shouldAddValidProperty(fieldName) {
|
|
736
750
|
if (fieldIsOmitted(fieldName)) {
|
|
737
751
|
return true;
|
|
738
752
|
}
|
|
@@ -743,36 +757,78 @@ function shouldAddValidProp(fieldName) {
|
|
|
743
757
|
if (isEmpty(testObjects)) {
|
|
744
758
|
return false;
|
|
745
759
|
}
|
|
760
|
+
// Does the given field have any pending tests that are not optional?
|
|
746
761
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
747
762
|
return false;
|
|
748
763
|
}
|
|
749
764
|
return noMissingTests(fieldName);
|
|
750
765
|
}
|
|
766
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
767
|
+
if (fieldIsOmitted(fieldName)) {
|
|
768
|
+
return true;
|
|
769
|
+
}
|
|
770
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
771
|
+
return false;
|
|
772
|
+
}
|
|
773
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
774
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
775
|
+
return false;
|
|
776
|
+
}
|
|
777
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
778
|
+
}
|
|
751
779
|
function fieldIsOmitted(fieldName) {
|
|
752
780
|
if (!fieldName) {
|
|
753
781
|
return false;
|
|
754
782
|
}
|
|
755
783
|
return useOptionalFieldApplied(fieldName) === true;
|
|
756
784
|
}
|
|
785
|
+
// Does the given field have any pending tests that are not optional?
|
|
757
786
|
function hasNonOptionalIncomplete(fieldName) {
|
|
758
787
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
759
|
-
|
|
788
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
789
|
+
}));
|
|
790
|
+
}
|
|
791
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
792
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
793
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
794
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
760
795
|
return false;
|
|
761
796
|
}
|
|
762
|
-
return
|
|
797
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
763
798
|
}));
|
|
764
799
|
}
|
|
800
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
801
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
802
|
+
return false;
|
|
803
|
+
}
|
|
804
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
805
|
+
}
|
|
765
806
|
function noMissingTests(fieldName) {
|
|
766
807
|
var testObjects = useTestsFlat();
|
|
767
808
|
return testObjects.every(function (testObject) {
|
|
768
809
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
769
810
|
return true;
|
|
770
811
|
}
|
|
771
|
-
return (
|
|
772
|
-
|
|
773
|
-
|
|
812
|
+
return missingTestsLogic(testObject, fieldName);
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
816
|
+
var testObjects = useTestsFlat();
|
|
817
|
+
return testObjects.every(function (testObject) {
|
|
818
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
819
|
+
return true;
|
|
820
|
+
}
|
|
821
|
+
return missingTestsLogic(testObject, fieldName);
|
|
774
822
|
});
|
|
775
823
|
}
|
|
824
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
825
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
826
|
+
return true;
|
|
827
|
+
}
|
|
828
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
829
|
+
testObject.isTested() ||
|
|
830
|
+
testObject.isOmitted());
|
|
831
|
+
}
|
|
776
832
|
|
|
777
833
|
function useSummary() {
|
|
778
834
|
var summary = context.useX().summary;
|
|
@@ -794,7 +850,7 @@ function genTestsSummary() {
|
|
|
794
850
|
appendToGroup(summary.groups, testObject);
|
|
795
851
|
return summary;
|
|
796
852
|
}, summary);
|
|
797
|
-
summary.valid =
|
|
853
|
+
summary.valid = shouldAddValidProperty();
|
|
798
854
|
return countFailures(summary);
|
|
799
855
|
}
|
|
800
856
|
function appendToTest(tests, testObject) {
|
|
@@ -803,7 +859,7 @@ function appendToTest(tests, testObject) {
|
|
|
803
859
|
tests[testObject.fieldName].valid =
|
|
804
860
|
tests[testObject.fieldName].valid === false
|
|
805
861
|
? false
|
|
806
|
-
:
|
|
862
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
807
863
|
}
|
|
808
864
|
/**
|
|
809
865
|
* Appends to a group object if within a group
|
|
@@ -815,6 +871,10 @@ function appendToGroup(groups, testObject) {
|
|
|
815
871
|
}
|
|
816
872
|
groups[groupName] = groups[groupName] || {};
|
|
817
873
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
874
|
+
groups[groupName][testObject.fieldName].valid =
|
|
875
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
876
|
+
? false
|
|
877
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
818
878
|
}
|
|
819
879
|
/**
|
|
820
880
|
* Counts the failed tests and adds global counters
|
|
@@ -957,9 +1017,30 @@ function hasFailuresByGroup(severityKey, groupName, fieldName) {
|
|
|
957
1017
|
}
|
|
958
1018
|
|
|
959
1019
|
function isValid(fieldName) {
|
|
960
|
-
var _a;
|
|
961
1020
|
var summary = useSummary();
|
|
962
|
-
return fieldName
|
|
1021
|
+
return fieldName
|
|
1022
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1023
|
+
: summary.valid;
|
|
1024
|
+
}
|
|
1025
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1026
|
+
var summary = useSummary();
|
|
1027
|
+
var group = summary.groups[groupName];
|
|
1028
|
+
if (!group) {
|
|
1029
|
+
return false;
|
|
1030
|
+
}
|
|
1031
|
+
if (fieldName) {
|
|
1032
|
+
return isFieldValid(group, fieldName);
|
|
1033
|
+
}
|
|
1034
|
+
for (var fieldName_1 in group) {
|
|
1035
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1036
|
+
return false;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
return true;
|
|
1040
|
+
}
|
|
1041
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1042
|
+
var _a;
|
|
1043
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
963
1044
|
}
|
|
964
1045
|
|
|
965
1046
|
var cache$1 = createCache(1);
|
|
@@ -980,6 +1061,7 @@ function produceSuiteResult() {
|
|
|
980
1061
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
981
1062
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
982
1063
|
isValid: context.bind(ref, isValid),
|
|
1064
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
983
1065
|
suiteName: suiteName
|
|
984
1066
|
});
|
|
985
1067
|
}));
|
|
@@ -1876,6 +1958,6 @@ function warn() {
|
|
|
1876
1958
|
ctx.currentTest.warn();
|
|
1877
1959
|
}
|
|
1878
1960
|
|
|
1879
|
-
var VERSION = "4.
|
|
1961
|
+
var VERSION = "4.4.0-dev-08ec91";
|
|
1880
1962
|
|
|
1881
1963
|
export { VERSION, context, create, each, eager, group, include, omitWhen, only, optional, skip, skipWhen, test, warn };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function p(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function d(t,n){var e;return null!==(e=p(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function g(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(g(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=d(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var C=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function S(){return C.useX().stateRef}function T(t){return S().optionalFields()[0][t]}function O(t,n){(0,S().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=p(n,e[t]),r))}))}function A(t){var n;return null===(n=T(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,S().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=S().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,P=U||(U={});P.Error="error",P.Warning="warning";var W=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=U.Error,this.status=G,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),I()},t.prototype.reset=function(){this.status=G,I()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(G)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),G="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?p(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,p(n,u)),function(){return[r.references[t],function(n){return e(t,p(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return C.useX().testCursor.getCursor()}function z(){return C.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return C.run({isolate:{type:t,keys:e}},(function(){C.useX().testCursor.addLevel(),e.prev=function(){var t=S().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof W&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return C.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}function ot(t,n){return F().some((function(e){return e.hasFailures()?n&&!it(e,n)?e=!1:(e=e.warns(),e=t===Z.WARNINGS==!!e):e=!1,e}))}function st(t){if(t)var n,e=!0===(null===(n=T(t))||void 0===n?void 0:n[1]);else e=!1;return!!e||!ot(Z.ERRORS,t)&&(!rt(e=F())&&!function(t){return ut(k().filter((function(n){return!(t&&!it(n,t))&&!0!==A(n.fieldName)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||(!0===A(n.fieldName)||n.isTested()||n.isOmitted())}))}(t))}function at(){var t=C.useX().summary;return M(t),t}function ct(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function ft(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function lt(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function pt(t){return vt(Z.ERRORS,t)}function dt(t){return vt(Z.WARNINGS,t)}function vt(t,n){var e=at().tests;return n?ft(e,t,n):lt(e,t)}function ht(t,n){return Et(t,Z.ERRORS,n)}function gt(t,n){return Et(t,Z.WARNINGS,n)}function Et(t,n,e){return t=at().groups[t],e?ft(t,n,e):lt(t,n)}function Nt(t){return yt(tt.ERROR_COUNT,t)}function mt(t){return yt(tt.WARN_COUNT,t)}function yt(t,n){var e,r=at();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function Rt(t,n){return Ct(Z.ERRORS,t,n)}function bt(t,n){return Ct(Z.WARNINGS,t,n)}function Ct(t,n,e){var r,u,i=at();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function St(t){var n,e=at();return t?!(null===(n=e.tests[t])||void 0===n||!n.valid):e.valid}var Tt=c(1);function Ot(){var t=F(),n={stateRef:S()};return Tt([t],C.bind(n,(function(){var t=function(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ct(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&st(n.fieldName),e=t.groups;var r=n.groupName;return r&&(e[r]=e[r]||{},e[r][n.fieldName]=ct(e[r],n)),t}),n),n.valid=st(),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)}(),n=S().suiteName()[0],e={summary:t};return i(t,{getErrors:C.bind(e,pt),getErrorsByGroup:C.bind(e,ht),getWarnings:C.bind(e,dt),getWarningsByGroup:C.bind(e,gt),hasErrors:C.bind(e,Nt),hasErrorsByGroup:C.bind(e,Rt),hasWarnings:C.bind(e,mt),hasWarningsByGroup:C.bind(e,bt),isValid:C.bind(e,St),suiteName:n})})))}function At(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var It=c(20);function _t(){var t=F(),n={stateRef:S()};return It([t],C.bind(n,(function(){return i({},Ot(),{done:C.bind(n,Ft)})})))}function kt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Lt(t){return!(At()&&(!t||At(t)))}function Ft(){function t(){return r(Ot())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=_t(),kt(r,n,e)?e:Lt(n)?(t(),e):(Ut(t,n),e)}function Ut(t,n){(0,S().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Pt(t){return t.forEach((function(t){return t()}))}function Wt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(Xt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=S().testCallbacks()[0].fieldCallbacks;n&&!At(n)&&Array.isArray(e[n])&&Pt(e[n]),At()||t.emit(Xt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(Xt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),O(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(S().optionalFields()[0])){var n={};_((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(Xt.ALL_RUNNING_TESTS_FINISHED,(function(){Pt(S().testCallbacks()[0].doneCallbacks)})),t.on(Xt.REMOVE_FIELD,(function(t){F().forEach((function(n){it(n,t)&&(n.cancel(),function(t){_((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(Xt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Gt(){var t=C.useX();return M(t.bus),t.bus}var Xt,wt=Xt||(Xt={});function Dt(t){return jt(0,"tests",t)}function xt(t){return jt(1,"tests",t)}function jt(t,n,e){var u=C.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function Ht(t){for(var n in t)if(!0===t[n])return!0;return!1}function Kt(){var t,n=C.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Mt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function qt(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 Bt(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Gt().emit,i=S(),o=C.bind({stateRef:i},(function(){I(),u(Xt.TEST_COMPLETED,t)}));i=C.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function Vt(t){var n=S().testObjects()[0].prev;if(rt(n))return Yt(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=C.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=C.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Yt(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(C.useX().isolate.type===m.EACH||Y("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=S().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=C.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),Yt(t=d(n,t)),t}function Yt(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function Jt(t){var n=R.EAGER;if(n=!(C.useX().mode[0]!==n||!ot(Z.ERRORS,t.fieldName)))return t.skip(),Vt(t),z(),t;if(n=Vt(t),C.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,C.useX().skipped)return!0;var e=C.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=C.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Kt())return!0;if(!0===r.groups[t])return!(i||!Ht(u)&&!1!==u[n])}return!!(t=!!Kt()&&!t)||!i&&!!Ht(u)&&!p(e[n])}(t))return n.skip(!!C.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),Yt(t),z(),t.isUntested()){n=Gt();var e=function(t){return C.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),Bt(t)):n.emit(Xt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),Bt(t));return t}function zt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:qt([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),Zt("fieldName","string")),M(l(e),Zt("Test callback","function"));var i=C.useX();return Jt(n=new W(t,e,{message:n,groupName:i.groupName,key:u}))}wt.TEST_COMPLETED="test_completed",wt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",wt.REMOVE_FIELD="remove_field",wt.RESET_FIELD="reset_field",wt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Dt.group=function(t){return jt(0,"groups",t)},xt.group=function(t){return jt(1,"groups",t)};var Qt=i(zt,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=C.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[S().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Jt(r[1])}}(zt)});function Zt(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var $t="4.3.4";function tn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Wt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(C.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(Xt.SUITE_CALLBACK_DONE_RUNNING),_t()})),{get:C.bind(t,Ot),remove:C.bind(t,(function(t){u.emit(Xt.REMOVE_FIELD,t)})),reset:o.reset,resetField:C.bind(t,(function(t){u.emit(Xt.RESET_FIELD,t)}))})}function nn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function en(){var t=R.EAGER;C.useX().mode[0]=t}function rn(t,n){M(r(t),Mt("name must be a string")),M(l(n),Mt("callback must be a function")),Q({type:m.GROUP},(function(){C.run({groupName:t},n)}))}function un(t){var n=C.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=d(n.tests[t],!0),{when:function(n){var e=C.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?d(u.tests[t],!0):r(n)?!!u.tests[n]:p(n,p(Ot))}}}}function on(t,n){Q({type:m.OMIT_WHEN},(function(){C.run({omitted:!!C.useX().omitted||p(t,p(Ot))},(function(){return n()}))}))}function sn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){O(t,[!0,!1])}));else for(var n in t)O(n,[t[n],!1])}function an(t,n){Q({type:m.SKIP_WHEN},(function(){C.run({skipped:!!C.useX().skipped||p(t,p(Ot))},(function(){return n()}))}))}function cn(){var t=C.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{$t as VERSION,C as context,tn as create,nn as each,en as eager,rn as group,un as include,on as omitWhen,Dt as only,sn as optional,xt as skip,an as skipWhen,Qt as test,cn as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=(n=0,function(){return"".concat(n++)});function r(t){return String(t)===t}function u(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var i=Object.assign;function o(t){var n=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(n))}function s(t,n){return o(t)&&o(n)&&Number(t)===Number(n)}function a(t,n){return o(t)&&o(n)&&Number(t)>Number(n)}function c(t){function n(e,u){var i=n.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),a(r.length,t)&&(r.length=t),u)}function e(t){return r.findIndex((function(n){var e=n[0];return s(t.length,e.length)&&t.every((function(t,n){return t===e[n]}))}))}void 0===t&&(t=1);var r=[];return n.invalidate=function(t){-1<(t=e(t))&&r.splice(t,1)},n.get=function(t){return r[e(t)]||null},n}var f=u((function(t){return null===t}));function l(t){return"function"==typeof t}function d(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return l(t)?t.apply(void 0,n):t}function p(t,n){var e;return null!==(e=d(t))&&void 0!==e?e:n}function v(t){return(t=[].concat(t))[t.length-1]}function h(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(h(u,n)):(u=n(u),f(u)&&e.push(u))}return e}function g(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(g(n)):[].concat(t).concat(n)}),[])}function E(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=p(t[r],[]),t=t[r]}return t}function N(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}var m,y=m||(m={});y[y.DEFAULT=0]="DEFAULT",y[y.SUITE=1]="SUITE",y[y.EACH=2]="EACH",y[y.SKIP_WHEN=3]="SKIP_WHEN",y[y.OMIT_WHEN=4]="OMIT_WHEN",y[y.GROUP=5]="GROUP";var R,b=R||(R={});b[b.ALL=0]="ALL",b[b.EAGER=1]="EAGER";var S=t((function(t,n){return n?null:i({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:m.DEFAULT,keys:{current:{},prev:{}}},mode:[R.ALL],testCursor:N()},t)}));function C(){return S.useX().stateRef}function O(t){return C().optionalFields()[0][t]}function T(t,n){(0,C().optionalFields()[1])((function(e){var r;return i(e,((r={})[t]=d(n,e[t]),r))}))}function A(t){var n;return null===(n=O(t))||void 0===n?void 0:n[0]}function I(){_((function(t){return t}))}function _(t){(0,C().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function k(){return F().filter((function(t){return t.isPending()}))}var L=c();function F(){var t=C().testObjects()[0].current;return L([t],(function(){return g(t)}))}var U,G=U||(U={});G.Error="error",G.Warning="warning";var P=function(){function t(t,n,r){var u=void 0===r?{}:r;r=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=e(),this.severity=U.Error,this.status=W,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),r&&(this.message=r),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&r(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==K||(this.status=t)},t.prototype.warns=function(){return this.severity===U.Warning},t.prototype.setPending=function(){this.setStatus(j)},t.prototype.fail=function(){this.setStatus(this.warns()?D:w)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(x)},t.prototype.warn=function(){this.severity=U.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(X)},t.prototype.cancel=function(){this.setStatus(H),I()},t.prototype.reset=function(){this.status=W,I()},t.prototype.omit=function(){this.setStatus(K)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},t.prototype.isPending=function(){return this.statusEquals(j)},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.statusEquals(K)},t.prototype.isUntested=function(){return this.statusEquals(W)},t.prototype.isFailing=function(){return this.statusEquals(w)},t.prototype.isCanceled=function(){return this.statusEquals(H)},t.prototype.isSkipped=function(){return this.statusEquals(X)},t.prototype.isPassing=function(){return this.statusEquals(x)},t.prototype.isWarning=function(){return this.statusEquals(D)},t.prototype.statusEquals=function(t){return this.status===t},t}(),W="UNTESTED",X="SKIPPED",w="FAILED",D="WARNING",x="PASSING",j="PENDING",H="CANCELED",K="OMITTED";function M(t,n){if(!t)throw n instanceof String?n.valueOf():Error(n?d(n):n)}function q(t){function n(t,n,u){return r.references.push(),e(t,d(n,u)),function(){return[r.references[t],function(n){return e(t,d(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,l(n=u[n][1])&&n(e,i),l(t)&&t()}var r={references:[]},u=[];return{registerStateKey:function(t,e){var r=u.length;return u.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],u.forEach((function(e,r){return n(r,e[0],t[r])}))}}}function B(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function V(t){return null==t}function Y(t){setTimeout((function(){throw Error(t)}),0)}function J(){return S.useX().testCursor.getCursor()}function z(){return S.useX().testCursor.next()}function Q(t,n){t=void 0===(t=t.type)?m.DEFAULT:t,M(l(n));var e={current:{},prev:{}},r=J();return S.run({isolate:{type:t,keys:e}},(function(){S.useX().testCursor.addLevel(),e.prev=function(){var t=C().testObjects()[0].prev;return[].concat(E(t,J())).reduce((function(t,n){return n instanceof P&&!V(n.key)?(t[n.key]=n,t):t}),{})}(),_((function(t){return E(t,r)[v(r)]=[],t}));var t=n();return S.useX().testCursor.removeLevel(),z(),t}))}var Z,$=Z||(Z={});$.WARNINGS="warnings",$.ERRORS="errors";var tt,nt=tt||(tt={});function et(t){return t===Z.ERRORS?tt.ERROR_COUNT:tt.WARN_COUNT}function rt(t){return!t||("number"==typeof t?0===t:Object.prototype.hasOwnProperty.call(t,"length")?s(t.length,0):"object"==typeof t&&s((t=Object.keys(t)).length,0))}nt.ERROR_COUNT="errorCount",nt.WARN_COUNT="warnCount";var ut=u(rt);function it(t,n){return!(!n||t.fieldName!==n)}var ot=u((function(t,n){return t.groupName===n}));function st(t,n){return F().some((function(e){return at(e,t,n)}))}function at(t,n,e){return(e=!t.hasFailures()||e&&!it(t,e))||(t=t.warns(),e=n===Z.WARNINGS!=!!t),!e}function ct(t){return!!ft(t)||!st(Z.ERRORS,t)&&(!rt(F())&&!function(t){return ut(k().filter((function(n){return lt(n,t)})))}(t)&&function(t){return F().every((function(n){return!(!t||it(n,t))||dt(n,t)}))}(t))}function ft(t){return!!t&&!0===(null===(n=O(t))||void 0===n?void 0:n[1]);var n}function lt(t,n){return!(n&&!it(t,n))&&!0!==A(t.fieldName)}function dt(t,n){return!(!n||it(t,n))||(!0===A(t.fieldName)||t.isTested()||t.isOmitted())}function pt(){var t=S.useX().summary;return M(t),t}function vt(){var t=F(),n=i({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return t.reduce((function(t,n){var e=t.tests;e[n.fieldName]=ht(e,n),e[n.fieldName].valid=!1!==e[n.fieldName].valid&&ct(n.fieldName);var r=t.groups,u=n.groupName;return u&&(r[u]=r[u]||{},r[u][n.fieldName]=ht(r[u],n),e=r[u][n.fieldName],!1===r[u][n.fieldName].valid?n=!1:n=!!ft(n=n.fieldName)||!function(t,n,e){return F().some((function(r){return!ot(r,n)&&at(r,t,e)}))}(Z.ERRORS,u,n)&&!function(t,n){return ut(k().filter((function(e){return!ot(e,t)&<(e,n)})))}(u,n)&&function(t,n){return F().every((function(e){return!!ot(e,t)||dt(e,n)}))}(u,n),e.valid=n),t}),n),n.valid=ct(),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(n)}function ht(t,n){function e(t){var n=et(t);o[n]++,u&&(o[t]=(o[t]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||i({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=t[r];return n.isNonActionable()||(t[r].testCount++,n.isFailing()?e(Z.ERRORS):n.isWarning()&&e(Z.WARNINGS)),o}function gt(t,n,e){var r;return(null===(r=null==t?void 0:t[e])||void 0===r?void 0:r[n])||[]}function Et(t,n){var e,r={},u=et(n);for(e in t)a(t[e][u],0)&&(r[e]=t[e][n]||[]);return r}function Nt(t){return yt(Z.ERRORS,t)}function mt(t){return yt(Z.WARNINGS,t)}function yt(t,n){var e=pt().tests;return n?gt(e,t,n):Et(e,t)}function Rt(t,n){return St(t,Z.ERRORS,n)}function bt(t,n){return St(t,Z.WARNINGS,n)}function St(t,n,e){return t=pt().groups[t],e?gt(t,n,e):Et(t,n)}function Ct(t){return Tt(tt.ERROR_COUNT,t)}function Ot(t){return Tt(tt.WARN_COUNT,t)}function Tt(t,n){var e,r=pt();return a(n?null===(e=r.tests[n])||void 0===e?void 0:e[t]:r[t],0)}function At(t,n){return _t(Z.ERRORS,t,n)}function It(t,n){return _t(Z.WARNINGS,t,n)}function _t(t,n,e){var r,u,i=pt();if(t=et(t),!(n=i.groups[n]))return!1;if(e)return a(null===(r=n[e])||void 0===r?void 0:r[t],0);for(var o in n)if(a(null===(u=n[o])||void 0===u?void 0:u[t],0))return!0;return!1}function kt(t){var n=pt();return t?!!Ft(n.tests,t):n.valid}function Lt(t,n){if(!(t=pt().groups[t]))return!1;if(n)return Ft(t,n);for(var e in t)if(!Ft(t,e))return!1;return!0}function Ft(t,n){var e;return!(null===(e=t[n])||void 0===e||!e.valid)}var Ut=c(1);function Gt(){var t=F(),n={stateRef:C()};return Ut([t],S.bind(n,(function(){var t=vt(),n=C().suiteName()[0],e={summary:t};return i(t,{getErrors:S.bind(e,Nt),getErrorsByGroup:S.bind(e,Rt),getWarnings:S.bind(e,mt),getWarningsByGroup:S.bind(e,bt),hasErrors:S.bind(e,Ct),hasErrorsByGroup:S.bind(e,At),hasWarnings:S.bind(e,Ot),hasWarningsByGroup:S.bind(e,It),isValid:S.bind(e,kt),isValidByGroup:S.bind(e,Lt),suiteName:n})})))}function Pt(t){var n=k();return!rt(n)&&(t?n.some((function(n){return it(n,t)})):ut(n))}var Wt=c(20);function Xt(){var t=F(),n={stateRef:C()};return Wt([t],S.bind(n,(function(){return i({},Gt(),{done:S.bind(n,xt)})})))}function wt(t,n,e){return!(l(t)&&(!n||e.tests[n]&&!rt(e.tests[n].testCount)))}function Dt(t){return!(Pt()&&(!t||Pt(t)))}function xt(){function t(){return r(Gt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=Xt(),wt(r,n,e)?e:Dt(n)?(t(),e):(jt(t,n),e)}function jt(t,n){(0,C().testCallbacks()[1])((function(e){return n?e.fieldCallbacks[n]=(e.fieldCallbacks[n]||[]).concat(t):e.doneCallbacks.push(t),e}))}function Ht(t){return t.forEach((function(t){return t()}))}function Kt(){var t=function(){var t={};return{emit:function(n,e){(t[n]||[]).forEach((function(t){t(e)}))},on:function(n,e){return t[n]=(t[n]||[]).concat(e),{off:function(){t[n]=(t[n]||[]).filter((function(t){return t!==e}))}}}}}();return t.on(qt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var e=C().testCallbacks()[0].fieldCallbacks;n&&!Pt(n)&&Array.isArray(e[n])&&Ht(e[n]),Pt()||t.emit(qt.ALL_RUNNING_TESTS_FINISHED)}})),t.on(qt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function t(t){n[t.fieldName]&&(t.omit(),T(t.fieldName,(function(t){return[t[0],!0]})))}if(!rt(C().optionalFields()[0])){var n={};_((function(e){return h(e,(function(e){if(Object.prototype.hasOwnProperty.call(n,e.fieldName))t(e);else{var r=A(e.fieldName);l(r)&&(n[e.fieldName]=r(),t(e))}return e}))}))}}()})),t.on(qt.ALL_RUNNING_TESTS_FINISHED,(function(){Ht(C().testCallbacks()[0].doneCallbacks)})),t.on(qt.REMOVE_FIELD,(function(t){F().forEach((function(n){it(n,t)&&(n.cancel(),function(t){_((function(n){return h(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t.on(qt.RESET_FIELD,(function(t){F().forEach((function(n){it(n,t)&&n.reset()}))})),t}function Mt(){var t=S.useX();return M(t.bus),t.bus}var qt,Bt=qt||(qt={});function Vt(t){return Jt(0,"tests",t)}function Yt(t){return Jt(1,"tests",t)}function Jt(t,n,e){var u=S.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){r(e)&&(u.exclusion[n][e]=0===t)}))}function zt(t){for(var n in t)if(!0===t[n])return!0;return!1}function Qt(){var t,n=S.useX().exclusion;for(t in n.groups)if(n.groups[t])return!0;return!1}function Zt(t){return"Wrong arguments passed to group. Group ".concat(t,".")}function $t(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||Array.prototype.slice.call(n))}function tn(t){var n=t.asyncTest,e=t.message;if(n&&l(n.then)){var u=Mt().emit,i=C(),o=S.bind({stateRef:i},(function(){I(),u(qt.TEST_COMPLETED,t)}));i=S.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=r(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function nn(t){var n=C().testObjects()[0].prev;if(rt(n))return en(t),t;var e=J();if(n=E(n,e)[v(e)],!V(t.key)){n=t.key,(e=S.useX().isolate.keys.prev[n])&&(t=e),e=t;var r=S.useX().isolate.keys.current;return V(r[n])?r[n]=e:Y('Encountered the same test key "'.concat(n,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),en(t),t}return!ut(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(S.useX().isolate.type===m.EACH||Y("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(n.fieldName,"\n received: ").concat(t.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.')),function(){var t=C().testObjects(),n=t[1],e=t[0].prev;t=E(e,J());var r=S.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),en(t=p(n,t)),t}function en(t){var n=J();_((function(e){return E(e,n)[v(n)]=t,e}))}function rn(t){var n=R.EAGER;if(n=!(S.useX().mode[0]!==n||!st(Z.ERRORS,t.fieldName)))return t.skip(),nn(t),z(),t;if(n=nn(t),S.useX().omitted)return n.omit(),z(),n;if(function(t){var n=t.fieldName;if(t=t.groupName,S.useX().skipped)return!0;var e=S.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[n];if(!1===i)return!0;if(i=!0===i,t){var o=S.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,t)?!1===o[t]:Qt())return!0;if(!0===r.groups[t])return!(i||!zt(u)&&!1!==u[n])}return!!(t=!!Qt()&&!t)||!i&&!!zt(u)&&!d(e[n])}(t))return n.skip(!!S.useX().skipped),z(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),en(t),z(),t.isUntested()){n=Mt();var e=function(t){return S.run({currentTest:t},(function(){return t.run()}))}(t);try{e&&l(e.then)?(t.asyncTest=e,t.setPending(),tn(t)):n.emit(qt.TEST_COMPLETED,t)}catch(n){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(t),".\n Error: ").concat(n,"."))}}else(n=t.asyncTest)&&l(n.then)&&(t.setPending(),tn(t));return t}function un(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var u=l(n[1])?n:$t([void 0],n,!0);n=u[0],e=u[1],u=u[2],M(r(t),sn("fieldName","string")),M(l(e),sn("Test callback","function"));var i=S.useX();return rn(n=new P(t,e,{message:n,groupName:i.groupName,key:u}))}Bt.TEST_COMPLETED="test_completed",Bt.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",Bt.REMOVE_FIELD="remove_field",Bt.RESET_FIELD="reset_field",Bt.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running",Vt.group=function(t){return Jt(0,"groups",t)},Yt.group=function(t){return Jt(1,"groups",t)};var on=i(un,{memo:function(t){var n=c(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=S.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[C().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):rn(r[1])}}(un)});function sn(t,n){return"Incompatible params passed to test function. ".concat(t," must be a ").concat(n)}var an="4.4.0-dev-08ec91";function cn(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=(t=t.reverse())[0];t=t[1],M(l(r),"vest.create: Expected callback to be a function.");var u=Kt(),o=q();return t={stateRef:B(o,{suiteId:e(),suiteName:t}),bus:u},i(S.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.reset(),Q({type:m.SUITE},(function(){r.apply(void 0,t)})),u.emit(qt.SUITE_CALLBACK_DONE_RUNNING),Xt()})),{get:S.bind(t,Gt),remove:S.bind(t,(function(t){u.emit(qt.REMOVE_FIELD,t)})),reset:o.reset,resetField:S.bind(t,(function(t){u.emit(qt.RESET_FIELD,t)}))})}function fn(t,n){M(l(n),"each callback must be a function"),Q({type:m.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function ln(){var t=R.EAGER;S.useX().mode[0]=t}function dn(t,n){M(r(t),Zt("name must be a string")),M(l(n),Zt("callback must be a function")),Q({type:m.GROUP},(function(){S.run({groupName:t},n)}))}function pn(t){var n=S.useX(),e=n.inclusion;return n=n.exclusion,M(r(t)),e[t]=p(n.tests[t],!0),{when:function(n){var e=S.useX(),u=e.exclusion;e.inclusion[t]=function(){return Object.prototype.hasOwnProperty.call(u.tests,t)?p(u.tests[t],!0):r(n)?!!u.tests[n]:d(n,d(Gt))}}}}function vn(t,n){Q({type:m.OMIT_WHEN},(function(){S.run({omitted:!!S.useX().omitted||d(t,d(Gt))},(function(){return n()}))}))}function hn(t){if(Array.isArray(t)||r(t))[].concat(t).forEach((function(t){T(t,[!0,!1])}));else for(var n in t)T(n,[t[n],!1])}function gn(t,n){Q({type:m.SKIP_WHEN},(function(){S.run({skipped:!!S.useX().skipped||d(t,d(Gt))},(function(){return n()}))}))}function En(){var t=S.useX("warn hook called outside of a running suite.");M(t.currentTest,"warn called outside of a test."),t.currentTest.warn()}export{an as VERSION,S as context,cn as create,fn as each,ln as eager,dn as group,pn as include,vn as omitWhen,Vt as only,hn as optional,Yt as skip,gn as skipWhen,on as test,En as warn};
|
|
@@ -1244,6 +1244,11 @@
|
|
|
1244
1244
|
return !!(fieldName && testObject.fieldName === fieldName);
|
|
1245
1245
|
}
|
|
1246
1246
|
|
|
1247
|
+
var nonMatchingGroupName = bindNot(matchingGroupName);
|
|
1248
|
+
function matchingGroupName(testObject, groupName) {
|
|
1249
|
+
return testObject.groupName === groupName;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1247
1252
|
function either(a, b) {
|
|
1248
1253
|
return !!a !== !!b;
|
|
1249
1254
|
}
|
|
@@ -1268,6 +1273,15 @@
|
|
|
1268
1273
|
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
1269
1274
|
});
|
|
1270
1275
|
}
|
|
1276
|
+
function hasGroupFailuresByTestObjects(severityKey, groupName, fieldName) {
|
|
1277
|
+
var testObjects = useTestsFlat();
|
|
1278
|
+
return testObjects.some(function (testObject) {
|
|
1279
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1280
|
+
return false;
|
|
1281
|
+
}
|
|
1282
|
+
return hasFailuresByTestObject(testObject, severityKey, fieldName);
|
|
1283
|
+
});
|
|
1284
|
+
}
|
|
1271
1285
|
/**
|
|
1272
1286
|
* Determines whether a certain test profile has failures.
|
|
1273
1287
|
*/
|
|
@@ -1285,7 +1299,7 @@
|
|
|
1285
1299
|
}
|
|
1286
1300
|
|
|
1287
1301
|
// eslint-disable-next-line max-statements, complexity
|
|
1288
|
-
function
|
|
1302
|
+
function shouldAddValidProperty(fieldName) {
|
|
1289
1303
|
if (fieldIsOmitted(fieldName)) {
|
|
1290
1304
|
return true;
|
|
1291
1305
|
}
|
|
@@ -1296,36 +1310,78 @@
|
|
|
1296
1310
|
if (isEmpty(testObjects)) {
|
|
1297
1311
|
return false;
|
|
1298
1312
|
}
|
|
1313
|
+
// Does the given field have any pending tests that are not optional?
|
|
1299
1314
|
if (hasNonOptionalIncomplete(fieldName)) {
|
|
1300
1315
|
return false;
|
|
1301
1316
|
}
|
|
1302
1317
|
return noMissingTests(fieldName);
|
|
1303
1318
|
}
|
|
1319
|
+
function shouldAddValidPropertyInGroup(groupName, fieldName) {
|
|
1320
|
+
if (fieldIsOmitted(fieldName)) {
|
|
1321
|
+
return true;
|
|
1322
|
+
}
|
|
1323
|
+
if (hasGroupFailuresByTestObjects(Severity.ERRORS, groupName, fieldName)) {
|
|
1324
|
+
return false;
|
|
1325
|
+
}
|
|
1326
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
1327
|
+
if (hasNonOptionalIncompleteByGroup(groupName, fieldName)) {
|
|
1328
|
+
return false;
|
|
1329
|
+
}
|
|
1330
|
+
return noMissingTestsByGroup(groupName, fieldName);
|
|
1331
|
+
}
|
|
1304
1332
|
function fieldIsOmitted(fieldName) {
|
|
1305
1333
|
if (!fieldName) {
|
|
1306
1334
|
return false;
|
|
1307
1335
|
}
|
|
1308
1336
|
return useOptionalFieldApplied(fieldName) === true;
|
|
1309
1337
|
}
|
|
1338
|
+
// Does the given field have any pending tests that are not optional?
|
|
1310
1339
|
function hasNonOptionalIncomplete(fieldName) {
|
|
1311
1340
|
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
1312
|
-
|
|
1341
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
1342
|
+
}));
|
|
1343
|
+
}
|
|
1344
|
+
// Do the given group/field have any pending tests that are not optional?
|
|
1345
|
+
function hasNonOptionalIncompleteByGroup(groupName, fieldName) {
|
|
1346
|
+
return isNotEmpty(useAllIncomplete().filter(function (testObject) {
|
|
1347
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1313
1348
|
return false;
|
|
1314
1349
|
}
|
|
1315
|
-
return
|
|
1350
|
+
return isOptionalFieldIncomplete(testObject, fieldName);
|
|
1316
1351
|
}));
|
|
1317
1352
|
}
|
|
1353
|
+
function isOptionalFieldIncomplete(testObject, fieldName) {
|
|
1354
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1355
|
+
return false;
|
|
1356
|
+
}
|
|
1357
|
+
return useOptionalFieldConfig(testObject.fieldName) !== true;
|
|
1358
|
+
}
|
|
1318
1359
|
function noMissingTests(fieldName) {
|
|
1319
1360
|
var testObjects = useTestsFlat();
|
|
1320
1361
|
return testObjects.every(function (testObject) {
|
|
1321
1362
|
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1322
1363
|
return true;
|
|
1323
1364
|
}
|
|
1324
|
-
return (
|
|
1325
|
-
|
|
1326
|
-
|
|
1365
|
+
return missingTestsLogic(testObject, fieldName);
|
|
1366
|
+
});
|
|
1367
|
+
}
|
|
1368
|
+
function noMissingTestsByGroup(groupName, fieldName) {
|
|
1369
|
+
var testObjects = useTestsFlat();
|
|
1370
|
+
return testObjects.every(function (testObject) {
|
|
1371
|
+
if (nonMatchingGroupName(testObject, groupName)) {
|
|
1372
|
+
return true;
|
|
1373
|
+
}
|
|
1374
|
+
return missingTestsLogic(testObject, fieldName);
|
|
1327
1375
|
});
|
|
1328
1376
|
}
|
|
1377
|
+
function missingTestsLogic(testObject, fieldName) {
|
|
1378
|
+
if (nonMatchingFieldName(testObject, fieldName)) {
|
|
1379
|
+
return true;
|
|
1380
|
+
}
|
|
1381
|
+
return (useOptionalFieldConfig(testObject.fieldName) === true ||
|
|
1382
|
+
testObject.isTested() ||
|
|
1383
|
+
testObject.isOmitted());
|
|
1384
|
+
}
|
|
1329
1385
|
|
|
1330
1386
|
function useSummary() {
|
|
1331
1387
|
var summary = context.useX().summary;
|
|
@@ -1347,7 +1403,7 @@
|
|
|
1347
1403
|
appendToGroup(summary.groups, testObject);
|
|
1348
1404
|
return summary;
|
|
1349
1405
|
}, summary);
|
|
1350
|
-
summary.valid =
|
|
1406
|
+
summary.valid = shouldAddValidProperty();
|
|
1351
1407
|
return countFailures(summary);
|
|
1352
1408
|
}
|
|
1353
1409
|
function appendToTest(tests, testObject) {
|
|
@@ -1356,7 +1412,7 @@
|
|
|
1356
1412
|
tests[testObject.fieldName].valid =
|
|
1357
1413
|
tests[testObject.fieldName].valid === false
|
|
1358
1414
|
? false
|
|
1359
|
-
:
|
|
1415
|
+
: shouldAddValidProperty(testObject.fieldName);
|
|
1360
1416
|
}
|
|
1361
1417
|
/**
|
|
1362
1418
|
* Appends to a group object if within a group
|
|
@@ -1368,6 +1424,10 @@
|
|
|
1368
1424
|
}
|
|
1369
1425
|
groups[groupName] = groups[groupName] || {};
|
|
1370
1426
|
groups[groupName][testObject.fieldName] = appendTestObject(groups[groupName], testObject);
|
|
1427
|
+
groups[groupName][testObject.fieldName].valid =
|
|
1428
|
+
groups[groupName][testObject.fieldName].valid === false
|
|
1429
|
+
? false
|
|
1430
|
+
: shouldAddValidPropertyInGroup(groupName, testObject.fieldName);
|
|
1371
1431
|
}
|
|
1372
1432
|
/**
|
|
1373
1433
|
* Counts the failed tests and adds global counters
|
|
@@ -1506,9 +1566,30 @@
|
|
|
1506
1566
|
}
|
|
1507
1567
|
|
|
1508
1568
|
function isValid(fieldName) {
|
|
1509
|
-
var _a;
|
|
1510
1569
|
var summary = useSummary();
|
|
1511
|
-
return fieldName
|
|
1570
|
+
return fieldName
|
|
1571
|
+
? Boolean(isFieldValid(summary.tests, fieldName))
|
|
1572
|
+
: summary.valid;
|
|
1573
|
+
}
|
|
1574
|
+
function isValidByGroup(groupName, fieldName) {
|
|
1575
|
+
var summary = useSummary();
|
|
1576
|
+
var group = summary.groups[groupName];
|
|
1577
|
+
if (!group) {
|
|
1578
|
+
return false;
|
|
1579
|
+
}
|
|
1580
|
+
if (fieldName) {
|
|
1581
|
+
return isFieldValid(group, fieldName);
|
|
1582
|
+
}
|
|
1583
|
+
for (var fieldName_1 in group) {
|
|
1584
|
+
if (!isFieldValid(group, fieldName_1)) {
|
|
1585
|
+
return false;
|
|
1586
|
+
}
|
|
1587
|
+
}
|
|
1588
|
+
return true;
|
|
1589
|
+
}
|
|
1590
|
+
function isFieldValid(testContainer, fieldName) {
|
|
1591
|
+
var _a;
|
|
1592
|
+
return !!((_a = testContainer[fieldName]) === null || _a === void 0 ? void 0 : _a.valid);
|
|
1512
1593
|
}
|
|
1513
1594
|
|
|
1514
1595
|
var cache$1 = createCache(1);
|
|
@@ -1529,6 +1610,7 @@
|
|
|
1529
1610
|
hasWarnings: context.bind(ref, hasWarnings),
|
|
1530
1611
|
hasWarningsByGroup: context.bind(ref, hasWarningsByGroup),
|
|
1531
1612
|
isValid: context.bind(ref, isValid),
|
|
1613
|
+
isValidByGroup: context.bind(ref, isValidByGroup),
|
|
1532
1614
|
suiteName: suiteName
|
|
1533
1615
|
});
|
|
1534
1616
|
}));
|
|
@@ -2400,7 +2482,7 @@
|
|
|
2400
2482
|
ctx.currentTest.warn();
|
|
2401
2483
|
}
|
|
2402
2484
|
|
|
2403
|
-
var VERSION = "4.
|
|
2485
|
+
var VERSION = "4.4.0-dev-08ec91";
|
|
2404
2486
|
|
|
2405
2487
|
exports.VERSION = VERSION;
|
|
2406
2488
|
exports.context = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function a(n,t){return n===t}function c(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return c(n)&&c(t)&&Number(n)>Number(t)}function l(n,t){return c(n)&&c(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return c(n)&&c(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return d(n,t)&&g(n,e)}function E(n){return i(n)||o(n)&&!n.trim()}function m(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function O(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function S(n,t){return n in t}function R(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Rt){var r=Rt[e];t(r)&&n(e,r)}}function w(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=et({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function X(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(m(n)||n&&m(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),m(n)?G(n):G(n.pass,w.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([Tt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,O(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Rt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Rt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=Tt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Rt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),rt(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return At.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return et(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return kt([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function on(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function sn(n){setTimeout((function(){throw Error(n)}),0)}function an(){return At.useX().testCursor.getCursor()}function cn(){return At.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?$n.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=an();return At.run({isolate:{type:n,keys:r}},(function(){At.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,an())).reduce((function(n,t){return t instanceof Wt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return At.useX().testCursor.removeLevel(),cn(),n}))}function ln(n){return n===Lt.ERRORS?wt.ERROR_COUNT:wt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return rn().some((function(e){return e.hasFailures()?t&&!dn(e,t)?e=!1:(e=e.warns(),e=n===Lt.WARNINGS==!!e):e=!1,e}))}function vn(n){if(n)var t,e=!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);else e=!1;return!!e||!pn(Lt.ERRORS,n)&&(!O(e=rn())&&!function(n){return Nt(en().filter((function(t){return!(n&&!dn(t,n))&&!0!==$(t.fieldName)})))}(n)&&function(n){return rn().every((function(t){return!(!n||dn(t,n))||(!0===$(t.fieldName)||t.isTested()||t.isOmitted())}))}(n))}function hn(){var n=At.useX().summary;return F(n),n}function gn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||et({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Lt.ERRORS):t.isWarning()&&e(Lt.WARNINGS)),i}function Nn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function En(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function mn(n){return bn(Lt.ERRORS,n)}function yn(n){return bn(Lt.WARNINGS,n)}function bn(n,t){var e=hn().tests;return t?Nn(e,n,t):En(e,n)}function On(n,t){return Rn(n,Lt.ERRORS,t)}function Sn(n,t){return Rn(n,Lt.WARNINGS,t)}function Rn(n,t,e){return n=hn().groups[n],e?Nn(n,t,e):En(n,t)}function Tn(n){return In(wt.ERROR_COUNT,n)}function Cn(n){return In(wt.WARN_COUNT,n)}function In(n,t){var e,r=hn();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function _n(n,t){return kn(Lt.ERRORS,n,t)}function An(n,t){return kn(Lt.WARNINGS,n,t)}function kn(n,t,e){var r,u,i=hn();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function Ln(n){var t,e=hn();return n?!(null===(t=e.tests[n])||void 0===t||!t.valid):e.valid}function wn(){var n=rn(),t={stateRef:z()};return Kt([n],At.bind(t,(function(){var n=function(){var n=rn(),t=et({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=gn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&vn(t.fieldName),e=n.groups;var r=t.groupName;return r&&(e[r]=e[r]||{},e[r][t.fieldName]=gn(e[r],t)),n}),t),t.valid=vn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}(),t=z().suiteName()[0],e={summary:n};return et(n,{getErrors:At.bind(e,mn),getErrorsByGroup:At.bind(e,On),getWarnings:At.bind(e,yn),getWarningsByGroup:At.bind(e,Sn),hasErrors:At.bind(e,Tn),hasErrorsByGroup:At.bind(e,_n),hasWarnings:At.bind(e,Cn),hasWarningsByGroup:At.bind(e,An),isValid:At.bind(e,Ln),suiteName:t})})))}function Wn(n){var t=en();return!O(t)&&(n?t.some((function(t){return dn(t,n)})):Nt(t))}function Fn(){var n=rn(),t={stateRef:z()};return Bt([n],At.bind(t,(function(){return et({},wn(),{done:At.bind(t,Ht)})})))}function Pn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!O(r.tests[e].testCount)))}function xn(n){return!(Wn()&&(!n||Wn(n)))}function Un(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Xn(n){return n.forEach((function(n){return n()}))}function Gn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(jt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!Wn(t)&&p(e[t])&&Xn(e[t]),Wn()||n.emit(jt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(jt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!O(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(jt.ALL_RUNNING_TESTS_FINISHED,(function(){Xn(z().testCallbacks()[0].doneCallbacks)})),n.on(jt.REMOVE_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(jt.RESET_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Dn(){var n=At.useX();return F(n.bus),n.bus}function qn(n){return Kn(0,"tests",n)}function jn(n){return Kn(1,"tests",n)}function Kn(n,t,e){var r=At.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Bn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Hn(){var n,t=At.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function Mn(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Vn(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Dn().emit,i=z(),s=At.bind({stateRef:i},(function(){nn(),u(jt.TEST_COMPLETED,n)}));i=At.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function Jn(n){var t=z().testObjects()[0].prev;if(O(t))return Yn(n),n;var e=an();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=At.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=At.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),Yn(n),n}return!Nt(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(At.useX().isolate.type===$n.EACH||sn("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.')),function(){var n=z().testObjects(),t=n[1],e=n[0].prev;n=J(e,an());var r=At.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),Yn(n=W(t,n)),n}function Yn(n){var t=an();tn((function(e){return J(e,t)[H(t)]=n,e}))}function zn(n){var e=tt.EAGER;if(e=!(At.useX().mode[0]!==e||!pn(Lt.ERRORS,n.fieldName)))return n.skip(),Jn(n),cn(),n;if(e=Jn(n),At.useX().omitted)return e.omit(),cn(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,At.useX().skipped)return!0;var e=At.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=At.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Hn())return!0;if(!0===r.groups[n])return!(i||!Bn(u)&&!1!==u[t])}return!!(n=!!Hn()&&!n)||!i&&!!Bn(u)&&!w(e[t])}(n))return e.skip(!!At.useX().skipped),cn(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),Yn(n),cn(),n.isUntested()){e=Dn();var r=function(n){return At.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),Vn(n)):e.emit(jt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),Vn(n));return n}function Qn(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),Zn("fieldName","string")),F(t(r),Zn("Test callback","function"));var i=At.useX();return zn(e=new Wt(n,r,{message:e,groupName:i.groupName,key:u}))}function Zn(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var $n,nt,tt,et=Object.assign,rt=e(r),ut=e(u),it=e(i),ot=e(s),st=e(a),at=e(c),ct=e(l),ft=e(p),lt=e(v),dt=e(N),pt=e(E),vt=e(m),ht=e(y),gt=e(b),Nt=e(O),Et=e(S),mt=e(R),yt=e(o),bt=e(C),Ot=e(I),St=e(A),Rt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:ot,doesNotStartWith:e(k),endsWith:s,equals:a,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:N,isBlank:E,isBoolean:m,isEmpty:O,isEven:function(n){return!!c(n)&&0==n%2},isFalsy:bt,isKeyOf:S,isNaN:R,isNegative:function(n){return h(n,0)},isNotArray:ft,isNotBetween:dt,isNotBlank:pt,isNotBoolean:vt,isNotEmpty:Nt,isNotKeyOf:Et,isNotNaN:mt,isNotNull:rt,isNotNullish:it,isNotNumber:ht,isNotNumeric:at,isNotString:yt,isNotUndefined:ut,isNotValueOf:Ot,isNull:r,isNullish:i,isNumber:y,isNumeric:c,isOdd:function(n){return!!c(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:gt,lessThan:h,lessThanOrEquals:g,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:g,matches:A,notEquals:st,notInside:lt,notMatches:St,numberEquals:l,numberNotEquals:ct,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:k},Tt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?et(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:et(e,{parent:x})})),Ct=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),et(q,t)}var t={context:function(){return Tt.useX()},extend:function(t){et(Rt,t),n()}};return n(),new Proxy(et(q,t),{get:function(n,t){return t in n?n[t]:Rt[t]?K(t):void 0}})}(),It=(nt=0,function(){return"".concat(nt++)});!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}($n||($n={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(tt||(tt={}));var _t,At=P((function(n,t){return t?null:et({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:$n.DEFAULT,keys:{current:{},prev:{}}},mode:[tt.ALL],testCursor:Y()},n)})),kt=B();!function(n){n.Error="error",n.Warning="warning"}(_t||(_t={}));var Lt,wt,Wt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=It(),this.severity=_t.Error,this.status=Ft,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==qt||(this.status=n)},n.prototype.warns=function(){return this.severity===_t.Warning},n.prototype.setPending=function(){this.setStatus(Gt)},n.prototype.fail=function(){this.setStatus(this.warns()?Ut:xt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Xt)},n.prototype.warn=function(){this.severity=_t.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(Pt)},n.prototype.cancel=function(){this.setStatus(Dt),nn()},n.prototype.reset=function(){this.status=Ft,nn()},n.prototype.omit=function(){this.setStatus(qt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Gt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(qt)},n.prototype.isUntested=function(){return this.statusEquals(Ft)},n.prototype.isFailing=function(){return this.statusEquals(xt)},n.prototype.isCanceled=function(){return this.statusEquals(Dt)},n.prototype.isSkipped=function(){return this.statusEquals(Pt)},n.prototype.isPassing=function(){return this.statusEquals(Xt)},n.prototype.isWarning=function(){return this.statusEquals(Ut)},n.prototype.statusEquals=function(n){return this.status===n},n}(),Ft="UNTESTED",Pt="SKIPPED",xt="FAILED",Ut="WARNING",Xt="PASSING",Gt="PENDING",Dt="CANCELED",qt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Lt||(Lt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(wt||(wt={}));var jt,Kt=B(1),Bt=B(20),Ht=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=Fn(),Pn(e,n,t))return t;var r=function(){return e(wn())};return xn(n)?(r(),t):(Un(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(jt||(jt={})),qn.group=function(n){return Kn(0,"groups",n)},jn.group=function(n){return Kn(1,"groups",n)};var Mt=et(Qn,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=At.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[z().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):zn(r[1])}}(Qn)});n.VERSION="4.3.4",n.context=At,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Gn(),i=un();return n={stateRef:on(i,{suiteId:It(),suiteName:n}),bus:u},et(At.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:$n.SUITE},(function(){r.apply(void 0,n)})),u.emit(jt.SUITE_CALLBACK_DONE_RUNNING),Fn()})),{get:At.bind(n,wn),remove:At.bind(n,(function(n){u.emit(jt.REMOVE_FIELD,n)})),reset:i.reset,resetField:At.bind(n,(function(n){u.emit(jt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:$n.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=tt.EAGER;At.useX().mode[0]=n},n.enforce=Ct,n.group=function(n,e){F(o(n),Mn("name must be a string")),F(t(e),Mn("callback must be a function")),fn({type:$n.GROUP},(function(){At.run({groupName:n},e)}))},n.include=function(n){var t=At.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=At.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(wn))}}}},n.omitWhen=function(n,t){fn({type:$n.OMIT_WHEN},(function(){At.run({omitted:!!At.useX().omitted||w(n,w(wn))},(function(){return t()}))}))},n.only=qn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=jn,n.skipWhen=function(n,t){fn({type:$n.SKIP_WHEN},(function(){At.run({skipped:!!At.useX().skipped||w(n,w(wn))},(function(){return t()}))}))},n.test=Mt,n.warn=function(){var n=At.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).vest={})}(this,(function(n){function t(n){return"function"==typeof n}function e(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(void 0,t)}}function r(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function c(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function f(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function d(n,t){return l(n,t)||f(n,t)}function p(n){return!!Array.isArray(n)}function v(n,t){return!!(p(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function g(n,t){return l(n,t)||h(n,t)}function N(n,t,e){return d(n,t)&&g(n,e)}function m(n){return i(n)||o(n)&&!n.trim()}function E(n){return!!n===n}function y(n){return"number"==typeof n}function b(n,t){return l(n.length,t)}function R(n){return!n||(y(n)?0===n:Object.prototype.hasOwnProperty.call(n,"length")?b(n,0):"object"==typeof n&&b(Object.keys(n),0))}function O(n,t){return n in t}function S(n){return Number.isNaN(n)}function T(n){return f(n,0)}function C(n){return!!n}function I(n,t){if(i(t))return!1;for(var e in t)if(t[e]===n)return!0;return!1}function _(n,t){return f(n.length,t)}function A(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function k(n,t){return o(n)&&o(t)&&n.startsWith(t)}function L(n){for(var e in Lt){var r=Lt[e];t(r)&&n(e,r)}}function w(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return t(n)?n.apply(void 0,e):n}function W(n,t){var e;return null!==(e=w(n))&&void 0!==e?e:t}function F(n,t){if(!n)throw t instanceof String?t.valueOf():Error(t?w(t):t)}function P(n){function t(t,u){var i,o,s=e();return t=at({},s||{},null!==(i=w(n,t,s))&&void 0!==i?i:t),i=r.ctx=Object.freeze(t),r.ancestry.unshift(i),u=u(i),r.ancestry.shift(),r.ctx=null!==(o=r.ancestry[0])&&void 0!==o?o:null,u}function e(){return r.ctx}var r={ancestry:[]};return{bind:function(n,e){return function(){for(var r=[],u=0;u<arguments.length;u++)r[u]=arguments[u];return t(n,(function(){return e.apply(void 0,r)}))}},run:t,use:e,useX:function(n){return F(r.ctx,W(n,"Context was used after it was closed")),r.ctx}}}function x(){return null}function U(n,t,e){if(e||2===arguments.length)for(var r,u=0,i=t.length;u<i;u++)!r&&u in t||(r||(r=Array.prototype.slice.call(t,0,u)),r[u]=t[u]);return n.concat(r||Array.prototype.slice.call(t))}function X(){try{return t(Proxy)}catch(n){return!1}}function G(n,t){return n={pass:n},t&&(n.message=t),n}function D(n,t,e){for(var r=[],u=3;u<arguments.length;u++)r[u-3]=arguments[u];return F(E(n)||n&&E(n.pass),"Incorrect return value for rule: "+JSON.stringify(n)),E(n)?G(n):G(n.pass,w.apply(void 0,U([n.message,t,e],r,!1)))}function q(n){function t(t,e,r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];return F((i=D.apply(void 0,U([wt.run({value:n},(function(){return e.apply(void 0,U([n],u,!1))})),r,n],u,!1))).pass,R(i.message)?"enforce/".concat(r," failed with ").concat(JSON.stringify(n)):new String(i.message)),t}}var e={};if(!X())return L((function(n,r){e[n]=t(e,r,n)})),e;var r=new Proxy(e,{get:function(n,e){if(n=Lt[e])return t(r,n,e)}});return r}function j(n,t){function e(n){r=!0,u=n}for(var r=!1,u=null,i=0;i<n.length;i++)if(t(n[i],e,i),r)return u}function K(n){var t,e=[];return function n(r){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Lt[r];e.push((function(n){return D.apply(void 0,U([o.apply(void 0,U([n],u,!1)),r,n],u,!1))}));var s={run:function(n){return W(j(e,(function(e,r){var u,i=wt.run({value:n},(function(){return e(n)}));i.pass||r(G(!!i.pass,null!==(u=w(t,n,i.message))&&void 0!==u?u:i.message))})),G(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return X()?s=new Proxy(s,{get:function(t,e){return Lt[e]?n(e):t[e]}}):(L((function(t){s[t]=n(t)})),s)}}(n)}function B(n){function t(n){return e.findIndex((function(t){var e=t[0];return b(n,e.length)&&n.every((function(n,t){return n===e[t]}))}))}void 0===n&&(n=1);var e=[],r=function(t,u){var i=r.get(t);return i?i[1]:(u=u(),e.unshift([t.concat(),u]),_(e,n)&&(e.length=n),u)};return r.invalidate=function(n){-1<(n=t(n))&&e.splice(n,1)},r.get=function(n){return e[t(n)]||null},r}function H(n){return(n=[].concat(n))[n.length-1]}function M(n,t){for(var e=[],r=0;r<n.length;r++){var u=n[r];p(u)?e.push(M(u,t)):(u=t(u),ft(u)&&e.push(u))}return e}function V(n){return[].concat(n).reduce((function(n,t){return p(t)?n.concat(V(t)):[].concat(n).concat(t)}),[])}function J(n,t){var e=0;for(t=t.slice(0,-1);e<t.length;e++){var r=t[e];n[r]=W(n[r],[]),n=n[r]}return n}function Y(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return H(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,H(t)},removeLevel:function(){t.pop()},reset:n}}function z(){return xt.useX().stateRef}function Q(n){return z().optionalFields()[0][n]}function Z(n,t){(0,z().optionalFields()[1])((function(e){var r;return at(e,((r={})[n]=w(t,e[n]),r))}))}function $(n){var t;return null===(t=Q(n))||void 0===t?void 0:t[0]}function nn(){tn((function(n){return n}))}function tn(n){(0,z().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function en(){return rn().filter((function(n){return n.isPending()}))}function rn(){var n=z().testObjects()[0].current;return Ut([n],(function(){return V(n)}))}function un(n){function e(n,t,e){return u.references.push(),r(n,w(t,e)),function(){return[u.references[n],function(t){return r(n,w(t,u.references[n]))}]}}function r(e,r){var o=u.references[e];u.references[e]=r,t(e=i[e][1])&&e(r,o),t(n)&&n()}var u={references:[]},i=[];return{registerStateKey:function(n,t){var r=i.length;return i.push([n,t]),e(r,n)},reset:function(){var n=u.references;u.references=[],i.forEach((function(t,r){return e(r,t[0],n[r])}))}}}function on(n,t){var e=t.suiteId;return t=t.suiteName,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(e),suiteName:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}function sn(n){setTimeout((function(){throw Error(n)}),0)}function cn(){return xt.useX().testCursor.getCursor()}function an(){return xt.useX().testCursor.next()}function fn(n,e){n=void 0===(n=n.type)?ot.DEFAULT:n,F(t(e));var r={current:{},prev:{}},u=cn();return xt.run({isolate:{type:n,keys:r}},(function(){xt.useX().testCursor.addLevel(),r.prev=function(){var n=z().testObjects()[0].prev;return[].concat(J(n,cn())).reduce((function(n,t){return t instanceof Dt&&!i(t.key)?(n[t.key]=t,n):n}),{})}(),tn((function(n){return J(n,u)[H(u)]=[],n}));var n=e();return xt.useX().testCursor.removeLevel(),an(),n}))}function ln(n){return n===Xt.ERRORS?Gt.ERROR_COUNT:Gt.WARN_COUNT}function dn(n,t){return!(!t||n.fieldName!==t)}function pn(n,t){return rn().some((function(e){return vn(e,n,t)}))}function vn(n,t,e){return(e=!n.hasFailures()||e&&!dn(n,e))||(n=n.warns(),e=t===Xt.WARNINGS!=!!n),!e}function hn(n){return!!gn(n)||!pn(Xt.ERRORS,n)&&(!R(rn())&&!function(n){return St(en().filter((function(t){return Nn(t,n)})))}(n)&&function(n){return rn().every((function(t){return!(!n||dn(t,n))||mn(t,n)}))}(n))}function gn(n){return!!n&&!0===(null===(t=Q(n))||void 0===t?void 0:t[1]);var t}function Nn(n,t){return!(t&&!dn(n,t))&&!0!==$(n.fieldName)}function mn(n,t){return!(!t||dn(n,t))||(!0===$(n.fieldName)||n.isTested()||n.isOmitted())}function En(){var n=xt.useX().summary;return F(n),n}function yn(){var n=rn(),t=at({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){var e=n.tests;e[t.fieldName]=bn(e,t),e[t.fieldName].valid=!1!==e[t.fieldName].valid&&hn(t.fieldName);var r=n.groups,u=t.groupName;return u&&(r[u]=r[u]||{},r[u][t.fieldName]=bn(r[u],t),e=r[u][t.fieldName],!1===r[u][t.fieldName].valid?t=!1:t=!!gn(t=t.fieldName)||!function(n,t,e){return rn().some((function(r){return!zt(r,t)&&vn(r,n,e)}))}(Xt.ERRORS,u,t)&&!function(n,t){return St(en().filter((function(e){return!zt(e,n)&&Nn(e,t)})))}(u,t)&&function(n,t){return rn().every((function(e){return!!zt(e,n)||mn(e,t)}))}(u,t),e.valid=t),n}),t),t.valid=hn(),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(t)}function bn(n,t){function e(n){var t=ln(n);i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||at({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var i=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(Xt.ERRORS):t.isWarning()&&e(Xt.WARNINGS)),i}function Rn(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}function On(n,t){var e,r={},u=ln(t);for(e in n)T(n[e][u])&&(r[e]=n[e][t]||[]);return r}function Sn(n){return Cn(Xt.ERRORS,n)}function Tn(n){return Cn(Xt.WARNINGS,n)}function Cn(n,t){var e=En().tests;return t?Rn(e,n,t):On(e,n)}function In(n,t){return An(n,Xt.ERRORS,t)}function _n(n,t){return An(n,Xt.WARNINGS,t)}function An(n,t,e){return n=En().groups[n],e?Rn(n,t,e):On(n,t)}function kn(n){return wn(Gt.ERROR_COUNT,n)}function Ln(n){return wn(Gt.WARN_COUNT,n)}function wn(n,t){var e,r=En();return T(t?null===(e=r.tests[t])||void 0===e?void 0:e[n]:r[n])}function Wn(n,t){return Pn(Xt.ERRORS,n,t)}function Fn(n,t){return Pn(Xt.WARNINGS,n,t)}function Pn(n,t,e){var r,u,i=En();if(n=ln(n),!(t=i.groups[t]))return!1;if(e)return T(null===(r=t[e])||void 0===r?void 0:r[n]);for(var o in t)if(T(null===(u=t[o])||void 0===u?void 0:u[n]))return!0;return!1}function xn(n){var t=En();return n?!!Xn(t.tests,n):t.valid}function Un(n,t){if(!(n=En().groups[n]))return!1;if(t)return Xn(n,t);for(var e in n)if(!Xn(n,e))return!1;return!0}function Xn(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function Gn(){var n=rn(),t={stateRef:z()};return Qt([n],xt.bind(t,(function(){var n=yn(),t=z().suiteName()[0],e={summary:n};return at(n,{getErrors:xt.bind(e,Sn),getErrorsByGroup:xt.bind(e,In),getWarnings:xt.bind(e,Tn),getWarningsByGroup:xt.bind(e,_n),hasErrors:xt.bind(e,kn),hasErrorsByGroup:xt.bind(e,Wn),hasWarnings:xt.bind(e,Ln),hasWarningsByGroup:xt.bind(e,Fn),isValid:xt.bind(e,xn),isValidByGroup:xt.bind(e,Un),suiteName:t})})))}function Dn(n){var t=en();return!R(t)&&(n?t.some((function(t){return dn(t,n)})):St(t))}function qn(){var n=rn(),t={stateRef:z()};return Zt([n],xt.bind(t,(function(){return at({},Gn(),{done:xt.bind(t,$t)})})))}function jn(n,e,r){return!(t(n)&&(!e||r.tests[e]&&!R(r.tests[e].testCount)))}function Kn(n){return!(Dn()&&(!n||Dn(n)))}function Bn(n,t){(0,z().testCallbacks()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function Hn(n){return n.forEach((function(n){return n()}))}function Mn(){var n=function(){var n={};return{emit:function(t,e){(n[t]||[]).forEach((function(n){n(e)}))},on:function(t,e){return n[t]=(n[t]||[]).concat(e),{off:function(){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}}}}}();return n.on(Yt.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var e=z().testCallbacks()[0].fieldCallbacks;t&&!Dn(t)&&p(e[t])&&Hn(e[t]),Dn()||n.emit(Yt.ALL_RUNNING_TESTS_FINISHED)}})),n.on(Yt.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),Z(n.fieldName,(function(n){return[n[0],!0]})))}if(!R(z().optionalFields()[0])){var e={};tn((function(r){return M(r,(function(r){if(Object.prototype.hasOwnProperty.call(e,r.fieldName))n(r);else{var u=$(r.fieldName);t(u)&&(e[r.fieldName]=u(),n(r))}return r}))}))}}()})),n.on(Yt.ALL_RUNNING_TESTS_FINISHED,(function(){Hn(z().testCallbacks()[0].doneCallbacks)})),n.on(Yt.REMOVE_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&(t.cancel(),function(n){tn((function(t){return M(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(Yt.RESET_FIELD,(function(n){rn().forEach((function(t){dn(t,n)&&t.reset()}))})),n}function Vn(){var n=xt.useX();return F(n.bus),n.bus}function Jn(n){return zn(0,"tests",n)}function Yn(n){return zn(1,"tests",n)}function zn(n,t,e){var r=xt.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){o(e)&&(r.exclusion[t][e]=0===n)}))}function Qn(n){for(var t in n)if(!0===n[t])return!0;return!1}function Zn(){var n,t=xt.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function $n(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function nt(n){var e=n.asyncTest,r=n.message;if(e&&t(e.then)){var u=Vn().emit,i=z(),s=xt.bind({stateRef:i},(function(){nn(),u(Yt.TEST_COMPLETED,n)}));i=xt.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=o(t)?t:r,n.fail(),s())}));try{e.then(s,i)}catch(n){i()}}}function tt(n){var t=z().testObjects()[0].prev;if(R(t))return et(n),n;var e=cn();if(t=J(t,e)[H(e)],!i(n.key)){t=n.key,(e=xt.useX().isolate.keys.prev[t])&&(n=e),e=n;var r=xt.useX().isolate.keys.current;return i(r[t])?r[t]=e:sn('Encountered the same test key "'.concat(t,"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted.")),et(n),n}return!St(e=t)||e.fieldName===n.fieldName&&e.groupName===n.groupName||(xt.useX().isolate.type===ot.EACH||sn("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.')),function(){var n=z().testObjects(),t=n[1],e=n[0].prev;n=J(e,cn());var r=xt.useX().testCursor.cursorAt();n.splice(r),t((function(n){return{prev:e,current:n.current}}))}(),t=null),et(n=W(t,n)),n}function et(n){var t=cn();tn((function(e){return J(e,t)[H(t)]=n,e}))}function rt(n){var e=ct.EAGER;if(e=!(xt.useX().mode[0]!==e||!pn(Xt.ERRORS,n.fieldName)))return n.skip(),tt(n),an(),n;if(e=tt(n),xt.useX().omitted)return e.omit(),an(),e;if(function(n){var t=n.fieldName;if(n=n.groupName,xt.useX().skipped)return!0;var e=xt.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,i=u[t];if(!1===i)return!0;if(i=!0===i,n){var o=xt.useX().exclusion.groups;if(o=Object.prototype.hasOwnProperty.call(o,n)?!1===o[n]:Zn())return!0;if(!0===r.groups[n])return!(i||!Qn(u)&&!1!==u[t])}return!!(n=!!Zn()&&!n)||!i&&!!Qn(u)&&!w(e[t])}(n))return e.skip(!!xt.useX().skipped),an(),e;if(n!==e&&e.fieldName===n.fieldName&&e.groupName===n.groupName&&e.isPending()&&e.cancel(),et(n),an(),n.isUntested()){e=Vn();var r=function(n){return xt.run({currentTest:n},(function(){return n.run()}))}(n);try{r&&t(r.then)?(n.asyncTest=r,n.setPending(),nt(n)):e.emit(Yt.TEST_COMPLETED,n)}catch(t){throw Error("Unexpected error encountered during test registration.\n Test Object: ".concat(JSON.stringify(n),".\n Error: ").concat(t,"."))}}else(e=n.asyncTest)&&t(e.then)&&(n.setPending(),nt(n));return n}function ut(n){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var u=t(e[1])?e:U([void 0],e,!0);e=u[0],r=u[1],u=u[2],F(o(n),it("fieldName","string")),F(t(r),it("Test callback","function"));var i=xt.useX();return rt(e=new Dt(n,r,{message:e,groupName:i.groupName,key:u}))}function it(n,t){return"Incompatible params passed to test function. ".concat(n," must be a ").concat(t)}var ot,st,ct,at=Object.assign,ft=e(r),lt=e(u),dt=e(i),pt=e(s),vt=e(c),ht=e(a),gt=e(l),Nt=e(p),mt=e(v),Et=e(N),yt=e(m),bt=e(E),Rt=e(y),Ot=e(b),St=e(R),Tt=e(O),Ct=e(S),It=e(o),_t=e(C),At=e(I),kt=e(A),Lt={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:pt,doesNotStartWith:e(k),endsWith:s,equals:c,greaterThan:f,greaterThanOrEquals:d,gt:f,gte:d,inside:v,isArray:p,isBetween:N,isBlank:m,isBoolean:E,isEmpty:R,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:_t,isKeyOf:O,isNaN:S,isNegative:function(n){return h(n,0)},isNotArray:Nt,isNotBetween:Et,isNotBlank:yt,isNotBoolean:bt,isNotEmpty:St,isNotKeyOf:Tt,isNotNaN:Ct,isNotNull:ft,isNotNullish:dt,isNotNumber:Rt,isNotNumeric:ht,isNotString:It,isNotUndefined:lt,isNotValueOf:At,isNull:r,isNullish:i,isNumber:y,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:T,isString:o,isTruthy:C,isUndefined:u,isValueOf:I,lengthEquals:b,lengthNotEquals:Ot,lessThan:h,lessThanOrEquals:g,longerThan:_,longerThanOrEquals:function(n,t){return d(n.length,t)},lt:h,lte:g,matches:A,notEquals:vt,notInside:mt,notMatches:kt,numberEquals:l,numberNotEquals:gt,shorterThan:function(n,t){return h(n.length,t)},shorterThanOrEquals:function(n,t){return g(n.length,t)},startsWith:k},wt=P((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?at(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:at(e,{parent:x})})),Wt=function(){function n(){if(!X())return L((function(n){t[n]=K(n)})),at(q,t)}var t={context:function(){return wt.useX()},extend:function(t){at(Lt,t),n()}};return n(),new Proxy(at(q,t),{get:function(n,t){return t in n?n[t]:Lt[t]?K(t):void 0}})}(),Ft=(st=0,function(){return"".concat(st++)});!function(n){n[n.DEFAULT=0]="DEFAULT",n[n.SUITE=1]="SUITE",n[n.EACH=2]="EACH",n[n.SKIP_WHEN=3]="SKIP_WHEN",n[n.OMIT_WHEN=4]="OMIT_WHEN",n[n.GROUP=5]="GROUP"}(ot||(ot={})),function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(ct||(ct={}));var Pt,xt=P((function(n,t){return t?null:at({},{exclusion:{tests:{},groups:{}},inclusion:{},isolate:{type:ot.DEFAULT,keys:{current:{},prev:{}}},mode:[ct.ALL],testCursor:Y()},n)})),Ut=B();!function(n){n.Error="error",n.Warning="warning"}(Pt||(Pt={}));var Xt,Gt,Dt=function(){function n(n,t,e){var r=void 0===e?{}:e;e=r.message;var u=r.groupName;r=r.key,this.key=null,this.id=Ft(),this.severity=Pt.Error,this.status=qt,this.fieldName=n,this.testFn=t,u&&(this.groupName=u),e&&(this.message=e),r&&(this.key=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,u(this.message)&&o(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Jt||(this.status=n)},n.prototype.warns=function(){return this.severity===Pt.Warning},n.prototype.setPending=function(){this.setStatus(Mt)},n.prototype.fail=function(){this.setStatus(this.warns()?Bt:Kt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Ht)},n.prototype.warn=function(){this.severity=Pt.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(jt)},n.prototype.cancel=function(){this.setStatus(Vt),nn()},n.prototype.reset=function(){this.status=qt,nn()},n.prototype.omit=function(){this.setStatus(Jt)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isPending=function(){return this.statusEquals(Mt)},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.statusEquals(Jt)},n.prototype.isUntested=function(){return this.statusEquals(qt)},n.prototype.isFailing=function(){return this.statusEquals(Kt)},n.prototype.isCanceled=function(){return this.statusEquals(Vt)},n.prototype.isSkipped=function(){return this.statusEquals(jt)},n.prototype.isPassing=function(){return this.statusEquals(Ht)},n.prototype.isWarning=function(){return this.statusEquals(Bt)},n.prototype.statusEquals=function(n){return this.status===n},n}(),qt="UNTESTED",jt="SKIPPED",Kt="FAILED",Bt="WARNING",Ht="PASSING",Mt="PENDING",Vt="CANCELED",Jt="OMITTED";!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(Xt||(Xt={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(Gt||(Gt={}));var Yt,zt=e((function(n,t){return n.groupName===t})),Qt=B(1),Zt=B(20),$t=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=qn(),jn(e,n,t))return t;var r=function(){return e(Gn())};return Kn(n)?(r(),t):(Bn(r,n),t)};!function(n){n.TEST_COMPLETED="test_completed",n.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",n.REMOVE_FIELD="remove_field",n.RESET_FIELD="reset_field",n.SUITE_CALLBACK_DONE_RUNNING="suite_callback_done_running"}(Yt||(Yt={})),Jn.group=function(n){return zn(0,"groups",n)},Yn.group=function(n){return zn(1,"groups",n)};var ne=at(ut,{memo:function(n){var t=B(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=xt.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[z().suiteId()[0],e,u].concat(i),null===(r=t.get(u))?t(u,(function(){return n(e,s,o)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,s,o)}))):rt(r[1])}}(ut)});n.VERSION="4.4.0-dev-08ec91",n.context=xt,n.create=function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];n=n[1],F(t(r),"vest.create: Expected callback to be a function.");var u=Mn(),i=un();return n={stateRef:on(i,{suiteId:Ft(),suiteName:n}),bus:u},at(xt.bind(n,(function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];return i.reset(),fn({type:ot.SUITE},(function(){r.apply(void 0,n)})),u.emit(Yt.SUITE_CALLBACK_DONE_RUNNING),qn()})),{get:xt.bind(n,Gn),remove:xt.bind(n,(function(n){u.emit(Yt.REMOVE_FIELD,n)})),reset:i.reset,resetField:xt.bind(n,(function(n){u.emit(Yt.RESET_FIELD,n)}))})},n.each=function(n,e){F(t(e),"each callback must be a function"),fn({type:ot.EACH},(function(){n.forEach((function(n,t){e(n,t)}))}))},n.eager=function(){var n=ct.EAGER;xt.useX().mode[0]=n},n.enforce=Wt,n.group=function(n,e){F(o(n),$n("name must be a string")),F(t(e),$n("callback must be a function")),fn({type:ot.GROUP},(function(){xt.run({groupName:n},e)}))},n.include=function(n){var t=xt.useX(),e=t.inclusion;return t=t.exclusion,F(o(n)),e[n]=W(t.tests[n],!0),{when:function(t){var e=xt.useX(),r=e.exclusion;e.inclusion[n]=function(){return Object.prototype.hasOwnProperty.call(r.tests,n)?W(r.tests[n],!0):o(t)?!!r.tests[t]:w(t,w(Gn))}}}},n.omitWhen=function(n,t){fn({type:ot.OMIT_WHEN},(function(){xt.run({omitted:!!xt.useX().omitted||w(n,w(Gn))},(function(){return t()}))}))},n.only=Jn,n.optional=function(n){if(p(n)||o(n))[].concat(n).forEach((function(n){Z(n,[!0,!1])}));else for(var t in n)Z(t,[n[t],!1])},n.skip=Yn,n.skipWhen=function(n,t){fn({type:ot.SKIP_WHEN},(function(){xt.run({skipped:!!xt.useX().skipped||w(n,w(Gn))},(function(){return t()}))}))},n.test=ne,n.warn=function(){var n=xt.useX("warn hook called outside of a running suite.");F(n.currentTest,"warn called outside of a test."),n.currentTest.warn()},Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.
|
|
2
|
+
"version": "4.4.0-dev-08ec91",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "vest",
|
|
5
5
|
"author": "ealush",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/ealush/vest.git/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"context": "
|
|
24
|
-
"n4s": "
|
|
23
|
+
"context": "dev",
|
|
24
|
+
"n4s": "dev"
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://vestjs.dev/",
|
|
27
27
|
"exports": {
|
package/types/classnames.d.ts
CHANGED
|
@@ -3,16 +3,14 @@ type SuiteSummary = {
|
|
|
3
3
|
tests: Tests;
|
|
4
4
|
valid: boolean;
|
|
5
5
|
} & SummaryBase;
|
|
6
|
-
type GroupTestSummary =
|
|
6
|
+
type GroupTestSummary = SingleTestSummary;
|
|
7
7
|
type Groups = Record<string, Group>;
|
|
8
8
|
type Group = Record<string, GroupTestSummary>;
|
|
9
9
|
type Tests = Record<string, SingleTestSummary>;
|
|
10
|
-
type SingleTestSummary =
|
|
11
|
-
valid: boolean;
|
|
12
|
-
};
|
|
13
|
-
type BaseTestSummary = SummaryBase & {
|
|
10
|
+
type SingleTestSummary = SummaryBase & {
|
|
14
11
|
errors: string[];
|
|
15
12
|
warnings: string[];
|
|
13
|
+
valid: boolean;
|
|
16
14
|
};
|
|
17
15
|
type SummaryBase = {
|
|
18
16
|
errorCount: number;
|
package/types/parser.d.ts
CHANGED
|
@@ -3,16 +3,14 @@ type SuiteSummary = {
|
|
|
3
3
|
tests: Tests;
|
|
4
4
|
valid: boolean;
|
|
5
5
|
} & SummaryBase;
|
|
6
|
-
type GroupTestSummary =
|
|
6
|
+
type GroupTestSummary = SingleTestSummary;
|
|
7
7
|
type Groups = Record<string, Group>;
|
|
8
8
|
type Group = Record<string, GroupTestSummary>;
|
|
9
9
|
type Tests = Record<string, SingleTestSummary>;
|
|
10
|
-
type SingleTestSummary =
|
|
11
|
-
valid: boolean;
|
|
12
|
-
};
|
|
13
|
-
type BaseTestSummary = SummaryBase & {
|
|
10
|
+
type SingleTestSummary = SummaryBase & {
|
|
14
11
|
errors: string[];
|
|
15
12
|
warnings: string[];
|
|
13
|
+
valid: boolean;
|
|
16
14
|
};
|
|
17
15
|
type SummaryBase = {
|
|
18
16
|
errorCount: number;
|
package/types/promisify.d.ts
CHANGED
|
@@ -7,16 +7,14 @@ type SuiteSummary = {
|
|
|
7
7
|
tests: Tests;
|
|
8
8
|
valid: boolean;
|
|
9
9
|
} & SummaryBase;
|
|
10
|
-
type GroupTestSummary =
|
|
10
|
+
type GroupTestSummary = SingleTestSummary;
|
|
11
11
|
type Groups = Record<string, Group>;
|
|
12
12
|
type Group = Record<string, GroupTestSummary>;
|
|
13
13
|
type Tests = Record<string, SingleTestSummary>;
|
|
14
|
-
type SingleTestSummary =
|
|
15
|
-
valid: boolean;
|
|
16
|
-
};
|
|
17
|
-
type BaseTestSummary = SummaryBase & {
|
|
14
|
+
type SingleTestSummary = SummaryBase & {
|
|
18
15
|
errors: string[];
|
|
19
16
|
warnings: string[];
|
|
17
|
+
valid: boolean;
|
|
20
18
|
};
|
|
21
19
|
type SummaryBase = {
|
|
22
20
|
errorCount: number;
|
|
@@ -36,13 +34,16 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
36
34
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
37
35
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
38
36
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
37
|
+
declare function isValid(fieldName?: string): boolean;
|
|
38
|
+
declare function isValidByGroup(groupName: string, fieldName?: string): boolean;
|
|
39
39
|
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
40
40
|
/**
|
|
41
41
|
* Returns whether the suite as a whole is valid.
|
|
42
42
|
* Determined if there are no errors, and if no
|
|
43
43
|
* required fields are skipped.
|
|
44
44
|
*/
|
|
45
|
-
isValid:
|
|
45
|
+
isValid: typeof isValid;
|
|
46
|
+
isValidByGroup: typeof isValidByGroup;
|
|
46
47
|
hasErrors: typeof hasErrors;
|
|
47
48
|
hasWarnings: typeof hasWarnings;
|
|
48
49
|
getErrors: typeof getErrors;
|
package/types/vest.d.ts
CHANGED
|
@@ -58,16 +58,14 @@ type SuiteSummary = {
|
|
|
58
58
|
tests: Tests;
|
|
59
59
|
valid: boolean;
|
|
60
60
|
} & SummaryBase;
|
|
61
|
-
type GroupTestSummary =
|
|
61
|
+
type GroupTestSummary = SingleTestSummary;
|
|
62
62
|
type Groups = Record<string, Group>;
|
|
63
63
|
type Group = Record<string, GroupTestSummary>;
|
|
64
64
|
type Tests = Record<string, SingleTestSummary>;
|
|
65
|
-
type SingleTestSummary =
|
|
66
|
-
valid: boolean;
|
|
67
|
-
};
|
|
68
|
-
type BaseTestSummary = SummaryBase & {
|
|
65
|
+
type SingleTestSummary = SummaryBase & {
|
|
69
66
|
errors: string[];
|
|
70
67
|
warnings: string[];
|
|
68
|
+
valid: boolean;
|
|
71
69
|
};
|
|
72
70
|
type SummaryBase = {
|
|
73
71
|
errorCount: number;
|
|
@@ -87,13 +85,16 @@ declare function hasErrors(fieldName?: string): boolean;
|
|
|
87
85
|
declare function hasWarnings(fieldName?: string): boolean;
|
|
88
86
|
declare function hasErrorsByGroup(groupName: string, fieldName?: string): boolean;
|
|
89
87
|
declare function hasWarningsByGroup(groupName: string, fieldName?: string): boolean;
|
|
88
|
+
declare function isValid(fieldName?: string): boolean;
|
|
89
|
+
declare function isValidByGroup(groupName: string, fieldName?: string): boolean;
|
|
90
90
|
type SuiteResult = ReturnType<typeof genTestsSummary> & {
|
|
91
91
|
/**
|
|
92
92
|
* Returns whether the suite as a whole is valid.
|
|
93
93
|
* Determined if there are no errors, and if no
|
|
94
94
|
* required fields are skipped.
|
|
95
95
|
*/
|
|
96
|
-
isValid:
|
|
96
|
+
isValid: typeof isValid;
|
|
97
|
+
isValidByGroup: typeof isValidByGroup;
|
|
97
98
|
hasErrors: typeof hasErrors;
|
|
98
99
|
hasWarnings: typeof hasWarnings;
|
|
99
100
|
getErrors: typeof getErrors;
|
|
@@ -137,7 +138,7 @@ type Suite<T extends CB> = {
|
|
|
137
138
|
*/
|
|
138
139
|
declare function create<T extends CB>(suiteName: string, suiteCallback: T): Suite<T>;
|
|
139
140
|
declare function create<T extends CB>(suiteCallback: T): Suite<T>;
|
|
140
|
-
|
|
141
|
+
type Cursor = {
|
|
141
142
|
addLevel: () => void;
|
|
142
143
|
cursorAt: () => number;
|
|
143
144
|
getCursor: () => number[];
|
|
@@ -162,39 +163,32 @@ declare enum Modes {
|
|
|
162
163
|
EAGER = 1
|
|
163
164
|
}
|
|
164
165
|
type NestedArray<T> = Array<NestedArray<T> | T>;
|
|
165
|
-
// eslint-disable-next-line max-lines-per-function
|
|
166
|
-
declare function createState(onStateChange?: (...args: unknown[]) => unknown): CreateStateReturn;
|
|
167
|
-
type StateInput<S> = S | ((prevState?: S) => S);
|
|
168
166
|
type SetStateInput<S> = S | ((prevState: S) => S);
|
|
169
|
-
type State = ReturnType<typeof createState>;
|
|
170
167
|
type StateHandlerReturn<S> = [
|
|
171
168
|
S,
|
|
172
169
|
(nextState: SetStateInput<S>) => void
|
|
173
170
|
];
|
|
174
|
-
type
|
|
175
|
-
|
|
176
|
-
|
|
171
|
+
type UseState<S> = () => StateHandlerReturn<S>;
|
|
172
|
+
type StateRef = {
|
|
173
|
+
optionalFields: UseState<OptionalFields>;
|
|
174
|
+
suiteId: UseState<string>;
|
|
175
|
+
suiteName: UseState<SuiteName>;
|
|
176
|
+
testCallbacks: UseState<TestCallbacks>;
|
|
177
|
+
testObjects: UseState<TestObjects>;
|
|
178
|
+
};
|
|
179
|
+
type OptionalFields = Record<string, [
|
|
180
|
+
rule: (() => boolean) | boolean,
|
|
181
|
+
isApplied: boolean
|
|
182
|
+
]>;
|
|
183
|
+
type SuiteName = string | void;
|
|
184
|
+
type TestCallbacks = {
|
|
185
|
+
fieldCallbacks: Record<string, Array<(res: SuiteResult) => void>>;
|
|
186
|
+
doneCallbacks: Array<(res: SuiteResult) => void>;
|
|
177
187
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}): {
|
|
182
|
-
optionalFields: () => StateHandlerReturn<Record<string, [
|
|
183
|
-
rule: boolean | (() => boolean),
|
|
184
|
-
isApplied: boolean
|
|
185
|
-
]>>;
|
|
186
|
-
suiteId: () => StateHandlerReturn<string>;
|
|
187
|
-
suiteName: () => StateHandlerReturn<string | void>;
|
|
188
|
-
testCallbacks: () => StateHandlerReturn<{
|
|
189
|
-
fieldCallbacks: Record<string, ((res: SuiteResult) => void)[]>;
|
|
190
|
-
doneCallbacks: ((res: SuiteResult) => void)[];
|
|
191
|
-
}>;
|
|
192
|
-
testObjects: () => StateHandlerReturn<{
|
|
193
|
-
prev: NestedArray<VestTest>;
|
|
194
|
-
current: NestedArray<VestTest>;
|
|
195
|
-
}>;
|
|
188
|
+
type TestObjects = {
|
|
189
|
+
prev: NestedArray<VestTest>;
|
|
190
|
+
current: NestedArray<VestTest>;
|
|
196
191
|
};
|
|
197
|
-
type StateRef = ReturnType<typeof createStateRef>;
|
|
198
192
|
declare const _default: {
|
|
199
193
|
run: <R>(ctxRef: Partial<CTXType>, fn: (context: CTXType) => R) => R;
|
|
200
194
|
bind: <Fn extends (...args: any[]) => any>(ctxRef: Partial<CTXType>, fn: Fn) => Fn;
|
|
@@ -206,7 +200,7 @@ type CTXType = {
|
|
|
206
200
|
type: IsolateTypes;
|
|
207
201
|
keys: IsolateKeys;
|
|
208
202
|
};
|
|
209
|
-
testCursor:
|
|
203
|
+
testCursor: Cursor;
|
|
210
204
|
stateRef?: StateRef;
|
|
211
205
|
exclusion: {
|
|
212
206
|
tests: Record<string, boolean>;
|
|
@@ -356,6 +350,6 @@ declare const test: typeof testBase & {
|
|
|
356
350
|
* Sets a running test to warn only mode.
|
|
357
351
|
*/
|
|
358
352
|
declare function warn(): void;
|
|
359
|
-
declare const VERSION = "4.
|
|
353
|
+
declare const VERSION = "4.4.0-dev-08ec91";
|
|
360
354
|
export { test, create, each, only, skip, warn, group, optional, skipWhen, omitWhen, enforce, VERSION, context, include, eager };
|
|
361
355
|
export type { SuiteResult, SuiteRunResult, SuiteSummary, VestTest, Suite };
|