@sprucelabs/spruce-cli 18.3.1 → 19.0.0

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 (85) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.d.ts +1 -1
  3. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +20 -39
  4. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  5. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  6. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +1 -0
  7. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +53 -18
  8. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  9. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.d.ts +2 -0
  10. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +75 -30
  11. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  12. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +1 -1
  13. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  14. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  15. package/build/__tests__/support/EventFaker.d.ts +1 -1
  16. package/build/__tests__/support/EventFaker.js.map +1 -1
  17. package/build/features/event/EventFeature.d.ts +1 -0
  18. package/build/features/event/EventFeature.js +90 -68
  19. package/build/features/event/EventFeature.js.map +1 -1
  20. package/build/features/eventContract/EventContractFeature.js +1 -4
  21. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  22. package/build/features/eventContract/actions/PullAction.d.ts +1 -0
  23. package/build/features/eventContract/actions/PullAction.js +52 -9
  24. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  25. package/build/features/permission/PermissionFeature.js +19 -9
  26. package/build/features/permission/PermissionFeature.js.map +1 -1
  27. package/build/features/permission/actions/SyncAction.d.ts +22 -3
  28. package/build/features/permission/actions/SyncAction.js +58 -16
  29. package/build/features/permission/actions/SyncAction.js.map +1 -1
  30. package/build/features/permission/stores/PermissionStore.d.ts +6 -2
  31. package/build/features/permission/stores/PermissionStore.js +25 -21
  32. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  33. package/build/features/view/actions/WatchAction.js +1 -1
  34. package/build/features/view/actions/WatchAction.js.map +1 -1
  35. package/node_modules/@typescript-eslint/parser/LICENSE +5 -5
  36. package/node_modules/@typescript-eslint/parser/README.md +6 -300
  37. package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
  38. package/node_modules/@typescript-eslint/parser/dist/parser.js +15 -17
  39. package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
  40. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  41. package/node_modules/@typescript-eslint/scope-manager/LICENSE +1 -1
  42. package/node_modules/@typescript-eslint/scope-manager/README.md +5 -117
  43. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  44. package/node_modules/@typescript-eslint/types/LICENSE +1 -1
  45. package/node_modules/@typescript-eslint/types/README.md +6 -11
  46. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +0 -6
  47. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +0 -6
  48. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  49. package/node_modules/@typescript-eslint/types/package.json +3 -3
  50. package/node_modules/@typescript-eslint/typescript-estree/LICENSE +5 -5
  51. package/node_modules/@typescript-eslint/typescript-estree/README.md +6 -379
  52. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
  53. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/index.d.ts +1 -1
  54. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +3 -3
  55. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -1
  56. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
  57. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.d.ts.map +1 -0
  58. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.js → getWatchProgramsForProjects.js} +4 -5
  59. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -0
  60. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +1 -1
  61. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +1 -1
  62. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +2 -2
  63. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -1
  64. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +2 -2
  65. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  66. package/node_modules/@typescript-eslint/visitor-keys/LICENSE +1 -1
  67. package/node_modules/@typescript-eslint/visitor-keys/README.md +6 -9
  68. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  69. package/package.json +27 -27
  70. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +6 -18
  71. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +1 -1
  72. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +21 -3
  73. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +13 -0
  74. package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +1 -1
  75. package/src/__tests__/implementation/ActionExecuter2.test.ts +0 -2
  76. package/src/__tests__/support/EventFaker.ts +1 -2
  77. package/src/features/event/EventFeature.ts +10 -4
  78. package/src/features/eventContract/EventContractFeature.ts +1 -6
  79. package/src/features/eventContract/actions/PullAction.ts +24 -4
  80. package/src/features/permission/PermissionFeature.ts +2 -7
  81. package/src/features/permission/actions/SyncAction.ts +42 -5
  82. package/src/features/permission/stores/PermissionStore.ts +25 -11
  83. package/src/features/view/actions/WatchAction.ts +1 -1
  84. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +0 -1
  85. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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
+ # [19.0.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.4.0...v19.0.0) (2022-12-21)
7
+
8
+ ### Breaking Changes
9
+
10
+ - pulling contract no longer brings in global ([2354b92](https://github.com/sprucelabsai/spruce-cli-workspace/commit/2354b92))
11
+
12
+ # [18.4.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.3.1...v18.4.0) (2022-12-07)
13
+
14
+ ### Features
15
+
16
+ - can now pull core permissions ([9fc1838](https://github.com/sprucelabsai/spruce-cli-workspace/commit/9fc1838))
17
+
6
18
  ## [18.3.1](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.3.0...v18.3.1) (2022-12-02)
7
19
 
8
20
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -7,7 +7,7 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
7
7
  protected static generatesContractAtCwd(): Promise<void>;
8
8
  protected static generatesAtDestination(): Promise<void>;
9
9
  protected static savesContractLocallyAndImportsAsDefault(): Promise<void>;
10
- protected static pullsGlobalContracts(): Promise<void>;
10
+ protected static doesNotPullGlobalContracts(): Promise<void>;
11
11
  protected static contractHasTypes(): Promise<void>;
12
12
  protected static generatingASecondTimeReportsAnUpdate(): Promise<void>;
13
13
  private static installSkillAndPullContracts;
@@ -15,7 +15,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
18
- var _spruceEventUtils = require("@sprucelabs/spruce-event-utils");
19
18
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
20
19
  var _testUtils = require("@sprucelabs/test-utils");
21
20
  var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
@@ -200,10 +199,10 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
200
199
  return savesContractLocallyAndImportsAsDefault;
201
200
  }()
202
201
  }, {
203
- key: "pullsGlobalContracts",
202
+ key: "doesNotPullGlobalContracts",
204
203
  value: function () {
205
- var _pullsGlobalContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
206
- var skill, events, fqen, contracts;
204
+ var _doesNotPullGlobalContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
205
+ var events, contracts;
207
206
  return _regenerator["default"].wrap(function _callee7$(_context7) {
208
207
  while (1) {
209
208
  switch (_context7.prev = _context7.next) {
@@ -217,12 +216,11 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
217
216
  name: 'heartwood test'
218
217
  });
219
218
  case 5:
220
- skill = _context7.sent;
221
- _context7.next = 8;
219
+ _context7.next = 7;
222
220
  return this.Store('event');
223
- case 8:
221
+ case 7:
224
222
  events = _context7.sent;
225
- _context7.next = 11;
223
+ _context7.next = 10;
226
224
  return events.registerEventContract({
227
225
  eventContract: {
228
226
  eventSignatures: {
@@ -232,30 +230,25 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
232
230
  }
233
231
  }
234
232
  });
235
- case 11:
236
- fqen = _spruceEventUtils.eventNameUtil.join({
237
- eventName: 'test-event',
238
- eventNamespace: skill.slug,
239
- version: 'v2020_01_01'
240
- });
241
- _context7.next = 14;
233
+ case 10:
234
+ _context7.next = 12;
242
235
  return this.installSkillAndPullContracts();
243
- case 14:
236
+ case 12:
244
237
  contracts = _context7.sent;
245
- _testUtils.assert.isAbove(contracts.length, 1);
246
- _testUtils.assert.isObject(contracts[1].eventSignatures);
247
- _testUtils.assert.isObject(contracts[1].eventSignatures[fqen]);
248
- case 18:
238
+ _testUtils.assert.isEqual(contracts.length, 1);
239
+ _testUtils.assert.isObject(contracts[0].eventSignatures);
240
+ _testUtils.assert.isObject(contracts[0].eventSignatures['add-role::v2020_12_25']);
241
+ case 16:
249
242
  case "end":
250
243
  return _context7.stop();
251
244
  }
252
245
  }
253
246
  }, _callee7, this);
254
247
  }));
255
- function pullsGlobalContracts() {
256
- return _pullsGlobalContracts.apply(this, arguments);
248
+ function doesNotPullGlobalContracts() {
249
+ return _doesNotPullGlobalContracts.apply(this, arguments);
257
250
  }
258
- return pullsGlobalContracts;
251
+ return doesNotPullGlobalContracts;
259
252
  }()
260
253
  }, {
261
254
  key: "contractHasTypes",
@@ -274,27 +267,15 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
274
267
  shouldAutoHandleDependencies: true
275
268
  }).execute({});
276
269
  _context8.next = 6;
277
- return this.waitForInput();
278
- case 6:
279
- _context8.next = 8;
280
- return this.ui.sendInput('Y');
281
- case 8:
282
- _context8.next = 10;
283
- return this.waitForInput();
284
- case 10:
285
- _context8.next = 12;
286
- return this.ui.sendInput('\n');
287
- case 12:
288
- _context8.next = 14;
289
270
  return promise;
290
- case 14:
271
+ case 6:
291
272
  results = _context8.sent;
292
273
  match = _test["default"].assertFileByNameInGeneratedFiles('events.contract.ts', results.files);
293
274
  contents = _spruceSkillUtils.diskUtil.readFile(match);
294
275
  _testUtils.assert.doesInclude(contents, 'export default eventContracts');
295
276
  _testUtils.assert.doesInclude(contents, 'as const');
296
- _testUtils.assert.doesInclude(contents, 'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]');
297
- case 20:
277
+ _testUtils.assert.doesInclude(contents, 'export type CoreEventContract = typeof eventContracts[0]');
278
+ case 12:
298
279
  case "end":
299
280
  return _context8.stop();
300
281
  }
@@ -405,6 +386,6 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
405
386
  }()
406
387
  }]);
407
388
  return GeneratingMercuryEventContractTest;
408
- }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "cli", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasEventContractFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "hasEventContractFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasPullFeature", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasPullFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesContractAtCwd", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesContractAtCwd"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesAtDestination", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesAtDestination"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "savesContractLocallyAndImportsAsDefault", [_dec5], Object.getOwnPropertyDescriptor(_class, "savesContractLocallyAndImportsAsDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "pullsGlobalContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "pullsGlobalContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "contractHasTypes", [_dec7], Object.getOwnPropertyDescriptor(_class, "contractHasTypes"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatingASecondTimeReportsAnUpdate", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatingASecondTimeReportsAnUpdate"), _class)), _class));
389
+ }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "cli", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasEventContractFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "hasEventContractFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasPullFeature", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasPullFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesContractAtCwd", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesContractAtCwd"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesAtDestination", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesAtDestination"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "savesContractLocallyAndImportsAsDefault", [_dec5], Object.getOwnPropertyDescriptor(_class, "savesContractLocallyAndImportsAsDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotPullGlobalContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "doesNotPullGlobalContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "contractHasTypes", [_dec7], Object.getOwnPropertyDescriptor(_class, "contractHasTypes"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatingASecondTimeReportsAnUpdate", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatingASecondTimeReportsAnUpdate"), _class)), _class));
409
390
  exports["default"] = GeneratingMercuryEventContractTest;
410
391
  //# sourceMappingURL=PullingMercuryEventContract.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","test","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","promise","shouldAutoHandleDependencies","waitForInput","ui","sendInput","pullContracts","Service","importDefault","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"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-utils'\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\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\tawait this.FeatureFixture().installCachedFeatures('events')\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\tawait this.FeatureFixture().installCachedFeatures('events')\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 promise = this.Action('eventContract', 'pull', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('Y')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tconst results = await promise\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\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\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\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"],"mappings":"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"}
1
+ {"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","test","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","getSkillFixture","registerCurrentSkill","Store","events","registerEventContract","eventContract","isGlobal","length","promise","shouldAutoHandleDependencies","pullContracts","Service","importDefault","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\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\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\tawait this.FeatureFixture().installCachedFeatures('events')\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\tawait this.FeatureFixture().installCachedFeatures('events')\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 doesNotPullGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait 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 contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isEqual(contracts.length, 1)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures['add-role::v2020_12_25'])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst promise = this.Action('eventContract', 'pull', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tconst results = await promise\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]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\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\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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","Service","getSkillNamespace","namespace","contractName1","generateShortAlphaId","fqid1","contractName2","contractId","fqid2","buildPermissionContractId","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","fakeListPermissionContracts","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","id","path","resolvePath","perm1Id","perm2Id","updateFirstContractBuilder","addRandomDependency","target","passedTarget","fetchContracts","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","old","connectToApi","bind","options","passedOptions","shouldAuthAsCurrentSkill","file","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","add","expected","perms","sort","sortPermissionContracts","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore, {\n\tImportedPermission,\n} from '../../../features/permission/stores/PermissionStore'\nimport { ApiClientFactoryOptions } from '../../../types/apiClient.types'\nimport { ListPermContractsTargetAndPayload } from '../../support/EventFaker'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\nimport generateShortAlphaId from './support/generateShortAlphaId'\nimport { sortPermissionContracts } from './support/sortPermissionContracts'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static fqid1: string\n\tprivate static fqid2: string\n\tprivate static namespace: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tconst namespace = await this.Service('pkg').getSkillNamespace()\n\t\tthis.namespace = namespace\n\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.fqid1 = `${namespace}.${this.contractName1}`\n\n\t\tthis.contractName2 = generateShortAlphaId()\n\t\tconst contractId = this.contractName2\n\t\tthis.fqid2 = buildPermissionContractId(contractId, namespace)\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.permissions = this.Store('permission')\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {})\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, [])\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst contractId = 'oeu-aoeuao'\n\t\tconst perm1Id = 'what-the'\n\t\tconst perm2Id = 'go-dogs'\n\n\t\tthis.updateFirstContractBuilder(contractId, perm1Id, perm2Id)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: buildPermissionContractId(contractId, this.namespace),\n\t\t\t\tpermissions: [perm1Id, perm2Id],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async passesThroughDependentSkills() {\n\t\tconst namespace = this.addRandomDependency()\n\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(({ target }) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tawait this.fetchContracts()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsDependencyMapFromRemoteContracts() {\n\t\tconst perm = this.generatePermValues()\n\t\tconst perm2 = this.generatePermValues()\n\t\tconst perm3 = this.generatePermValues()\n\n\t\tconst { contract, contractId } = this.generateContractRowValues([\n\t\t\tperm,\n\t\t\tperm2,\n\t\t])\n\n\t\tconst { contract: contract2, contractId: contractId2 } =\n\t\t\tthis.generateContractRowValues([perm3])\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\treturn [contract, contract2]\n\t\t})\n\n\t\tconst map = await this.fetchContracts()\n\t\t//@ts-ignore\n\t\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.fqid2]: ['can-high-five'],\n\t\t\t[buildPermissionContractId('oeu-aoeuao', this.namespace)]: [\n\t\t\t\t'what-the',\n\t\t\t\t'go-dogs',\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async connectsAsSkill() {\n\t\tlet passedOptions: ApiClientFactoryOptions | undefined\n\n\t\t//@ts-ignore\n\t\tconst old = this.permissions.connectToApi.bind(this.permissions)\n\t\t//@ts-ignore\n\t\tthis.permissions.connectToApi = (options) => {\n\t\t\tpassedOptions = options\n\t\t\treturn old(passedOptions)\n\t\t}\n\n\t\tawait this.fetchContracts()\n\t\tassert.isEqualDeep(passedOptions, { shouldAuthAsCurrentSkill: true })\n\t}\n\n\tprivate static updateFirstContractBuilder(\n\t\tcontractId: string,\n\t\tperm1Id: string,\n\t\tperm2Id: string\n\t) {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(\n\t\t\tfile,\n\t\t\tgenerateContractBuilder(contractId, perm1Id, perm2Id)\n\t\t)\n\t}\n\n\tprivate static generateContractRowValues(\n\t\tpermissions: SpruceSchemas.Mercury.v2020_12_25.Permission[]\n\t) {\n\t\tconst contractId = generateId()\n\t\tconst contract = {\n\t\t\tid: generateId(),\n\t\t\tcontract: {\n\t\t\t\tid: contractId,\n\t\t\t\tname: generateId(),\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t}\n\t\treturn { contract, contractId }\n\t}\n\n\tprivate static generatePermValues() {\n\t\tconst permissionId = generateId()\n\t\tconst perm = {\n\t\t\tid: permissionId,\n\t\t\tname: generateId(),\n\t\t\tdefaults: {},\n\t\t}\n\t\treturn perm\n\t}\n\n\tprivate static addRandomDependency() {\n\t\tconst dep = this.Service('dependency')\n\t\tconst namespace = generateId()\n\t\tdep.add({\n\t\t\tid: generateId(),\n\t\t\tnamespace,\n\t\t})\n\t\treturn namespace\n\t}\n\n\tprivate static async fetchContracts() {\n\t\treturn this.permissions.fetchContracts()\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: ImportedPermission[]\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\n\t\tperms.sort(sortPermissionContracts)\n\t\texpected.sort(sortPermissionContracts)\n\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\t//@ts-ignore\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\n\nfunction buildPermissionContractId(\n\tcontractId: string,\n\tnamespace?: string\n): string {\n\treturn `${namespace}.${contractId}`\n}\n\nfunction generateContractBuilder(\n\tcontractId = 'oeu-aoeuao',\n\tperm1Id = 'what-the',\n\tperm2Id = 'go-dogs'\n) {\n\treturn `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '${contractId}',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '${perm1Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '${perm2Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","Service","getSkillNamespace","namespace","contractName1","generateShortAlphaId","fqid1","contractName2","contractId","fqid2","buildPermissionContractId","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","fakeListPermissionContracts","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","id","path","resolvePath","perm1Id","perm2Id","updateFirstContractBuilder","addRandomDependency","target","passedTarget","fetchContracts","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","old","connectToApi","bind","options","passedOptions","shouldAuthAsCurrentSkill","file","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","add","expected","perms","sort","sortPermissionContracts","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore, {\n\tImportedPermission,\n\tListPermContractsTargetAndPayload,\n} from '../../../features/permission/stores/PermissionStore'\nimport { ApiClientFactoryOptions } from '../../../types/apiClient.types'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\nimport generateShortAlphaId from './support/generateShortAlphaId'\nimport { sortPermissionContracts } from './support/sortPermissionContracts'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static fqid1: string\n\tprivate static fqid2: string\n\tprivate static namespace: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tconst namespace = await this.Service('pkg').getSkillNamespace()\n\t\tthis.namespace = namespace\n\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.fqid1 = `${namespace}.${this.contractName1}`\n\n\t\tthis.contractName2 = generateShortAlphaId()\n\t\tconst contractId = this.contractName2\n\t\tthis.fqid2 = buildPermissionContractId(contractId, namespace)\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.permissions = this.Store('permission')\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {})\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, [])\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: this.fqid1,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst contractId = 'oeu-aoeuao'\n\t\tconst perm1Id = 'what-the'\n\t\tconst perm2Id = 'go-dogs'\n\n\t\tthis.updateFirstContractBuilder(contractId, perm1Id, perm2Id)\n\n\t\tawait this.assertLocalPermissionsEqual([\n\t\t\t{\n\t\t\t\tid: this.fqid2,\n\t\t\t\tpermissions: ['can-high-five'],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName2}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: buildPermissionContractId(contractId, this.namespace),\n\t\t\t\tpermissions: [perm1Id, perm2Id],\n\t\t\t\tpath: this.resolvePath(\n\t\t\t\t\t`src/permissions/${this.contractName1}.permissions.ts`\n\t\t\t\t),\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async passesThroughDependentSkills() {\n\t\tconst namespace = this.addRandomDependency()\n\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(({ target }) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tawait this.fetchContracts()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsDependencyMapFromRemoteContracts() {\n\t\tconst perm = this.generatePermValues()\n\t\tconst perm2 = this.generatePermValues()\n\t\tconst perm3 = this.generatePermValues()\n\n\t\tconst { contract, contractId } = this.generateContractRowValues([\n\t\t\tperm,\n\t\t\tperm2,\n\t\t])\n\n\t\tconst { contract: contract2, contractId: contractId2 } =\n\t\t\tthis.generateContractRowValues([perm3])\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\treturn [contract, contract2]\n\t\t})\n\n\t\tconst map = await this.fetchContracts()\n\t\t//@ts-ignore\n\t\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.fqid2]: ['can-high-five'],\n\t\t\t[buildPermissionContractId('oeu-aoeuao', this.namespace)]: [\n\t\t\t\t'what-the',\n\t\t\t\t'go-dogs',\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async connectsAsSkill() {\n\t\tlet passedOptions: ApiClientFactoryOptions | undefined\n\n\t\t//@ts-ignore\n\t\tconst old = this.permissions.connectToApi.bind(this.permissions)\n\t\t//@ts-ignore\n\t\tthis.permissions.connectToApi = (options) => {\n\t\t\tpassedOptions = options\n\t\t\treturn old(passedOptions)\n\t\t}\n\n\t\tawait this.fetchContracts()\n\t\tassert.isEqualDeep(passedOptions, { shouldAuthAsCurrentSkill: true })\n\t}\n\n\tprivate static updateFirstContractBuilder(\n\t\tcontractId: string,\n\t\tperm1Id: string,\n\t\tperm2Id: string\n\t) {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(\n\t\t\tfile,\n\t\t\tgenerateContractBuilder(contractId, perm1Id, perm2Id)\n\t\t)\n\t}\n\n\tprivate static generateContractRowValues(\n\t\tpermissions: SpruceSchemas.Mercury.v2020_12_25.Permission[]\n\t) {\n\t\tconst contractId = generateId()\n\t\tconst contract = {\n\t\t\tid: generateId(),\n\t\t\tcontract: {\n\t\t\t\tid: contractId,\n\t\t\t\tname: generateId(),\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t}\n\t\treturn { contract, contractId }\n\t}\n\n\tprivate static generatePermValues() {\n\t\tconst permissionId = generateId()\n\t\tconst perm = {\n\t\t\tid: permissionId,\n\t\t\tname: generateId(),\n\t\t\tdefaults: {},\n\t\t}\n\t\treturn perm\n\t}\n\n\tprivate static addRandomDependency() {\n\t\tconst dep = this.Service('dependency')\n\t\tconst namespace = generateId()\n\t\tdep.add({\n\t\t\tid: generateId(),\n\t\t\tnamespace,\n\t\t})\n\t\treturn namespace\n\t}\n\n\tprivate static async fetchContracts() {\n\t\treturn this.permissions.fetchContracts()\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: ImportedPermission[]\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\n\t\tperms.sort(sortPermissionContracts)\n\t\texpected.sort(sortPermissionContracts)\n\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\t//@ts-ignore\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\n\nfunction buildPermissionContractId(\n\tcontractId: string,\n\tnamespace?: string\n): string {\n\treturn `${namespace}.${contractId}`\n}\n\nfunction generateContractBuilder(\n\tcontractId = 'oeu-aoeuao',\n\tperm1Id = 'what-the',\n\tperm2Id = 'go-dogs'\n) {\n\treturn `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: '${contractId}',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: '${perm1Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: '${perm2Id}',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n}\n"],"mappings":"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"}
@@ -11,6 +11,7 @@ export default class SyncingPermissionsTest extends AbstractPermissionsTest {
11
11
  protected static doesNotSyncIfNotInstalled(): Promise<void>;
12
12
  protected static generatesCombinedFile(): Promise<void>;
13
13
  protected static combinedFileImportsAllPermissions(): Promise<void>;
14
+ protected static canSyncCorePermissions(): Promise<void>;
14
15
  private static getCombinedPath;
15
16
  private static beginTrackingExecute;
16
17
  private static sync;
@@ -24,10 +24,10 @@ var _test = _interopRequireDefault(require("../../../tests/utilities/test.utilit
24
24
  var _AbstractPermissionsTest = _interopRequireDefault(require("./support/AbstractPermissionsTest"));
25
25
  var _generateShortAlphaId = _interopRequireDefault(require("./support/generateShortAlphaId"));
26
26
  var _sortPermissionContracts = require("./support/sortPermissionContracts");
27
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2;
27
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
28
28
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
29
29
  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; } }
30
- var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), _dec5 = (0, _testUtils.test)(), _dec6 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractPermissionsT) {
30
+ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), _dec5 = (0, _testUtils.test)(), _dec6 = (0, _testUtils.test)(), _dec7 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractPermissionsT) {
31
31
  (0, _inherits2["default"])(SyncingPermissionsTest, _AbstractPermissionsT);
32
32
  var _super2 = _createSuper(SyncingPermissionsTest);
33
33
  function SyncingPermissionsTest() {
@@ -285,6 +285,41 @@ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
285
285
  }
286
286
  return combinedFileImportsAllPermissions;
287
287
  }()
288
+ }, {
289
+ key: "canSyncCorePermissions",
290
+ value: function () {
291
+ var _canSyncCorePermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
292
+ var wasHit, passedTarget;
293
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
294
+ while (1) {
295
+ switch (_context11.prev = _context11.next) {
296
+ case 0:
297
+ wasHit = false;
298
+ _context11.next = 3;
299
+ return this.eventFaker.fakeListPermissionContracts(function (targetAndPayload) {
300
+ passedTarget = targetAndPayload.target;
301
+ wasHit = true;
302
+ });
303
+ case 3:
304
+ _context11.next = 5;
305
+ return this.sync({
306
+ shouldSyncCorePermissions: true
307
+ });
308
+ case 5:
309
+ _testUtils.assert.isTrue(wasHit);
310
+ _testUtils.assert.isUndefined(passedTarget);
311
+ case 7:
312
+ case "end":
313
+ return _context11.stop();
314
+ }
315
+ }
316
+ }, _callee11, this);
317
+ }));
318
+ function canSyncCorePermissions() {
319
+ return _canSyncCorePermissions.apply(this, arguments);
320
+ }
321
+ return canSyncCorePermissions;
322
+ }()
288
323
  }, {
289
324
  key: "getCombinedPath",
290
325
  value: function getCombinedPath() {
@@ -298,23 +333,23 @@ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
298
333
  }, {
299
334
  key: "sync",
300
335
  value: function () {
301
- var _sync = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
302
- return _regenerator["default"].wrap(function _callee11$(_context11) {
336
+ var _sync = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(options) {
337
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
303
338
  while (1) {
304
- switch (_context11.prev = _context11.next) {
339
+ switch (_context12.prev = _context12.next) {
305
340
  case 0:
306
- _context11.next = 2;
307
- return this.syncAction.execute();
341
+ _context12.next = 2;
342
+ return this.syncAction.execute(options);
308
343
  case 2:
309
- return _context11.abrupt("return", _context11.sent);
344
+ return _context12.abrupt("return", _context12.sent);
310
345
  case 3:
311
346
  case "end":
312
- return _context11.stop();
347
+ return _context12.stop();
313
348
  }
314
349
  }
315
- }, _callee11, this);
350
+ }, _callee12, this);
316
351
  }));
317
- function sync() {
352
+ function sync(_x2) {
318
353
  return _sync.apply(this, arguments);
319
354
  }
320
355
  return sync;
@@ -322,12 +357,12 @@ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
322
357
  }, {
323
358
  key: "emitDidExecuteUpgrade",
324
359
  value: function () {
325
- var _emitDidExecuteUpgrade = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
326
- return _regenerator["default"].wrap(function _callee12$(_context12) {
360
+ var _emitDidExecuteUpgrade = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
361
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
327
362
  while (1) {
328
- switch (_context12.prev = _context12.next) {
363
+ switch (_context13.prev = _context13.next) {
329
364
  case 0:
330
- _context12.next = 2;
365
+ _context13.next = 2;
331
366
  return this.emitter.emitAndFlattenResponses('feature.did-execute', {
332
367
  actionCode: 'upgrade',
333
368
  featureCode: 'node',
@@ -335,10 +370,10 @@ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
335
370
  });
336
371
  case 2:
337
372
  case "end":
338
- return _context12.stop();
373
+ return _context13.stop();
339
374
  }
340
375
  }
341
- }, _callee12, this);
376
+ }, _callee13, this);
342
377
  }));
343
378
  function emitDidExecuteUpgrade() {
344
379
  return _emitDidExecuteUpgrade.apply(this, arguments);
@@ -347,7 +382,7 @@ var SyncingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
347
382
  }()
348
383
  }]);
349
384
  return SyncingPermissionsTest;
350
- }(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "syncAction", void 0), (0, _defineProperty2["default"])(_class2, "contractId1", void 0), (0, _defineProperty2["default"])(_class2, "contractId2", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "generatesExpectedTypesFile", [_dec], Object.getOwnPropertyDescriptor(_class, "generatesExpectedTypesFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsNewPermissionsWhenMade", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsNewPermissionsWhenMade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSyncsPermissions", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSyncsPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotSyncIfNotInstalled", [_dec4], Object.getOwnPropertyDescriptor(_class, "doesNotSyncIfNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesCombinedFile", [_dec5], Object.getOwnPropertyDescriptor(_class, "generatesCombinedFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "combinedFileImportsAllPermissions", [_dec6], Object.getOwnPropertyDescriptor(_class, "combinedFileImportsAllPermissions"), _class)), _class));
385
+ }(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "syncAction", void 0), (0, _defineProperty2["default"])(_class2, "contractId1", void 0), (0, _defineProperty2["default"])(_class2, "contractId2", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "generatesExpectedTypesFile", [_dec], Object.getOwnPropertyDescriptor(_class, "generatesExpectedTypesFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "syncsNewPermissionsWhenMade", [_dec2], Object.getOwnPropertyDescriptor(_class, "syncsNewPermissionsWhenMade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSyncsPermissions", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSyncsPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotSyncIfNotInstalled", [_dec4], Object.getOwnPropertyDescriptor(_class, "doesNotSyncIfNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesCombinedFile", [_dec5], Object.getOwnPropertyDescriptor(_class, "generatesCombinedFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "combinedFileImportsAllPermissions", [_dec6], Object.getOwnPropertyDescriptor(_class, "combinedFileImportsAllPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSyncCorePermissions", [_dec7], Object.getOwnPropertyDescriptor(_class, "canSyncCorePermissions"), _class)), _class));
351
386
  exports["default"] = SyncingPermissionsTest;
352
387
  var ExecuteTrackingAction = /*#__PURE__*/function (_SyncAction) {
353
388
  (0, _inherits2["default"])(ExecuteTrackingAction, _SyncAction);
@@ -1 +1 @@
1
- {"version":3,"file":"SyncingPermissions.test.js","names":["SyncingPermissionsTest","test","contractId1","generateShortAlphaId","contractId2","syncAction","Action","MercuryClientFactory","setIsTestMode","ExecuteTrackingAction","wasExecuteInvoked","eventFaker","fakeListPermissionContracts","sync","results","expected","resolveHashSprucePath","testUtil","assertFileByPathInGeneratedFiles","files","createPermissionContract","writeTestFileAndAssertValid","beginTrackingExecute","emitDidExecuteUpgrade","assert","isTrue","featureInstaller","isInstalled","code","isFalse","diskUtil","doesFileExist","getCombinedPath","Service","importDefault","imported","isEqualDeep","sort","sortPermissionContracts","id","name","description","requireAllPermissions","permissions","defaults","skill","requireAllStatuses","ActionFactory","setActionClass","execute","emitter","emitAndFlattenResponses","actionCode","featureCode","AbstractPermissionsTest","SyncAction"],"sources":["../../../../src/__tests__/behavioral/permissions/SyncingPermissions.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test-utils'\nimport ActionFactory from '../../../features/ActionFactory'\nimport SyncAction from '../../../features/permission/actions/SyncAction'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\nimport generateShortAlphaId from './support/generateShortAlphaId'\nimport { sortPermissionContracts } from './support/sortPermissionContracts'\n\nexport default class SyncingPermissionsTest extends AbstractPermissionsTest {\n\tprivate static syncAction: SyncAction\n\tprivate static contractId1: string\n\tprivate static contractId2: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractId1 = generateShortAlphaId()\n\t\tthis.contractId2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.syncAction = this.Action('permission', 'sync')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tExecuteTrackingAction.wasExecuteInvoked = false\n\t\tawait this.eventFaker.fakeListPermissionContracts()\n\t}\n\n\t@test()\n\tprotected static async generatesExpectedTypesFile() {\n\t\tconst results = await this.sync()\n\n\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t`permissions/permissions.types.ts`\n\t\t)\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(expected, results.files)\n\t}\n\n\t@test()\n\tprotected static async syncsNewPermissionsWhenMade() {\n\t\tawait this.createPermissionContract(this.contractId1)\n\t\tawait this.writeTestFileAndAssertValid(\n\t\t\t`testing-permissions.${this.contractId1}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradingSyncsPermissions() {\n\t\tthis.beginTrackingExecute()\n\t\tawait this.emitDidExecuteUpgrade()\n\t\tassert.isTrue(ExecuteTrackingAction.wasExecuteInvoked)\n\t}\n\n\t@test()\n\tprotected static async doesNotSyncIfNotInstalled() {\n\t\tthis.beginTrackingExecute()\n\t\tthis.featureInstaller.isInstalled = async (code) => code === 'node'\n\n\t\tawait this.emitDidExecuteUpgrade()\n\t\tassert.isFalse(ExecuteTrackingAction.wasExecuteInvoked)\n\t}\n\n\t@test()\n\tprotected static async generatesCombinedFile() {\n\t\tassert.isTrue(diskUtil.doesFileExist(this.getCombinedPath()))\n\t}\n\n\t@test()\n\tprotected static async combinedFileImportsAllPermissions() {\n\t\tawait this.createPermissionContract(this.contractId2)\n\n\t\tconst imported = await this.Service('import').importDefault(\n\t\t\tthis.getCombinedPath()\n\t\t)\n\n\t\tassert.isEqualDeep(\n\t\t\timported.sort(sortPermissionContracts),\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: this.contractId1,\n\t\t\t\t\tname: this.contractId1,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'can-high-five',\n\t\t\t\t\t\t\tname: 'Can give high five',\n\t\t\t\t\t\t\tdescription: 'Will this person be allowed to high five?',\n\t\t\t\t\t\t\tdefaults: { skill: false },\n\t\t\t\t\t\t\trequireAllStatuses: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: this.contractId2,\n\t\t\t\t\tname: this.contractId2,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'can-high-five',\n\t\t\t\t\t\t\tname: 'Can give high five',\n\t\t\t\t\t\t\tdescription: 'Will this person be allowed to high five?',\n\t\t\t\t\t\t\tdefaults: { skill: false },\n\t\t\t\t\t\t\trequireAllStatuses: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t].sort(sortPermissionContracts)\n\t\t)\n\t}\n\n\tprivate static getCombinedPath() {\n\t\treturn this.resolveHashSprucePath('permissions', 'permissions.ts')\n\t}\n\n\tprivate static beginTrackingExecute() {\n\t\tActionFactory.setActionClass('permission', 'sync', ExecuteTrackingAction)\n\t}\n\n\tprivate static async sync() {\n\t\treturn await this.syncAction.execute()\n\t}\n\n\tprivate static async emitDidExecuteUpgrade() {\n\t\tawait this.emitter.emitAndFlattenResponses('feature.did-execute', {\n\t\t\tactionCode: 'upgrade',\n\t\t\tfeatureCode: 'node',\n\t\t\tresults: {},\n\t\t})\n\t}\n}\n\nclass ExecuteTrackingAction extends SyncAction {\n\tpublic static wasExecuteInvoked = false\n\tpublic async execute() {\n\t\tExecuteTrackingAction.wasExecuteInvoked = true\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SyncingPermissions.test.js","names":["SyncingPermissionsTest","test","contractId1","generateShortAlphaId","contractId2","syncAction","Action","MercuryClientFactory","setIsTestMode","ExecuteTrackingAction","wasExecuteInvoked","eventFaker","fakeListPermissionContracts","sync","results","expected","resolveHashSprucePath","testUtil","assertFileByPathInGeneratedFiles","files","createPermissionContract","writeTestFileAndAssertValid","beginTrackingExecute","emitDidExecuteUpgrade","assert","isTrue","featureInstaller","isInstalled","code","isFalse","diskUtil","doesFileExist","getCombinedPath","Service","importDefault","imported","isEqualDeep","sort","sortPermissionContracts","id","name","description","requireAllPermissions","permissions","defaults","skill","requireAllStatuses","wasHit","targetAndPayload","passedTarget","target","shouldSyncCorePermissions","isUndefined","ActionFactory","setActionClass","options","execute","emitter","emitAndFlattenResponses","actionCode","featureCode","AbstractPermissionsTest","SyncAction"],"sources":["../../../../src/__tests__/behavioral/permissions/SyncingPermissions.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test-utils'\nimport ActionFactory from '../../../features/ActionFactory'\nimport SyncAction, {\n\tSyncPermissionsOptions,\n} from '../../../features/permission/actions/SyncAction'\nimport { ListPermContractsTargetAndPayload } from '../../../features/permission/stores/PermissionStore'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\nimport generateShortAlphaId from './support/generateShortAlphaId'\nimport { sortPermissionContracts } from './support/sortPermissionContracts'\n\nexport default class SyncingPermissionsTest extends AbstractPermissionsTest {\n\tprivate static syncAction: SyncAction\n\tprivate static contractId1: string\n\tprivate static contractId2: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractId1 = generateShortAlphaId()\n\t\tthis.contractId2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.syncAction = this.Action('permission', 'sync')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tExecuteTrackingAction.wasExecuteInvoked = false\n\t\tawait this.eventFaker.fakeListPermissionContracts()\n\t}\n\n\t@test()\n\tprotected static async generatesExpectedTypesFile() {\n\t\tconst results = await this.sync()\n\n\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t`permissions/permissions.types.ts`\n\t\t)\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(expected, results.files)\n\t}\n\n\t@test()\n\tprotected static async syncsNewPermissionsWhenMade() {\n\t\tawait this.createPermissionContract(this.contractId1)\n\t\tawait this.writeTestFileAndAssertValid(\n\t\t\t`testing-permissions.${this.contractId1}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradingSyncsPermissions() {\n\t\tthis.beginTrackingExecute()\n\t\tawait this.emitDidExecuteUpgrade()\n\t\tassert.isTrue(ExecuteTrackingAction.wasExecuteInvoked)\n\t}\n\n\t@test()\n\tprotected static async doesNotSyncIfNotInstalled() {\n\t\tthis.beginTrackingExecute()\n\t\tthis.featureInstaller.isInstalled = async (code) => code === 'node'\n\n\t\tawait this.emitDidExecuteUpgrade()\n\t\tassert.isFalse(ExecuteTrackingAction.wasExecuteInvoked)\n\t}\n\n\t@test()\n\tprotected static async generatesCombinedFile() {\n\t\tassert.isTrue(diskUtil.doesFileExist(this.getCombinedPath()))\n\t}\n\n\t@test()\n\tprotected static async combinedFileImportsAllPermissions() {\n\t\tawait this.createPermissionContract(this.contractId2)\n\n\t\tconst imported = await this.Service('import').importDefault(\n\t\t\tthis.getCombinedPath()\n\t\t)\n\n\t\tassert.isEqualDeep(\n\t\t\timported.sort(sortPermissionContracts),\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: this.contractId1,\n\t\t\t\t\tname: this.contractId1,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'can-high-five',\n\t\t\t\t\t\t\tname: 'Can give high five',\n\t\t\t\t\t\t\tdescription: 'Will this person be allowed to high five?',\n\t\t\t\t\t\t\tdefaults: { skill: false },\n\t\t\t\t\t\t\trequireAllStatuses: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: this.contractId2,\n\t\t\t\t\tname: this.contractId2,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'can-high-five',\n\t\t\t\t\t\t\tname: 'Can give high five',\n\t\t\t\t\t\t\tdescription: 'Will this person be allowed to high five?',\n\t\t\t\t\t\t\tdefaults: { skill: false },\n\t\t\t\t\t\t\trequireAllStatuses: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t].sort(sortPermissionContracts)\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async canSyncCorePermissions() {\n\t\tlet wasHit = false\n\t\tlet passedTarget: ListPermContractsTargetAndPayload['target']\n\n\t\tawait this.eventFaker.fakeListPermissionContracts((targetAndPayload) => {\n\t\t\tpassedTarget = targetAndPayload.target\n\t\t\twasHit = true\n\t\t})\n\n\t\tawait this.sync({ shouldSyncCorePermissions: true })\n\t\tassert.isTrue(wasHit)\n\t\tassert.isUndefined(passedTarget)\n\t}\n\n\tprivate static getCombinedPath() {\n\t\treturn this.resolveHashSprucePath('permissions', 'permissions.ts')\n\t}\n\n\tprivate static beginTrackingExecute() {\n\t\tActionFactory.setActionClass('permission', 'sync', ExecuteTrackingAction)\n\t}\n\n\tprivate static async sync(options?: SyncPermissionsOptions) {\n\t\treturn await this.syncAction.execute(options)\n\t}\n\n\tprivate static async emitDidExecuteUpgrade() {\n\t\tawait this.emitter.emitAndFlattenResponses('feature.did-execute', {\n\t\t\tactionCode: 'upgrade',\n\t\t\tfeatureCode: 'node',\n\t\t\tresults: {},\n\t\t})\n\t}\n}\n\nclass ExecuteTrackingAction extends SyncAction {\n\tpublic static wasExecuteInvoked = false\n\tpublic async execute() {\n\t\tExecuteTrackingAction.wasExecuteInvoked = true\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
@@ -2,4 +2,6 @@ import { FeatureCode } from '../../../features/features.types';
2
2
  import AbstractCliTest from '../../../tests/AbstractCliTest';
3
3
  export default class UpgradingWithListeners extends AbstractCliTest {
4
4
  protected static upgradingSyncsListeners(featureCode: FeatureCode, shouldHit: boolean, actionCode?: string): Promise<void>;
5
+ protected static willNotSyncIfSkillNotInstalled(): Promise<void>;
6
+ private static assertListenersSynced;
5
7
  }