@sprucelabs/spruce-cli 14.28.8 → 14.29.3

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 (139) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +13 -9
  3. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  4. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +1 -1
  5. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +24 -14
  6. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  7. package/build/__tests__/behavioral/TestingDataStores.test.js +15 -11
  8. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  9. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +3 -1
  10. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  11. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +3 -0
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.js +200 -81
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  14. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.d.ts +7 -0
  15. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +171 -0
  16. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -0
  17. package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.d.ts → events/ListeningToAnEventYouCreate.test.d.ts} +1 -1
  18. package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.js → events/ListeningToAnEventYouCreate.test.js} +2 -2
  19. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -0
  20. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
  21. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +53 -21
  22. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  23. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.d.ts +5 -0
  24. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js +137 -0
  25. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +1 -0
  26. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.d.ts +3 -0
  27. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +105 -16
  28. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  29. package/build/__tests__/behavioral/tests/CreatingATest.test.js +14 -10
  30. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  31. package/build/__tests__/behavioral/views/TestingViewControllers.test.d.ts +1 -0
  32. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +67 -35
  33. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  34. package/build/__tests__/implementation/AuthService.test.d.ts +1 -0
  35. package/build/__tests__/implementation/AuthService.test.js +8 -0
  36. package/build/__tests__/implementation/AuthService.test.js.map +1 -1
  37. package/build/__tests__/implementation/EventStore.test.js +3 -1
  38. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  39. package/build/__tests__/implementation/LintService.test.d.ts +5 -0
  40. package/build/__tests__/implementation/LintService.test.js +130 -0
  41. package/build/__tests__/implementation/LintService.test.js.map +1 -0
  42. package/build/__tests__/implementation/StoreFeature.test.d.ts +4 -0
  43. package/build/__tests__/implementation/StoreFeature.test.js +132 -0
  44. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -0
  45. package/build/errors/SpruceError.js +8 -4
  46. package/build/errors/SpruceError.js.map +1 -1
  47. package/build/features/event/EventFeature.d.ts +2 -2
  48. package/build/features/event/EventFeature.js +53 -13
  49. package/build/features/event/EventFeature.js.map +1 -1
  50. package/build/features/event/actions/ListenAction.d.ts +1 -0
  51. package/build/features/event/actions/ListenAction.js +60 -31
  52. package/build/features/event/actions/ListenAction.js.map +1 -1
  53. package/build/features/event/actions/SyncListenersAction.d.ts +15 -0
  54. package/build/features/event/actions/SyncListenersAction.js +115 -0
  55. package/build/features/event/actions/SyncListenersAction.js.map +1 -0
  56. package/build/features/event/builders/ListenerTemplateItemBuilder.d.ts +8 -0
  57. package/build/features/event/builders/ListenerTemplateItemBuilder.js +65 -0
  58. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -0
  59. package/build/features/event/stores/EventStore.js +2 -2
  60. package/build/features/event/stores/EventStore.js.map +1 -1
  61. package/build/features/event/stores/ListenerStore.d.ts +9 -0
  62. package/build/features/event/stores/ListenerStore.js +122 -0
  63. package/build/features/event/stores/ListenerStore.js.map +1 -0
  64. package/build/features/event/writers/EventWriter.d.ts +4 -1
  65. package/build/features/event/writers/EventWriter.js +42 -8
  66. package/build/features/event/writers/EventWriter.js.map +1 -1
  67. package/build/features/node/NodeFeature.js +1 -1
  68. package/build/features/node/NodeFeature.js.map +1 -1
  69. package/build/features/skill/SkillFeature.js +1 -1
  70. package/build/features/skill/SkillFeature.js.map +1 -1
  71. package/build/features/skill/stores/SkillStore.js +4 -8
  72. package/build/features/skill/stores/SkillStore.js.map +1 -1
  73. package/build/features/store/StoreFeature.d.ts +1 -1
  74. package/build/features/store/StoreFeature.js +16 -11
  75. package/build/features/store/StoreFeature.js.map +1 -1
  76. package/build/schemas/v2020_07_22/personWithToken.builder.js +1 -0
  77. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  78. package/build/services/AuthService.d.ts +4 -1
  79. package/build/services/AuthService.js +15 -4
  80. package/build/services/AuthService.js.map +1 -1
  81. package/build/services/GameService.js +14 -10
  82. package/build/services/GameService.js.map +1 -1
  83. package/build/services/LintService.d.ts +5 -2
  84. package/build/services/LintService.js +137 -92
  85. package/build/services/LintService.js.map +1 -1
  86. package/build/services/ServiceFactory.js +9 -3
  87. package/build/services/ServiceFactory.js.map +1 -1
  88. package/build/stores/StoreFactory.d.ts +2 -0
  89. package/build/stores/StoreFactory.js +4 -1
  90. package/build/stores/StoreFactory.js.map +1 -1
  91. package/build/tests/AbstractCliTest.js +3 -3
  92. package/build/tests/AbstractCliTest.js.map +1 -1
  93. package/build/writers/AbstractWriter.d.ts +0 -3
  94. package/build/writers/AbstractWriter.js +2 -18
  95. package/build/writers/AbstractWriter.js.map +1 -1
  96. package/package.json +11 -9
  97. package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -0
  98. package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +10 -5
  99. package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -0
  100. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -0
  101. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +48 -9
  102. package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +47 -0
  103. package/src/__tests__/behavioral/{ListeningToAnEventYouCreate.test.ts → events/ListeningToAnEventYouCreate.test.ts} +2 -2
  104. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  105. package/src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts +59 -0
  106. package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +31 -2
  107. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -0
  108. package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +6 -0
  109. package/src/__tests__/implementation/AuthService.test.ts +6 -0
  110. package/src/__tests__/implementation/EventStore.test.ts +1 -0
  111. package/src/__tests__/implementation/LintService.test.ts +34 -0
  112. package/src/__tests__/implementation/StoreFeature.test.ts +40 -0
  113. package/src/errors/SpruceError.ts +9 -5
  114. package/src/features/event/EventFeature.ts +21 -4
  115. package/src/features/event/actions/ListenAction.ts +9 -3
  116. package/src/features/event/actions/SyncListenersAction.ts +38 -0
  117. package/src/features/event/builders/ListenerTemplateItemBuilder.ts +27 -0
  118. package/src/features/event/stores/EventStore.ts +1 -1
  119. package/src/features/event/stores/ListenerStore.ts +32 -0
  120. package/src/features/event/writers/EventWriter.ts +19 -0
  121. package/src/features/node/NodeFeature.ts +2 -1
  122. package/src/features/skill/SkillFeature.ts +1 -1
  123. package/src/features/skill/stores/SkillStore.ts +4 -3
  124. package/src/features/store/StoreFeature.ts +7 -4
  125. package/src/schemas/v2020_07_22/personWithToken.builder.ts +1 -0
  126. package/src/services/AuthService.ts +15 -5
  127. package/src/services/GameService.ts +1 -0
  128. package/src/services/LintService.ts +34 -5
  129. package/src/services/ServiceFactory.ts +8 -3
  130. package/src/stores/StoreFactory.ts +3 -0
  131. package/src/tests/AbstractCliTest.ts +2 -2
  132. package/src/writers/AbstractWriter.ts +2 -13
  133. package/build/__tests__/behavioral/ListeningToAnEventYouCreate.test.js.map +0 -1
  134. package/build/__tests__/behavioral/README.md +0 -8
  135. package/build/__tests__/implementation/README.md +0 -5
  136. package/build/components/README.md +0 -5
  137. package/src/__tests__/behavioral/README.md +0 -8
  138. package/src/__tests__/implementation/README.md +0 -5
  139. package/src/components/README.md +0 -5
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
+
26
+ var _spruceEventUtils = require("@sprucelabs/spruce-event-utils");
27
+
28
+ var _test = require("@sprucelabs/test");
29
+
30
+ var _SpruceError = _interopRequireDefault(require("../../../errors/SpruceError"));
31
+
32
+ var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
33
+
34
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
35
+
36
+ var _dec, _dec2, _dec3, _dec4, _class;
37
+
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
42
+ var UpgradingWithListeners = (_dec = (0, _test.test)('should sync listeners when installed', 'events', true), _dec2 = (0, _test.test)('should not sync listeners when not installed', 'skills', false), _dec3 = (0, _test.test)('should not sync listeners when creating node when not installed', 'testsInNodeModule', false, 'create'), _dec4 = (0, _test.test)('should not sync listeners when creating node when installed', 'events', false, 'create'), (_class = /*#__PURE__*/function (_AbstractCliTest) {
43
+ (0, _inherits2["default"])(UpgradingWithListeners, _AbstractCliTest);
44
+
45
+ var _super = _createSuper(UpgradingWithListeners);
46
+
47
+ function UpgradingWithListeners() {
48
+ (0, _classCallCheck2["default"])(this, UpgradingWithListeners);
49
+ return _super.apply(this, arguments);
50
+ }
51
+
52
+ (0, _createClass2["default"])(UpgradingWithListeners, null, [{
53
+ key: "upgradingSyncsListeners",
54
+ value: function () {
55
+ var _upgradingSyncsListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(featureCode, shouldHit) {
56
+ var actionCode,
57
+ wasHit,
58
+ results,
59
+ _eventResponseUtil$ge,
60
+ errors,
61
+ _args2 = arguments;
62
+
63
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
64
+ while (1) {
65
+ switch (_context2.prev = _context2.next) {
66
+ case 0:
67
+ actionCode = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 'upgrade';
68
+ _context2.next = 3;
69
+ return this.FeatureFixture().installCachedFeatures(featureCode);
70
+
71
+ case 3:
72
+ _CommandService["default"].setMockResponse(new RegExp(/yarn/), {
73
+ code: 0
74
+ });
75
+
76
+ wasHit = false;
77
+ _context2.next = 7;
78
+ return this.getEmitter().on('feature.will-execute', /*#__PURE__*/function () {
79
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
80
+ var featureCode, actionCode;
81
+ return _regenerator["default"].wrap(function _callee$(_context) {
82
+ while (1) {
83
+ switch (_context.prev = _context.next) {
84
+ case 0:
85
+ featureCode = _ref.featureCode, actionCode = _ref.actionCode;
86
+
87
+ if (featureCode === 'event' && actionCode === 'sync.listeners') {
88
+ wasHit = true;
89
+ }
90
+
91
+ case 2:
92
+ case "end":
93
+ return _context.stop();
94
+ }
95
+ }
96
+ }, _callee);
97
+ }));
98
+
99
+ return function (_x3) {
100
+ return _ref2.apply(this, arguments);
101
+ };
102
+ }());
103
+
104
+ case 7:
105
+ _context2.next = 9;
106
+ return this.getEmitter().emit('feature.will-execute', {
107
+ featureCode: 'node',
108
+ actionCode: actionCode
109
+ });
110
+
111
+ case 9:
112
+ results = _context2.sent;
113
+ _eventResponseUtil$ge = _spruceEventUtils.eventResponseUtil.getAllResponsePayloadsAndErrors(results, _SpruceError["default"]), errors = _eventResponseUtil$ge.errors;
114
+
115
+ _test.assert.isFalsy(errors);
116
+
117
+ _test.assert.isEqual(wasHit, shouldHit);
118
+
119
+ case 13:
120
+ case "end":
121
+ return _context2.stop();
122
+ }
123
+ }
124
+ }, _callee2, this);
125
+ }));
126
+
127
+ function upgradingSyncsListeners(_x, _x2) {
128
+ return _upgradingSyncsListeners.apply(this, arguments);
129
+ }
130
+
131
+ return upgradingSyncsListeners;
132
+ }()
133
+ }]);
134
+ return UpgradingWithListeners;
135
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSyncsListeners", [_dec, _dec2, _dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "upgradingSyncsListeners"), _class)), _class));
136
+ exports["default"] = UpgradingWithListeners;
137
+ //# sourceMappingURL=UpgradingWithListeners.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts"],"names":["UpgradingWithListeners","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","CommandService","setMockResponse","RegExp","code","wasHit","getEmitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,sB,WACnB,gBAAK,sCAAL,EAA6C,QAA7C,EAAuD,IAAvD,C,UACA,gBAAK,8CAAL,EAAqD,QAArD,EAA+D,KAA/D,C,UACA,gBACA,iEADA,EAEA,mBAFA,EAGA,KAHA,EAIA,QAJA,C,UAMA,gBACA,6DADA,EAEA,QAFA,EAGA,KAHA,EAIA,QAJA,C;;;;;;;;;;;;;mHARD,kBAeCC,WAfD,EAgBCC,SAhBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAiBCC,gBAAAA,UAjBD,8DAiBc,SAjBd;AAAA;AAAA,uBAmBO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CJ,WAA5C,CAnBP;;AAAA;AAqBCK,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,MAAX,CAA/B,EAAmD;AAClDC,kBAAAA,IAAI,EAAE;AAD4C,iBAAnD;;AAIIC,gBAAAA,MAzBL,GAyBc,KAzBd;AAAA;AAAA,uBA2BO,KAAKC,UAAL,GAAkBC,EAAlB,CACL,sBADK;AAAA,4GAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AAASX,4BAAAA,WAAT,QAASA,WAAT,EAAsBE,UAAtB,QAAsBA,UAAtB;;AACC,gCAAIF,WAAW,KAAK,OAAhB,IAA2BE,UAAU,KAAK,gBAA9C,EAAgE;AAC/DO,8BAAAA,MAAM,GAAG,IAAT;AACA;;AAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAFK;;AAAA;AAAA;AAAA;AAAA,oBA3BP;;AAAA;AAAA;AAAA,uBAoCuB,KAAKC,UAAL,GAAkBE,IAAlB,CAAuB,sBAAvB,EAA+C;AACpEZ,kBAAAA,WAAW,EAAE,MADuD;AAEpEE,kBAAAA,UAAU,EAAVA;AAFoE,iBAA/C,CApCvB;;AAAA;AAoCOW,gBAAAA,OApCP;AAAA,wCAyCoBC,oCAAkBC,+BAAlB,CAClBF,OADkB,EAElBG,uBAFkB,CAzCpB,EAyCSC,MAzCT,yBAyCSA,MAzCT;;AA8CCC,6BAAOC,OAAP,CAAeF,MAAf;;AAEAC,6BAAOE,OAAP,CAAeX,MAAf,EAAuBR,SAAvB;;AAhDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EADmDoB,4B","sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\n\t\tCommandService.setMockResponse(new RegExp(/yarn/), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tlet wasHit = false\n\n\t\tawait this.getEmitter().on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.getEmitter().emit('feature.will-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"file":"UpgradingWithListeners.test.js"}
@@ -8,5 +8,8 @@ export default class KeepingDataStoresInSyncTest extends AbstractSkillTest {
8
8
  protected static syncsNothingToStart(): Promise<void>;
9
9
  protected static badFileReturnsError(): Promise<void>;
10
10
  protected static generatesValidTypeFile(): Promise<void>;
11
+ protected static fileIsValidAfterSync(): Promise<void>;
12
+ protected static canAddSecondStore(): Promise<void>;
13
+ private static validateFiles;
11
14
  private static syncStores;
12
15
  }
@@ -37,13 +37,13 @@ var _AbstractSkillTest2 = _interopRequireDefault(require("../../../tests/Abstrac
37
37
 
38
38
  var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
39
39
 
40
- var _dec, _dec2, _dec3, _dec4, _class, _class2, _temp;
40
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _temp;
41
41
 
42
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
43
 
44
44
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
45
 
46
- var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractSkillTest) {
46
+ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractSkillTest) {
47
47
  (0, _inherits2["default"])(KeepingDataStoresInSyncTest, _AbstractSkillTest);
48
48
 
49
49
  var _super = _createSuper(KeepingDataStoresInSyncTest);
@@ -207,7 +207,7 @@ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
207
207
  key: "generatesValidTypeFile",
208
208
  value: function () {
209
209
  var _generatesValidTypeFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
210
- var results, typesFile;
210
+ var results;
211
211
  return _regenerator["default"].wrap(function _callee6$(_context6) {
212
212
  while (1) {
213
213
  switch (_context6.prev = _context6.next) {
@@ -220,16 +220,11 @@ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
220
220
  });
221
221
 
222
222
  case 2:
223
- _context6.next = 4;
224
- return this.syncStores();
225
-
226
- case 4:
227
223
  results = _context6.sent;
228
- typesFile = _test2["default"].assertFileByNameInGeneratedFiles('stores.types.ts', results.files);
229
- _context6.next = 8;
230
- return this.Service('typeChecker').check(typesFile);
224
+ _context6.next = 5;
225
+ return this.validateFiles(results);
231
226
 
232
- case 8:
227
+ case 5:
233
228
  case "end":
234
229
  return _context6.stop();
235
230
  }
@@ -244,16 +239,23 @@ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
244
239
  return generatesValidTypeFile;
245
240
  }()
246
241
  }, {
247
- key: "syncStores",
242
+ key: "fileIsValidAfterSync",
248
243
  value: function () {
249
- var _syncStores = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
244
+ var _fileIsValidAfterSync = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
245
+ var results;
250
246
  return _regenerator["default"].wrap(function _callee7$(_context7) {
251
247
  while (1) {
252
248
  switch (_context7.prev = _context7.next) {
253
249
  case 0:
254
- return _context7.abrupt("return", this.Action('store', 'sync').execute({}));
250
+ _context7.next = 2;
251
+ return this.syncStores();
255
252
 
256
- case 1:
253
+ case 2:
254
+ results = _context7.sent;
255
+ _context7.next = 5;
256
+ return this.validateFiles(results);
257
+
258
+ case 5:
257
259
  case "end":
258
260
  return _context7.stop();
259
261
  }
@@ -261,6 +263,93 @@ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
261
263
  }, _callee7, this);
262
264
  }));
263
265
 
266
+ function fileIsValidAfterSync() {
267
+ return _fileIsValidAfterSync.apply(this, arguments);
268
+ }
269
+
270
+ return fileIsValidAfterSync;
271
+ }()
272
+ }, {
273
+ key: "canAddSecondStore",
274
+ value: function () {
275
+ var _canAddSecondStore = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
276
+ var results;
277
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
278
+ while (1) {
279
+ switch (_context8.prev = _context8.next) {
280
+ case 0:
281
+ _context8.next = 2;
282
+ return this.Action('store', 'create').execute({
283
+ nameReadable: 'Person',
284
+ nameReadablePlural: 'People',
285
+ namePascal: 'Person'
286
+ });
287
+
288
+ case 2:
289
+ results = _context8.sent;
290
+ _context8.next = 5;
291
+ return this.validateFiles(results);
292
+
293
+ case 5:
294
+ case "end":
295
+ return _context8.stop();
296
+ }
297
+ }
298
+ }, _callee8, this);
299
+ }));
300
+
301
+ function canAddSecondStore() {
302
+ return _canAddSecondStore.apply(this, arguments);
303
+ }
304
+
305
+ return canAddSecondStore;
306
+ }()
307
+ }, {
308
+ key: "validateFiles",
309
+ value: function () {
310
+ var _validateFiles = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(results) {
311
+ var typesFile, mapFile;
312
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
313
+ while (1) {
314
+ switch (_context9.prev = _context9.next) {
315
+ case 0:
316
+ typesFile = _test2["default"].assertFileByNameInGeneratedFiles('stores.types.ts', results.files);
317
+ mapFile = _test2["default"].assertFileByNameInGeneratedFiles('stores.ts', results.files);
318
+ _context9.next = 4;
319
+ return Promise.all([this.Service('typeChecker').check(typesFile), this.Service('typeChecker').check(mapFile)]);
320
+
321
+ case 4:
322
+ case "end":
323
+ return _context9.stop();
324
+ }
325
+ }
326
+ }, _callee9, this);
327
+ }));
328
+
329
+ function validateFiles(_x) {
330
+ return _validateFiles.apply(this, arguments);
331
+ }
332
+
333
+ return validateFiles;
334
+ }()
335
+ }, {
336
+ key: "syncStores",
337
+ value: function () {
338
+ var _syncStores = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
339
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
340
+ while (1) {
341
+ switch (_context10.prev = _context10.next) {
342
+ case 0:
343
+ return _context10.abrupt("return", this.Action('store', 'sync').execute({}));
344
+
345
+ case 1:
346
+ case "end":
347
+ return _context10.stop();
348
+ }
349
+ }
350
+ }, _callee10, this);
351
+ }));
352
+
264
353
  function syncStores() {
265
354
  return _syncStores.apply(this, arguments);
266
355
  }
@@ -269,6 +358,6 @@ var KeepingDataStoresInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
269
358
  }()
270
359
  }]);
271
360
  return KeepingDataStoresInSyncTest;
272
- }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'stores'), (0, _defineProperty2["default"])(_class2, "badStoreDest", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasSyncAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasSyncAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsNothingToStart", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsNothingToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "badFileReturnsError", [_dec3], Object.getOwnPropertyDescriptor(_class, "badFileReturnsError"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesValidTypeFile", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesValidTypeFile"), _class)), _class));
361
+ }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'stores'), (0, _defineProperty2["default"])(_class2, "badStoreDest", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasSyncAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasSyncAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsNothingToStart", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsNothingToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "badFileReturnsError", [_dec3], Object.getOwnPropertyDescriptor(_class, "badFileReturnsError"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesValidTypeFile", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesValidTypeFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "fileIsValidAfterSync", [_dec5], Object.getOwnPropertyDescriptor(_class, "fileIsValidAfterSync"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canAddSecondStore", [_dec6], Object.getOwnPropertyDescriptor(_class, "canAddSecondStore"), _class)), _class));
273
362
  exports["default"] = KeepingDataStoresInSyncTest;
274
363
  //# sourceMappingURL=KeepingDataStoresInSync.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts"],"names":["KeepingDataStoresInSyncTest","badStoreDest","resolvePath","diskUtil","deleteFile","assert","isFunction","Action","execute","syncStores","results","isLength","files","writeFile","isArray","errors","errorAssertUtil","assertError","file","nameReadable","nameReadablePlural","namePascal","typesFile","testUtil","assertFileByNameInGeneratedFiles","Service","check","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,2B,WAanB,iB,UAKA,iB,UAOA,iB,UAaA,iB;;;;;;;;;;;;;qGAnCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,YAAL,GAAoB,KAAKC,WAAL,CAAiB,yBAAjB,CAApB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAASC,UAAT,CAAoB,KAAKH,YAAzB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAKA;AAAA;AAAA;AAAA;AAAA;AAECI,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA/C;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKC,UAAL,EAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAICL,6BAAOM,QAAP,CAAgBD,OAAO,CAACE,KAAxB,EAA+B,CAA/B;;AAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECT,2CAASU,SAAT,CAAmB,KAAKZ,YAAxB,EAAsC,4BAAtC;;AAFD;AAAA,uBAIuB,KAAKQ,UAAL,EAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAKCL,6BAAOS,OAAP,CAAeJ,OAAO,CAACK,MAAvB;;AACAV,6BAAOM,QAAP,CAAgBD,OAAO,CAACK,MAAxB,EAAgC,CAAhC;;AAEAC,2CAAgBC,WAAhB,CAA4BP,OAAO,CAACK,MAAR,CAAe,CAAf,CAA5B,EAA+C,kBAA/C,EAAmE;AAClEG,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CW,kBAAAA,YAAY,EAAE,KAD8B;AAE5CC,kBAAAA,kBAAkB,EAAE,MAFwB;AAG5CC,kBAAAA,UAAU,EAAE;AAHgC,iBAAvC,CAFP;;AAAA;AAAA;AAAA,uBAQuB,KAAKZ,UAAL,EARvB;;AAAA;AAQOC,gBAAAA,OARP;AAUOY,gBAAAA,SAVP,GAUmBC,kBAASC,gCAAT,CACjB,iBADiB,EAEjBd,OAAO,CAACE,KAFS,CAVnB;AAAA;AAAA,uBAeO,KAAKa,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCJ,SAAlC,CAfP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAkBA;AAAA;AAAA;AAAA;AAAA;AAAA,kDACQ,KAAKf,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CADR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAxDwDmB,8B,8DACvB,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingDataStoresInSyncTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\tprotected static badStoreDest: string\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\t}\n\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('store', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsNothingToStart() {\n\t\tconst results = await this.syncStores()\n\n\t\tassert.isLength(results.files, 0)\n\t}\n\n\t@test()\n\tprotected static async badFileReturnsError() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst results = await this.syncStores()\n\t\tassert.isArray(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypeFile() {\n\t\tawait this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tconst results = await this.syncStores()\n\n\t\tconst typesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(typesFile)\n\t}\n\n\tprivate static async syncStores() {\n\t\treturn this.Action('store', 'sync').execute({})\n\t}\n}\n"],"file":"KeepingDataStoresInSync.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts"],"names":["KeepingDataStoresInSyncTest","badStoreDest","resolvePath","diskUtil","deleteFile","assert","isFunction","Action","execute","syncStores","results","isLength","files","writeFile","isArray","errors","errorAssertUtil","assertError","file","nameReadable","nameReadablePlural","namePascal","validateFiles","typesFile","testUtil","assertFileByNameInGeneratedFiles","mapFile","Promise","all","Service","check","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingDataStoresInSyncTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\tprotected static badStoreDest: string\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\t}\n\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('store', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsNothingToStart() {\n\t\tconst results = await this.syncStores()\n\n\t\tassert.isLength(results.files, 0)\n\t}\n\n\t@test()\n\tprotected static async badFileReturnsError() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst results = await this.syncStores()\n\t\tassert.isArray(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypeFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\t@test()\n\tprotected static async fileIsValidAfterSync() {\n\t\tconst results = await this.syncStores()\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\t@test()\n\tprotected static async canAddSecondStore() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\tprivate static async validateFiles(results: FeatureActionResponse) {\n\t\tconst typesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst mapFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait Promise.all([\n\t\t\tthis.Service('typeChecker').check(typesFile),\n\t\t\tthis.Service('typeChecker').check(mapFile),\n\t\t])\n\t}\n\n\tprivate static async syncStores() {\n\t\treturn this.Action('store', 'sync').execute({})\n\t}\n}\n"],"file":"KeepingDataStoresInSync.test.js"}
@@ -25,6 +25,8 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
25
25
 
26
26
  var _test = require("@sprucelabs/test");
27
27
 
28
+ var _LintService = _interopRequireDefault(require("../../../services/LintService"));
29
+
28
30
  var _AbstractTestTest2 = _interopRequireDefault(require("../../../tests/AbstractTestTest"));
29
31
 
30
32
  var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
@@ -119,40 +121,42 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
119
121
  while (1) {
120
122
  switch (_context3.prev = _context3.next) {
121
123
  case 0:
122
- _context3.next = 2;
124
+ _LintService["default"].enableLinting();
125
+
126
+ _context3.next = 3;
123
127
  return this.installTests();
124
128
 
125
- case 2:
129
+ case 3:
126
130
  promise = this.Action('test', 'create').execute({
127
131
  type: 'behavioral',
128
132
  nameReadable: 'Can book appointment',
129
133
  nameCamel: 'canBookAppointment',
130
134
  namePascal: 'CanBookAppointment'
131
135
  });
132
- _context3.next = 5;
136
+ _context3.next = 6;
133
137
  return this.waitForInput();
134
138
 
135
- case 5:
139
+ case 6:
136
140
  this.selectOptionBasedOnLabel(testName);
137
- _context3.next = 8;
141
+ _context3.next = 9;
138
142
  return promise;
139
143
 
140
- case 8:
144
+ case 9:
141
145
  response = _context3.sent;
142
146
  match = _test2["default"].assertFileByNameInGeneratedFiles('CanBookAppointment.test.ts', response.files);
143
147
 
144
148
  _test.assert.doesInclude(match, 'behavioral');
145
149
 
146
- _context3.next = 13;
150
+ _context3.next = 14;
147
151
  return this.Service('build').build();
148
152
 
149
- case 13:
150
- _context3.next = 15;
153
+ case 14:
154
+ _context3.next = 16;
151
155
  return _test.assert.doesThrowAsync(function () {
152
156
  return _this.Service('command').execute('yarn test');
153
157
  }, /false[\s\S]*?does not equal[\s\S]*?true/gi);
154
158
 
155
- case 15:
159
+ case 16:
156
160
  case "end":
157
161
  return _context3.stop();
158
162
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"names":["CreatingBehavioralTestsTest","assert","isFunction","Action","execute","installTests","testFeature","getFeatureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","promise","type","nameReadable","nameCamel","namePascal","waitForInput","selectOptionBasedOnLabel","response","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","build","doesThrowAsync","AbstractTestTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,2B,WACnB,iB,UAKA,iB,UAaA,gBACA,2DADA,EAEA,2BAFA,C,UAIA,gBACA,2DADA,EAEA,sCAFA,C;;;;;;;;;;;;;2GAtBD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8HAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,YAAL,CAAkB,mBAAlB,CAFP;;AAAA;AAIOC,gBAAAA,WAJP,GAIqB,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,MAAtC,CAJrB;AAAA;AAAA,uBAK0BF,WAAW,CAACG,0BAAZ,EAL1B;;AAAA;AAKOC,gBAAAA,UALP;;AAOCT,6BAAOU,WAAP,CAAmBD,UAAnB,EAA+B;AAC9BE,kBAAAA,KAAK,EAAE,8CADuB;AAE9BC,kBAAAA,IAAI,EAAE;AAFwB,iBAA/B;;AAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAaA,kBAQ+CC,QAR/C;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBASO,KAAKT,YAAL,EATP;;AAAA;AAUOU,gBAAAA,OAVP,GAUiB,KAAKZ,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;AACrDY,kBAAAA,IAAI,EAAE,YAD+C;AAErDC,kBAAAA,YAAY,EAAE,sBAFuC;AAGrDC,kBAAAA,SAAS,EAAE,oBAH0C;AAIrDC,kBAAAA,UAAU,EAAE;AAJyC,iBAAtC,CAVjB;AAAA;AAAA,uBAiBO,KAAKC,YAAL,EAjBP;;AAAA;AAmBC,qBAAKC,wBAAL,CAA8BP,QAA9B;AAnBD;AAAA,uBAqBwBC,OArBxB;;AAAA;AAqBOO,gBAAAA,QArBP;AAuBOC,gBAAAA,KAvBP,GAuBeC,kBAASC,gCAAT,CACb,4BADa,EAEbH,QAAQ,CAACI,KAFI,CAvBf;;AA4BCzB,6BAAOU,WAAP,CAAmBY,KAAnB,EAA0B,YAA1B;;AA5BD;AAAA,uBA8BO,KAAKI,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EA9BP;;AAAA;AAAA;AAAA,uBAgCO3B,aAAO4B,cAAP,CACL;AAAA,yBAAM,KAAI,CAACF,OAAL,CAAa,SAAb,EAAwBvB,OAAxB,CAAgC,WAAhC,CAAN;AAAA,iBADK,EAEL,2CAFK,CAhCP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAnBwD0B,6B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfSkilLNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n}\n"],"file":"CreatingATest.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"names":["CreatingBehavioralTestsTest","assert","isFunction","Action","execute","installTests","testFeature","getFeatureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","LintService","enableLinting","promise","type","nameReadable","nameCamel","namePascal","waitForInput","selectOptionBasedOnLabel","response","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","build","doesThrowAsync","AbstractTestTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,2B,WACnB,iB,UAKA,iB,UAaA,gBACA,2DADA,EAEA,2BAFA,C,UAIA,gBACA,2DADA,EAEA,sCAFA,C;;;;;;;;;;;;;2GAtBD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8HAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,YAAL,CAAkB,mBAAlB,CAFP;;AAAA;AAIOC,gBAAAA,WAJP,GAIqB,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,MAAtC,CAJrB;AAAA;AAAA,uBAK0BF,WAAW,CAACG,0BAAZ,EAL1B;;AAAA;AAKOC,gBAAAA,UALP;;AAOCT,6BAAOU,WAAP,CAAmBD,UAAnB,EAA+B;AAC9BE,kBAAAA,KAAK,EAAE,8CADuB;AAE9BC,kBAAAA,IAAI,EAAE;AAFwB,iBAA/B;;AAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAaA,kBAQ+CC,QAR/C;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AASCC,wCAAYC,aAAZ;;AATD;AAAA,uBAUO,KAAKX,YAAL,EAVP;;AAAA;AAWOY,gBAAAA,OAXP,GAWiB,KAAKd,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;AACrDc,kBAAAA,IAAI,EAAE,YAD+C;AAErDC,kBAAAA,YAAY,EAAE,sBAFuC;AAGrDC,kBAAAA,SAAS,EAAE,oBAH0C;AAIrDC,kBAAAA,UAAU,EAAE;AAJyC,iBAAtC,CAXjB;AAAA;AAAA,uBAkBO,KAAKC,YAAL,EAlBP;;AAAA;AAoBC,qBAAKC,wBAAL,CAA8BT,QAA9B;AApBD;AAAA,uBAsBwBG,OAtBxB;;AAAA;AAsBOO,gBAAAA,QAtBP;AAwBOC,gBAAAA,KAxBP,GAwBeC,kBAASC,gCAAT,CACb,4BADa,EAEbH,QAAQ,CAACI,KAFI,CAxBf;;AA6BC3B,6BAAOU,WAAP,CAAmBc,KAAnB,EAA0B,YAA1B;;AA7BD;AAAA,uBA+BO,KAAKI,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EA/BP;;AAAA;AAAA;AAAA,uBAiCO7B,aAAO8B,cAAP,CACL;AAAA,yBAAM,KAAI,CAACF,OAAL,CAAa,SAAb,EAAwBzB,OAAxB,CAAgC,WAAhC,CAAN;AAAA,iBADK,EAEL,2CAFK,CAjCP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAnBwD4B,6B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport LintService from '../../../services/LintService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfSkilLNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tLintService.enableLinting()\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n}\n"],"file":"CreatingATest.test.js"}
@@ -1,6 +1,7 @@
1
1
  import AbstractSkillTest from '../../../tests/AbstractSkillTest';
2
2
  export default class TestingViewControllersTest extends AbstractSkillTest {
3
3
  protected static skillCacheKey: string;
4
+ protected static beforeEach(): Promise<void>;
4
5
  protected static showsNotInstalled(): Promise<void>;
5
6
  protected static canSelectAbstractTest(): Promise<void>;
6
7
  protected static testsRun(): Promise<void>;