vest 5.0.0-dev-781e21 → 5.0.0-dev-ec989a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +2 -57
  3. package/dist/cjs/classnames.development.js +37 -17
  4. package/dist/cjs/classnames.production.js +1 -1
  5. package/dist/cjs/enforce/compose.development.js +1 -54
  6. package/dist/cjs/enforce/compose.production.js +1 -1
  7. package/dist/cjs/enforce/compounds.development.js +18 -84
  8. package/dist/cjs/enforce/compounds.production.js +1 -1
  9. package/dist/cjs/enforce/schema.development.js +18 -84
  10. package/dist/cjs/enforce/schema.production.js +1 -1
  11. package/dist/cjs/parser.development.js +30 -11
  12. package/dist/cjs/parser.production.js +1 -1
  13. package/dist/cjs/promisify.development.js +21 -9
  14. package/dist/cjs/promisify.production.js +1 -1
  15. package/dist/cjs/vest.development.js +1324 -1294
  16. package/dist/cjs/vest.production.js +1 -1
  17. package/dist/es/classnames.development.js +39 -19
  18. package/dist/es/classnames.production.js +1 -1
  19. package/dist/es/enforce/compose.development.js +1 -58
  20. package/dist/es/enforce/compose.production.js +1 -1
  21. package/dist/es/enforce/compounds.development.js +2 -90
  22. package/dist/es/enforce/compounds.production.js +1 -1
  23. package/dist/es/enforce/schema.development.js +2 -88
  24. package/dist/es/enforce/schema.production.js +1 -1
  25. package/dist/es/parser.development.js +31 -10
  26. package/dist/es/parser.production.js +1 -1
  27. package/dist/es/promisify.development.js +22 -10
  28. package/dist/es/promisify.production.js +1 -1
  29. package/dist/es/vest.development.js +1321 -1286
  30. package/dist/es/vest.production.js +1 -1
  31. package/dist/umd/classnames.development.js +40 -20
  32. package/dist/umd/classnames.production.js +1 -1
  33. package/dist/umd/enforce/compose.development.js +6 -60
  34. package/dist/umd/enforce/compose.production.js +1 -1
  35. package/dist/umd/enforce/compounds.development.js +29 -94
  36. package/dist/umd/enforce/compounds.production.js +1 -1
  37. package/dist/umd/enforce/schema.development.js +29 -94
  38. package/dist/umd/enforce/schema.production.js +1 -1
  39. package/dist/umd/parser.development.js +33 -14
  40. package/dist/umd/parser.production.js +1 -1
  41. package/dist/umd/promisify.development.js +24 -12
  42. package/dist/umd/promisify.production.js +1 -1
  43. package/dist/umd/vest.development.js +1327 -1298
  44. package/dist/umd/vest.production.js +1 -1
  45. package/package.json +144 -147
  46. package/testUtils/TVestMock.ts +7 -0
  47. package/testUtils/__tests__/partition.test.ts +4 -4
  48. package/testUtils/asVestTest.ts +9 -0
  49. package/testUtils/mockThrowError.ts +4 -2
  50. package/testUtils/suiteDummy.ts +4 -1
  51. package/testUtils/testDummy.ts +12 -10
  52. package/testUtils/testPromise.ts +3 -0
  53. package/types/classnames.d.ts +141 -12
  54. package/types/classnames.d.ts.map +1 -0
  55. package/types/enforce/compose.d.ts +2 -126
  56. package/types/enforce/compose.d.ts.map +1 -0
  57. package/types/enforce/compounds.d.ts +2 -136
  58. package/types/enforce/compounds.d.ts.map +1 -0
  59. package/types/enforce/schema.d.ts +2 -144
  60. package/types/enforce/schema.d.ts.map +1 -0
  61. package/types/parser.d.ts +147 -18
  62. package/types/parser.d.ts.map +1 -0
  63. package/types/promisify.d.ts +139 -43
  64. package/types/promisify.d.ts.map +1 -0
  65. package/types/vest.d.ts +257 -242
  66. package/types/vest.d.ts.map +1 -0
  67. package/CHANGELOG.md +0 -87
  68. package/testUtils/expandStateRef.ts +0 -8
  69. package/testUtils/runCreateRef.ts +0 -10
  70. package/testUtils/testObjects.ts +0 -6
  71. package/tsconfig.json +0 -8
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n,t,e,r=require("n4s"),i=require("vest-utils"),u=require("context");function o(){var n=0;return{current:function(){return n},next:function(){n++}}}function s(n,t){return void 0===t&&(t=[]),{cursor:o(),keys:{current:{},prev:{}},path:t,type:n}}(t=n||(n={}))[t.DEFAULT=0]="DEFAULT",t[t.SUITE=1]="SUITE",t[t.EACH=2]="EACH",t[t.SKIP_WHEN=3]="SKIP_WHEN",t[t.OMIT_WHEN=4]="OMIT_WHEN",t[t.GROUP=5]="GROUP",function(n){n[n.ALL=0]="ALL",n[n.EAGER=1]="EAGER"}(e||(e={}));var a=u.createCascade((function(t,r){return r?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},isolate:s(n.DEFAULT),mode:[e.ALL]},t)}));function c(){return a.useX().stateRef}function f(){return c().suiteId()[0]}function l(){return c().testCallbacks()}function p(){return c().optionalFields()}function d(n,t){(0,p()[1])((function(e){var r;return i.assign(e,((r={})[n]=i.assign({},e[n],t(e[n])),r))}))}function v(n){var t;return null!==(t=p()[0][n])&&void 0!==t?t:{}}function E(){return c().testObjects()}function h(){g((function(n){return n}))}function g(n){(0,E()[1])((function(t){return{prev:t.prev,current:i.asArray(n(t.current))}}))}function y(){return R().filter((function(n){return n.isPending()}))}var N,m=i.cache();function R(){var n=E()[0].current;return m([n],(function(){return i.nestedArray.flatten(n)}))}function S(n){R().forEach(n)}!function(n){n.Error="error",n.Warning="warning"}(N||(N={}));var T,C,A=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=i.seq(),this.severity=N.Error,this.status=_,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){(function(n,t){return i.isUndefined(n)&&i.isStringValue(t)})(this.message,t)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==x||(this.status=n)},n.prototype.warns=function(){return this.severity===N.Warning},n.prototype.setPending=function(){this.setStatus(k)},n.prototype.fail=function(){this.setStatus(this.warns()?O:F)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(b)},n.prototype.warn=function(){this.severity=N.Warning},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(n){this.isPending()&&!n||this.setStatus(I)},n.prototype.cancel=function(){this.setStatus(P),h()},n.prototype.reset=function(){this.status=_,h()},n.prototype.omit=function(){this.setStatus(x)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.isPending=function(){return this.statusEquals(k)},n.prototype.isOmitted=function(){return this.statusEquals(x)},n.prototype.isUntested=function(){return this.statusEquals(_)},n.prototype.isFailing=function(){return this.statusEquals(F)},n.prototype.isCanceled=function(){return this.statusEquals(P)},n.prototype.isSkipped=function(){return this.statusEquals(I)},n.prototype.isPassing=function(){return this.statusEquals(b)},n.prototype.isWarning=function(){return this.statusEquals(O)},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isNonActionable=function(){return this.isSkipped()||this.isOmitted()||this.isCanceled()},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.awaitsResolution=function(){return this.isSkipped()||this.isUntested()||this.isPending()},n.prototype.statusEquals=function(n){return this.status===n},n}(),_="UNTESTED",I="SKIPPED",F="FAILED",O="WARNING",b="PASSING",k="PENDING",P="CANCELED",x="OMITTED";function L(n){function t(n,t,u){return r.references.push(),e(n,i.optionalFunctionValue(t,u)),function(){return[r.references[n],function(t){return e(n,i.optionalFunctionValue(t,r.references[n]))}]}}function e(t,e){var o=r.references[t];r.references[t]=e,t=u[t][1],i.isFunction(t)&&t(e,o),i.isFunction(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 U(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 D(){return a.useX().isolate}function W(){var n=D();return n.path.concat(n.cursor.current())}function V(){return D().cursor}function w(t,e){t=void 0===(t=t.type)?n.DEFAULT:t,i.invariant(i.isFunction(e));var r=s(t,W());return t=a.run({isolate:r},(function(){return r.keys.prev=function(){var n=E()[0].prev;return i.asArray(i.nestedArray.getCurrent(n,W())).reduce((function(n,t){return t instanceof A&&!i.isNullish(t.key)?(n[t.key]=t,n):n}),{})}(),g((function(n){return i.nestedArray.setValueAtPath(n,r.path,[])})),e()})),V().next(),t}function G(n){return n===T.ERRORS?C.ERROR_COUNT:C.WARN_COUNT}function q(n,t){return!!t&&!X(n,t)}function X(n,t){return!(!t||n.fieldName!==t)}!function(n){n.WARNINGS="warnings",n.ERRORS="errors"}(T||(T={})),function(n){n.ERROR_COUNT="errorCount",n.WARN_COUNT="warnCount"}(C||(C={}));var H,K=i.bindNot((function(n,t){return n.groupName===t}));function M(n){return function(n,t){return R().some((function(e){return B(e,n,t)}))}(T.ERRORS,n)}function B(n,t,e){return!(!n.hasFailures()||q(n,e)||function(n,t){return i.either(n===T.WARNINGS,t.warns())}(t,n))}function j(n){return!!n&&v(n).applied}function Y(n){if(j(n))return!0;var t=R();return!(i.isEmpty(t)||M(n)||function(n){return i.isNotEmpty(y().filter((function(t){return z(t,n)})))}(n))&&function(n){return R().every((function(t){return Q(t,n)}))}(n)}function J(n,t){return!!j(t)||!function(n,t,e){return R().some((function(r){return!K(r,t)&&B(r,n,e)}))}(T.ERRORS,n,t)&&!function(n,t){return i.isNotEmpty(y().filter((function(e){return!K(e,n)&&z(e,t)})))}(n,t)&&function(n,t){return R().every((function(e){return!!K(e,n)||Q(e,t)}))}(n,t)}function z(n,t){return!q(n,t)&&j(t)}function Q(n,t){return!!q(n,t)||(function(n){return v(n.fieldName).type===H.Delayed&&n.awaitsResolution()}(n)||n.isTested()||n.isOmitted())}function Z(){var n=R(),t=i.assign({errorCount:0,warnCount:0,testCount:0},{groups:{},tests:{},valid:!1});return n.reduce((function(n,t){return function(n,t){n[t.fieldName]=$(n,t),n[t.fieldName].valid=!1!==n[t.fieldName].valid&&Y(t.fieldName)}(n.tests,t),function(n,t){var e=t.groupName;e&&(n[e]=n[e]||{},n[e][t.fieldName]=$(n[e],t),n[e][t.fieldName].valid=!1!==n[e][t.fieldName].valid&&J(e,t.fieldName))}(n.groups,t),n}),t),t.valid=Y(),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,t){function e(n){var t=G(n);o[t]++,u&&(o[n]=(o[n]||[]).concat(u))}var r=t.fieldName,u=t.message;n[r]=n[r]||i.assign({errorCount:0,warnCount:0,testCount:0},{errors:[],warnings:[]});var o=n[r];return t.isNonActionable()||(n[r].testCount++,t.isFailing()?e(T.ERRORS):t.isWarning()&&e(T.WARNINGS)),o}function nn(n,t,e){return e?function(n,t,e){var r;return(null===(r=null==n?void 0:n[e])||void 0===r?void 0:r[t])||[]}(n,t,e):function(n,t){var e,r={},u=G(t);for(e in n)i.isPositive(n[e][u])&&(r[e]=n[e][t]||[]);return r}(n,t)}function tn(n){return{getErrors:function(t){return en(n,T.ERRORS,t)},getErrorsByGroup:function(t,e){return rn(n,T.ERRORS,t,e)},getWarnings:function(t){return en(n,T.WARNINGS,t)},getWarningsByGroup:function(t,e){return rn(n,T.WARNINGS,t,e)},hasErrors:function(t){return sn(n,C.ERROR_COUNT,t)},hasErrorsByGroup:function(t,e){return on(n,C.ERROR_COUNT,t,e)},hasWarnings:function(t){return sn(n,C.WARN_COUNT,t)},hasWarningsByGroup:function(t,e){return on(n,C.WARN_COUNT,t,e)},isValid:function(t){var e;return t?!(null===(e=n.tests[t])||void 0===e||!e.valid):n.valid},isValidByGroup:function(t,e){if(!(t=n.groups[t]))return!1;if(e)return un(t,e);for(var r in t)if(!un(t,r))return!1;return!0}}}function en(n,t,e){return nn(n.tests,t,e)}function rn(n,t,e,r){return nn(n.groups[e],t,r)}function un(n,t){var e;return!(null===(e=n[t])||void 0===e||!e.valid)}function on(n,t,e,r){var u,o;if(!(n=n.groups[e]))return!1;if(r)return i.isPositive(null===(u=n[r])||void 0===u?void 0:u[t]);for(var s in n)if(i.isPositive(null===(o=n[s])||void 0===o?void 0:o[t]))return!0;return!1}function sn(n,t,e){var r;return n=e?null===(r=n.tests[e])||void 0===r?void 0:r[t]:n[t]||0,i.isPositive(n)}!function(n){n[n.Immediate=0]="Immediate",n[n.Delayed=1]="Delayed"}(H||(H={}));var an=i.cache(1);function cn(){var n=R(),t={stateRef:c()};return an([n],a.bind(t,(function(){var n=Z(),t=c().suiteName()[0];return i.assign(n,tn(n),{suiteName:t})})))}function fn(n){var t=y();return!i.isEmpty(t)&&(!n||t.some((function(t){return X(t,n)})))}var ln=i.cache(20);function pn(){var n=R(),t={stateRef:c()};return ln([n],a.bind(t,(function(){return i.assign({},cn(),{done:a.bind(t,hn)})})))}function dn(n,t,e){var r;return!!(!i.isFunction(n)||t&&i.numberEquals(null===(r=e.tests[t])||void 0===r?void 0:r.testCount,0))}function vn(n){return!(fn()&&(!n||fn(n)))}var En,hn=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=(n=n.reverse())[0];if(n=n[1],t=pn(),dn(e,n,t))return t;var r=function(){return e(cn())};return vn(n)?(r(),t):(gn(r,n),t)};function gn(n,t){(0,l()[1])((function(e){return t?e.fieldCallbacks[t]=(e.fieldCallbacks[t]||[]).concat(n):e.doneCallbacks.push(n),e}))}function yn(){var n=i.bus.createBus();return n.on(En.TEST_COMPLETED,(function(t){t.isCanceled()||(t.done(),function(n){var t=l()[0].fieldCallbacks;n&&!fn(n)&&i.isArray(t[n])&&i.callEach(t[n])}(t.fieldName),fn()||n.emit(En.ALL_RUNNING_TESTS_FINISHED))})),n.on(En.SUITE_CALLBACK_DONE_RUNNING,(function(){!function(){function n(n){e[n.fieldName]&&(n.omit(),d(n.fieldName,(function(){return{applied:!0}})))}var t=p()[0];if(!i.isEmpty(t)){var e={};R().forEach((function(t){if(i.hasOwnProperty(e,t.fieldName))n(t);else{var r=v(t.fieldName);r.type===H.Immediate&&(e[t.fieldName]=i.optionalFunctionValue(r.rule),n(t))}})),h()}}()})),n.on(En.ALL_RUNNING_TESTS_FINISHED,(function(){!function(){var n=l()[0].doneCallbacks;i.callEach(n)}()})),n.on(En.REMOVE_FIELD,(function(n){S((function(t){X(t,n)&&(t.cancel(),function(n){g((function(t){return i.nestedArray.transform(t,(function(t){return n!==t?t:null}))}))}(t))}))})),n.on(En.RESET_FIELD,(function(n){S((function(t){X(t,n)&&t.reset()}))})),n}function Nn(){var n=a.useX();return i.invariant(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"}(En||(En={}));function mn(){return!!a.useX().skipped}function Rn(n){return Cn(0,"tests",n)}function Sn(n){return Cn(1,"tests",n)}function Tn(n){var t=n.fieldName;if(n=n.groupName,mn())return!0;var e=a.useX(),r=e.exclusion;e=e.inclusion;var u=r.tests,o=u[t];if(!1===o)return!0;if(o=!0===o,n){if(function(n){var t=a.useX().exclusion.groups;return i.hasOwnProperty(t,n)?!1===t[n]:_n()}(n))return!0;if(!0===r.groups[n])return!o&&(!!An(u)||!1===u[t])}return!!function(n){return!!_n()&&!n}(n)||!o&&(!!An(u)&&!i.optionalFunctionValue(e[t]))}function Cn(n,t,e){var r=a.useX("hook called outside of a running suite.");e&&i.asArray(e).forEach((function(e){i.isStringValue(e)&&(r.exclusion[t][e]=0===n)}))}function An(n){for(var t in n)if(!0===n[t])return!0;return!1}function _n(){var n,t=a.useX().exclusion;for(n in t.groups)if(t.groups[n])return!0;return!1}function In(n){return"Wrong arguments passed to group. Group ".concat(n,".")}function Fn(n){return function(n){return a.useX().mode[0]===n}(e.EAGER)&&M(n.fieldName)}function On(){return!!a.useX().omitted}function bn(n,t,e){if(e||2===arguments.length)for(var r,i=0,u=t.length;i<u;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return n.concat(r||Array.prototype.slice.call(t))}function kn(n,t){return n.fieldName===t.fieldName&&n.groupName===t.groupName}function Pn(n){var t=n.asyncTest,e=n.message;if(i.isPromise(t)){var r=Nn().emit,u=c(),o=a.bind({stateRef:u},(function(){h(),r(En.TEST_COMPLETED,n)}));u=a.bind({stateRef:u},(function(t){n.isCanceled()||(n.message=i.isStringValue(t)?t:e,n.fail(),o())}));try{t.then(o,u)}catch(n){u()}}}function xn(n){var t=Nn(),e=function(n){return a.run({currentTest:n},(function(){return n.run()}))}(n);try{i.isPromise(e)?(n.asyncTest=e,n.setPending(),Pn(n)):t.emit(En.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 Ln(t){var e=E()[0].prev;return i.isEmpty(e)?(Un(t),t):(e=function(n){var t=W();return i.nestedArray.valueAtPath(n,t)}(e),i.isNullish(t.key)?(function(n,t){return i.isNotEmpty(n)&&!kn(n,t)}(e,t)&&(function(t,e){D().type===n.EACH||i.deferThrow("Vest Critical Error: Tests called in different order than previous run.\n expected: ".concat(t.fieldName,"\n received: ").concat(e.fieldName,'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'))}(e,t),function(){var n=V().current();g((function(t){return t.splice(n),t}))}(),e=null),Un(t=i.defaultTo(e,t)),t):(t=function(n,t){var e=function(n){return D().keys.prev[n]}(n);return e&&(t=e),function(n,t){var e=D().keys.current;i.isNullish(e[n])?e[n]=t:i.deferThrow('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}(t.key,t),Un(t),t))}function Un(n){var t=W();g((function(e){return i.nestedArray.setValueAtPath(e,t,n)}))}function Dn(n){var t=V();if(Fn(n))return n.skip(),Ln(n),t.next(),n;var e=Ln(n);return On()||j(n.fieldName)?(e.omit(),t.next(),e):Tn(n)?(e.skip(mn()),t.next(),e):(function(n,t){t!==n&&kn(n,t)&&n.isPending()&&n.cancel()}(e,n),Un(n),function(n){n.isUntested()?xn(n):i.isPromise(n.asyncTest)&&(n.setPending(),Pn(n))}(n),t.next(),n)}function Wn(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=i.isFunction(t[1])?t:bn([void 0],t,!0);t=r[0],e=r[1],r=r[2],i.invariant(i.isStringValue(n),wn("fieldName","string")),i.invariant(i.isFunction(e),wn("Test callback","function"));var u=a.useX();return Dn(t=new A(n,e,{message:t,groupName:u.groupName,key:r}))}Rn.group=function(n){return Cn(0,"groups",n)},Sn.group=function(n){return Cn(1,"groups",n)};var Vn=i.assign(Wn,{memo:function(n){var t=i.cache(10);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=V().current();var o=(r=r.reverse())[0],s=r[1],a=r[2];return u=[f(),e,u].concat(o),r=t.get(u),i.isNull(r)?t(u,(function(){return n(e,a,s)})):r[1].isCanceled()?(t.invalidate(u),t(u,(function(){return n(e,a,s)}))):Dn(r[1])}}(Wn)});function wn(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 r.enforce}}),exports.VERSION="5.0.0-dev-781e21",exports.context=a,exports.create=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=(t=t.reverse())[0];t=t[1],i.invariant(i.isFunction(r),"vest.create: Expected callback to be a function.");var u=yn(),o=L();return t={stateRef:U(o,{suiteId:i.seq(),suiteName:t}),bus:u},i.assign(a.bind(t,(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return o.reset(),w({type:n.SUITE},(function(){r.apply(void 0,t)})),u.emit(En.SUITE_CALLBACK_DONE_RUNNING),pn()})),{get:a.bind(t,cn),remove:a.bind(t,(function(n){u.emit(En.REMOVE_FIELD,n)})),reset:o.reset,resetField:a.bind(t,(function(n){u.emit(En.RESET_FIELD,n)}))})},exports.each=function(t,e){i.invariant(i.isFunction(e),"each callback must be a function"),w({type:n.EACH},(function(){t.forEach((function(n,t){e(n,t)}))}))},exports.eager=function(){!function(n){a.useX().mode[0]=n}(e.EAGER)},exports.group=function(t,e){i.invariant(i.isStringValue(t),In("name must be a string")),i.invariant(i.isFunction(e),In("callback must be a function")),w({type:n.GROUP},(function(){a.run({groupName:t},e)}))},exports.include=function(n){var t=a.useX(),e=t.inclusion;return t=t.exclusion,i.invariant(i.isStringValue(n)),e[n]=i.defaultTo(t.tests[n],!0),{when:function(t){var e=a.useX(),r=e.exclusion;e.inclusion[n]=function(){return i.hasOwnProperty(r.tests,n)?i.defaultTo(r.tests[n],!0):i.isStringValue(t)?!!r.tests[t]:i.optionalFunctionValue(t,i.optionalFunctionValue(cn))}}}},exports.omitWhen=function(t,e){w({type:n.OMIT_WHEN},(function(){a.run({omitted:On()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.only=Rn,exports.optional=function(n){if(i.isArray(n)||i.isStringValue(n))i.asArray(n).forEach((function(n){d(n,(function(){return{type:H.Delayed,applied:!1,rule:null}}))}));else{var t,e=function(t){var e=n[t];d(t,(function(){return{type:H.Immediate,rule:e,applied:i.optionalFunctionValue(e)}}))};for(t in n)e(t)}},exports.skip=Sn,exports.skipWhen=function(t,e){w({type:n.SKIP_WHEN},(function(){a.run({skipped:mn()||i.optionalFunctionValue(t,i.optionalFunctionValue(cn))},(function(){return e()}))}))},exports.suiteSelectors=tn,exports.test=Vn,exports.warn=function(){var n=a.useX("warn hook called outside of a running suite.");i.invariant(n.currentTest,"warn called outside of a test."),n.currentTest.warn()};
1
+ "use strict";var t,e,n=require("n4s"),s=require("vest-runtime"),i=require("vest-utils"),r=require("context");function o(e){const n=s.VestRuntime.useAvailableRoot();if(i.isArray(e)||i.isStringValue(e))i.asArray(e).forEach((e=>{n.setOptionalField(e,(()=>({type:t.AUTO,applied:!1,rule:null})))}));else for(const s in e){const i=e[s];n.setOptionalField(s,(()=>({type:t.CUSTOM_LOGIC,rule:i,applied:!0===i})))}}function u(t){var e,n,i;return!!t&&(null!==(i=null===(n=null===(e=s.VestRuntime.useAvailableRoot())||void 0===e?void 0:e.getOptionalField(t))||void 0===n?void 0:n.applied)&&void 0!==i&&i)}!function(t){t[t.CUSTOM_LOGIC=0]="CUSTOM_LOGIC",t[t.AUTO=1]="AUTO"}(t||(t={})),function(t){t.TEST_RUN_STARTED="test_run_started",t.TEST_COMPLETED="test_completed",t.ALL_RUNNING_TESTS_FINISHED="all_running_tests_finished",t.REMOVE_FIELD="remove_field",t.RESET_FIELD="reset_field",t.RESET_SUITE="reset_suite",t.SUITE_RUN_STARTED="suite_run_started",t.SUITE_CALLBACK_RUN_FINISHED="SUITE_CALLBACK_RUN_FINISHED",t.DONE_TEST_OMISSION_PASS="DONE_TEST_OMISSION_PASS"}(e||(e={}));class a extends s.Isolate{constructor(){super(...arguments),this.optional={}}setOptionalField(t,e){const n=this.optional,s=n[t];Object.assign(n,{[t]:Object.assign({},s,e(s))})}getOptionalField(t){var e;return null!==(e=this.optional[t])&&void 0!==e?e:{}}getOptionalFields(){return this.optional}}const c=i.cache();function l(){return s.VestRuntime.useXAppData()}function E(){return l().doneCallbacks()}function f(){return l().fieldCallbacks()}function N(){return l().suiteId}function d(){const[,,t]=E(),[,,e]=f();t(),e()}var T,R,S,p,I,m;function _(t){return t===T.ERRORS?R.ERROR_COUNT:R.WARN_COUNT}function g(t,e){return!!e&&!h(t,e)}function h(t,e){return!(!e||t.fieldName!==e)}function O(t,e){return h(t,e.fieldName)&&t.groupName===e.groupName&&t.key===e.key}!function(t){t.WARNINGS="warnings",t.ERRORS="errors"}(T||(T={})),function(t){t.ERROR_COUNT="errorCount",t.WARN_COUNT="warnCount"}(R||(R={})),function(t){t.Error="error",t.Warning="warning"}(S||(S={})),function(t){t.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",t.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",t.FIELD_NAME_REQUIRED="Field name must be passed",t.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",t.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",t.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",t.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",t.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",t.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',t.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",t.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(p||(p={}));class A{constructor(){this.errorCount=0,this.warnCount=0,this.testCount=0}}class v extends A{constructor(){super(...arguments),this[I]=[],this[m]=[],this.groups={},this.tests={},this.valid=!1}}I=T.ERRORS,m=T.WARNINGS;class D{constructor(t,e,n){this.fieldName=t,this.message=e,this.groupName=n}static fromTestObject(t){return new D(t.fieldName,t.message,t.groupName)}toString(){return this.message||""}}const C=i.bindNot((function(t,e){return t.groupName===e}));function P(t){return!!u(t)||!ot.hasNoTests()&&(!ut(t)&&(!function(t){return ot.someIncompleteTests((e=>!g(e,t)&&!u(t)))}(t)&&function(t){return ot.everyTest((e=>U(e,t)))}(t)))}function F(t,e){return!!u(e)||!function(t,e,n){return ot.someTests((s=>!C(s,e)&&at(s,t,n)))}(T.ERRORS,t,e)&&(!function(t,e){return ot.someIncompleteTests((n=>!C(n,t)&&(!g(n,e)&&!u(e))))}(t,e)&&function(t,e){return ot.everyTest((n=>!!C(n,t)||U(n,e)))}(t,e))}function U(e,n){return!!g(e,n)||(e.isOmitted()||e.isTested()||function(e){var n;return(null===(n=s.VestRuntime.useAvailableRoot())||void 0===n?void 0:n.getOptionalField(e.fieldName).type)===t.AUTO&&e.awaitsResolution()}(e))}function L(){const t=new v;return ot.walkTests((e=>{t.tests=function(t,e){const{fieldName:n}=e,s=Object.assign({},t);return s[n]=G(s[n],e),s[n].valid=!1!==s[n].valid&&P(n),s}(t.tests,e),t.groups=function(t,e){const{groupName:n,fieldName:s}=e;if(!n)return t;const i=Object.assign({},t);return i[n]=i[n]||{},i[n][s]=G(i[n][s],e),i[n][s].valid=!1!==i[n][s].valid&&F(n,s),i}(t.groups,e),t.errors=y(T.ERRORS,t.errors,e),t.warnings=y(T.WARNINGS,t.warnings,e)})),t.valid=P(),function(t){for(const e in t.tests)t.errorCount+=t.tests[e].errorCount,t.warnCount+=t.tests[e].warnCount,t.testCount+=t.tests[e].testCount;return t}(t)}function y(t,e,n){if(n.isOmitted())return e;return(t===T.WARNINGS?n.isWarning():n.isFailing())?e.concat(D.fromTestObject(n)):e}function G(t,e){const{message:n}=e,s=i.defaultTo(t?Object.assign({},t):null,W);return e.isNonActionable()||(s.testCount++,e.isFailing()?r(T.ERRORS):e.isWarning()&&r(T.WARNINGS)),s;function r(t){const e=_(t);s[e]++,n&&(s[t]=(s[t]||[]).concat(n))}}function W(){return i.assign(new A,{errors:[],warnings:[],valid:!0})}function V(t,e,n){return n?function(t,e,n){var s;return(null===(s=null==t?void 0:t[n])||void 0===s?void 0:s[e])||[]}(t,e,n):function(t,e){const n={},s=_(e);for(const r in t)i.isPositive(t[r][s])&&(n[r]=t[r][e]||[]);return n}(t,e)}function b(t){const e={getError:function(e){return K(T.ERRORS,t,e)},getErrors:function(e){return M(t,T.ERRORS,e)},getErrorsByGroup:function(e,n){return x(t,T.ERRORS,e,n)},getWarning:function(e){return K(T.WARNINGS,t,e)},getWarnings:function(e){return M(t,T.WARNINGS,e)},getWarningsByGroup:function(e,n){return x(t,T.WARNINGS,e,n)},hasErrors:function(e){return B(t,R.ERROR_COUNT,e)},hasErrorsByGroup:function(e,n){return k(t,R.ERROR_COUNT,e,n)},hasWarnings:function(e){return B(t,R.WARN_COUNT,e)},hasWarningsByGroup:function(e,n){return k(t,R.WARN_COUNT,e,n)},isValid:function(e){var n;return e?Boolean(null===(n=t.tests[e])||void 0===n?void 0:n.valid):t.valid},isValidByGroup:function(e,n){const s=t.groups[e];if(!s)return!1;if(n)return w(s,n);for(const t in s)if(!w(s,t))return!1;return!0}};return e}function M(t,e,n){return V(t.tests,e,n)}function x(t,e,n,s){return V(t.groups[n],e,s)}function w(t,e){var n;return!!(null===(n=t[e])||void 0===n?void 0:n.valid)}function k(t,e,n,s){var r,o;const u=t.groups[n];if(!u)return!1;if(s)return i.isPositive(null===(r=u[s])||void 0===r?void 0:r[e]);for(const t in u)if(i.isPositive(null===(o=u[t])||void 0===o?void 0:o[e]))return!0;return!1}function B(t,e,n){var s;const r=n?null===(s=t.tests[n])||void 0===s?void 0:s[e]:t[e]||0;return i.isPositive(r)}function K(t,e,n){var s;const i=e[t];return n?null===(s=i.find((t=>h(t,n))))||void 0===s?void 0:s.message:i[0]}function j(){return t=()=>{const t=L(),e=l().suiteName;return Object.freeze(i.assign(t,b(t),{suiteName:e}))},(0,l().suiteResultCache)([N()],t);var t}function X(t,e){s.Isolate.create((()=>{Et.run({skipped:q()||i.optionalFunctionValue(t,i.optionalFunctionValue(j))},e)}))}function q(){return function(){var t;return null!==(t=Et.useX().skipped)&&void 0!==t&&t}()}function H(t){return Y(0,"tests",t)}function z(t){return Y(1,"tests",t)}function J(t){const{fieldName:e,groupName:n}=t;if(q())return!0;const s=ft(),r=Nt(),o=s.tests,u=o[e];if(!1===u)return!0;const a=!0===u;if(n){if(function(t){const e=ft().groups;if(i.hasOwnProperty(e,t))return!1===e[t];return Z()}(n))return!0;if(!0===s.groups[n])return!a&&(!!Q(o)||!1===o[e])}return!!function(t){if(!Z())return!1;return!t}(n)||!a&&(!!Q(o)&&!i.optionalFunctionValue(r[e]))}function Y(t,e,n){const s=ft(p.HOOK_CALLED_OUTSIDE);n&&i.asArray(n).forEach((n=>{i.isStringValue(n)&&(s[e][n]=0===t)}))}function Q(t){for(const e in t)if(!0===t[e])return!0;return!1}function Z(){const t=ft();for(const e in t.groups)if(t.groups[e])return!0;return!1}function $(t,e){s.Isolate.create((()=>{Et.run({omitted:tt()||i.optionalFunctionValue(t,i.optionalFunctionValue(j))},e)}))}function tt(){return function(){var t;return null!==(t=Et.useX().omitted)&&void 0!==t&&t}()}function et(t,e=t){return function(t){if(lt(exports.Modes.ONE))return ut();if(lt(exports.Modes.EAGER))return ut(t.fieldName);return!1}(t)?((n=t).skip(),n):function(t){return tt()||u(t.fieldName)}(t)?function(t){return t.omit(),t}(t):J(t)?function(t){return t.skip(q()),t}(e):t;var n}var nt,st;H.group=function(t){return Y(0,"groups",t)},z.group=function(t){return Y(1,"groups",t)},function(t){t.UNTESTED="UNTESTED",t.SKIPPED="SKIPPED",t.FAILED="FAILED",t.WARNING="WARNING",t.PASSING="PASSING",t.PENDING="PENDING",t.CANCELED="CANCELED",t.OMITTED="OMITTED"}(nt||(nt={})),function(t){t.RESET="RESET"}(st||(st={}));const it={initial:nt.UNTESTED,states:{"*":{[nt.OMITTED]:nt.OMITTED,[st.RESET]:nt.UNTESTED},[nt.UNTESTED]:{[nt.CANCELED]:nt.CANCELED,[nt.FAILED]:nt.FAILED,[nt.PASSING]:nt.PASSING,[nt.PENDING]:nt.PENDING,[nt.SKIPPED]:nt.SKIPPED,[nt.WARNING]:nt.WARNING},[nt.PENDING]:{[nt.CANCELED]:nt.CANCELED,[nt.FAILED]:nt.FAILED,[nt.PASSING]:nt.PASSING,[nt.SKIPPED]:[nt.SKIPPED,t=>!0===t],[nt.WARNING]:nt.WARNING},[nt.SKIPPED]:{},[nt.FAILED]:{},[nt.WARNING]:{},[nt.PASSING]:{},[nt.CANCELED]:{},[nt.OMITTED]:{}}};class rt extends s.Isolate{constructor({fieldName:t,testFn:e,message:n,groupName:s,key:r=null}){super(),this.children=null,this.id=i.seq(),this.severity=S.Error,this.stateMachine=i.StateMachine(it),this.fieldName=t,this.testFn=e,s&&(this.groupName=s),n&&(this.message=n),this.setKey(r)}static create(t,e){return rt.cast(super.create(t,e))}static cast(t){return rt.isX(t),t}get status(){return this.stateMachine.getState()}setStatus(t,e){this.stateMachine.transition(t,e)}run(){let t;try{t=this.testFn()}catch(e){(function(t,e){return i.isUndefined(t)&&i.isStringValue(e)})(this.message,e)&&(this.message=e),t=!1}return!1===t&&this.fail(),t}warns(){return this.severity===S.Warning}isPending(){return this.statusEquals(nt.PENDING)}isOmitted(){return this.statusEquals(nt.OMITTED)}isUntested(){return this.statusEquals(nt.UNTESTED)}isFailing(){return this.statusEquals(nt.FAILED)}isCanceled(){return this.statusEquals(nt.CANCELED)}isSkipped(){return this.statusEquals(nt.SKIPPED)}isPassing(){return this.statusEquals(nt.PASSING)}isWarning(){return this.statusEquals(nt.WARNING)}hasFailures(){return this.isFailing()||this.isWarning()}isNonActionable(){return this.isSkipped()||this.isOmitted()||this.isCanceled()}isTested(){return this.hasFailures()||this.isPassing()}awaitsResolution(){return this.isSkipped()||this.isUntested()||this.isPending()}statusEquals(t){return this.status===t}setPending(){this.setStatus(nt.PENDING)}fail(){this.setStatus(this.warns()?nt.WARNING:nt.FAILED)}pass(){this.setStatus(nt.PASSING)}warn(){this.severity=S.Warning}skip(t){this.setStatus(nt.SKIPPED,t)}cancel(){this.setStatus(nt.CANCELED)}reset(){this.stateMachine.transition(st.RESET)}omit(){this.setStatus(nt.OMITTED)}valueOf(){return!this.isFailing()}isAsyncTest(){return i.isPromise(this.asyncTest)}static is(t){return t instanceof rt}static isX(t){i.invariant(this.is(t))}}rt.reconciler=function(t,e){if(!rt.is(t))return t;if(i.isNullish(e))return function(t){if(t.usesKey())return rt.cast(s.Reconciler.handleIsolateNodeWithKey(t));return t}(t);if(!rt.is(e))return t;const n=function(t,e){const n=function(t,e){if(t.usesKey())return rt.cast(s.Reconciler.handleIsolateNodeWithKey(t));if(function(t,e){return!!rt.is(e)&&!O(e,t)}(t,e))return function(t,e){return function(t,e){if(t.shouldAllowReorder())return;i.deferThrow(i.text(p.TESTS_CALLED_IN_DIFFERENT_ORDER,{fieldName:t.fieldName,prevName:rt.is(e)?e.fieldName:void 0}))}(t,e),s.Reconciler.removeAllNextNodesInIsolate(),t}(t,e);if(!rt.is(e))return t;if(e.isOmitted())return t;return e}(e,t);return et(e,n)}(e,t);return function(t,e,n){t===e&&rt.is(e)&&(i=e)!==(s=n)&&O(s,i)&&s.isPending()&&s.cancel();var s,i}(n,t,e),n};class ot{static defaultRoot(){return s.VestRuntime.useAvailableRoot()}static hasNoTests(t=ot.defaultRoot()){return!t||!s.Walker.has(t,rt.is)}static someIncompleteTests(t,e=ot.defaultRoot()){return!!e&&s.Walker.some(e,(e=>(rt.isX(e),e.isPending()&&t(e))),rt.is)}static someTests(t,e=ot.defaultRoot()){return!!e&&s.Walker.some(e,(e=>(rt.isX(e),t(e))),rt.is)}static everyTest(t,e=ot.defaultRoot()){return!!e&&s.Walker.every(e,(e=>(rt.isX(e),t(e))),rt.is)}static walkTests(t,e=ot.defaultRoot()){e&&s.Walker.walk(e,((e,n)=>{t(rt.cast(e),n)}),rt.is)}static hasRemainingTests(t){return ot.someIncompleteTests((e=>!t||h(e,t)))}static pluckTests(t,e=ot.defaultRoot()){e&&s.Walker.pluck(e,(e=>(rt.isX(e),t(e))),rt.is)}static resetField(t){ot.walkTests((e=>{h(e,t)&&e.reset()}),ot.defaultRoot())}static removeTestByFieldName(t,e=ot.defaultRoot()){ot.pluckTests((e=>h(e,t)),e)}}function ut(t){return function(t,e){return ot.someTests((n=>at(n,t,e)))}(T.ERRORS,t)}function at(t,e,n){return!!t.hasFailures()&&(!g(t,n)&&!function(t,e){return i.either(t===T.WARNINGS,e.warns())}(e,t))}var ct;function lt(t){const[e]=dt();return e===t}exports.Modes=void 0,(ct=exports.Modes||(exports.Modes={})).EAGER="EAGER",ct.ALL="ALL",ct.ONE="ONE";const Et=r.createCascade(((t,e)=>e?null:i.assign({exclusion:{tests:{},groups:{}},inclusion:{},mode:i.tinyState.createTinyState(exports.Modes.EAGER),testMemoCache:Tt},t)));function ft(t){return Et.useX(t).exclusion}function Nt(){return Et.useX().inclusion}function dt(){return Et.useX().mode()}const Tt=i.cache(10);function Rt(){const t=s.VestRuntime.useAvailableRoot(),n=s.VestRuntime.useEmit(),r=null==t?void 0:t.getOptionalFields();if(i.isEmpty(r))return;const o=new Set;function u(e){o.has(e.fieldName)&&(e.omit(),null==t||t.setOptionalField(e.fieldName,(t=>Object.assign(Object.assign({},t),{applied:!0}))))}ot.walkTests((e=>{e.isPending()||(i.hasOwnProperty(o,e.fieldName)?u(e):function(e){const n=null==t?void 0:t.getOptionalField(e.fieldName);if(i.isNullish(n))return;!0===i.optionalFunctionValue(n.rule)&&o.add(e.fieldName);u(e)}(e))})),n(e.DONE_TEST_OMISSION_PASS)}function St(){const t=s.VestRuntime.useBus();return n(e.TEST_COMPLETED,(n=>{n.isCanceled()||(!function(t){const[e]=f();t&&!ot.hasRemainingTests(t)&&i.isArray(e[t])&&i.callEach(e[t])}(n.fieldName),ot.hasRemainingTests()||t.emit(e.ALL_RUNNING_TESTS_FINISHED))})),n(e.TEST_RUN_STARTED,(()=>{})),n(e.DONE_TEST_OMISSION_PASS,(()=>{})),n(e.ALL_RUNNING_TESTS_FINISHED,(()=>{ot.someTests((t=>t.isAsyncTest()))&&Rt(),function(){const[t]=E();i.callEach(t)}()})),n(e.RESET_FIELD,(t=>{ot.resetField(t)})),n(e.SUITE_RUN_STARTED,(()=>{d()})),n(e.SUITE_CALLBACK_RUN_FINISHED,(()=>{Rt()})),n(e.REMOVE_FIELD,(t=>{ot.removeTestByFieldName(t)})),n(e.RESET_SUITE,(()=>{d(),s.VestRuntime.reset()})),t;function n(e,n){t.on(e,((...t)=>{l().suiteResultCache.invalidate([N()]),n(...t)}))}}function pt(t){const e=Nt(),n=ft();return i.invariant(i.isStringValue(t)),e[t]=i.defaultTo(n.tests[t],!0),{when:function(e){const n=Nt(),s=ft();n[t]=()=>i.hasOwnProperty(s.tests,t)?i.defaultTo(s.tests[t],!0):i.isStringValue(e)?Boolean(s.tests[e]):i.optionalFunctionValue(e,i.optionalFunctionValue(j))}}}function It(t){if(et(t),t.isUntested())return function(t){const e=s.VestRuntime.useBus(),n=function(t){return Et.run({currentTest:t},(()=>t.run()))}(t);try{i.isPromise(n)?(t.asyncTest=n,function(t){const{asyncTest:e,message:n}=t;if(!i.isPromise(e))return;t.setPending();const r=s.VestRuntime.useBus(),o=s.VestRuntime.persist((()=>{mt(r,t)})),u=s.VestRuntime.persist((e=>{t.isCanceled()||(t.message=i.isStringValue(e)?e:n,t.fail(),o())}));e.then(o,u)}(t)):mt(e,t)}catch(e){throw new Error(i.text(p.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t),error:e}))}}(t);t.isNonActionable()||i.deferThrow(i.text(p.UNEXPECTED_TEST_REGISTRATION_ERROR,{testObject:JSON.stringify(t)}))}function mt(t,n){n.pass(),t.emit(e.TEST_COMPLETED,n)}function _t(t,...n){const[r,o,u]=i.isFunction(n[1])?n:[void 0,...n];!function(t,e){const n="test";i.invariant(i.isStringValue(t),i.text(p.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"fieldName",expected:"string"})),i.invariant(i.isFunction(e),i.text(p.INVALID_PARAM_PASSED_TO_FUNCTION,{fn_name:n,param:"callback",expected:"function"}))}(t,o);const a={fieldName:t,groupName:Et.useX().groupName,key:u,message:r,testFn:o};return s.VestRuntime.useEmit()(e.TEST_RUN_STARTED),rt.create(It,a)}const gt=i.assign(_t,{memo:function(t){return function(e,...n){const[r,o,u]=n.reverse();return function(t,e){const n=Et.useX().testMemoCache,s=n.get(t);if(i.isNull(s))return n(t,e);const[,r]=s;if(r.isCanceled())return n.invalidate(t),n(t,e);return rt.setNode(r),r}([N(),e,s.VestRuntime.useCurrentCursor()].concat(r),(function(){return t(e,u,o)}))}}(_t)});function ht(){return{group:Ct,include:pt,omitWhen:$,only:H,optional:o,skip:z,skipWhen:X,test:gt}}function Ot(){return Object.freeze(i.assign({done:s.VestRuntime.persist(At)},j()))}function At(...t){const[e,n]=t.reverse(),s=Ot();if(function(t,e,n){var s;return!!(!i.isFunction(t)||e&&i.numberEquals(null===(s=n.tests[e])||void 0===s?void 0:s.testCount,0))}(e,n,s))return s;const r=()=>e(j());return ot.hasRemainingTests(n)?(function(t,e){const[,n]=f(),[,s]=E();e?n((n=>i.assign(n,{[e]:(n[e]||[]).concat(t)}))):s((e=>e.concat(t)))}(r,n),s):(r(),s)}function vt(...t){const[n,r]=t.reverse();!function(t){i.invariant(i.isFunction(t),p.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION)}(n);const o=function({suiteName:t}={}){const e={doneCallbacks:i.tinyState.createTinyState((()=>[])),fieldCallbacks:i.tinyState.createTinyState((()=>({}))),suiteId:i.seq(),suiteName:t,suiteResultCache:c};return s.VestRuntime.createRef(e)}({suiteName:r});function u(...t){return Et.run({},(()=>(s.VestRuntime.useEmit()(e.SUITE_RUN_STARTED),a.create(function(t,...n){const i=s.VestRuntime.useEmit();return()=>(t(...n),i(e.SUITE_CALLBACK_RUN_FINISHED),Ot())}(n,...t))))).output}return s.VestRuntime.Run(o,(()=>{return St(),i.assign(s.VestRuntime.persist(u),Object.assign(Object.assign({get:s.VestRuntime.persist(j),remove:s.VestRuntime.usePrepareEmitter(e.REMOVE_FIELD),reset:s.VestRuntime.usePrepareEmitter(e.RESET_SUITE),resetField:s.VestRuntime.usePrepareEmitter(e.RESET_FIELD)},(t=s.VestRuntime.persist(j),{getError:(...e)=>t().getError(...e),getErrors:(...e)=>t().getErrors(...e),getErrorsByGroup:(...e)=>t().getErrorsByGroup(...e),getWarning:(...e)=>t().getWarning(...e),getWarnings:(...e)=>t().getWarnings(...e),getWarningsByGroup:(...e)=>t().getWarningsByGroup(...e),hasErrors:(...e)=>t().hasErrors(...e),hasErrorsByGroup:(...e)=>t().hasErrorsByGroup(...e),hasWarnings:(...e)=>t().hasWarnings(...e),hasWarningsByGroup:(...e)=>t().hasWarningsByGroup(...e),isValid:(...e)=>t().isValid(...e),isValidByGroup:(...e)=>t().isValidByGroup(...e)})),ht()));var t}))}class Dt extends s.Isolate{constructor(){super(...arguments),this.allowReorder=!0}}function Ct(t,e){return s.Isolate.create((()=>{Et.run({groupName:t},e)}))}const Pt=p.WARN_MUST_BE_CALLED_FROM_TEST;Object.defineProperty(exports,"enforce",{enumerable:!0,get:function(){return n.enforce}}),exports.create=vt,exports.each=function(t,e){i.invariant(i.isFunction(e),p.EACH_CALLBACK_MUST_BE_A_FUNCTION),Dt.create((()=>{t.forEach(((t,n)=>{e(t,n)}))}))},exports.group=Ct,exports.include=pt,exports.mode=function(t){const[,e]=dt();e(t)},exports.omitWhen=$,exports.only=H,exports.optional=o,exports.skip=z,exports.skipWhen=X,exports.staticSuite=function(t){return i.assign(((...e)=>vt(t)(...e)),Object.assign({},ht()))},exports.suiteSelectors=b,exports.test=gt,exports.warn=function(){const t=(e=p.HOOK_CALLED_OUTSIDE,Et.useX(e).currentTest);var e;i.invariant(t,Pt),t.warn()};
@@ -1,30 +1,51 @@
1
- import { invariant, hasOwnProperty, isPositive, isFunction } from 'vest-utils';
1
+ import { invariant, hasOwnProperty, isNullish, isPositive, isFunction } from 'vest-utils';
2
2
  import { suiteSelectors } from 'vest';
3
3
 
4
- // eslint-disable-next-line max-statements
4
+ var ErrorStrings;
5
+ (function (ErrorStrings) {
6
+ ErrorStrings["HOOK_CALLED_OUTSIDE"] = "hook called outside of a running suite.";
7
+ ErrorStrings["EXPECTED_VEST_TEST"] = "Expected value to be an instance of IsolateTest";
8
+ ErrorStrings["FIELD_NAME_REQUIRED"] = "Field name must be passed";
9
+ ErrorStrings["SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION"] = "Suite must be initialized with a function";
10
+ ErrorStrings["PROMISIFY_REQUIRE_FUNCTION"] = "Vest.Promisify must be called with a function";
11
+ ErrorStrings["PARSER_EXPECT_RESULT_OBJECT"] = "Vest parser: expected argument at position 0 to be Vest's result object.";
12
+ ErrorStrings["WARN_MUST_BE_CALLED_FROM_TEST"] = "Warn must be called from within the body of a test function";
13
+ ErrorStrings["EACH_CALLBACK_MUST_BE_A_FUNCTION"] = "Each must be called with a function";
14
+ ErrorStrings["INVALID_PARAM_PASSED_TO_FUNCTION"] = "Incompatible params passed to {fn_name} function. \"{param}\" must be of type {expected}";
15
+ ErrorStrings["TESTS_CALLED_IN_DIFFERENT_ORDER"] = "Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.";
16
+ ErrorStrings["UNEXPECTED_TEST_REGISTRATION_ERROR"] = "Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.";
17
+ ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
18
+ })(ErrorStrings || (ErrorStrings = {}));
19
+
20
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
+ // @ts-ignore - Need to understand why Vest is not being recognized
5
22
  function parse(summary) {
6
- invariant(summary && hasOwnProperty(summary, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
7
- var sel = suiteSelectors(summary);
8
- var testedStorage = {};
9
- var selectors = {
23
+ invariant(summary && hasOwnProperty(summary, 'valid'), ErrorStrings.PARSER_EXPECT_RESULT_OBJECT);
24
+ const sel = suiteSelectors(summary);
25
+ const testedStorage = {};
26
+ const selectors = {
10
27
  invalid: sel.hasErrors,
11
28
  tested: isTested,
12
29
  untested: isUntested,
13
30
  valid: sel.isValid,
14
- warning: sel.hasWarnings
31
+ warning: sel.hasWarnings,
15
32
  };
16
33
  return selectors;
17
34
  // Booleans
18
35
  function isTested(fieldName) {
19
- if (!fieldName) {
36
+ if (isNullish(fieldName)) {
20
37
  return isPositive(summary.testCount);
21
38
  }
22
- if (hasOwnProperty(testedStorage, fieldName))
39
+ if (hasOwnProperty(testedStorage, fieldName)) {
23
40
  return testedStorage[fieldName];
41
+ }
42
+ addFieldToTestedStorage(fieldName);
43
+ return selectors.tested(fieldName);
44
+ }
45
+ function addFieldToTestedStorage(fieldName) {
24
46
  testedStorage[fieldName] =
25
47
  hasOwnProperty(summary.tests, fieldName) &&
26
48
  isPositive(summary.tests[fieldName].testCount);
27
- return selectors.tested(fieldName);
28
49
  }
29
50
  function isUntested(fieldName) {
30
51
  return !(isPositive(summary.testCount) && selectors.tested(fieldName));
@@ -34,14 +55,13 @@ function parse(summary) {
34
55
  /**
35
56
  * Creates a function that returns class names that match the validation result
36
57
  */
37
- function classnames(res, classes) {
38
- if (classes === void 0) { classes = {}; }
39
- var selectors = parse(res);
40
- return function (key) {
41
- var classesArray = [];
42
- for (var selector in classes) {
43
- var sel = selector;
44
- if (isFunction(selectors[sel]) && selectors[sel](key)) {
58
+ function classnames(res, classes = {}) {
59
+ const selectors = parse(res);
60
+ return function cn(fieldName) {
61
+ const classesArray = [];
62
+ for (const selector in classes) {
63
+ const sel = selector;
64
+ if (isFunction(selectors[sel]) && selectors[sel](fieldName)) {
45
65
  classesArray.push(classes[sel]);
46
66
  }
47
67
  }
@@ -49,4 +69,4 @@ function classnames(res, classes) {
49
69
  };
50
70
  }
51
71
 
52
- export default classnames;
72
+ export { classnames as default };
@@ -1 +1 @@
1
- import{suiteSelectors as t}from"vest";import{invariant as e,hasOwnProperty as r,isPositive as n,isFunction as s}from"vest-utils";export default function(i,o){void 0===o&&(o={});var u=function(s){e(s&&r(s,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var i=t(s),o={},u={invalid:i.hasErrors,tested:function(t){return t?r(o,t)?o[t]:(o[t]=r(s.tests,t)&&n(s.tests[t].testCount),u.tested(t)):n(s.testCount)},untested:function(t){return!(n(s.testCount)&&u.tested(t))},valid:i.isValid,warning:i.hasWarnings};return u}(i);return function(t){var e,r=[];for(e in o){var n=e;s(u[n])&&u[n](t)&&r.push(o[n])}return r.join(" ")}}
1
+ import{invariant as e,hasOwnProperty as t,isNullish as n,isPositive as s,isFunction as r}from"vest-utils";import{suiteSelectors as o}from"vest";var i;function a(a,u={}){const E=function(r){e(r&&t(r,"valid"),i.PARSER_EXPECT_RESULT_OBJECT);const a=o(r),u={},E={invalid:a.hasErrors,tested:function(e){return n(e)?s(r.testCount):t(u,e)?u[e]:(c(e),E.tested(e))},untested:function(e){return!(s(r.testCount)&&E.tested(e))},valid:a.isValid,warning:a.hasWarnings};return E;function c(e){u[e]=t(r.tests,e)&&s(r.tests[e].testCount)}}(a);return function(e){const t=[];for(const n in u){const s=n;r(E[s])&&E[s](e)&&t.push(u[s])}return t.join(" ")}}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.',e.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(i||(i={}));export{a as default};
@@ -1,58 +1 @@
1
- import { ctx } from 'n4s';
2
- import { defaultTo, assign, mapFirst, invariant, StringObject } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToPassing(callback) {
18
- return defaultTo(callback, passing());
19
- }
20
-
21
- function runLazyRule(lazyRule, currentValue) {
22
- try {
23
- return lazyRule.run(currentValue);
24
- }
25
- catch (_a) {
26
- return failing();
27
- }
28
- }
29
-
30
- /* eslint-disable max-lines-per-function */
31
- function compose() {
32
- var composites = [];
33
- for (var _i = 0; _i < arguments.length; _i++) {
34
- composites[_i] = arguments[_i];
35
- }
36
- return assign(function (value) {
37
- var res = run(value);
38
- invariant(res.pass, StringObject(res.message));
39
- }, {
40
- run: run,
41
- test: function (value) { return run(value).pass; }
42
- });
43
- function run(value) {
44
- return ctx.run({ value: value }, function () {
45
- return defaultToPassing(mapFirst(composites, function (composite, breakout) {
46
- /* HACK: Just a small white lie. ~~HELP WANTED~~.
47
- The ideal is that instead of `LazyRuleRunners` We would simply use `Lazy` to begin with.
48
- The problem is that lazy rules can't really be passed to this function due to some generic hell
49
- so we're limiting it to a small set of functions.
50
- */
51
- var res = runLazyRule(composite, value);
52
- breakout(!res.pass, res);
53
- }));
54
- });
55
- }
56
- }
57
-
58
- export default compose;
1
+ export { default } from 'n4s/compose';
@@ -1 +1 @@
1
- import{defaultTo as n,assign as t,mapFirst as r,invariant as u,StringObject as s}from"vest-utils";import{ctx as e}from"n4s";function o(n,t){return n={pass:n},t&&(n.message=t),n}export default function(){function a(t){return e.run({value:t},(function(){return n(r(f,(function(n,r){try{var u=n.run(t)}catch(n){u=o(!1)}r(!u.pass,u)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return t((function(n){n=a(n),u(n.pass,s(n.message))}),{run:a,test:function(n){return a(n).pass}})}
1
+ export{default}from"n4s/compose";
@@ -1,90 +1,2 @@
1
- import { enforce } from 'n4s';
2
- import { defaultTo, mapFirst, bindNot, greaterThan } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToFailing(callback) {
18
- return defaultTo(callback, failing());
19
- }
20
- function defaultToPassing(callback) {
21
- return defaultTo(callback, passing());
22
- }
23
-
24
- function runLazyRule(lazyRule, currentValue) {
25
- try {
26
- return lazyRule.run(currentValue);
27
- }
28
- catch (_a) {
29
- return failing();
30
- }
31
- }
32
-
33
- function allOf(value) {
34
- var rules = [];
35
- for (var _i = 1; _i < arguments.length; _i++) {
36
- rules[_i - 1] = arguments[_i];
37
- }
38
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
39
- var res = runLazyRule(rule, value);
40
- breakout(!res.pass, res);
41
- }));
42
- }
43
-
44
- function anyOf(value) {
45
- var rules = [];
46
- for (var _i = 1; _i < arguments.length; _i++) {
47
- rules[_i - 1] = arguments[_i];
48
- }
49
- return defaultToFailing(mapFirst(rules, function (rule, breakout) {
50
- var res = runLazyRule(rule, value);
51
- breakout(res.pass, res);
52
- }));
53
- }
54
-
55
- function noneOf(value) {
56
- var rules = [];
57
- for (var _i = 1; _i < arguments.length; _i++) {
58
- rules[_i - 1] = arguments[_i];
59
- }
60
- return defaultToPassing(mapFirst(rules, function (rule, breakout) {
61
- var res = runLazyRule(rule, value);
62
- breakout(res.pass, failing());
63
- }));
64
- }
65
-
66
- function equals(value, arg1) {
67
- return value === arg1;
68
- }
69
- bindNot(equals);
70
-
71
- var REQUIRED_COUNT = 1;
72
- function oneOf(value) {
73
- var rules = [];
74
- for (var _i = 1; _i < arguments.length; _i++) {
75
- rules[_i - 1] = arguments[_i];
76
- }
77
- var passingCount = 0;
78
- rules.some(function (rule) {
79
- var res = runLazyRule(rule, value);
80
- if (res.pass) {
81
- passingCount++;
82
- }
83
- if (greaterThan(passingCount, REQUIRED_COUNT)) {
84
- return false;
85
- }
86
- });
87
- return ruleReturn(equals(passingCount, REQUIRED_COUNT));
88
- }
89
-
90
- enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
1
+ import * as compounds from 'n4s/compounds';
2
+ export { compounds };
@@ -1 +1 @@
1
- import{defaultTo as n,mapFirst as r,bindNot as t,greaterThan as f}from"vest-utils";import{enforce as o}from"n4s";function u(n,r){return n={pass:n},r&&(n.message=r),n}function e(n,r){try{return n.run(r)}catch(n){return u(!1)}}t((function(n,r){return n===r})),o.extend({allOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r(!(n=e(n,t)).pass,n)})),u(!0))},anyOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,n)})),u(!1))},noneOf:function(t){for(var f=[],o=1;o<arguments.length;o++)f[o-1]=arguments[o];return n(r(f,(function(n,r){r((n=e(n,t)).pass,u(!1))})),u(!0))},oneOf:function(n){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];var o=0;return r.some((function(r){if(e(r,n).pass&&o++,f(o,1))return!1})),u(1===o)}});
1
+ import*as o from"n4s/compounds";export{o as compounds};
@@ -1,88 +1,2 @@
1
- import { ctx, enforce } from 'n4s';
2
- import { defaultTo, mapFirst, isNullish, hasOwnProperty } from 'vest-utils';
3
-
4
- function ruleReturn(pass, message) {
5
- var output = { pass: pass };
6
- if (message) {
7
- output.message = message;
8
- }
9
- return output;
10
- }
11
- function failing() {
12
- return ruleReturn(false);
13
- }
14
- function passing() {
15
- return ruleReturn(true);
16
- }
17
- function defaultToPassing(callback) {
18
- return defaultTo(callback, passing());
19
- }
20
-
21
- function runLazyRule(lazyRule, currentValue) {
22
- try {
23
- return lazyRule.run(currentValue);
24
- }
25
- catch (_a) {
26
- return failing();
27
- }
28
- }
29
-
30
- function isArrayOf(inputArray, currentRule) {
31
- return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
32
- var res = ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
33
- breakout(!res.pass, res);
34
- }));
35
- }
36
-
37
- function loose(inputObject, shapeObject) {
38
- var _loop_1 = function (key) {
39
- var currentValue = inputObject[key];
40
- var currentRule = shapeObject[key];
41
- var res = ctx.run({ value: currentValue, set: true, meta: { key: key } }, function () {
42
- return runLazyRule(currentRule, currentValue);
43
- });
44
- if (!res.pass) {
45
- return { value: res };
46
- }
47
- };
48
- for (var key in shapeObject) {
49
- var state_1 = _loop_1(key);
50
- if (typeof state_1 === "object")
51
- return state_1.value;
52
- }
53
- return passing();
54
- }
55
-
56
- function optional(value, ruleChain) {
57
- if (isNullish(value)) {
58
- return passing();
59
- }
60
- return runLazyRule(ruleChain, value);
61
- }
62
-
63
- function shape(inputObject, shapeObject) {
64
- var baseRes = loose(inputObject, shapeObject);
65
- if (!baseRes.pass) {
66
- return baseRes;
67
- }
68
- for (var key in inputObject) {
69
- if (!hasOwnProperty(shapeObject, key)) {
70
- return failing();
71
- }
72
- }
73
- return passing();
74
- }
75
-
76
- // Help needed improving the typings of this file.
77
- // Ideally, we'd be able to extend ShapeObject, but that's not possible.
78
- function partial(shapeObject) {
79
- var output = {};
80
- for (var key in shapeObject) {
81
- output[key] = enforce.optional(shapeObject[key]);
82
- }
83
- return output;
84
- }
85
-
86
- enforce.extend({ isArrayOf: isArrayOf, loose: loose, optional: optional, shape: shape });
87
-
88
- export { partial };
1
+ import * as schema from 'n4s/schema';
2
+ export { schema };
@@ -1 +1 @@
1
- import{defaultTo as r,mapFirst as n,isNullish as t,hasOwnProperty as e}from"vest-utils";import{ctx as u,enforce as o}from"n4s";function i(r,n){return r={pass:r},n&&(r.message=n),r}function a(r,n){try{return r.run(n)}catch(r){return i(!1)}}function f(r,n){function t(t){var e=r[t],o=n[t];if(!(t=u.run({value:e,set:!0,meta:{key:t}},(function(){return a(o,e)}))).pass)return{value:t}}for(var e in n){var o=t(e);if("object"==typeof o)return o.value}return i(!0)}o.extend({isArrayOf:function(t,e){return r(n(t,(function(r,n,t){n(!(t=u.run({value:r,set:!0,meta:{index:t}},(function(){return a(e,r)}))).pass,t)})),i(!0))},loose:f,optional:function(r,n){return t(r)?i(!0):a(n,r)},shape:function(r,n){var t=f(r,n);if(!t.pass)return t;for(var u in r)if(!e(n,u))return i(!1);return i(!0)}});export function partial(r){var n,t={};for(n in r)t[n]=o.optional(r[n]);return t}
1
+ import*as m from"n4s/schema";export{m as schema};
@@ -1,30 +1,51 @@
1
1
  import { suiteSelectors } from 'vest';
2
- import { invariant, hasOwnProperty, isPositive } from 'vest-utils';
2
+ import { invariant, hasOwnProperty, isNullish, isPositive } from 'vest-utils';
3
3
 
4
- // eslint-disable-next-line max-statements
4
+ var ErrorStrings;
5
+ (function (ErrorStrings) {
6
+ ErrorStrings["HOOK_CALLED_OUTSIDE"] = "hook called outside of a running suite.";
7
+ ErrorStrings["EXPECTED_VEST_TEST"] = "Expected value to be an instance of IsolateTest";
8
+ ErrorStrings["FIELD_NAME_REQUIRED"] = "Field name must be passed";
9
+ ErrorStrings["SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION"] = "Suite must be initialized with a function";
10
+ ErrorStrings["PROMISIFY_REQUIRE_FUNCTION"] = "Vest.Promisify must be called with a function";
11
+ ErrorStrings["PARSER_EXPECT_RESULT_OBJECT"] = "Vest parser: expected argument at position 0 to be Vest's result object.";
12
+ ErrorStrings["WARN_MUST_BE_CALLED_FROM_TEST"] = "Warn must be called from within the body of a test function";
13
+ ErrorStrings["EACH_CALLBACK_MUST_BE_A_FUNCTION"] = "Each must be called with a function";
14
+ ErrorStrings["INVALID_PARAM_PASSED_TO_FUNCTION"] = "Incompatible params passed to {fn_name} function. \"{param}\" must be of type {expected}";
15
+ ErrorStrings["TESTS_CALLED_IN_DIFFERENT_ORDER"] = "Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.";
16
+ ErrorStrings["UNEXPECTED_TEST_REGISTRATION_ERROR"] = "Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.";
17
+ ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
18
+ })(ErrorStrings || (ErrorStrings = {}));
19
+
20
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
+ // @ts-ignore - Need to understand why Vest is not being recognized
5
22
  function parse(summary) {
6
- invariant(summary && hasOwnProperty(summary, 'valid'), "Vest parser: expected argument at position 0 to be Vest's result object.");
7
- var sel = suiteSelectors(summary);
8
- var testedStorage = {};
9
- var selectors = {
23
+ invariant(summary && hasOwnProperty(summary, 'valid'), ErrorStrings.PARSER_EXPECT_RESULT_OBJECT);
24
+ const sel = suiteSelectors(summary);
25
+ const testedStorage = {};
26
+ const selectors = {
10
27
  invalid: sel.hasErrors,
11
28
  tested: isTested,
12
29
  untested: isUntested,
13
30
  valid: sel.isValid,
14
- warning: sel.hasWarnings
31
+ warning: sel.hasWarnings,
15
32
  };
16
33
  return selectors;
17
34
  // Booleans
18
35
  function isTested(fieldName) {
19
- if (!fieldName) {
36
+ if (isNullish(fieldName)) {
20
37
  return isPositive(summary.testCount);
21
38
  }
22
- if (hasOwnProperty(testedStorage, fieldName))
39
+ if (hasOwnProperty(testedStorage, fieldName)) {
23
40
  return testedStorage[fieldName];
41
+ }
42
+ addFieldToTestedStorage(fieldName);
43
+ return selectors.tested(fieldName);
44
+ }
45
+ function addFieldToTestedStorage(fieldName) {
24
46
  testedStorage[fieldName] =
25
47
  hasOwnProperty(summary.tests, fieldName) &&
26
48
  isPositive(summary.tests[fieldName].testCount);
27
- return selectors.tested(fieldName);
28
49
  }
29
50
  function isUntested(fieldName) {
30
51
  return !(isPositive(summary.testCount) && selectors.tested(fieldName));
@@ -1 +1 @@
1
- import{invariant as t,hasOwnProperty as e,isPositive as s}from"vest-utils";import{suiteSelectors as r}from"vest";export function parse(n){t(n&&e(n,"valid"),"Vest parser: expected argument at position 0 to be Vest's result object.");var i=r(n),o={},a={invalid:i.hasErrors,tested:function(t){return t?e(o,t)?o[t]:(o[t]=e(n.tests,t)&&s(n.tests[t].testCount),a.tested(t)):s(n.testCount)},untested:function(t){return!(s(n.testCount)&&a.tested(t))},valid:i.isValid,warning:i.hasWarnings};return a}
1
+ import{suiteSelectors as e}from"vest";import{invariant as t,hasOwnProperty as s,isNullish as n,isPositive as r}from"vest-utils";var i;function o(o){t(o&&s(o,"valid"),i.PARSER_EXPECT_RESULT_OBJECT);const a=e(o),E={},u={invalid:a.hasErrors,tested:function(e){if(n(e))return r(o.testCount);if(s(E,e))return E[e];return _(e),u.tested(e)},untested:function(e){return!(r(o.testCount)&&u.tested(e))},valid:a.isValid,warning:a.hasWarnings};return u;function _(e){E[e]=s(o.tests,e)&&r(o.tests[e].testCount)}}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.',e.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(i||(i={}));export{o as parse};
@@ -1,14 +1,26 @@
1
1
  import { invariant, isFunction } from 'vest-utils';
2
2
 
3
- var promisify = function (validatorFn) {
4
- return function () {
5
- var args = [];
6
- for (var _i = 0; _i < arguments.length; _i++) {
7
- args[_i] = arguments[_i];
8
- }
9
- invariant(isFunction(validatorFn), 'promisify: Expected validatorFn to be a function.');
10
- return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
3
+ var ErrorStrings;
4
+ (function (ErrorStrings) {
5
+ ErrorStrings["HOOK_CALLED_OUTSIDE"] = "hook called outside of a running suite.";
6
+ ErrorStrings["EXPECTED_VEST_TEST"] = "Expected value to be an instance of IsolateTest";
7
+ ErrorStrings["FIELD_NAME_REQUIRED"] = "Field name must be passed";
8
+ ErrorStrings["SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION"] = "Suite must be initialized with a function";
9
+ ErrorStrings["PROMISIFY_REQUIRE_FUNCTION"] = "Vest.Promisify must be called with a function";
10
+ ErrorStrings["PARSER_EXPECT_RESULT_OBJECT"] = "Vest parser: expected argument at position 0 to be Vest's result object.";
11
+ ErrorStrings["WARN_MUST_BE_CALLED_FROM_TEST"] = "Warn must be called from within the body of a test function";
12
+ ErrorStrings["EACH_CALLBACK_MUST_BE_A_FUNCTION"] = "Each must be called with a function";
13
+ ErrorStrings["INVALID_PARAM_PASSED_TO_FUNCTION"] = "Incompatible params passed to {fn_name} function. \"{param}\" must be of type {expected}";
14
+ ErrorStrings["TESTS_CALLED_IN_DIFFERENT_ORDER"] = "Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.";
15
+ ErrorStrings["UNEXPECTED_TEST_REGISTRATION_ERROR"] = "Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.";
16
+ ErrorStrings["UNEXPECTED_TEST_RUN_ERROR"] = "Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}.";
17
+ })(ErrorStrings || (ErrorStrings = {}));
18
+
19
+ function promisify(validatorFn) {
20
+ return (...args) => {
21
+ invariant(isFunction(validatorFn), ErrorStrings.PROMISIFY_REQUIRE_FUNCTION);
22
+ return new Promise(resolve => validatorFn(...args).done(resolve));
11
23
  };
12
- };
24
+ }
13
25
 
14
- export default promisify;
26
+ export { promisify as default };
@@ -1 +1 @@
1
- import{invariant as t,isFunction as n}from"vest-utils";export default function(o){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return t(n(o),"promisify: Expected validatorFn to be a function."),new Promise((function(t){return o.apply(void 0,r).done(t)}))}}
1
+ import{invariant as e,isFunction as t}from"vest-utils";var s;function n(n){return(...r)=>(e(t(n),s.PROMISIFY_REQUIRE_FUNCTION),new Promise((e=>n(...r).done(e))))}!function(e){e.HOOK_CALLED_OUTSIDE="hook called outside of a running suite.",e.EXPECTED_VEST_TEST="Expected value to be an instance of IsolateTest",e.FIELD_NAME_REQUIRED="Field name must be passed",e.SUITE_MUST_BE_INITIALIZED_WITH_FUNCTION="Suite must be initialized with a function",e.PROMISIFY_REQUIRE_FUNCTION="Vest.Promisify must be called with a function",e.PARSER_EXPECT_RESULT_OBJECT="Vest parser: expected argument at position 0 to be Vest's result object.",e.WARN_MUST_BE_CALLED_FROM_TEST="Warn must be called from within the body of a test function",e.EACH_CALLBACK_MUST_BE_A_FUNCTION="Each must be called with a function",e.INVALID_PARAM_PASSED_TO_FUNCTION='Incompatible params passed to {fn_name} function. "{param}" must be of type {expected}',e.TESTS_CALLED_IN_DIFFERENT_ORDER='Vest Critical Error: Tests called in different order than previous run.\n expected: {fieldName}\n received: {prevName}\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.',e.UNEXPECTED_TEST_REGISTRATION_ERROR="Unexpected error encountered during test registration.\n Please report this issue to Vest's Github repository.\n Test Object: {testObject}.\n Error: {error}.",e.UNEXPECTED_TEST_RUN_ERROR="Unexpected error encountered during test run. Please report this issue to Vest's Github repository.\n Test Object: {testObject}."}(s||(s={}));export{n as default};