@sprucelabs/spruce-cli 14.24.4 → 14.24.8

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 (47) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +24 -28
  3. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  4. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.d.ts +1 -1
  5. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.d.ts +1 -1
  6. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +10 -14
  7. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  8. package/build/__tests__/behavioral/skill/UpgradingASkill.test.d.ts +1 -1
  9. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js +23 -12
  10. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +1 -1
  11. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +1 -1
  12. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +20 -10
  13. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
  14. package/build/features/error/ErrorFeature.js.map +1 -1
  15. package/build/features/error/writers/ErrorWriter.js +29 -6
  16. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  17. package/build/features/event/EventFeature.d.ts +3 -1
  18. package/build/features/event/EventFeature.js +46 -29
  19. package/build/features/event/EventFeature.js.map +1 -1
  20. package/build/features/event/stores/EventStore.d.ts +2 -1
  21. package/build/features/event/stores/EventStore.js +33 -22
  22. package/build/features/event/stores/EventStore.js.map +1 -1
  23. package/build/features/node/NodeFeature.d.ts +2 -1
  24. package/build/features/node/NodeFeature.js +86 -34
  25. package/build/features/node/NodeFeature.js.map +1 -1
  26. package/build/features/node/actions/UpgradeAction.js +9 -21
  27. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  28. package/build/features/organization/stores/OrganizationStore.d.ts +2 -2
  29. package/build/features/test/actions/TestAction.js +1 -1
  30. package/build/features/test/actions/TestAction.js.map +1 -1
  31. package/build/interfaces/TerminalInterface.js +7 -7
  32. package/build/interfaces/TerminalInterface.js.map +1 -1
  33. package/build/tests/AbstractEventTest.d.ts +2 -2
  34. package/build/tests/fixtures/OrganizationFixture.d.ts +1 -1
  35. package/package.json +32 -31
  36. package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +20 -23
  37. package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +2 -5
  38. package/src/__tests__/behavioral/skill/UpgradingASkill.test.ts +30 -7
  39. package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +10 -1
  40. package/src/features/error/ErrorFeature.ts +2 -0
  41. package/src/features/error/writers/ErrorWriter.ts +3 -1
  42. package/src/features/event/EventFeature.ts +32 -14
  43. package/src/features/event/stores/EventStore.ts +12 -4
  44. package/src/features/node/NodeFeature.ts +34 -1
  45. package/src/features/node/actions/UpgradeAction.ts +2 -11
  46. package/src/features/test/actions/TestAction.ts +4 -1
  47. package/src/interfaces/TerminalInterface.ts +5 -5
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
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.24.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.24.7...v14.24.8) (2021-11-03)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ ## [14.24.7](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.24.6...v14.24.7) (2021-11-02)
15
+
16
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
17
+
18
+
19
+
20
+
21
+
22
+ ## [14.24.6](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.24.5...v14.24.6) (2021-11-01)
23
+
24
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
25
+
26
+
27
+
28
+
29
+
30
+ ## [14.24.5](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.24.4...v14.24.5) (2021-10-31)
31
+
32
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
33
+
34
+
35
+
36
+
37
+
6
38
  ## [14.24.4](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.24.3...v14.24.4) (2021-10-29)
7
39
 
8
40
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -31,8 +31,6 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
31
31
 
32
32
  var _test = require("@sprucelabs/test");
33
33
 
34
- var _EventStore = _interopRequireDefault(require("../../features/event/stores/EventStore"));
35
-
36
34
  var _AbstractEventTest2 = _interopRequireDefault(require("../../tests/AbstractEventTest"));
37
35
 
38
36
  var _dec, _class;
@@ -44,7 +42,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
44
42
  var EVENT_NAME_READABLE = 'did book appointment';
45
43
  var EVENT_NAME = 'did-book-appointment';
46
44
  var EVENT_CAMEL = 'didBookAppointment';
47
- var RegisteringEventsOnBootTest = (_dec = _test.test.only(), (_class = /*#__PURE__*/function (_AbstractEventTest) {
45
+ var RegisteringEventsOnBootTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractEventTest) {
48
46
  (0, _inherits2["default"])(RegisteringEventsOnBootTest, _AbstractEventTest);
49
47
 
50
48
  var _super = _createSuper(RegisteringEventsOnBootTest);
@@ -133,10 +131,7 @@ var RegisteringEventsOnBootTest = (_dec = _test.test.only(), (_class = /*#__PURE
133
131
 
134
132
  case 16:
135
133
  client = _context3.sent;
136
-
137
- _EventStore["default"].clearCache();
138
-
139
- _context3.next = 20;
134
+ _context3.next = 19;
140
135
  return this.Store('event', {
141
136
  apiClientFactory: function () {
142
137
  var _apiClientFactory = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
@@ -162,7 +157,7 @@ var RegisteringEventsOnBootTest = (_dec = _test.test.only(), (_class = /*#__PURE
162
157
  }()
163
158
  }).fetchEventContracts();
164
159
 
165
- case 20:
160
+ case 19:
166
161
  contractResults = _context3.sent;
167
162
  contracts = contractResults.contracts;
168
163
  (_boot$meta = boot.meta) === null || _boot$meta === void 0 ? void 0 : _boot$meta.kill();
@@ -178,28 +173,29 @@ var RegisteringEventsOnBootTest = (_dec = _test.test.only(), (_class = /*#__PURE
178
173
  namespace = _spruceSkillUtils.namesUtil.toPascal(currentSkill.slug);
179
174
  sig = _spruceEventUtils.eventContractUtil.getSignatureByName(contracts[1], name);
180
175
 
181
- _test.assert.doesInclude(sig, {
182
- emitPayloadSchema: {
183
- id: 'didBookAppointmentEmitTargetAndPayload',
184
- version: version,
185
- namespace: namespace
186
- },
187
- responsePayloadSchema: {
188
- id: 'myFantasticallyAmazingEventResponsePayload',
189
- version: version,
190
- namespace: namespace
191
- },
192
- emitPermissionContract: {
193
- id: 'myFantasticallyAmazingEventEmitPermissions',
194
- name: 'my fantastically amazing event'
195
- },
196
- listenPermissionContract: {
197
- id: 'myFantasticallyAmazingEventListenPermissions',
198
- name: 'my fantastically amazing event'
199
- }
176
+ _test.assert.doesInclude(sig.emitPayloadSchema, {
177
+ id: 'didBookAppointmentEmitTargetAndPayload',
178
+ version: version,
179
+ namespace: namespace
180
+ });
181
+
182
+ _test.assert.doesInclude(sig.responsePayloadSchema, {
183
+ id: 'myFantasticallyAmazingEventResponsePayload',
184
+ version: version,
185
+ namespace: namespace
186
+ });
187
+
188
+ _test.assert.doesInclude(sig.emitPermissionContract, {
189
+ id: 'myFantasticallyAmazingEventEmitPermissions',
190
+ name: 'my fantastically amazing event'
191
+ });
192
+
193
+ _test.assert.doesInclude(sig.listenPermissionContract, {
194
+ id: 'myFantasticallyAmazingEventListenPermissions',
195
+ name: 'my fantastically amazing event'
200
196
  });
201
197
 
202
- case 29:
198
+ case 31:
203
199
  case "end":
204
200
  return _context3.stop();
205
201
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","RegisteringEventsOnBootTest","test","only","getPersonFixture","loginAsDemoPerson","process","env","DEMO_NUMBER_EVENTS_ON_BOOT","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skill2","currentSkill","Action","execute","nameReadable","nameKebab","nameCamel","copyEventBuildersAndPermissions","local","boot","connectToApi","skillId","id","apiKey","client","EventStore","clearCache","Store","apiClientFactory","fetchEventContracts","contractResults","contracts","meta","kill","version","versionUtil","generateVersion","constValue","name","eventNameUtil","join","eventNamespace","slug","eventName","assert","isTrue","length","namespace","namesUtil","toPascal","sig","eventContractUtil","getSignatureByName","doesInclude","emitPayloadSchema","responsePayloadSchema","emitPermissionContract","listenPermissionContract","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\n\nconst EVENT_NAME_READABLE = 'did book appointment'\nconst EVENT_NAME = 'did-book-appointment'\nconst EVENT_CAMEL = 'didBookAppointment'\n\nexport default class RegisteringEventsOnBootTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.getPersonFixture().loginAsDemoPerson(\n\t\t\tprocess.env.DEMO_NUMBER_EVENTS_ON_BOOT\n\t\t)\n\t}\n\n\t@test.only()\n\tprotected static async registeringEventsOnBoot() {\n\t\tconst { skill2, currentSkill } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})\n\n\t\tEventStore.clearCache()\n\n\t\tconst contractResults = await this.Store('event', {\n\t\t\tapiClientFactory: async () => client,\n\t\t}).fetchEventContracts()\n\n\t\tconst contracts = contractResults.contracts\n\n\t\tboot.meta?.kill()\n\n\t\tconst version = versionUtil.generateVersion().constValue\n\t\tconst name = eventNameUtil.join({\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\teventName: EVENT_NAME,\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isTrue(contracts.length >= 2)\n\n\t\tconst namespace = namesUtil.toPascal(currentSkill.slug)\n\t\tconst sig = eventContractUtil.getSignatureByName(contracts[1], name)\n\n\t\tassert.doesInclude(sig, {\n\t\t\temitPayloadSchema: {\n\t\t\t\tid: 'didBookAppointmentEmitTargetAndPayload',\n\t\t\t\tversion,\n\t\t\t\tnamespace,\n\t\t\t},\n\t\t\tresponsePayloadSchema: {\n\t\t\t\tid: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t\tversion,\n\t\t\t\tnamespace,\n\t\t\t},\n\t\t\temitPermissionContract: {\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t},\n\t\t\tlistenPermissionContract: {\n\t\t\t\tid: 'myFantasticallyAmazingEventListenPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t},\n\t\t})\n\t}\n}\n"],"file":"RegisteringEventsOnBoot.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","RegisteringEventsOnBootTest","getPersonFixture","loginAsDemoPerson","process","env","DEMO_NUMBER_EVENTS_ON_BOOT","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skill2","currentSkill","Action","execute","nameReadable","nameKebab","nameCamel","copyEventBuildersAndPermissions","local","boot","connectToApi","skillId","id","apiKey","client","Store","apiClientFactory","fetchEventContracts","contractResults","contracts","meta","kill","version","versionUtil","generateVersion","constValue","name","eventNameUtil","join","eventNamespace","slug","eventName","assert","isTrue","length","namespace","namesUtil","toPascal","sig","eventContractUtil","getSignatureByName","doesInclude","emitPayloadSchema","responsePayloadSchema","emitPermissionContract","listenPermissionContract","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\n\nconst EVENT_NAME_READABLE = 'did book appointment'\nconst EVENT_NAME = 'did-book-appointment'\nconst EVENT_CAMEL = 'didBookAppointment'\n\nexport default class RegisteringEventsOnBootTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.getPersonFixture().loginAsDemoPerson(\n\t\t\tprocess.env.DEMO_NUMBER_EVENTS_ON_BOOT\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async registeringEventsOnBoot() {\n\t\tconst { skill2, currentSkill } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})\n\n\t\tconst contractResults = await this.Store('event', {\n\t\t\tapiClientFactory: async () => client,\n\t\t}).fetchEventContracts()\n\n\t\tconst contracts = contractResults.contracts\n\n\t\tboot.meta?.kill()\n\n\t\tconst version = versionUtil.generateVersion().constValue\n\t\tconst name = eventNameUtil.join({\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\teventName: EVENT_NAME,\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isTrue(contracts.length >= 2)\n\n\t\tconst namespace = namesUtil.toPascal(currentSkill.slug)\n\t\tconst sig = eventContractUtil.getSignatureByName(contracts[1], name)\n\n\t\tassert.doesInclude(sig.emitPayloadSchema, {\n\t\t\tid: 'didBookAppointmentEmitTargetAndPayload',\n\t\t\tversion,\n\t\t\tnamespace,\n\t\t})\n\n\t\tassert.doesInclude(sig.responsePayloadSchema, {\n\t\t\tid: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\tversion,\n\t\t\tnamespace,\n\t\t})\n\t\tassert.doesInclude(sig.emitPermissionContract, {\n\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\tname: 'my fantastically amazing event',\n\t\t})\n\n\t\tassert.doesInclude(sig.listenPermissionContract, {\n\t\t\tid: 'myFantasticallyAmazingEventListenPermissions',\n\t\t\tname: 'my fantastically amazing event',\n\t\t})\n\t}\n}\n"],"file":"RegisteringEventsOnBoot.test.js"}
@@ -9,7 +9,7 @@ export default class RegisteringSkillViewOnBootTest extends AbstractSkillTest {
9
9
  protected static registerCurrentSkillAndInstallToOrg(): Promise<{
10
10
  skillFixture: import("../../tests/fixtures/SkillFixture").default;
11
11
  currentSkill: import("../../types/cli.types").RegisteredSkill;
12
- org: import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Spruce.v2020_07_22.OrganizationSchema, false, "dateDeleted", import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Spruce.v2020_07_22.OrganizationSchema, false>>;
12
+ org: import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Spruce.v2020_07_22.OrganizationSchema, false, import("@sprucelabs/schema").SchemaOptionalFieldNames<import("@sprucelabs/mercury-types").SpruceSchemas.Spruce.v2020_07_22.OrganizationSchema>, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Spruce.v2020_07_22.OrganizationSchema, false>>;
13
13
  orgFixture: import("../../tests/fixtures/OrganizationFixture").default;
14
14
  }>;
15
15
  }
@@ -2,7 +2,7 @@ import AbstractEventTest from '../../../tests/AbstractEventTest';
2
2
  export default class KeepingEventsInSyncTest extends AbstractEventTest {
3
3
  private static randomVersion;
4
4
  private static get todaysVersion();
5
- protected static syncingSchemasWithBrokenConnectionStopsWithError(): Promise<void>;
5
+ protected static syncingSchemasWithDisconnectedStopsWithError(): Promise<void>;
6
6
  protected static syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled(): Promise<void>;
7
7
  protected static canGetNumberOfEventsBackFromHealthCheck(): Promise<void>;
8
8
  protected static syncsEventsFromOtherSkills(): Promise<void>;
@@ -35,8 +35,6 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
35
35
 
36
36
  var _test = require("@sprucelabs/test");
37
37
 
38
- var _EventStore = _interopRequireDefault(require("../../../features/event/stores/EventStore"));
39
-
40
38
  var _EventWriter = require("../../../features/event/writers/EventWriter");
41
39
 
42
40
  var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
@@ -62,7 +60,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
62
60
  var EVENT_NAME_READABLE = 'my permission amazing event';
63
61
  var EVENT_NAME = 'my-permission-amazing-event';
64
62
  var EVENT_CAMEL = 'myPermissionAmazingEvent';
65
- var KeepingEventsInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractEventTest) {
63
+ var KeepingEventsInSyncTest = (_dec = _test.test.skip('find how to simulate connection errors'), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractEventTest) {
66
64
  (0, _inherits2["default"])(KeepingEventsInSyncTest, _AbstractEventTest);
67
65
 
68
66
  var _super = _createSuper(KeepingEventsInSyncTest);
@@ -78,9 +76,9 @@ var KeepingEventsInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
78
76
  return _spruceSkillUtils.versionUtil.generateVersion();
79
77
  }
80
78
  }, {
81
- key: "syncingSchemasWithBrokenConnectionStopsWithError",
79
+ key: "syncingSchemasWithDisconnectedStopsWithError",
82
80
  value: function () {
83
- var _syncingSchemasWithBrokenConnectionStopsWithError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
81
+ var _syncingSchemasWithDisconnectedStopsWithError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
84
82
  var results, match, client, results2;
85
83
  return _regenerator["default"].wrap(function _callee$(_context) {
86
84
  while (1) {
@@ -114,19 +112,17 @@ var KeepingEventsInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
114
112
  return client.disconnect();
115
113
 
116
114
  case 14:
117
- _EventStore["default"].clearCache();
118
-
119
- _context.next = 17;
115
+ _context.next = 16;
120
116
  return this.Action('schema', 'sync').execute({});
121
117
 
122
- case 17:
118
+ case 16:
123
119
  results2 = _context.sent;
124
120
 
125
121
  _test.assert.isTruthy(results2.errors);
126
122
 
127
123
  _test.assert.isTrue(_spruceSkillUtils.diskUtil.doesFileExist(match));
128
124
 
129
- case 20:
125
+ case 19:
130
126
  case "end":
131
127
  return _context.stop();
132
128
  }
@@ -134,11 +130,11 @@ var KeepingEventsInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
134
130
  }, _callee, this);
135
131
  }));
136
132
 
137
- function syncingSchemasWithBrokenConnectionStopsWithError() {
138
- return _syncingSchemasWithBrokenConnectionStopsWithError.apply(this, arguments);
133
+ function syncingSchemasWithDisconnectedStopsWithError() {
134
+ return _syncingSchemasWithDisconnectedStopsWithError.apply(this, arguments);
139
135
  }
140
136
 
141
- return syncingSchemasWithBrokenConnectionStopsWithError;
137
+ return syncingSchemasWithDisconnectedStopsWithError;
142
138
  }()
143
139
  }, {
144
140
  key: "syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled",
@@ -823,6 +819,6 @@ var KeepingEventsInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
823
819
  }
824
820
  }]);
825
821
  return KeepingEventsInSyncTest;
826
- }(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "randomVersion", 'v2020_01_01'), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "syncingSchemasWithBrokenConnectionStopsWithError", [_dec], Object.getOwnPropertyDescriptor(_class, "syncingSchemasWithBrokenConnectionStopsWithError"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canGetNumberOfEventsBackFromHealthCheck", [_dec3], Object.getOwnPropertyDescriptor(_class, "canGetNumberOfEventsBackFromHealthCheck"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsEventsFromOtherSkills", [_dec4], Object.getOwnPropertyDescriptor(_class, "syncsEventsFromOtherSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "twoSkillsWithSameEventCanBeSynced", [_dec5], Object.getOwnPropertyDescriptor(_class, "twoSkillsWithSameEventCanBeSynced"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "skillWithSameEventNameButDifferentVersionsCanBeSynced", [_dec6], Object.getOwnPropertyDescriptor(_class, "skillWithSameEventNameButDifferentVersionsCanBeSynced"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "unRegisteredEventsAreRemoved", [_dec7], Object.getOwnPropertyDescriptor(_class, "unRegisteredEventsAreRemoved"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emptyPermissionsAreNotAddedToContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "emptyPermissionsAreNotAddedToContract"), _class)), _class));
822
+ }(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "randomVersion", 'v2020_01_01'), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "syncingSchemasWithDisconnectedStopsWithError", [_dec], Object.getOwnPropertyDescriptor(_class, "syncingSchemasWithDisconnectedStopsWithError"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canGetNumberOfEventsBackFromHealthCheck", [_dec3], Object.getOwnPropertyDescriptor(_class, "canGetNumberOfEventsBackFromHealthCheck"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsEventsFromOtherSkills", [_dec4], Object.getOwnPropertyDescriptor(_class, "syncsEventsFromOtherSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "twoSkillsWithSameEventCanBeSynced", [_dec5], Object.getOwnPropertyDescriptor(_class, "twoSkillsWithSameEventCanBeSynced"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "skillWithSameEventNameButDifferentVersionsCanBeSynced", [_dec6], Object.getOwnPropertyDescriptor(_class, "skillWithSameEventNameButDifferentVersionsCanBeSynced"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "unRegisteredEventsAreRemoved", [_dec7], Object.getOwnPropertyDescriptor(_class, "unRegisteredEventsAreRemoved"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emptyPermissionsAreNotAddedToContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "emptyPermissionsAreNotAddedToContract"), _class)), _class));
827
823
  exports["default"] = KeepingEventsInSyncTest;
828
824
  //# sourceMappingURL=KeepingEventsInSync2.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","EventStore","clearCache","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport EventStore from '../../../features/event/stores/EventStore'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasWithBrokenConnectionStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tEventStore.clearCache()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.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\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.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\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
@@ -6,7 +6,7 @@ export default class UpgradingASkillTest extends AbstractCliTest {
6
6
  protected static canSkipFile(): Promise<void>;
7
7
  protected static canAlwaysSkipFiles(): Promise<void>;
8
8
  protected static upgradesUpdatesPackageScripts(): Promise<void>;
9
- protected static upgradesPlugins(pluginName: string, cacheKey: string): Promise<void>;
9
+ protected static upgradesPlugins(pluginName: string, cacheKey: string, shouldMockYarn?: boolean): Promise<void>;
10
10
  protected static canSkipPackageScriptChanges(): Promise<void>;
11
11
  protected static asksForEachScriptChange(): Promise<void>;
12
12
  protected static canSkipAllScriptChanges(): Promise<void>;
@@ -39,7 +39,7 @@ var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractC
39
39
 
40
40
  var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
41
41
 
42
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class;
42
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _class;
43
43
 
44
44
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
45
45
 
@@ -52,7 +52,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
52
52
  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; } }
53
53
 
54
54
  var BROKEN_SKILL_INDEX_CONTENTS = "throw new Error('cheese!')\n";
55
- var UpgradingASkillTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)('Upgrades error.plugin', 'error.plugin.ts', 'errors'), _dec7 = (0, _test.test)('Upgrades schema.plugin', 'schema.plugin.ts', 'schemas'), _dec8 = (0, _test.test)('Upgrades conversation.plugin', 'conversation.plugin.ts', 'conversation'), _dec9 = (0, _test.test)(), _dec10 = (0, _test.test)(), _dec11 = (0, _test.test)(), _dec12 = (0, _test.test)(), _dec13 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
55
+ var UpgradingASkillTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)('Upgrades error.plugin (even if skill is broken)', 'error.plugin.ts', 'errors'), _dec7 = (0, _test.test)('Upgrades schema.plugin (even if skill is broken)', 'schema.plugin.ts', 'schemas'), _dec8 = (0, _test.test)('Upgrades conversation.plugin (even if skill is broken)', 'conversation.plugin.ts', 'conversation', false), _dec9 = (0, _test.test)('Upgrades view.plugin (even if skill is broken)', 'view.plugin.ts', 'views', false), _dec10 = (0, _test.test)(), _dec11 = (0, _test.test)(), _dec12 = (0, _test.test)(), _dec13 = (0, _test.test)(), _dec14 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
56
56
  (0, _inherits2["default"])(UpgradingASkillTest, _AbstractCliTest);
57
57
 
58
58
  var _super = _createSuper(UpgradingASkillTest);
@@ -461,37 +461,48 @@ var UpgradingASkillTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
461
461
  key: "upgradesPlugins",
462
462
  value: function () {
463
463
  var _upgradesPlugins = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(pluginName, cacheKey) {
464
- var pluginPath, originalContents, results, updatedContents;
464
+ var _results$summaryLines;
465
+
466
+ var shouldMockYarn,
467
+ pluginPath,
468
+ originalContents,
469
+ results,
470
+ updatedContents,
471
+ _args7 = arguments;
465
472
  return _regenerator["default"].wrap(function _callee7$(_context7) {
466
473
  while (1) {
467
474
  switch (_context7.prev = _context7.next) {
468
475
  case 0:
469
- _context7.next = 2;
476
+ shouldMockYarn = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : true;
477
+ _context7.next = 3;
470
478
  return this.FeatureFixture().installCachedFeatures(cacheKey);
471
479
 
472
- case 2:
473
- _CommandService["default"].setMockResponse(/yarn/, {
480
+ case 3:
481
+ shouldMockYarn && _CommandService["default"].setMockResponse(/yarn/, {
474
482
  code: 0
475
483
  });
476
-
477
484
  pluginPath = this.resolveHashSprucePath("features/".concat(pluginName));
478
485
  originalContents = _spruceSkillUtils.diskUtil.readFile(pluginPath);
479
486
 
480
- _spruceSkillUtils.diskUtil.writeFile(pluginPath, '');
487
+ _spruceSkillUtils.diskUtil.writeFile(pluginPath, 'aoeuaoeuaoeuaoeu');
481
488
 
482
- _context7.next = 8;
489
+ _context7.next = 9;
483
490
  return this.Action('node', 'upgrade').execute({});
484
491
 
485
- case 8:
492
+ case 9:
486
493
  results = _context7.sent;
487
494
 
495
+ _test.assert.isFalsy(results.errors);
496
+
488
497
  _test2["default"].assertFileByNameInGeneratedFiles(pluginName, results.files);
489
498
 
490
499
  updatedContents = _spruceSkillUtils.diskUtil.readFile(pluginPath);
491
500
 
492
501
  _test.assert.isEqual(updatedContents, originalContents);
493
502
 
494
- case 12:
503
+ _test.assert.doesInclude((_results$summaryLines = results.summaryLines) !== null && _results$summaryLines !== void 0 ? _results$summaryLines : [], 'Rebuild Complete');
504
+
505
+ case 15:
495
506
  case "end":
496
507
  return _context7.stop();
497
508
  }
@@ -974,6 +985,6 @@ var UpgradingASkillTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
974
985
  }
975
986
  }]);
976
987
  return UpgradingASkillTest;
977
- }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "forceEverythingUpgradeOverwritesWhatHasChanged", [_dec], Object.getOwnPropertyDescriptor(_class, "forceEverythingUpgradeOverwritesWhatHasChanged"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeWillAskIfYouWantToOverwriteFiles", [_dec2], Object.getOwnPropertyDescriptor(_class, "upgradeWillAskIfYouWantToOverwriteFiles"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "canSkipFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canAlwaysSkipFiles", [_dec4], Object.getOwnPropertyDescriptor(_class, "canAlwaysSkipFiles"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradesUpdatesPackageScripts", [_dec5], Object.getOwnPropertyDescriptor(_class, "upgradesUpdatesPackageScripts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradesPlugins", [_dec6, _dec7, _dec8], Object.getOwnPropertyDescriptor(_class, "upgradesPlugins"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipPackageScriptChanges", [_dec9], Object.getOwnPropertyDescriptor(_class, "canSkipPackageScriptChanges"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "asksForEachScriptChange", [_dec10], Object.getOwnPropertyDescriptor(_class, "asksForEachScriptChange"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipAllScriptChanges", [_dec11], Object.getOwnPropertyDescriptor(_class, "canSkipAllScriptChanges"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canOverwriteChangedScript", [_dec12], Object.getOwnPropertyDescriptor(_class, "canOverwriteChangedScript"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillWithSandboxUpgradesTheListener", [_dec13], Object.getOwnPropertyDescriptor(_class, "upgradingSkillWithSandboxUpgradesTheListener"), _class)), _class));
988
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "forceEverythingUpgradeOverwritesWhatHasChanged", [_dec], Object.getOwnPropertyDescriptor(_class, "forceEverythingUpgradeOverwritesWhatHasChanged"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeWillAskIfYouWantToOverwriteFiles", [_dec2], Object.getOwnPropertyDescriptor(_class, "upgradeWillAskIfYouWantToOverwriteFiles"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "canSkipFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canAlwaysSkipFiles", [_dec4], Object.getOwnPropertyDescriptor(_class, "canAlwaysSkipFiles"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradesUpdatesPackageScripts", [_dec5], Object.getOwnPropertyDescriptor(_class, "upgradesUpdatesPackageScripts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradesPlugins", [_dec6, _dec7, _dec8, _dec9], Object.getOwnPropertyDescriptor(_class, "upgradesPlugins"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipPackageScriptChanges", [_dec10], Object.getOwnPropertyDescriptor(_class, "canSkipPackageScriptChanges"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "asksForEachScriptChange", [_dec11], Object.getOwnPropertyDescriptor(_class, "asksForEachScriptChange"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSkipAllScriptChanges", [_dec12], Object.getOwnPropertyDescriptor(_class, "canSkipAllScriptChanges"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canOverwriteChangedScript", [_dec13], Object.getOwnPropertyDescriptor(_class, "canOverwriteChangedScript"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillWithSandboxUpgradesTheListener", [_dec14], Object.getOwnPropertyDescriptor(_class, "upgradingSkillWithSandboxUpgradesTheListener"), _class)), _class));
978
989
  exports["default"] = UpgradingASkillTest;
979
990
  //# sourceMappingURL=UpgradingASkill.test.js.map