@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.
- package/CHANGELOG.md +12 -0
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.d.ts +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +20 -39
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +53 -18
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.d.ts +2 -0
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +75 -30
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +1 -1
- package/build/__tests__/support/EventFaker.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +1 -0
- package/build/features/event/EventFeature.js +90 -68
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +1 -4
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.d.ts +1 -0
- package/build/features/eventContract/actions/PullAction.js +52 -9
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.js +19 -9
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +22 -3
- package/build/features/permission/actions/SyncAction.js +58 -16
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +6 -2
- package/build/features/permission/stores/PermissionStore.js +25 -21
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/view/actions/WatchAction.js +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/LICENSE +5 -5
- package/node_modules/@typescript-eslint/parser/README.md +6 -300
- package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/parser/dist/parser.js +15 -17
- package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/LICENSE +1 -1
- package/node_modules/@typescript-eslint/scope-manager/README.md +5 -117
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/LICENSE +1 -1
- package/node_modules/@typescript-eslint/types/README.md +6 -11
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +0 -6
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +0 -6
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/LICENSE +5 -5
- package/node_modules/@typescript-eslint/typescript-estree/README.md +6 -379
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/index.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.d.ts.map +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.js → getWatchProgramsForProjects.js} +4 -5
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/LICENSE +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/README.md +6 -9
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +27 -27
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +6 -18
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +1 -1
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +21 -3
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +13 -0
- package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter2.test.ts +0 -2
- package/src/__tests__/support/EventFaker.ts +1 -2
- package/src/features/event/EventFeature.ts +10 -4
- package/src/features/eventContract/EventContractFeature.ts +1 -6
- package/src/features/eventContract/actions/PullAction.ts +24 -4
- package/src/features/permission/PermissionFeature.ts +2 -7
- package/src/features/permission/actions/SyncAction.ts +42 -5
- package/src/features/permission/stores/PermissionStore.ts +25 -11
- package/src/features/view/actions/WatchAction.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +0 -1
- 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
|
|
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: "
|
|
202
|
+
key: "doesNotPullGlobalContracts",
|
|
204
203
|
value: function () {
|
|
205
|
-
var
|
|
206
|
-
var
|
|
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
|
-
|
|
221
|
-
_context7.next = 8;
|
|
219
|
+
_context7.next = 7;
|
|
222
220
|
return this.Store('event');
|
|
223
|
-
case
|
|
221
|
+
case 7:
|
|
224
222
|
events = _context7.sent;
|
|
225
|
-
_context7.next =
|
|
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
|
|
236
|
-
|
|
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
|
|
236
|
+
case 12:
|
|
244
237
|
contracts = _context7.sent;
|
|
245
|
-
_testUtils.assert.
|
|
246
|
-
_testUtils.assert.isObject(contracts[
|
|
247
|
-
_testUtils.assert.isObject(contracts[
|
|
248
|
-
case
|
|
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
|
|
256
|
-
return
|
|
248
|
+
function doesNotPullGlobalContracts() {
|
|
249
|
+
return _doesNotPullGlobalContracts.apply(this, arguments);
|
|
257
250
|
}
|
|
258
|
-
return
|
|
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
|
|
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]
|
|
297
|
-
case
|
|
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, "
|
|
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
|
|
302
|
-
return _regenerator["default"].wrap(function
|
|
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 (
|
|
339
|
+
switch (_context12.prev = _context12.next) {
|
|
305
340
|
case 0:
|
|
306
|
-
|
|
307
|
-
return this.syncAction.execute();
|
|
341
|
+
_context12.next = 2;
|
|
342
|
+
return this.syncAction.execute(options);
|
|
308
343
|
case 2:
|
|
309
|
-
return
|
|
344
|
+
return _context12.abrupt("return", _context12.sent);
|
|
310
345
|
case 3:
|
|
311
346
|
case "end":
|
|
312
|
-
return
|
|
347
|
+
return _context12.stop();
|
|
313
348
|
}
|
|
314
349
|
}
|
|
315
|
-
},
|
|
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
|
|
326
|
-
return _regenerator["default"].wrap(function
|
|
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 (
|
|
363
|
+
switch (_context13.prev = _context13.next) {
|
|
329
364
|
case 0:
|
|
330
|
-
|
|
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
|
|
373
|
+
return _context13.stop();
|
|
339
374
|
}
|
|
340
375
|
}
|
|
341
|
-
},
|
|
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
|
}
|