functional-models 1.0.27 → 1.1.2

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 (105) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc +9 -15
  3. package/cucumber.js +10 -0
  4. package/dist/src/constants.d.ts +14 -0
  5. package/dist/src/constants.js +19 -0
  6. package/dist/src/constants.js.map +1 -0
  7. package/dist/src/errors.d.ts +9 -0
  8. package/dist/src/errors.js +15 -0
  9. package/dist/src/errors.js.map +1 -0
  10. package/dist/src/index.d.ts +9 -0
  11. package/dist/src/index.js +39 -0
  12. package/dist/src/index.js.map +1 -0
  13. package/dist/src/interfaces.d.ts +145 -0
  14. package/dist/src/interfaces.js +5 -0
  15. package/dist/src/interfaces.js.map +1 -0
  16. package/dist/src/lazy.d.ts +2 -0
  17. package/dist/src/lazy.js +37 -0
  18. package/dist/src/lazy.js.map +1 -0
  19. package/dist/src/methods.d.ts +4 -0
  20. package/dist/src/methods.js +18 -0
  21. package/dist/src/methods.js.map +1 -0
  22. package/dist/src/models.d.ts +3 -0
  23. package/dist/src/models.js +128 -0
  24. package/dist/src/models.js.map +1 -0
  25. package/dist/src/properties.d.ts +16 -0
  26. package/dist/src/properties.js +208 -0
  27. package/dist/src/properties.js.map +1 -0
  28. package/dist/src/serialization.d.ts +3 -0
  29. package/dist/src/serialization.js +49 -0
  30. package/dist/src/serialization.js.map +1 -0
  31. package/dist/src/utils.d.ts +4 -0
  32. package/dist/src/utils.js +44 -0
  33. package/dist/src/utils.js.map +1 -0
  34. package/dist/src/validation.d.ts +29 -0
  35. package/dist/src/validation.js +286 -0
  36. package/dist/src/validation.js.map +1 -0
  37. package/dist/stepDefinitions/oldSteps.d.ts +1 -0
  38. package/dist/stepDefinitions/oldSteps.js +191 -0
  39. package/dist/stepDefinitions/oldSteps.js.map +1 -0
  40. package/dist/stepDefinitions/tssteps.d.ts +1 -0
  41. package/dist/stepDefinitions/tssteps.js +96 -0
  42. package/dist/stepDefinitions/tssteps.js.map +1 -0
  43. package/dist/test/src/errors.test.d.ts +1 -0
  44. package/dist/test/src/errors.test.js +33 -0
  45. package/dist/test/src/errors.test.js.map +1 -0
  46. package/dist/test/src/lazy.test.d.ts +1 -0
  47. package/dist/test/src/lazy.test.js +28 -0
  48. package/dist/test/src/lazy.test.js.map +1 -0
  49. package/dist/test/src/methods.test.d.ts +1 -0
  50. package/dist/test/src/methods.test.js +48 -0
  51. package/dist/test/src/methods.test.js.map +1 -0
  52. package/dist/test/src/models.test.d.ts +1 -0
  53. package/dist/test/src/models.test.js +395 -0
  54. package/dist/test/src/models.test.js.map +1 -0
  55. package/dist/test/src/properties.test.d.ts +1 -0
  56. package/dist/test/src/properties.test.js +724 -0
  57. package/dist/test/src/properties.test.js.map +1 -0
  58. package/dist/test/src/serialization.test.d.ts +1 -0
  59. package/dist/test/src/serialization.test.js +91 -0
  60. package/dist/test/src/serialization.test.js.map +1 -0
  61. package/dist/test/src/utils.test.d.ts +1 -0
  62. package/dist/test/src/utils.test.js +81 -0
  63. package/dist/test/src/utils.test.js.map +1 -0
  64. package/dist/test/src/validation.test.d.ts +1 -0
  65. package/dist/test/src/validation.test.js +612 -0
  66. package/dist/test/src/validation.test.js.map +1 -0
  67. package/features/arrayFields.feature +7 -7
  68. package/features/basic-ts.feature +13 -0
  69. package/features/functions.feature +2 -3
  70. package/package.json +35 -10
  71. package/src/constants.ts +15 -0
  72. package/src/{errors.js → errors.ts} +6 -4
  73. package/src/index.ts +12 -0
  74. package/src/interfaces.ts +323 -0
  75. package/src/lazy.ts +24 -0
  76. package/src/methods.ts +30 -0
  77. package/src/models.ts +183 -0
  78. package/src/properties.ts +375 -0
  79. package/src/serialization.ts +39 -0
  80. package/src/{utils.js → utils.ts} +16 -26
  81. package/src/validation.ts +390 -0
  82. package/{features/stepDefinitions/steps.js → stepDefinitions/oldSteps.ts} +76 -53
  83. package/stepDefinitions/tssteps.ts +107 -0
  84. package/test/src/errors.test.ts +31 -0
  85. package/test/src/{lazy.test.js → lazy.test.ts} +4 -4
  86. package/test/src/methods.test.ts +45 -0
  87. package/test/src/models.test.ts +417 -0
  88. package/test/src/{properties.test.js → properties.test.ts} +251 -58
  89. package/test/src/serialization.test.ts +80 -0
  90. package/test/src/{utils.test.js → utils.test.ts} +29 -7
  91. package/test/src/{validation.test.js → validation.test.ts} +278 -210
  92. package/tsconfig.json +100 -0
  93. package/src/constants.js +0 -19
  94. package/src/functions.js +0 -7
  95. package/src/index.js +0 -10
  96. package/src/lazy.js +0 -19
  97. package/src/models.js +0 -152
  98. package/src/properties.js +0 -313
  99. package/src/serialization.js +0 -50
  100. package/src/validation.js +0 -285
  101. package/test/base/index.test.js +0 -5
  102. package/test/src/functions.test.js +0 -45
  103. package/test/src/index.test.js +0 -5
  104. package/test/src/models.test.js +0 -380
  105. package/test/src/serialization.test.js +0 -127
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAoC;AACpC,yDAAgC;AAChC,6DAAoC;AAoBpC,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAA;AAwWC,0CAAe;AAtWjB,MAAM,WAAW,GAAG,CAClB,KAAwC,EAC1B,EAAE;IAChB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,YAAY,GAChB,CAAC,MAAgB,EAAE,KAAa,EAAkC,EAAE,CACpE,CAAC,KAAU,EAAE,EAAE;IACb,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;QAC3B,OAAO,KAAK,CAAA;KACb;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEH,MAAM,YAAY,GAChB,CAAC,IAAY,EAAE,YAAoB,EAAkC,EAAE,CACvE,CAAC,KAAU,EAAE,EAAE;IACb,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE;QACzB,OAAO,YAAY,CAAA;KACpB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEH,MAAM,MAAM,GACV,CAAC,IAAY,EAAkC,EAAE,CACjD,CAAC,KAAU,EAAE,EAAE;IACb,aAAa;IACb,OAAO,YAAY,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AACvD,CAAC,CAAA;AAyTD,wBAAM;AAxTR,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAoT/B,4BAAQ;AAnTV,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;AAsTpE,8BAAS;AApTX,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAkTjC,8BAAS;AAjTX,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAkT/B,4BAAQ;AAjTV,MAAM,OAAO,GAAG,YAAY,CAC1B,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAC5B,uBAAuB,CACxB,CAAA;AAkTC,0BAAO;AAhTT,MAAM,mCAAmC,GAAG;IAC1C,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IACpC,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ;IAClC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IACpC,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ;CACnC,CAAA;AAED,MAAM,SAAS,GACb,CAAC,IAAY,EAAkC,EAAE,CACjD,CAAC,KAAgC,EAAE,EAAE;IACnC,aAAa;IACb,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,UAAU,EAAE;QACd,OAAO,UAAU,CAAA;KAClB;IACD,MAAM,SAAS,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3E,OAAQ,KAAqB,CAAC,MAAM,CAClC,CAAC,GAAuB,EAAE,CAAiB,EAAE,EAAE;QAC7C,IAAI,GAAG,EAAE;YACP,OAAO,GAAG,CAAA;SACX;QACD,aAAa;QACb,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC,EACD,SAAS,CACV,CAAA;AACH,CAAC,CAAA;AAkSD,8BAAS;AAhSX,MAAM,UAAU,GACd,CACE,KAAsB,EACtB,KAAc,EACd,eAAuB,oBAAoB,EACX,EAAE,CACpC,CAAC,KAAqB,EAAE,EAAE;IACxB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACpC,aAAa;IACb,OAAO,YAAY,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC,CAAA;AAiRD,gCAAU;AA/QZ,MAAM,OAAO,GACX,CAAC,WAAsC,EAAkC,EAAE,CAC3E,CAAC,KAAgC,EAAE,EAAE;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,GAAG,EAAE;YACP,OAAO,GAAG,GAAG,wBAAwB,CAAA;SACtC;KACF;SAAM;QACL,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAuB,CAAC,EAAE;YAClD,OAAO,GAAG,KAAK,wBAAwB,CAAA;SACxC;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA8PD,0BAAO;AA5PT,MAAM,MAAM,GAAyC,CAAC,KAAW,EAAE,EAAE;IACnE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,qBAAqB,CAAA;KAC7B;IACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QACtB,OAAO,qBAAqB,CAAA;KAC7B;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA+OC,wBAAM;AA7OR,MAAM,UAAU,GAAmC,CAAC,KAAW,EAAE,EAAE;IACjE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IACD,aAAa;IACb,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QACjC,OAAO,SAAS,CAAA;KACjB;IACD,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,KAAK,EAAE;QACT,aAAa;QACb,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,qBAAqB,CAAA;SAC7B;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA+NC,gCAAU;AA7NZ,MAAM,SAAS,GACb,CAAC,GAAW,EAA0C,EAAE,CACxD,CAAC,KAAa,EAAE,EAAE;IAChB,aAAa;IACb,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAA;KACnB;IACD,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE;QACxB,OAAO,kBAAkB,GAAG,EAAE,CAAA;KAC/B;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAkND,8BAAS;AAhNX,MAAM,SAAS,GACb,CAAC,GAAW,EAA0C,EAAE,CACxD,CAAC,KAAa,EAAE,EAAE;IAChB,aAAa;IACb,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAA;KACnB;IACD,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE;QACxB,OAAO,kBAAkB,GAAG,EAAE,CAAA;KAC/B;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAqMD,8BAAS;AAnMX,MAAM,aAAa,GACjB,CAAC,GAAW,EAA0C,EAAE,CACxD,CAAC,KAAa,EAAE,EAAE;IAChB,aAAa;IACb,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAA;KACnB;IACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;QAC/B,OAAO,yBAAyB,GAAG,EAAE,CAAA;KACtC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAyLD,sCAAa;AAvLf,MAAM,aAAa,GACjB,CAAC,GAAW,EAA0C,EAAE,CACxD,CAAC,KAAa,EAAE,EAAE;IAChB,aAAa;IACb,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAA;KACnB;IACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;QAC/B,OAAO,yBAAyB,GAAG,EAAE,CAAA;KACtC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA4KD,sCAAa;AA1Kf,MAAM,kBAAkB,GAAG,CACzB,eAA6C,EAC0B,EAAE;IACzE,OAAO,CAAC,KAA6B,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,sBAAsB,CAAA;SAC9B;QACD,qEAAqE;QACrE,0BAA0B;QAC1B,MAAM,KAAK,GACT,OAAO,eAAe,KAAK,UAAU;YACnC,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,eAAe,CAAA;QACrB,wEAAwE;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAA;QACzC,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO,mBAAmB,MAAM,sBAAsB,MAAM,EAAE,CAAA;SAC/D;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC,CAAA;AA4JC,gDAAkB;AA1JpB,MAAM,kBAAkB,GAAG,CACzB,KAAU,EACV,eAEyC,EACzC,EAAE;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAErB,MAAM,qBAAqB,GAAsB,CAC/C,QAA4B,EAC5B,YAA6B,EAC7B,EAAE;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC,CAAC,CACH,CAAA;QACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC,CAAA,CAAA;IACD,OAAO,qBAAqB,CAAA;AAC9B,CAAC,CAAA;AA+HC,gDAAkB;AA7HpB,MAAM,cAAc,GAAmC,GAAG,EAAE,CAAC,SAAS,CAAA;AA8HpE,wCAAc;AA5HhB,MAAM,WAAW,GACf,CAAC,MAA4D,EAAE,EAAE,CACjE,CAAC,WAAgB,EAAE,EAAE;IACnB,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAChC,MAAM,gBAAgB,GAAmC,CACvD,KAAU,EACV,aAAiC,EACjC,SAA0B,EAC1B,EAAE;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;IAC9C,CAAC,CAAA;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAMH,MAAM,cAAc,GAAG,CAAC,SAAyC,EAAE,EAAE,CAAC,GAAG,EAAE;IACzE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAqB;IAClD,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;CAC9B,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,WAAwB,EACxB,MAAsB,EACH,EAAE;IACrB,MAAM,kBAAkB,GAAsB,CAC5C,QAAQ,EACR,YAA6B,EAC7B,EAAE;QACF,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,EAAE,CAAA;SACZ;QACD,MAAM,UAAU,GAA0C;YACxD,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC7C,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;iBACrB;gBACD,OAAO,cAAc,CAAA;YACvB,CAAC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChB,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAA;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;YACrC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,EAAE;YAC9B,OAAO,EAAE,CAAA;SACV;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAA,CAAA;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA;AA4DC,0DAAuB;AA1DzB,MAAM,oBAAoB,GAAG,CAC3B,UAA8B,EAC9B,eAAoD,EACpD,EAAE;IACF,MAAM,eAAe,GAAG,CACtB,QAA4B,EAC5B,OAAe,EACO,EAAE;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAS,EAAE;YACvC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;aAC5C;YACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACnD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;YAC3C,MAAM,wBAAwB,GAAG,MAAM,OAAO,CAAC,GAAG,CAChD,gBAAgB,CAAC,GAAG,CAAC,CAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;gBAC9C,OAAO,CAAC,GAAG,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;YACvD,CAAC,CAAA,CAAC,CACH,CAAA;YACD,MAAM,qBAAqB,GAAG,CAC5B,MAAM,OAAO,CAAC,GAAG,CACf,eAAe;gBACb,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAC9B,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAC3C;gBACH,CAAC,CAAC,EAAE,CACP,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAChB,MAAM,cAAc,GAAG,wBAAwB;iBAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC5D,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBAC7B,OAAO,IAAA,eAAK,EAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC9C,CAAC,EAAE,EAAE,CAAC,CAAA;YACR,OAAO,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBACrC,CAAC,CAAC,IAAA,eAAK,EAAC,cAAc,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;gBAC3D,CAAC,CAAC,cAAc,CAAA;QACpB,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;IACD,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAoBC,oDAAoB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const chai_1 = require("chai");
16
+ const flatMap_1 = __importDefault(require("lodash/flatMap"));
17
+ const cucumber_1 = require("@cucumber/cucumber");
18
+ const src_1 = require("../src");
19
+ const instanceToString = (0, src_1.WrapperInstanceMethod)(modelInstance => {
20
+ return `${modelInstance.getModel().getName()}-Instance`;
21
+ });
22
+ const instanceToJson = (0, src_1.WrapperInstanceMethod)((modelInstance) => __awaiter(void 0, void 0, void 0, function* () {
23
+ return JSON.stringify(yield modelInstance.toObj());
24
+ }));
25
+ const modelToString = (0, src_1.WrapperModelMethod)(model => {
26
+ return `${model.getName()}-[${Object.keys(model.getModelDefinition().properties).join(',')}]`;
27
+ });
28
+ const modelWrapper = (0, src_1.WrapperModelMethod)(model => {
29
+ return model;
30
+ });
31
+ const MODEL_DEFINITIONS = {
32
+ FunctionModel1: (0, src_1.BaseModel)('FunctionModel1', {
33
+ properties: {
34
+ id: (0, src_1.UniqueId)({ required: true }),
35
+ name: (0, src_1.TextProperty)({ required: true }),
36
+ },
37
+ modelMethods: {
38
+ modelWrapper,
39
+ },
40
+ instanceMethods: {
41
+ toString: instanceToString,
42
+ toJson: instanceToJson,
43
+ },
44
+ }),
45
+ TestModel1: (0, src_1.BaseModel)('TestModel1', {
46
+ properties: {
47
+ name: (0, src_1.Property)('Text', { required: true }),
48
+ type: (0, src_1.Property)('Type', { required: true, isString: true }),
49
+ flag: (0, src_1.Property)('Flag', { required: true, isNumber: true }),
50
+ },
51
+ }),
52
+ ArrayModel1: (0, src_1.BaseModel)('ArrayModel1', {
53
+ properties: {
54
+ ArrayProperty: (0, src_1.Property)('Array', {
55
+ isArray: true,
56
+ validators: [src_1.validation.arrayType(src_1.validation.TYPE_PRIMITIVES.integer)],
57
+ }),
58
+ },
59
+ }),
60
+ ArrayModel2: (0, src_1.BaseModel)('ArrayModel2', {
61
+ properties: {
62
+ ArrayProperty: (0, src_1.Property)('Array', { isArray: true }),
63
+ },
64
+ }),
65
+ ArrayModel3: (0, src_1.BaseModel)('ArrayModel3', {
66
+ properties: {
67
+ ArrayProperty: (0, src_1.ArrayProperty)({}),
68
+ },
69
+ }),
70
+ ArrayModel4: (0, src_1.BaseModel)('ArrayModel4', {
71
+ properties: {
72
+ ArrayProperty: (0, src_1.ArrayProperty)({
73
+ choices: [4, 5, 6],
74
+ validators: [src_1.validation.arrayType(src_1.validation.TYPE_PRIMITIVES.integer)],
75
+ }),
76
+ },
77
+ }),
78
+ };
79
+ const MODEL_INPUT_VALUES = {
80
+ FunctionModelData1: {
81
+ id: 'my-id',
82
+ name: 'function-model-name',
83
+ },
84
+ TestModel1a: {
85
+ name: 'my-name',
86
+ type: 1,
87
+ flag: '1',
88
+ },
89
+ TestModel1b: {
90
+ name: 'my-name',
91
+ type: 'a-type',
92
+ flag: 1,
93
+ },
94
+ ArrayModelData1: {
95
+ ArrayProperty: [1, 2, 3, 4, 5],
96
+ },
97
+ ArrayModelData2: {
98
+ ArrayProperty: 'a-string',
99
+ },
100
+ ArrayModelData3: {
101
+ ArrayProperty: ['a-string', 'a-string2'],
102
+ },
103
+ ArrayModelData4: {
104
+ ArrayProperty: ['a-string', 1, {}, true],
105
+ },
106
+ ArrayModelData5: {
107
+ ArrayProperty: [4, 5, 5, 5, 6],
108
+ },
109
+ ArrayModelData6: {
110
+ ArrayProperty: [4, 5, 5, 5, 6, 1],
111
+ },
112
+ };
113
+ const EXPECTED_FIELDS = {
114
+ TestModel1b: ['name', 'type', 'flag'],
115
+ };
116
+ (0, cucumber_1.Given)('the {word} has been created, with {word} inputs provided', function (modelDefinition, modelInputValues) {
117
+ // @ts-ignore
118
+ const def = MODEL_DEFINITIONS[modelDefinition];
119
+ this.model = def;
120
+ // @ts-ignore
121
+ const input = MODEL_INPUT_VALUES[modelInputValues];
122
+ if (!def) {
123
+ throw new Error(`${modelDefinition} did not result in a definition`);
124
+ }
125
+ if (!input) {
126
+ throw new Error(`${modelInputValues} did not result in an input`);
127
+ }
128
+ this.instance = def.create(input);
129
+ });
130
+ (0, cucumber_1.When)('functions.validate is called', function () {
131
+ // @ts-ignore
132
+ return this.instance.validate().then(x => {
133
+ this.errors = x;
134
+ });
135
+ });
136
+ (0, cucumber_1.Then)('an array of {int} errors is shown', function (errorCount) {
137
+ const errors = (0, flatMap_1.default)(Object.values(this.errors));
138
+ if (errors.length !== errorCount) {
139
+ console.error(this.errors);
140
+ }
141
+ chai_1.assert.equal(errors.length, errorCount);
142
+ });
143
+ (0, cucumber_1.Given)('{word} model is used', function (modelDefinition) {
144
+ // @ts-ignore
145
+ const def = MODEL_DEFINITIONS[modelDefinition];
146
+ if (!def) {
147
+ throw new Error(`${modelDefinition} did not result in a definition`);
148
+ }
149
+ this.modelDefinition = def;
150
+ this.model = def;
151
+ });
152
+ (0, cucumber_1.When)('{word} data is inserted', function (modelInputValues) {
153
+ // @ts-ignore
154
+ const input = MODEL_INPUT_VALUES[modelInputValues];
155
+ if (!input) {
156
+ throw new Error(`${modelInputValues} did not result in an input`);
157
+ }
158
+ this.instance = this.modelDefinition.create(input);
159
+ });
160
+ (0, cucumber_1.Then)('{word} expected property is found', function (properties) {
161
+ // @ts-ignore
162
+ const propertyArray = EXPECTED_FIELDS[properties];
163
+ if (!propertyArray) {
164
+ throw new Error(`${properties} did not result in properties`);
165
+ }
166
+ // @ts-ignore
167
+ propertyArray.forEach(key => {
168
+ if (!(key in this.instance.get)) {
169
+ throw new Error(`Did not find ${key} in model`);
170
+ }
171
+ });
172
+ });
173
+ (0, cucumber_1.Then)('the {word} property is called on the model', function (property) {
174
+ this.results = this.instance.get[property]();
175
+ });
176
+ (0, cucumber_1.Then)('the array values match', function (table) {
177
+ return __awaiter(this, void 0, void 0, function* () {
178
+ const expected = JSON.parse(table.rowsHash().array);
179
+ chai_1.assert.deepEqual(yield this.results, expected);
180
+ });
181
+ });
182
+ (0, cucumber_1.Then)('{word} property is found', function (propertyKey) {
183
+ chai_1.assert.isFunction(this.instance.get[propertyKey]);
184
+ });
185
+ (0, cucumber_1.Then)('{word} instance function is found', function (instanceFunctionKey) {
186
+ chai_1.assert.isFunction(this.instance.methods[instanceFunctionKey]);
187
+ });
188
+ (0, cucumber_1.Then)('{word} model function is found', function (modelFunctionKey) {
189
+ chai_1.assert.isFunction(this.model.methods[modelFunctionKey]);
190
+ });
191
+ //# sourceMappingURL=oldSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oldSteps.js","sourceRoot":"","sources":["../../stepDefinitions/oldSteps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const cucumber_1 = require("@cucumber/cucumber");
13
+ const chai_1 = require("chai");
14
+ const models_1 = require("../src/models");
15
+ const methods_1 = require("../src/methods");
16
+ const properties_1 = require("../src/properties");
17
+ const TE_FULL_TEST = () => {
18
+ const m = (0, models_1.BaseModel)('TSFullTests', {
19
+ properties: {
20
+ id: (0, properties_1.UniqueId)({ value: 'my-unique-id' }),
21
+ name: (0, properties_1.TextProperty)({ required: true }),
22
+ data: (0, properties_1.ObjectProperty)({}),
23
+ notRequired: (0, properties_1.TextProperty)({}),
24
+ },
25
+ instanceMethods: {
26
+ myMethod: (0, methods_1.WrapperInstanceMethod)((instance, args) => {
27
+ return 'InstanceMethod';
28
+ }),
29
+ },
30
+ modelMethods: {
31
+ myModelMethod: (0, methods_1.WrapperModelMethod)((model, args) => {
32
+ return 'ModelMethod';
33
+ }),
34
+ },
35
+ });
36
+ return m;
37
+ };
38
+ const TE_FULL_TEST_1 = () => {
39
+ return {
40
+ id: 'my-unique-id',
41
+ name: 'My name',
42
+ data: { my: 'data' },
43
+ notRequired: null,
44
+ };
45
+ };
46
+ const DATA_SET = {
47
+ TE_FULL_TEST_1,
48
+ };
49
+ const MODEL_SET = {
50
+ TE_FULL_TEST,
51
+ };
52
+ (0, cucumber_1.Given)('model {word} is used', function (modelName) {
53
+ this.theModel = MODEL_SET[modelName]();
54
+ });
55
+ (0, cucumber_1.When)('a model instanced is created is called on model with {word}', function (dataName) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ this.theModelInstance = this.theModel.create(DATA_SET[dataName]());
58
+ });
59
+ });
60
+ (0, cucumber_1.When)('toObj is called on the model instance', function () {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ this.results = yield this.theModelInstance.toObj();
63
+ });
64
+ });
65
+ (0, cucumber_1.Then)('the results match {word} obj data', function (dataName) {
66
+ const data = DATA_SET[dataName]();
67
+ chai_1.assert.deepEqual(data, this.results);
68
+ });
69
+ (0, cucumber_1.When)('instance method {word} is called', function (methodName) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ this.instanceMethodActual = yield this.theModelInstance.methods[methodName]();
72
+ });
73
+ });
74
+ (0, cucumber_1.Then)('the result of instance method is {word}', function (expected) {
75
+ const actual = this.instanceMethodActual;
76
+ chai_1.assert.equal(actual, expected);
77
+ });
78
+ (0, cucumber_1.When)('model method {word} is called', function (methodName) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ this.modelMethodActual = yield this.theModel.methods[methodName]();
81
+ });
82
+ });
83
+ (0, cucumber_1.Then)('the result of model method is {word}', function (expected) {
84
+ const actual = this.modelMethodActual;
85
+ chai_1.assert.equal(actual, expected);
86
+ });
87
+ (0, cucumber_1.When)('validate is called on model instance', function () {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ this.validationActual = yield this.theModelInstance.validate();
90
+ });
91
+ });
92
+ (0, cucumber_1.Then)('the model instance validated successfully', function () {
93
+ const expected = {};
94
+ chai_1.assert.deepEqual(this.validationActual, expected);
95
+ });
96
+ //# sourceMappingURL=tssteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tssteps.js","sourceRoot":"","sources":["../../stepDefinitions/tssteps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const errors_1 = require("../../src/errors");
5
+ describe('/src/errors.ts', () => {
6
+ describe('ValidationError', () => {
7
+ it('should have the correct modelName', () => {
8
+ const instance = new errors_1.ValidationError('modelName', {
9
+ name: ['error1', 'error2'],
10
+ });
11
+ const actual = instance.modelName;
12
+ const expected = 'modelName';
13
+ chai_1.assert.equal(actual, expected);
14
+ });
15
+ it('should have the correct keysToErrors', () => {
16
+ const instance = new errors_1.ValidationError('modelName', {
17
+ name: ['error1', 'error2'],
18
+ });
19
+ const actual = instance.keysToErrors;
20
+ const expected = { name: ['error1', 'error2'] };
21
+ chai_1.assert.deepEqual(actual, expected);
22
+ });
23
+ it('should have the correct name', () => {
24
+ const instance = new errors_1.ValidationError('modelName', {
25
+ name: ['error1', 'error2'],
26
+ });
27
+ const actual = instance.name;
28
+ const expected = 'ValidationError';
29
+ chai_1.assert.equal(actual, expected);
30
+ });
31
+ });
32
+ });
33
+ //# sourceMappingURL=errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../test/src/errors.test.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,6CAAkD;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAAC,WAAW,EAAE;gBAChD,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC3B,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAA;YACjC,MAAM,QAAQ,GAAG,WAAW,CAAA;YAC5B,aAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAAC,WAAW,EAAE;gBAChD,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC3B,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAA;YACpC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAA;YAC/C,aAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAAC,WAAW,EAAE;gBAChD,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC3B,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAA;YAClC,aAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sinon_1 = __importDefault(require("sinon"));
16
+ const lazy_1 = require("../../src/lazy");
17
+ describe('/src/lazy.ts', () => {
18
+ describe('#lazyValue()', () => {
19
+ it('should only call the method passed in once even after two calls', () => __awaiter(void 0, void 0, void 0, function* () {
20
+ const method = sinon_1.default.stub().returns('hello-world');
21
+ const instance = (0, lazy_1.lazyValue)(method);
22
+ yield instance();
23
+ yield instance();
24
+ sinon_1.default.assert.calledOnce(method);
25
+ }));
26
+ });
27
+ });
28
+ //# sourceMappingURL=lazy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.test.js","sourceRoot":"","sources":["../../../test/src/lazy.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAAyB;AACzB,yCAA0C;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,iEAAiE,EAAE,GAAS,EAAE;YAC/E,MAAM,MAAM,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAA;YAClC,MAAM,QAAQ,EAAE,CAAA;YAChB,MAAM,QAAQ,EAAE,CAAA;YAChB,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chai_1 = require("chai");
7
+ const sinon_1 = __importDefault(require("sinon"));
8
+ const models_1 = require("../../src/models");
9
+ const properties_1 = require("../../src/properties");
10
+ const methods_1 = require("../../src/methods");
11
+ describe('/src/methods.js', () => {
12
+ describe('#InstanceMethod()', () => {
13
+ it('should return "Hello-world" when passed in', () => {
14
+ const method = sinon_1.default.stub().callsFake(input => {
15
+ return `${input.get.text()}-world`;
16
+ });
17
+ const myInstanceMethod = (0, methods_1.WrapperInstanceMethod)(method);
18
+ const wrappedObj = 'Hello';
19
+ const model = (0, models_1.BaseModel)('Test', {
20
+ properties: { text: (0, properties_1.TextProperty)() },
21
+ });
22
+ const modelInstance = model.create({ text: 'Hello' });
23
+ const actual = myInstanceMethod(modelInstance);
24
+ const expected = 'Hello-world';
25
+ chai_1.assert.equal(actual, expected);
26
+ });
27
+ it('should call the method when InstanceMethod()() called', () => {
28
+ const method = sinon_1.default.stub().callsFake(input => {
29
+ return `${input}-world`;
30
+ });
31
+ const myInstanceMethod = (0, methods_1.WrapperInstanceMethod)(method);
32
+ const model = (0, models_1.BaseModel)('Test', {
33
+ properties: { text: (0, properties_1.TextProperty)() },
34
+ });
35
+ const modelInstance = model.create({ text: 'Hello' });
36
+ const actual = myInstanceMethod(modelInstance);
37
+ sinon_1.default.assert.calledOnce(method);
38
+ });
39
+ it('should not call the method when InstanceMethod() called', () => {
40
+ const method = sinon_1.default.stub().callsFake(input => {
41
+ return `${input}-world`;
42
+ });
43
+ const myInstanceMethod = (0, methods_1.WrapperInstanceMethod)(method);
44
+ sinon_1.default.assert.notCalled(method);
45
+ });
46
+ });
47
+ });
48
+ //# sourceMappingURL=methods.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.test.js","sourceRoot":"","sources":["../../../test/src/methods.test.ts"],"names":[],"mappings":";;;;;AAAA,+BAA6B;AAC7B,kDAAyB;AACzB,6CAA4C;AAC5C,qDAA6D;AAC7D,+CAAyD;AAIzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5C,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAA;YACpC,CAAC,CAAC,CAAA;YACF,MAAM,gBAAgB,GAAG,IAAA,+BAAqB,EAAkB,MAAM,CAAC,CAAA;YACvE,MAAM,UAAU,GAAG,OAAO,CAAA;YAC1B,MAAM,KAAK,GAAG,IAAA,kBAAS,EAAkB,MAAM,EAAE;gBAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,IAAA,yBAAY,GAAE,EAAE;aACrC,CAAC,CAAA;YACF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAA;YAC9B,aAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5C,OAAO,GAAG,KAAK,QAAQ,CAAA;YACzB,CAAC,CAAC,CAAA;YACF,MAAM,gBAAgB,GAAG,IAAA,+BAAqB,EAAkB,MAAM,CAAC,CAAA;YACvE,MAAM,KAAK,GAAG,IAAA,kBAAS,EAAkB,MAAM,EAAE;gBAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,IAAA,yBAAY,GAAE,EAAE;aACrC,CAAC,CAAA;YACF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;YAC9C,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,eAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC5C,OAAO,GAAG,KAAK,QAAQ,CAAA;YACzB,CAAC,CAAC,CAAA;YACF,MAAM,gBAAgB,GAAG,IAAA,+BAAqB,EAAkB,MAAM,CAAC,CAAA;YACvE,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};