@sprucelabs/spruce-cli 14.28.6 → 14.29.1

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 (125) 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 +2 -0
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.js +157 -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/events/SkillEmitsBootEvents.test.d.ts +1 -0
  18. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +53 -21
  19. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  20. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.d.ts +5 -0
  21. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js +137 -0
  22. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +1 -0
  23. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +4 -1
  24. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  25. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.d.ts +4 -1
  26. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +136 -47
  27. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  28. package/build/__tests__/behavioral/tests/CreatingATest.test.js +14 -10
  29. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  30. package/build/__tests__/behavioral/views/TestingViewControllers.test.d.ts +1 -0
  31. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +67 -35
  32. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  33. package/build/__tests__/implementation/AuthService.test.d.ts +1 -0
  34. package/build/__tests__/implementation/AuthService.test.js +8 -0
  35. package/build/__tests__/implementation/AuthService.test.js.map +1 -1
  36. package/build/__tests__/implementation/EventStore.test.js +3 -1
  37. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  38. package/build/__tests__/implementation/LintService.test.d.ts +5 -0
  39. package/build/__tests__/implementation/LintService.test.js +130 -0
  40. package/build/__tests__/implementation/LintService.test.js.map +1 -0
  41. package/build/__tests__/implementation/StoreFeature.test.d.ts +4 -0
  42. package/build/__tests__/implementation/StoreFeature.test.js +132 -0
  43. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -0
  44. package/build/errors/SpruceError.js +8 -4
  45. package/build/errors/SpruceError.js.map +1 -1
  46. package/build/features/event/EventFeature.d.ts +2 -2
  47. package/build/features/event/EventFeature.js +53 -13
  48. package/build/features/event/EventFeature.js.map +1 -1
  49. package/build/features/event/actions/ListenAction.d.ts +1 -0
  50. package/build/features/event/actions/ListenAction.js +60 -31
  51. package/build/features/event/actions/ListenAction.js.map +1 -1
  52. package/build/features/event/actions/SyncListenersAction.d.ts +15 -0
  53. package/build/features/event/actions/SyncListenersAction.js +115 -0
  54. package/build/features/event/actions/SyncListenersAction.js.map +1 -0
  55. package/build/features/event/builders/ListenerTemplateItemBuilder.d.ts +8 -0
  56. package/build/features/event/builders/ListenerTemplateItemBuilder.js +65 -0
  57. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -0
  58. package/build/features/event/stores/EventStore.js +2 -2
  59. package/build/features/event/stores/EventStore.js.map +1 -1
  60. package/build/features/event/stores/ListenerStore.d.ts +9 -0
  61. package/build/features/event/stores/ListenerStore.js +122 -0
  62. package/build/features/event/stores/ListenerStore.js.map +1 -0
  63. package/build/features/event/writers/EventWriter.d.ts +4 -1
  64. package/build/features/event/writers/EventWriter.js +42 -8
  65. package/build/features/event/writers/EventWriter.js.map +1 -1
  66. package/build/features/skill/SkillFeature.js +1 -1
  67. package/build/features/skill/SkillFeature.js.map +1 -1
  68. package/build/features/skill/stores/SkillStore.js +4 -8
  69. package/build/features/skill/stores/SkillStore.js.map +1 -1
  70. package/build/features/store/StoreFeature.d.ts +1 -1
  71. package/build/features/store/StoreFeature.js +16 -11
  72. package/build/features/store/StoreFeature.js.map +1 -1
  73. package/build/services/AuthService.d.ts +4 -1
  74. package/build/services/AuthService.js +15 -4
  75. package/build/services/AuthService.js.map +1 -1
  76. package/build/services/GameService.js +14 -10
  77. package/build/services/GameService.js.map +1 -1
  78. package/build/services/LintService.d.ts +5 -2
  79. package/build/services/LintService.js +137 -92
  80. package/build/services/LintService.js.map +1 -1
  81. package/build/services/ServiceFactory.js +9 -3
  82. package/build/services/ServiceFactory.js.map +1 -1
  83. package/build/stores/StoreFactory.d.ts +2 -0
  84. package/build/stores/StoreFactory.js +4 -1
  85. package/build/stores/StoreFactory.js.map +1 -1
  86. package/build/tests/AbstractCliTest.js +3 -3
  87. package/build/tests/AbstractCliTest.js.map +1 -1
  88. package/build/writers/AbstractWriter.d.ts +0 -3
  89. package/build/writers/AbstractWriter.js +2 -18
  90. package/build/writers/AbstractWriter.js.map +1 -1
  91. package/package.json +30 -28
  92. package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -0
  93. package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +10 -5
  94. package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -0
  95. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -0
  96. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +28 -9
  97. package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +47 -0
  98. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  99. package/src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts +59 -0
  100. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +1 -0
  101. package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +35 -6
  102. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -0
  103. package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +6 -0
  104. package/src/__tests__/implementation/AuthService.test.ts +6 -0
  105. package/src/__tests__/implementation/EventStore.test.ts +1 -0
  106. package/src/__tests__/implementation/LintService.test.ts +34 -0
  107. package/src/__tests__/implementation/StoreFeature.test.ts +40 -0
  108. package/src/errors/SpruceError.ts +9 -5
  109. package/src/features/event/EventFeature.ts +21 -4
  110. package/src/features/event/actions/ListenAction.ts +9 -3
  111. package/src/features/event/actions/SyncListenersAction.ts +38 -0
  112. package/src/features/event/builders/ListenerTemplateItemBuilder.ts +27 -0
  113. package/src/features/event/stores/EventStore.ts +1 -1
  114. package/src/features/event/stores/ListenerStore.ts +32 -0
  115. package/src/features/event/writers/EventWriter.ts +19 -0
  116. package/src/features/skill/SkillFeature.ts +1 -1
  117. package/src/features/skill/stores/SkillStore.ts +4 -3
  118. package/src/features/store/StoreFeature.ts +7 -4
  119. package/src/services/AuthService.ts +15 -5
  120. package/src/services/GameService.ts +1 -0
  121. package/src/services/LintService.ts +34 -5
  122. package/src/services/ServiceFactory.ts +8 -3
  123. package/src/stores/StoreFactory.ts +3 -0
  124. package/src/tests/AbstractCliTest.ts +2 -2
  125. package/src/writers/AbstractWriter.ts +2 -13
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.29.1](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.0...v14.29.1) (2021-12-08)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ # [14.29.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.8...v14.29.0) (2021-12-08)
15
+
16
+
17
+ ### Features
18
+
19
+ * sync.listeners ([c143a61](https://github.com/sprucelabsai/spruce-cli-workspace/commit/c143a61))
20
+
21
+
22
+
23
+
24
+
25
+ ## [14.28.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.7...v14.28.8) (2021-12-06)
26
+
27
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
28
+
29
+
30
+
31
+
32
+
33
+ ## [14.28.7](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.6...v14.28.7) (2021-12-06)
34
+
35
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
36
+
37
+
38
+
39
+
40
+
6
41
  ## [14.28.6](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.5...v14.28.6) (2021-12-05)
7
42
 
8
43
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -31,6 +31,8 @@ var _test = require("@sprucelabs/test");
31
31
 
32
32
  var _testUtils = require("@sprucelabs/test-utils");
33
33
 
34
+ var _LintService = _interopRequireDefault(require("../../services/LintService"));
35
+
34
36
  var _AbstractSkillTest2 = _interopRequireDefault(require("../../tests/AbstractSkillTest"));
35
37
 
36
38
  var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
@@ -190,27 +192,29 @@ var SettingLogTransportsInASkillTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
190
192
  while (1) {
191
193
  switch (_context5.prev = _context5.next) {
192
194
  case 0:
195
+ _LintService["default"].enableLinting();
196
+
193
197
  transportContents = "\n\t\timport { diskUtil, Level, LogTransport } from '@sprucelabs/spruce-skill-utils'\n\t\t\n\t\texport default function (): {\n\t\t\tlevels: Level[]\n\t\t\ttransport: LogTransport\n\t\t} | null {\n\t\t\treturn {\n\t\t\t\tlevels: ['ERROR', 'INFO', 'WARN'],\n\t\t\t\ttransport: (...messageParts: string[]) => {\n\t\t\t\t\tconst message = messageParts.join(' ')\n\t\t\t\t\tdiskUtil.writeFile(\n\t\t\t\t\t\tdiskUtil.resolvePath(__dirname, '..', '..', 'log.txt'),\n\t\t\t\t\t\tmessage\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\t";
194
- _context5.next = 3;
198
+ _context5.next = 4;
195
199
  return this.createTransportWithContents(transportContents, 'File');
196
200
 
197
- case 3:
198
- _context5.next = 5;
201
+ case 4:
202
+ _context5.next = 6;
199
203
  return this.Service('build').build();
200
204
 
201
- case 5:
202
- _context5.next = 7;
205
+ case 6:
206
+ _context5.next = 8;
203
207
  return this.Action('skill', 'boot').execute({});
204
208
 
205
- case 7:
209
+ case 8:
206
210
  boot = _context5.sent;
207
- _context5.next = 10;
211
+ _context5.next = 11;
208
212
  return (_boot$meta = boot.meta) === null || _boot$meta === void 0 ? void 0 : _boot$meta.kill();
209
213
 
210
- case 10:
214
+ case 11:
211
215
  _test.assert.isTrue(_spruceSkillUtils.diskUtil.doesFileExist(_spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'log.txt')));
212
216
 
213
- case 11:
217
+ case 12:
214
218
  case "end":
215
219
  return _context5.stop();
216
220
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts"],"names":["SettingLogTransportsInASkillTest","action","Action","assert","isFunction","execute","createTransport","results","isFalsy","errors","nameReadable","nameCamel","namesUtil","toCamel","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","resolvePath","isTrue","diskUtil","doesFileExist","isTruthy","errorAssertUtil","assertError","name","transportContents","createTransportWithContents","Service","build","boot","meta","kill","cwd","writeFile","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil, namesUtil } 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 SettingLogTransportsInASkillTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\n\t@test()\n\tprotected static async hasCreateTransportCommand() {\n\t\tconst action = this.Action('log', 'createTransport')\n\t\tassert.isFunction(action.execute)\n\t}\n\n\t@test()\n\tprotected static async needsNameOfTransport() {\n\t\tconst results = await this.createTransport()\n\t\tassert.isFalsy(results.errors)\n\t}\n\n\t@test('can create transport 1', 'Sms')\n\t@test('can create transport 2', 'Email')\n\tprotected static async createsTransportFile(nameReadable: string) {\n\t\tconst results = await this.createTransport(nameReadable)\n\t\tconst nameCamel = namesUtil.toCamel(nameReadable)\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}Transport.plugin.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tthis.resolvePath('src/logTransports', `${nameCamel}Transport.plugin.ts`)\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async cantCreateTransportThatAlreadyExists() {\n\t\tconst results = await this.createTransport('Slack')\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssertUtil.assertError(results.errors[0], 'TRANSPORT_ALREADY_EXISTS', {\n\t\t\tname: 'Slack',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async logsWriteToTransports() {\n\t\tconst transportContents = `\n\t\timport { diskUtil, Level, LogTransport } from '@sprucelabs/spruce-skill-utils'\n\t\t\n\t\texport default function (): {\n\t\t\tlevels: Level[]\n\t\t\ttransport: LogTransport\n\t\t} | null {\n\t\t\treturn {\n\t\t\t\tlevels: ['ERROR', 'INFO', 'WARN'],\n\t\t\t\ttransport: (...messageParts: string[]) => {\n\t\t\t\t\tconst message = messageParts.join(' ')\n\t\t\t\t\tdiskUtil.writeFile(\n\t\t\t\t\t\tdiskUtil.resolvePath(__dirname, '..', '..', 'log.txt'),\n\t\t\t\t\t\tmessage\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\t`\n\n\t\tawait this.createTransportWithContents(transportContents, 'File')\n\t\tawait this.Service('build').build()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({})\n\n\t\tawait boot.meta?.kill()\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(diskUtil.resolvePath(this.cwd, 'log.txt'))\n\t\t)\n\t}\n\n\tprivate static async createTransportWithContents(\n\t\ttransportContents: string,\n\t\tnameReadable: string\n\t) {\n\t\tconst results = await this.createTransport(nameReadable)\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${namesUtil.toCamel(nameReadable)}Transport.plugin.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, transportContents)\n\t}\n\n\tprivate static async createTransport(nameReadable = 'Slack') {\n\t\tconst action = this.Action('log', 'createTransport')\n\t\tconst results = await action.execute({\n\t\t\tnameReadable,\n\t\t\tnameCamel: namesUtil.toCamel(nameReadable),\n\t\t})\n\t\treturn results\n\t}\n}\n"],"file":"SettingLogTransportsInASkill.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts"],"names":["SettingLogTransportsInASkillTest","action","Action","assert","isFunction","execute","createTransport","results","isFalsy","errors","nameReadable","nameCamel","namesUtil","toCamel","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","resolvePath","isTrue","diskUtil","doesFileExist","isTruthy","errorAssertUtil","assertError","name","LintService","enableLinting","transportContents","createTransportWithContents","Service","build","boot","meta","kill","cwd","writeFile","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport LintService from '../../services/LintService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class SettingLogTransportsInASkillTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\n\t@test()\n\tprotected static async hasCreateTransportCommand() {\n\t\tconst action = this.Action('log', 'createTransport')\n\t\tassert.isFunction(action.execute)\n\t}\n\n\t@test()\n\tprotected static async needsNameOfTransport() {\n\t\tconst results = await this.createTransport()\n\t\tassert.isFalsy(results.errors)\n\t}\n\n\t@test('can create transport 1', 'Sms')\n\t@test('can create transport 2', 'Email')\n\tprotected static async createsTransportFile(nameReadable: string) {\n\t\tconst results = await this.createTransport(nameReadable)\n\t\tconst nameCamel = namesUtil.toCamel(nameReadable)\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}Transport.plugin.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tthis.resolvePath('src/logTransports', `${nameCamel}Transport.plugin.ts`)\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async cantCreateTransportThatAlreadyExists() {\n\t\tconst results = await this.createTransport('Slack')\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssertUtil.assertError(results.errors[0], 'TRANSPORT_ALREADY_EXISTS', {\n\t\t\tname: 'Slack',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async logsWriteToTransports() {\n\t\tLintService.enableLinting()\n\t\tconst transportContents = `\n\t\timport { diskUtil, Level, LogTransport } from '@sprucelabs/spruce-skill-utils'\n\t\t\n\t\texport default function (): {\n\t\t\tlevels: Level[]\n\t\t\ttransport: LogTransport\n\t\t} | null {\n\t\t\treturn {\n\t\t\t\tlevels: ['ERROR', 'INFO', 'WARN'],\n\t\t\t\ttransport: (...messageParts: string[]) => {\n\t\t\t\t\tconst message = messageParts.join(' ')\n\t\t\t\t\tdiskUtil.writeFile(\n\t\t\t\t\t\tdiskUtil.resolvePath(__dirname, '..', '..', 'log.txt'),\n\t\t\t\t\t\tmessage\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\t`\n\n\t\tawait this.createTransportWithContents(transportContents, 'File')\n\t\tawait this.Service('build').build()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({})\n\n\t\tawait boot.meta?.kill()\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(diskUtil.resolvePath(this.cwd, 'log.txt'))\n\t\t)\n\t}\n\n\tprivate static async createTransportWithContents(\n\t\ttransportContents: string,\n\t\tnameReadable: string\n\t) {\n\t\tconst results = await this.createTransport(nameReadable)\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${namesUtil.toCamel(nameReadable)}Transport.plugin.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, transportContents)\n\t}\n\n\tprivate static async createTransport(nameReadable = 'Slack') {\n\t\tconst action = this.Action('log', 'createTransport')\n\t\tconst results = await action.execute({\n\t\t\tnameReadable,\n\t\t\tnameCamel: namesUtil.toCamel(nameReadable),\n\t\t})\n\t\treturn results\n\t}\n}\n"],"file":"SettingLogTransportsInASkill.test.js"}
@@ -1,7 +1,7 @@
1
1
  import AbstractSkillTest from '../../tests/AbstractSkillTest';
2
2
  export default class SyncingEventsOnlyFromDependenciesTest extends AbstractSkillTest {
3
3
  protected static skillCacheKey: string;
4
- protected static doesntSyncAnythingToStart(): Promise<void>;
4
+ protected static doesntSyncAnythingButListenersToStart(): Promise<void>;
5
5
  protected static syncsEventsForSkillsWeveAddedAsDependencies(): Promise<void>;
6
6
  private static registerGlobalEvent;
7
7
  private static resolveEventFolder;
@@ -50,10 +50,10 @@ var SyncingEventsOnlyFromDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (
50
50
  }
51
51
 
52
52
  (0, _createClass2["default"])(SyncingEventsOnlyFromDependenciesTest, null, [{
53
- key: "doesntSyncAnythingToStart",
53
+ key: "doesntSyncAnythingButListenersToStart",
54
54
  value: function () {
55
- var _doesntSyncAnythingToStart = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
56
- var skills, _yield$this$registerG, skill, results, eventFolder, contents;
55
+ var _doesntSyncAnythingButListenersToStart = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
56
+ var skills, _yield$this$registerG, skill, results, eventFolder, files;
57
57
 
58
58
  return _regenerator["default"].wrap(function _callee$(_context) {
59
59
  while (1) {
@@ -84,11 +84,15 @@ var SyncingEventsOnlyFromDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (
84
84
 
85
85
  _test.assert.isFalse(_spruceSkillUtils.diskUtil.doesDirExist(eventFolder));
86
86
 
87
- contents = _fsExtra["default"].readdirSync(this.resolveHashSprucePath('events'));
87
+ files = _fsExtra["default"].readdirSync(this.resolveHashSprucePath('events'));
88
88
 
89
- _test.assert.isLength(contents, 1);
89
+ _test.assert.isLength(files, 2, 'The wrong number of files were generated.');
90
90
 
91
- case 15:
91
+ _test.assert.isEqual(files[0], 'events.contract.ts');
92
+
93
+ _test.assert.isEqual(files[1], 'listeners.ts');
94
+
95
+ case 17:
92
96
  case "end":
93
97
  return _context.stop();
94
98
  }
@@ -96,17 +100,17 @@ var SyncingEventsOnlyFromDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (
96
100
  }, _callee, this);
97
101
  }));
98
102
 
99
- function doesntSyncAnythingToStart() {
100
- return _doesntSyncAnythingToStart.apply(this, arguments);
103
+ function doesntSyncAnythingButListenersToStart() {
104
+ return _doesntSyncAnythingButListenersToStart.apply(this, arguments);
101
105
  }
102
106
 
103
- return doesntSyncAnythingToStart;
107
+ return doesntSyncAnythingButListenersToStart;
104
108
  }()
105
109
  }, {
106
110
  key: "syncsEventsForSkillsWeveAddedAsDependencies",
107
111
  value: function () {
108
112
  var _syncsEventsForSkillsWeveAddedAsDependencies = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
109
- var _yield$this$registerG2, skill, results, eventFolder, contents;
113
+ var _yield$this$registerG2, skill, results, eventFolder, files;
110
114
 
111
115
  return _regenerator["default"].wrap(function _callee2$(_context2) {
112
116
  while (1) {
@@ -134,11 +138,17 @@ var SyncingEventsOnlyFromDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (
134
138
 
135
139
  _test.assert.isTrue(_spruceSkillUtils.diskUtil.doesDirExist(eventFolder));
136
140
 
137
- contents = _fsExtra["default"].readdirSync(this.resolveHashSprucePath('events'));
141
+ files = _fsExtra["default"].readdirSync(this.resolveHashSprucePath('events'));
142
+
143
+ _test.assert.isLength(files, 3, 'The wrong number of files were generated.');
144
+
145
+ _test.assert.isEqual(files[0], _spruceSkillUtils.namesUtil.toCamel(skill.slug));
146
+
147
+ _test.assert.isEqual(files[1], 'events.contract.ts');
138
148
 
139
- _test.assert.isLength(contents, 2);
149
+ _test.assert.isEqual(files[2], 'listeners.ts');
140
150
 
141
- case 13:
151
+ case 16:
142
152
  case "end":
143
153
  return _context2.stop();
144
154
  }
@@ -204,6 +214,6 @@ var SyncingEventsOnlyFromDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (
204
214
  }
205
215
  }]);
206
216
  return SyncingEventsOnlyFromDependenciesTest;
207
- }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'events'), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesntSyncAnythingToStart", [_dec], Object.getOwnPropertyDescriptor(_class, "doesntSyncAnythingToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsEventsForSkillsWeveAddedAsDependencies", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsEventsForSkillsWeveAddedAsDependencies"), _class)), _class));
217
+ }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'events'), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesntSyncAnythingButListenersToStart", [_dec], Object.getOwnPropertyDescriptor(_class, "doesntSyncAnythingButListenersToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsEventsForSkillsWeveAddedAsDependencies", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsEventsForSkillsWeveAddedAsDependencies"), _class)), _class));
208
218
  exports["default"] = SyncingEventsOnlyFromDependenciesTest;
209
219
  //# sourceMappingURL=SyncingEventsOnlyFromDependencies.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts"],"names":["SyncingEventsOnlyFromDependenciesTest","skills","getSkillFixture","registerCurrentSkill","name","registerGlobalEvent","skill","Action","execute","results","assert","isFalsy","errors","eventFolder","resolveEventFolder","isFalse","diskUtil","doesDirExist","contents","fsUtil","readdirSync","resolveHashSprucePath","isLength","Service","add","id","namespace","slug","isTrue","seedDemoSkill","registerEventContract","eventSignatures","isGlobal","namesUtil","toCamel","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAGqBA,qC,WAGnB,iB,UAoBA,iB;;;;;;;;;;;;;qHApBD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,MAFP,GAEgB,KAAKC,eAAL,EAFhB;AAAA;AAAA,uBAGOD,MAAM,CAACE,oBAAP,CAA4B;AACjCC,kBAAAA,IAAI,EAAE;AAD2B,iBAA5B,CAHP;;AAAA;AAAA;AAAA,uBAMyB,KAAKC,mBAAL,EANzB;;AAAA;AAAA;AAMSC,gBAAAA,KANT,yBAMSA,KANT;AAAA;AAAA,uBAQuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6B,EAA7B,EAAiCC,OAAjC,CAAyC,EAAzC,CARvB;;AAAA;AAQOC,gBAAAA,OARP;;AASCC,6BAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;AAEMC,gBAAAA,WAXP,GAWqB,KAAKC,kBAAL,CAAwBR,KAAxB,CAXrB;;AAaCI,6BAAOK,OAAP,CAAeC,2BAASC,YAAT,CAAsBJ,WAAtB,CAAf;;AAEMK,gBAAAA,QAfP,GAekBC,oBAAOC,WAAP,CAAmB,KAAKC,qBAAL,CAA2B,QAA3B,CAAnB,CAflB;;AAiBCX,6BAAOY,QAAP,CAAgBJ,QAAhB,EAA0B,CAA1B;;AAjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uIAoBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEyB,KAAKb,mBAAL,EAFzB;;AAAA;AAAA;AAESC,gBAAAA,KAFT,0BAESA,KAFT;AAIC,qBAAKiB,OAAL,CAAa,YAAb,EAA2BC,GAA3B,CAA+B;AAC9BC,kBAAAA,EAAE,EAAEnB,KAAK,CAACmB,EADoB;AAE9BC,kBAAAA,SAAS,EAAEpB,KAAK,CAACqB;AAFa,iBAA/B;AAJD;AAAA,uBASuB,KAAKpB,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6B,EAA7B,EAAiCC,OAAjC,CAAyC,EAAzC,CATvB;;AAAA;AASOC,gBAAAA,OATP;;AAUCC,6BAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;AAEMC,gBAAAA,WAZP,GAYqB,KAAKC,kBAAL,CAAwBR,KAAxB,CAZrB;;AAcCI,6BAAOkB,MAAP,CAAcZ,2BAASC,YAAT,CAAsBJ,WAAtB,CAAd;;AAEMK,gBAAAA,QAhBP,GAgBkBC,oBAAOC,WAAP,CAAmB,KAAKC,qBAAL,CAA2B,QAA3B,CAAnB,CAhBlB;;AAkBCX,6BAAOY,QAAP,CAAgBJ,QAAhB,EAA0B,CAA1B;;AAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAqBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACOjB,gBAAAA,MADP,GACgB,KAAKC,eAAL,EADhB;AAAA;AAAA,uBAGqBD,MAAM,CAAC4B,aAAP,CAAqB;AAAEzB,kBAAAA,IAAI,EAAE;AAAR,iBAArB,CAHrB;;AAAA;AAGOE,gBAAAA,KAHP;AAAA;AAAA,uBAKOL,MAAM,CAAC6B,qBAAP,CAA6BxB,KAA7B,EAAoC;AACzCyB,kBAAAA,eAAe,EAAE;AAChB,8CAA0B;AACzBC,sBAAAA,QAAQ,EAAE;AADe;AADV;AADwB,iBAApC,CALP;;AAAA;AAAA,kDAaQ;AAAE1B,kBAAAA,KAAK,EAALA;AAAF,iBAbR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAgBA,4BAAkCA,KAAlC,EAA0D;AACzD,aAAO,KAAKe,qBAAL,CAA2B,QAA3B,EAAqCY,4BAAUC,OAAV,CAAkB5B,KAAK,CAACqB,IAAxB,CAArC,CAAP;AACA;;;EA9DiEQ,8B,8DACjC,Q","sourcesContent":["import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport fsUtil from 'fs-extra'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport { RegisteredSkill } from '../../types/cli.types'\n\nexport default class SyncingEventsOnlyFromDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async doesntSyncAnythingToStart() {\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\t\tconst { skill } = await this.registerGlobalEvent()\n\n\t\tconst results = await this.Action('event', 'sync', {}).execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst eventFolder = this.resolveEventFolder(skill)\n\n\t\tassert.isFalse(diskUtil.doesDirExist(eventFolder))\n\n\t\tconst contents = fsUtil.readdirSync(this.resolveHashSprucePath('events'))\n\n\t\tassert.isLength(contents, 1)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsForSkillsWeveAddedAsDependencies() {\n\t\tconst { skill } = await this.registerGlobalEvent()\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync', {}).execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst eventFolder = this.resolveEventFolder(skill)\n\n\t\tassert.isTrue(diskUtil.doesDirExist(eventFolder))\n\n\t\tconst contents = fsUtil.readdirSync(this.resolveHashSprucePath('events'))\n\n\t\tassert.isLength(contents, 2)\n\t}\n\n\tprivate static async registerGlobalEvent() {\n\t\tconst skills = this.getSkillFixture()\n\n\t\tconst skill = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait skills.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\treturn { skill }\n\t}\n\n\tprivate static resolveEventFolder(skill: RegisteredSkill) {\n\t\treturn this.resolveHashSprucePath('events', namesUtil.toCamel(skill.slug))\n\t}\n}\n"],"file":"SyncingEventsOnlyFromDependencies.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts"],"names":["SyncingEventsOnlyFromDependenciesTest","skills","getSkillFixture","registerCurrentSkill","name","registerGlobalEvent","skill","Action","execute","results","assert","isFalsy","errors","eventFolder","resolveEventFolder","isFalse","diskUtil","doesDirExist","files","fsUtil","readdirSync","resolveHashSprucePath","isLength","isEqual","Service","add","id","namespace","slug","isTrue","namesUtil","toCamel","seedDemoSkill","registerEventContract","eventSignatures","isGlobal","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport fsUtil from 'fs-extra'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport { RegisteredSkill } from '../../types/cli.types'\n\nexport default class SyncingEventsOnlyFromDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async doesntSyncAnythingButListenersToStart() {\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\t\tconst { skill } = await this.registerGlobalEvent()\n\n\t\tconst results = await this.Action('event', 'sync', {}).execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst eventFolder = this.resolveEventFolder(skill)\n\n\t\tassert.isFalse(diskUtil.doesDirExist(eventFolder))\n\n\t\tconst files = fsUtil.readdirSync(this.resolveHashSprucePath('events'))\n\n\t\tassert.isLength(files, 2, 'The wrong number of files were generated.')\n\t\tassert.isEqual(files[0], 'events.contract.ts')\n\t\tassert.isEqual(files[1], 'listeners.ts')\n\t}\n\n\t@test()\n\tprotected static async syncsEventsForSkillsWeveAddedAsDependencies() {\n\t\tconst { skill } = await this.registerGlobalEvent()\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync', {}).execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst eventFolder = this.resolveEventFolder(skill)\n\n\t\tassert.isTrue(diskUtil.doesDirExist(eventFolder))\n\n\t\tconst files = fsUtil.readdirSync(this.resolveHashSprucePath('events'))\n\n\t\tassert.isLength(files, 3, 'The wrong number of files were generated.')\n\t\tassert.isEqual(files[0], namesUtil.toCamel(skill.slug))\n\t\tassert.isEqual(files[1], 'events.contract.ts')\n\t\tassert.isEqual(files[2], 'listeners.ts')\n\t}\n\n\tprivate static async registerGlobalEvent() {\n\t\tconst skills = this.getSkillFixture()\n\n\t\tconst skill = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait skills.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\treturn { skill }\n\t}\n\n\tprivate static resolveEventFolder(skill: RegisteredSkill) {\n\t\treturn this.resolveHashSprucePath('events', namesUtil.toCamel(skill.slug))\n\t}\n}\n"],"file":"SyncingEventsOnlyFromDependencies.test.js"}
@@ -29,6 +29,8 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
29
29
 
30
30
  var _test = require("@sprucelabs/test");
31
31
 
32
+ var _LintService = _interopRequireDefault(require("../../services/LintService"));
33
+
32
34
  var _AbstractSkillTest2 = _interopRequireDefault(require("../../tests/AbstractSkillTest"));
33
35
 
34
36
  var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
@@ -116,6 +118,8 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
116
118
  while (1) {
117
119
  switch (_context4.prev = _context4.next) {
118
120
  case 0:
121
+ _LintService["default"].enableLinting();
122
+
119
123
  this.cli.getFeature('store').isInstalled = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
120
124
  return _regenerator["default"].wrap(function _callee3$(_context3) {
121
125
  while (1) {
@@ -136,10 +140,10 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
136
140
  nameCamel: 'canBookAppointment',
137
141
  namePascal: 'CanBookAppointment'
138
142
  });
139
- _context4.next = 4;
143
+ _context4.next = 5;
140
144
  return this.waitForInput();
141
145
 
142
- case 4:
146
+ case 5:
143
147
  last = this.ui.getLastInvocation();
144
148
 
145
149
  _test.assert.isTruthy(last.options.options.choices);
@@ -148,14 +152,14 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
148
152
  label: 'AbstractStoreTest'
149
153
  });
150
154
 
151
- _context4.next = 9;
155
+ _context4.next = 10;
152
156
  return this.selectOptionBasedOnLabel('AbstractStoreTest');
153
157
 
154
- case 9:
155
- _context4.next = 11;
158
+ case 10:
159
+ _context4.next = 12;
156
160
  return promise;
157
161
 
158
- case 11:
162
+ case 12:
159
163
  results = _context4.sent;
160
164
 
161
165
  _test.assert.isFalsy(results.errors);
@@ -165,16 +169,16 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
165
169
 
166
170
  _test.assert.doesInclude(contents, 'CanBookAppointmentTest extends AbstractStoreTest');
167
171
 
168
- _context4.next = 18;
172
+ _context4.next = 19;
169
173
  return this.Service('build').build();
170
174
 
171
- case 18:
172
- _context4.next = 20;
175
+ case 19:
176
+ _context4.next = 21;
173
177
  return this.Action('test', 'test').execute({
174
178
  shouldReportWhileRunning: false
175
179
  });
176
180
 
177
- case 20:
181
+ case 21:
178
182
  testResults = _context4.sent;
179
183
 
180
184
  _test.assert.isArray(testResults.errors);
@@ -185,7 +189,7 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
185
189
 
186
190
  _test.assert.doesInclude(first.message, 'does not equal');
187
191
 
188
- case 25:
192
+ case 26:
189
193
  case "end":
190
194
  return _context4.stop();
191
195
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/TestingDataStores.test.ts"],"names":["TestingDataStoresTest","storeFeature","cli","getFeature","isInstalled","Action","execute","type","nameReadable","nameCamel","namePascal","waitForInput","last","ui","getLastInvocation","assert","isTruthy","options","choices","doesInclude","label","reset","promise","selectOptionBasedOnLabel","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","contents","diskUtil","readFile","Service","build","shouldReportWhileRunning","testResults","isArray","isLength","first","message","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class TestingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'storesWithTests'\n\n\t@test()\n\tprotected static async cantSelectAbstractStoreIfStoreFeatureNotInstalled() {\n\t\tconst storeFeature = this.cli.getFeature('store')\n\n\t\tstoreFeature.isInstalled = async () => false\n\n\t\tvoid 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\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest (requires install)',\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async letsYouSelectAbstractStoreTest() {\n\t\tthis.cli.getFeature('store').isInstalled = async () => true\n\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\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest',\n\t\t})\n\n\t\tawait this.selectOptionBasedOnLabel('AbstractStoreTest')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'CanBookAppointmentTest extends AbstractStoreTest'\n\t\t)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\tshouldReportWhileRunning: false,\n\t\t})\n\n\t\tassert.isArray(testResults.errors)\n\t\tassert.isLength(testResults.errors, 1)\n\n\t\tconst first = testResults.errors[0]\n\n\t\tassert.doesInclude(first.message, 'does not equal')\n\t}\n}\n"],"file":"TestingDataStores.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/TestingDataStores.test.ts"],"names":["TestingDataStoresTest","storeFeature","cli","getFeature","isInstalled","Action","execute","type","nameReadable","nameCamel","namePascal","waitForInput","last","ui","getLastInvocation","assert","isTruthy","options","choices","doesInclude","label","reset","LintService","enableLinting","promise","selectOptionBasedOnLabel","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","contents","diskUtil","readFile","Service","build","shouldReportWhileRunning","testResults","isArray","isLength","first","message","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,qB,WAGnB,iB,UAwBA,iB;;;;;;;;;;;;;6IAxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,YAFP,GAEsB,KAAKC,GAAL,CAASC,UAAT,CAAoB,OAApB,CAFtB;AAICF,gBAAAA,YAAY,CAACG,WAAb,8FAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,2DAAY,KAAZ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA3B;AAEA,qBAAK,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;AAC1CC,kBAAAA,IAAI,EAAE,YADoC;AAE1CC,kBAAAA,YAAY,EAAE,sBAF4B;AAG1CC,kBAAAA,SAAS,EAAE,oBAH+B;AAI1CC,kBAAAA,UAAU,EAAE;AAJ8B,iBAAtC,CAAL;AAND;AAAA,uBAaO,KAAKC,YAAL,EAbP;;AAAA;AAeOC,gBAAAA,IAfP,GAec,KAAKC,EAAL,CAAQC,iBAAR,EAfd;;AAgBCC,6BAAOC,QAAP,CAAgBJ,IAAI,CAACK,OAAL,CAAaA,OAAb,CAAqBC,OAArC;;AACAH,6BAAOI,WAAP,CAAmBP,IAAI,CAACK,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;AAChDE,kBAAAA,KAAK,EAAE;AADyC,iBAAjD;;AAIA,qBAAKP,EAAL,CAAQQ,KAAR;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAwBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,wCAAYC,aAAZ;;AACA,qBAAKrB,GAAL,CAASC,UAAT,CAAoB,OAApB,EAA6BC,WAA7B,8FAA2C;AAAA;AAAA;AAAA;AAAA;AAAA,4DAAY,IAAZ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA3C;AAEMoB,gBAAAA,OALP,GAKiB,KAAKnB,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,CALjB;AAAA;AAAA,uBAYO,KAAKC,YAAL,EAZP;;AAAA;AAcOC,gBAAAA,IAdP,GAcc,KAAKC,EAAL,CAAQC,iBAAR,EAdd;;AAeCC,6BAAOC,QAAP,CAAgBJ,IAAI,CAACK,OAAL,CAAaA,OAAb,CAAqBC,OAArC;;AACAH,6BAAOI,WAAP,CAAmBP,IAAI,CAACK,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;AAChDE,kBAAAA,KAAK,EAAE;AADyC,iBAAjD;;AAhBD;AAAA,uBAoBO,KAAKK,wBAAL,CAA8B,mBAA9B,CApBP;;AAAA;AAAA;AAAA,uBAsBuBD,OAtBvB;;AAAA;AAsBOE,gBAAAA,OAtBP;;AAwBCX,6BAAOY,OAAP,CAAeD,OAAO,CAACE,MAAvB;;AAEMC,gBAAAA,KA1BP,GA0BeC,kBAASC,gCAAT,CACb,4BADa,EAEbL,OAAO,CAACM,KAFK,CA1Bf;AA+BOC,gBAAAA,QA/BP,GA+BkBC,2BAASC,QAAT,CAAkBN,KAAlB,CA/BlB;;AAiCCd,6BAAOI,WAAP,CACCc,QADD,EAEC,kDAFD;;AAjCD;AAAA,uBAsCO,KAAKG,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAtCP;;AAAA;AAAA;AAAA,uBAwC2B,KAAKhC,MAAL,CAAY,MAAZ,EAAoB,MAApB,EAA4BC,OAA5B,CAAoC;AAC7DgC,kBAAAA,wBAAwB,EAAE;AADmC,iBAApC,CAxC3B;;AAAA;AAwCOC,gBAAAA,WAxCP;;AA4CCxB,6BAAOyB,OAAP,CAAeD,WAAW,CAACX,MAA3B;;AACAb,6BAAO0B,QAAP,CAAgBF,WAAW,CAACX,MAA5B,EAAoC,CAApC;;AAEMc,gBAAAA,KA/CP,GA+CeH,WAAW,CAACX,MAAZ,CAAmB,CAAnB,CA/Cf;;AAiDCb,6BAAOI,WAAP,CAAmBuB,KAAK,CAACC,OAAzB,EAAkC,gBAAlC;;AAjDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA3BkDC,8B,8DACjB,iB","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport LintService from '../../services/LintService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class TestingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'storesWithTests'\n\n\t@test()\n\tprotected static async cantSelectAbstractStoreIfStoreFeatureNotInstalled() {\n\t\tconst storeFeature = this.cli.getFeature('store')\n\n\t\tstoreFeature.isInstalled = async () => false\n\n\t\tvoid 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\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest (requires install)',\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async letsYouSelectAbstractStoreTest() {\n\t\tLintService.enableLinting()\n\t\tthis.cli.getFeature('store').isInstalled = async () => true\n\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\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest',\n\t\t})\n\n\t\tawait this.selectOptionBasedOnLabel('AbstractStoreTest')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'CanBookAppointmentTest extends AbstractStoreTest'\n\t\t)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\tshouldReportWhileRunning: false,\n\t\t})\n\n\t\tassert.isArray(testResults.errors)\n\t\tassert.isLength(testResults.errors, 1)\n\n\t\tconst first = testResults.errors[0]\n\n\t\tassert.doesInclude(first.message, 'does not equal')\n\t}\n}\n"],"file":"TestingDataStores.test.js"}
@@ -71,7 +71,9 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _test.test)(), _dec2 = (0,
71
71
  case 4:
72
72
  this.cli = _context.sent;
73
73
 
74
- case 5:
74
+ _spruceSkillUtils.diskUtil.writeFile(this.resolvePath('package.json'), '{}');
75
+
76
+ case 6:
75
77
  case "end":
76
78
  return _context.stop();
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"names":["GeneratingMercuryEventContractTest","Cli","cli","assert","isTruthy","getFeature","isFunction","Action","execute","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","resolvePath","doesInclude","name","action","contents","diskUtil","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","pullContracts","Service","importDefault","AbstractCliTest"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async pullsGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-event',\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isAbove(contracts.length, 1)\n\t\tassert.isObject(contracts[1].eventSignatures)\n\t\tassert.isObject(contracts[1].eventSignatures[fqen])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"file":"PullingMercuryEventContract.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"names":["GeneratingMercuryEventContractTest","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","pullContracts","Service","importDefault","AbstractCliTest"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async pullsGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-event',\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isAbove(contracts.length, 1)\n\t\tassert.isObject(contracts[1].eventSignatures)\n\t\tassert.isObject(contracts[1].eventSignatures[fqen])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"file":"PullingMercuryEventContract.test.js"}
@@ -3,10 +3,12 @@ export default class CreatingAListenerTest extends AbstractEventTest {
3
3
  private static readonly expectedVersion;
4
4
  protected static throwsWithBadNamespace(): Promise<void>;
5
5
  protected static throwsWithBadEventName(): Promise<void>;
6
+ protected static generatesMapFile(): Promise<void>;
6
7
  protected static createsValidListener(): Promise<void>;
7
8
  protected static creatingANewListenerAsksWhichEventToListenTo(): Promise<void>;
8
9
  protected static generatesTypedListenerWithoutPayloads(): Promise<void>;
9
10
  protected static generatesTypedListenerWithEmitPayload(): Promise<void>;
10
11
  protected static emittingEventTriggersListenerAndCrashesWithListenerNotImplemented(): Promise<void>;
12
+ private static installEventsAndCreateListener;
11
13
  private static setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener;
12
14
  }