@sprucelabs/spruce-cli 18.2.0 → 18.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/build/.spruce/events/events.contract.d.ts +159 -0
- package/build/.spruce/events/events.contract.js +5 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
- package/build/.spruce/schemas/schemas.types.d.ts +158 -55
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
- package/build/.spruce/settings.json +2 -1
- package/build/GlobalEmitter.d.ts +13 -38
- package/build/GlobalEmitter.js +3 -6
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EventWriter.test.d.ts +4 -0
- package/build/__tests__/behavioral/events/EventWriter.test.js +116 -0
- package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/{ListeningToCoreEvents.test.d.ts → events/ListeningToCoreEvents.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{ListeningToCoreEvents.test.js → events/ListeningToCoreEvents.test.js} +1 -1
- package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -0
- package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.d.ts → events/RegisteringEventsOnBoot.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.js → events/RegisteringEventsOnBoot.test.js} +2 -2
- package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.d.ts → events/RegisteringGlobalEvents.test.d.ts} +2 -3
- package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.js → events/RegisteringGlobalEvents.test.js} +45 -70
- package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.d.ts → events/SyncingEventsOnlyFromDependencies.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.js → events/SyncingEventsOnlyFromDependencies.test.js} +1 -1
- package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +5 -4
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +97 -63
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
- package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
- package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.d.ts → schemas/CreatingSchemasWithGenerics.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.js → schemas/CreatingSchemasWithGenerics.test.js} +2 -2
- package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -0
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.d.ts → schemas/SettingUpSchemasForModuleDistribution.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.js → schemas/SettingUpSchemasForModuleDistribution.test.js} +3 -3
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -0
- package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.d.ts → skill/InstallingASkillAtAnOrg.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.js → skill/InstallingASkillAtAnOrg.test.js} +2 -2
- package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -0
- package/build/__tests__/behavioral/{LoggingInAsASkill.test.d.ts → skill/LoggingInAsASkill.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{LoggingInAsASkill.test.js → skill/LoggingInAsASkill.test.js} +2 -2
- package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -0
- package/build/__tests__/behavioral/{RebuildingASkill.test.d.ts → skill/RebuildingASkill.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{RebuildingASkill.test.js → skill/RebuildingASkill.test.js} +2 -2
- package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -0
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.d.ts → tests/SettingUpASkillForTesting.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.js → tests/SettingUpASkillForTesting.test.js} +2 -2
- package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -0
- package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.d.ts → tests/TestReporterSettingsRemembered.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.js → tests/TestReporterSettingsRemembered.test.js} +1 -1
- package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -0
- package/build/__tests__/behavioral/{TestingDataStores.test.d.ts → tests/TestingDataStores.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{TestingDataStores.test.js → tests/TestingDataStores.test.js} +3 -3
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -0
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.d.ts → views/RegisteringSkillViewOnBoot.test.d.ts} +4 -4
- package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.js → views/RegisteringSkillViewOnBoot.test.js} +2 -2
- package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/{WatchingSkillViews.test.d.ts → views/WatchingSkillViews.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{WatchingSkillViews.test.js → views/WatchingSkillViews.test.js} +2 -2
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -0
- package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
- package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +3 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/features/AbstractAction.d.ts +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +3 -3
- package/build/features/AbstractFeature.js +8 -8
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +1 -1
- package/build/features/ActionExecuter.js +3 -4
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.d.ts +12 -5
- package/build/features/ActionFactory.js +27 -6
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.d.ts +1 -1
- package/build/features/ActionQuestionAsker.js +6 -6
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js +31 -33
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/error/ErrorFeature.js +4 -4
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +8 -8
- package/build/features/event/EventFeature.js +7 -4
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +9 -9
- package/build/features/event/stores/EventStore.js +26 -26
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +4 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js +10 -5
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/features.types.d.ts +2 -37
- package/build/features/features.types.js +0 -41
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.d.ts +12 -2
- package/build/features/permission/PermissionFeature.js +138 -15
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/CreateAction.js +4 -1
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +5 -1
- package/build/features/permission/actions/SyncAction.js +28 -10
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +6 -1
- package/build/features/permission/stores/PermissionStore.js +43 -31
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
- package/build/features/permission/writers/PermissionWriter.js +67 -18
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/features/person/PersonFeature.js +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/SchemaFeature.d.ts +8 -8
- package/build/features/schema/SchemaFeature.js +4 -4
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.d.ts +11 -11
- package/build/features/skill/SkillFeature.js +2 -2
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +1 -2
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.d.ts +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/test/TestFeature.js +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/view/ViewFeature.js +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.d.ts +2 -2
- package/build/services/CommandService.js +6 -6
- package/build/services/CommandService.js.map +1 -1
- package/build/services/PkgService.d.ts +1 -0
- package/build/services/PkgService.js +5 -0
- package/build/services/PkgService.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +7 -3
- package/build/tests/AbstractCliTest.js +81 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/buildTestCache.js +7 -0
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.d.ts +2 -0
- package/build/tests/utilities/test.utility.js +6 -0
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +20 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +20 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +2 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +15 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -49
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +65 -33
- package/src/.spruce/events/events.contract.ts +24 -0
- package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
- package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
- package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
- package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
- package/src/.spruce/schemas/schemas.types.ts +171 -52
- package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
- package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
- package/src/.spruce/settings.json +2 -1
- package/src/GlobalEmitter.ts +2 -7
- package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
- package/src/__tests__/behavioral/events/EventWriter.test.ts +75 -0
- package/src/__tests__/behavioral/{ListeningToCoreEvents.test.ts → events/ListeningToCoreEvents.test.ts} +1 -1
- package/src/__tests__/behavioral/{RegisteringEventsOnBoot.test.ts → events/RegisteringEventsOnBoot.test.ts} +2 -2
- package/src/__tests__/behavioral/{RegisteringGlobalEvents.test.ts → events/RegisteringGlobalEvents.test.ts} +4 -12
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.ts → events/SyncingEventsOnlyFromDependencies.test.ts} +2 -2
- package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
- package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +96 -38
- package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +24 -0
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
- package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
- package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
- package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
- package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
- package/src/__tests__/behavioral/{CreatingSchemasWithGenerics.test.ts → schemas/CreatingSchemasWithGenerics.test.ts} +2 -2
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
- package/src/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.ts → schemas/SettingUpSchemasForModuleDistribution.test.ts} +4 -4
- package/src/__tests__/behavioral/{InstallingASkillAtAnOrg.test.ts → skill/InstallingASkillAtAnOrg.test.ts} +2 -2
- package/src/__tests__/behavioral/{LoggingInAsASkill.test.ts → skill/LoggingInAsASkill.test.ts} +3 -3
- package/src/__tests__/behavioral/{RebuildingASkill.test.ts → skill/RebuildingASkill.test.ts} +2 -2
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
- package/src/__tests__/behavioral/{SettingUpASkillForTesting.test.ts → tests/SettingUpASkillForTesting.test.ts} +2 -2
- package/src/__tests__/behavioral/{TestReporterSettingsRemembered.test.ts → tests/TestReporterSettingsRemembered.test.ts} +2 -2
- package/src/__tests__/behavioral/{TestingDataStores.test.ts → tests/TestingDataStores.test.ts} +3 -3
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
- package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
- package/src/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.ts → views/RegisteringSkillViewOnBoot.test.ts} +2 -2
- package/src/__tests__/behavioral/{WatchingSkillViews.test.ts → views/WatchingSkillViews.test.ts} +3 -3
- package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
- package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
- package/src/__tests__/implementation/SkillStore.test.ts +1 -2
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/AbstractFeature.ts +8 -8
- package/src/features/ActionExecuter.ts +4 -5
- package/src/features/ActionFactory.ts +44 -20
- package/src/features/ActionQuestionAsker.ts +17 -17
- package/src/features/conversation/ConversationFeature.ts +1 -1
- package/src/features/dependencies/DependencyFeature.ts +1 -1
- package/src/features/deploy/actions/HerokuAction.ts +2 -2
- package/src/features/error/ErrorFeature.ts +4 -4
- package/src/features/event/EventFeature.ts +15 -14
- package/src/features/event/actions/CreateAction.ts +1 -1
- package/src/features/event/actions/ListenAction.ts +1 -1
- package/src/features/event/stores/EventStore.ts +37 -37
- package/src/features/eventContract/EventContractFeature.ts +6 -1
- package/src/features/eventContract/actions/PullAction.ts +7 -3
- package/src/features/features.types.ts +4 -41
- package/src/features/log/LogFeature.ts +1 -1
- package/src/features/node/NodeFeature.ts +1 -1
- package/src/features/organization/actions/InstallAction.ts +1 -1
- package/src/features/permission/PermissionFeature.ts +68 -11
- package/src/features/permission/actions/CreateAction.ts +2 -0
- package/src/features/permission/actions/SyncAction.ts +22 -3
- package/src/features/permission/stores/PermissionStore.ts +27 -8
- package/src/features/permission/writers/PermissionWriter.ts +62 -4
- package/src/features/person/PersonFeature.ts +1 -1
- package/src/features/sandbox/SandboxFeature.ts +1 -3
- package/src/features/schema/SchemaFeature.ts +14 -14
- package/src/features/schema/writers/SchemaWriter.ts +14 -15
- package/src/features/skill/SkillFeature.ts +18 -18
- package/src/features/skill/actions/RebuildAction.ts +1 -1
- package/src/features/skill/actions/RegisterAction.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +1 -2
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/actions/SyncAction.ts +1 -1
- package/src/features/test/TestFeature.ts +1 -1
- package/src/features/view/ViewFeature.ts +1 -1
- package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
- package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
- package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
- package/src/services/CommandService.ts +5 -5
- package/src/services/PkgService.ts +4 -0
- package/src/tests/AbstractCliTest.ts +31 -13
- package/src/tests/buildTestCache.ts +7 -0
- package/src/tests/fixtures/FeatureFixture.ts +2 -0
- package/src/tests/utilities/test.utility.ts +13 -0
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +0 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +0 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +0 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +0 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +0 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +0 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +0 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +0 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +0 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +0 -1
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
- package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
|
@@ -18,8 +18,9 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
|
|
|
18
18
|
var _mercuryClient = require("@sprucelabs/mercury-client");
|
|
19
19
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
20
20
|
var _testUtils = require("@sprucelabs/test-utils");
|
|
21
|
-
var
|
|
22
|
-
var
|
|
21
|
+
var _AbstractPermissionsTest = _interopRequireDefault(require("./support/AbstractPermissionsTest"));
|
|
22
|
+
var _generateShortAlphaId = _interopRequireDefault(require("./support/generateShortAlphaId"));
|
|
23
|
+
var _sortPermissionContracts = require("./support/sortPermissionContracts");
|
|
23
24
|
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
|
|
24
25
|
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); }; }
|
|
25
26
|
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; } }
|
|
@@ -34,6 +35,7 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
34
35
|
key: "beforeAll",
|
|
35
36
|
value: function () {
|
|
36
37
|
var _beforeAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
38
|
+
var namespace, contractId;
|
|
37
39
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
38
40
|
while (1) {
|
|
39
41
|
switch (_context.prev = _context.next) {
|
|
@@ -41,9 +43,17 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
41
43
|
_context.next = 2;
|
|
42
44
|
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(PermissionStoreTest), "beforeAll", this).call(this);
|
|
43
45
|
case 2:
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
+
_context.next = 4;
|
|
47
|
+
return this.Service('pkg').getSkillNamespace();
|
|
46
48
|
case 4:
|
|
49
|
+
namespace = _context.sent;
|
|
50
|
+
this.namespace = namespace;
|
|
51
|
+
this.contractName1 = (0, _generateShortAlphaId["default"])();
|
|
52
|
+
this.fqid1 = "".concat(namespace, ".").concat(this.contractName1);
|
|
53
|
+
this.contractName2 = (0, _generateShortAlphaId["default"])();
|
|
54
|
+
contractId = this.contractName2;
|
|
55
|
+
this.fqid2 = buildPermissionContractId(contractId, namespace);
|
|
56
|
+
case 11:
|
|
47
57
|
case "end":
|
|
48
58
|
return _context.stop();
|
|
49
59
|
}
|
|
@@ -68,8 +78,9 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
68
78
|
case 2:
|
|
69
79
|
_mercuryClient.MercuryClientFactory.setIsTestMode(true);
|
|
70
80
|
this.permissions = this.Store('permission');
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
_context2.next = 6;
|
|
82
|
+
return this.eventFaker.fakeListPermissionContracts(function () {});
|
|
83
|
+
case 6:
|
|
73
84
|
case "end":
|
|
74
85
|
return _context2.stop();
|
|
75
86
|
}
|
|
@@ -94,7 +105,7 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
94
105
|
return this.loadLocalPermissions();
|
|
95
106
|
case 2:
|
|
96
107
|
permissions = _context3.sent;
|
|
97
|
-
_testUtils.assert.isEqualDeep(permissions,
|
|
108
|
+
_testUtils.assert.isEqualDeep(permissions, []);
|
|
98
109
|
case 4:
|
|
99
110
|
case "end":
|
|
100
111
|
return _context3.stop();
|
|
@@ -119,7 +130,11 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
119
130
|
return this.createPermissionContract(this.contractName1);
|
|
120
131
|
case 2:
|
|
121
132
|
_context4.next = 4;
|
|
122
|
-
return this.assertLocalPermissionsEqual(
|
|
133
|
+
return this.assertLocalPermissionsEqual([{
|
|
134
|
+
id: this.fqid1,
|
|
135
|
+
permissions: ['can-high-five'],
|
|
136
|
+
path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
|
|
137
|
+
}]);
|
|
123
138
|
case 4:
|
|
124
139
|
case "end":
|
|
125
140
|
return _context4.stop();
|
|
@@ -136,7 +151,6 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
136
151
|
key: "loadsSecondContract",
|
|
137
152
|
value: function () {
|
|
138
153
|
var _loadsSecondContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
139
|
-
var _this$assertLocalPerm2;
|
|
140
154
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
141
155
|
while (1) {
|
|
142
156
|
switch (_context5.prev = _context5.next) {
|
|
@@ -145,7 +159,15 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
145
159
|
return this.createPermissionContract(this.contractName2);
|
|
146
160
|
case 2:
|
|
147
161
|
_context5.next = 4;
|
|
148
|
-
return this.assertLocalPermissionsEqual(
|
|
162
|
+
return this.assertLocalPermissionsEqual([{
|
|
163
|
+
id: this.fqid2,
|
|
164
|
+
permissions: ['can-high-five'],
|
|
165
|
+
path: this.resolvePath("src/permissions/".concat(this.contractName2, ".permissions.ts"))
|
|
166
|
+
}, {
|
|
167
|
+
id: this.fqid1,
|
|
168
|
+
permissions: ['can-high-five'],
|
|
169
|
+
path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
|
|
170
|
+
}]);
|
|
149
171
|
case 4:
|
|
150
172
|
case "end":
|
|
151
173
|
return _context5.stop();
|
|
@@ -162,7 +184,6 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
162
184
|
key: "mixesInAllPermissions",
|
|
163
185
|
value: function () {
|
|
164
186
|
var _mixesInAllPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
165
|
-
var _this$assertLocalPerm3;
|
|
166
187
|
var contractId, perm1Id, perm2Id;
|
|
167
188
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
168
189
|
while (1) {
|
|
@@ -173,7 +194,15 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
173
194
|
perm2Id = 'go-dogs';
|
|
174
195
|
this.updateFirstContractBuilder(contractId, perm1Id, perm2Id);
|
|
175
196
|
_context6.next = 6;
|
|
176
|
-
return this.assertLocalPermissionsEqual(
|
|
197
|
+
return this.assertLocalPermissionsEqual([{
|
|
198
|
+
id: this.fqid2,
|
|
199
|
+
permissions: ['can-high-five'],
|
|
200
|
+
path: this.resolvePath("src/permissions/".concat(this.contractName2, ".permissions.ts"))
|
|
201
|
+
}, {
|
|
202
|
+
id: buildPermissionContractId(contractId, this.namespace),
|
|
203
|
+
permissions: [perm1Id, perm2Id],
|
|
204
|
+
path: this.resolvePath("src/permissions/".concat(this.contractName1, ".permissions.ts"))
|
|
205
|
+
}]);
|
|
177
206
|
case 6:
|
|
178
207
|
case "end":
|
|
179
208
|
return _context6.stop();
|
|
@@ -186,54 +215,23 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
186
215
|
}
|
|
187
216
|
return mixesInAllPermissions;
|
|
188
217
|
}()
|
|
189
|
-
}, {
|
|
190
|
-
key: "remotePermsEmitsListContracts",
|
|
191
|
-
value: function () {
|
|
192
|
-
var _remotePermsEmitsListContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
193
|
-
var wasHit;
|
|
194
|
-
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
195
|
-
while (1) {
|
|
196
|
-
switch (_context7.prev = _context7.next) {
|
|
197
|
-
case 0:
|
|
198
|
-
wasHit = false;
|
|
199
|
-
_context7.next = 3;
|
|
200
|
-
return this.eventFaker.fakeListPermissionContracts(function () {
|
|
201
|
-
wasHit = true;
|
|
202
|
-
});
|
|
203
|
-
case 3:
|
|
204
|
-
_context7.next = 5;
|
|
205
|
-
return PermissionStoreTest.fetchContracts();
|
|
206
|
-
case 5:
|
|
207
|
-
_testUtils.assert.isTrue(wasHit);
|
|
208
|
-
case 6:
|
|
209
|
-
case "end":
|
|
210
|
-
return _context7.stop();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}, _callee7, this);
|
|
214
|
-
}));
|
|
215
|
-
function remotePermsEmitsListContracts() {
|
|
216
|
-
return _remotePermsEmitsListContracts.apply(this, arguments);
|
|
217
|
-
}
|
|
218
|
-
return remotePermsEmitsListContracts;
|
|
219
|
-
}()
|
|
220
218
|
}, {
|
|
221
219
|
key: "passesThroughDependentSkills",
|
|
222
220
|
value: function () {
|
|
223
|
-
var _passesThroughDependentSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
221
|
+
var _passesThroughDependentSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
224
222
|
var namespace, passedTarget;
|
|
225
|
-
return _regenerator["default"].wrap(function
|
|
223
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
226
224
|
while (1) {
|
|
227
|
-
switch (
|
|
225
|
+
switch (_context7.prev = _context7.next) {
|
|
228
226
|
case 0:
|
|
229
227
|
namespace = this.addRandomDependency();
|
|
230
|
-
|
|
228
|
+
_context7.next = 3;
|
|
231
229
|
return this.eventFaker.fakeListPermissionContracts(function (_ref) {
|
|
232
230
|
var target = _ref.target;
|
|
233
231
|
passedTarget = target;
|
|
234
232
|
});
|
|
235
233
|
case 3:
|
|
236
|
-
|
|
234
|
+
_context7.next = 5;
|
|
237
235
|
return this.fetchContracts();
|
|
238
236
|
case 5:
|
|
239
237
|
_testUtils.assert.isEqualDeep(passedTarget, {
|
|
@@ -241,10 +239,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
241
239
|
});
|
|
242
240
|
case 6:
|
|
243
241
|
case "end":
|
|
244
|
-
return
|
|
242
|
+
return _context7.stop();
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
|
-
},
|
|
245
|
+
}, _callee7, this);
|
|
248
246
|
}));
|
|
249
247
|
function passesThroughDependentSkills() {
|
|
250
248
|
return _passesThroughDependentSkills.apply(this, arguments);
|
|
@@ -254,40 +252,74 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
254
252
|
}, {
|
|
255
253
|
key: "returnsDependencyMapFromRemoteContracts",
|
|
256
254
|
value: function () {
|
|
257
|
-
var _returnsDependencyMapFromRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
255
|
+
var _returnsDependencyMapFromRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
258
256
|
var _assert$isEqualDeep;
|
|
259
257
|
var perm, perm2, perm3, _this$generateContrac, contract, contractId, _this$generateContrac2, contract2, contractId2, map;
|
|
260
|
-
return _regenerator["default"].wrap(function
|
|
258
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
261
259
|
while (1) {
|
|
262
|
-
switch (
|
|
260
|
+
switch (_context8.prev = _context8.next) {
|
|
263
261
|
case 0:
|
|
264
262
|
perm = this.generatePermValues();
|
|
265
263
|
perm2 = this.generatePermValues();
|
|
266
264
|
perm3 = this.generatePermValues();
|
|
267
265
|
_this$generateContrac = this.generateContractRowValues([perm, perm2]), contract = _this$generateContrac.contract, contractId = _this$generateContrac.contractId;
|
|
268
266
|
_this$generateContrac2 = this.generateContractRowValues([perm3]), contract2 = _this$generateContrac2.contract, contractId2 = _this$generateContrac2.contractId;
|
|
269
|
-
|
|
267
|
+
_context8.next = 7;
|
|
270
268
|
return this.eventFaker.fakeListPermissionContracts(function () {
|
|
271
269
|
return [contract, contract2];
|
|
272
270
|
});
|
|
273
271
|
case 7:
|
|
274
|
-
|
|
272
|
+
_context8.next = 9;
|
|
275
273
|
return this.fetchContracts();
|
|
276
274
|
case 9:
|
|
277
|
-
map =
|
|
278
|
-
|
|
275
|
+
map = _context8.sent;
|
|
276
|
+
//@ts-ignore
|
|
277
|
+
_testUtils.assert.isEqualDeep(map, (_assert$isEqualDeep = {}, (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId, [perm.id, perm2.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, contractId2, [perm3.id]), (0, _defineProperty2["default"])(_assert$isEqualDeep, this.fqid2, ['can-high-five']), (0, _defineProperty2["default"])(_assert$isEqualDeep, buildPermissionContractId('oeu-aoeuao', this.namespace), ['what-the', 'go-dogs']), _assert$isEqualDeep));
|
|
279
278
|
case 11:
|
|
280
279
|
case "end":
|
|
281
|
-
return
|
|
280
|
+
return _context8.stop();
|
|
282
281
|
}
|
|
283
282
|
}
|
|
284
|
-
},
|
|
283
|
+
}, _callee8, this);
|
|
285
284
|
}));
|
|
286
285
|
function returnsDependencyMapFromRemoteContracts() {
|
|
287
286
|
return _returnsDependencyMapFromRemoteContracts.apply(this, arguments);
|
|
288
287
|
}
|
|
289
288
|
return returnsDependencyMapFromRemoteContracts;
|
|
290
289
|
}()
|
|
290
|
+
}, {
|
|
291
|
+
key: "connectsAsSkill",
|
|
292
|
+
value: function () {
|
|
293
|
+
var _connectsAsSkill = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
294
|
+
var passedOptions, old;
|
|
295
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
296
|
+
while (1) {
|
|
297
|
+
switch (_context9.prev = _context9.next) {
|
|
298
|
+
case 0:
|
|
299
|
+
//@ts-ignore
|
|
300
|
+
old = this.permissions.connectToApi.bind(this.permissions); //@ts-ignore
|
|
301
|
+
this.permissions.connectToApi = function (options) {
|
|
302
|
+
passedOptions = options;
|
|
303
|
+
return old(passedOptions);
|
|
304
|
+
};
|
|
305
|
+
_context9.next = 4;
|
|
306
|
+
return this.fetchContracts();
|
|
307
|
+
case 4:
|
|
308
|
+
_testUtils.assert.isEqualDeep(passedOptions, {
|
|
309
|
+
shouldAuthAsCurrentSkill: true
|
|
310
|
+
});
|
|
311
|
+
case 5:
|
|
312
|
+
case "end":
|
|
313
|
+
return _context9.stop();
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}, _callee9, this);
|
|
317
|
+
}));
|
|
318
|
+
function connectsAsSkill() {
|
|
319
|
+
return _connectsAsSkill.apply(this, arguments);
|
|
320
|
+
}
|
|
321
|
+
return connectsAsSkill;
|
|
322
|
+
}()
|
|
291
323
|
}, {
|
|
292
324
|
key: "updateFirstContractBuilder",
|
|
293
325
|
value: function updateFirstContractBuilder(contractId, perm1Id, perm2Id) {
|
|
@@ -367,8 +399,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
367
399
|
return this.loadLocalPermissions();
|
|
368
400
|
case 2:
|
|
369
401
|
perms = _context11.sent;
|
|
402
|
+
perms.sort(_sortPermissionContracts.sortPermissionContracts);
|
|
403
|
+
expected.sort(_sortPermissionContracts.sortPermissionContracts);
|
|
370
404
|
_testUtils.assert.isEqualDeep(perms, expected);
|
|
371
|
-
case
|
|
405
|
+
case 6:
|
|
372
406
|
case "end":
|
|
373
407
|
return _context11.stop();
|
|
374
408
|
}
|
|
@@ -406,10 +440,10 @@ var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils
|
|
|
406
440
|
}()
|
|
407
441
|
}]);
|
|
408
442
|
return PermissionStoreTest;
|
|
409
|
-
}(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "
|
|
443
|
+
}(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), (0, _defineProperty2["default"])(_class2, "fqid1", void 0), (0, _defineProperty2["default"])(_class2, "fqid2", void 0), (0, _defineProperty2["default"])(_class2, "namespace", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "passesThroughDependentSkills", [_dec5], Object.getOwnPropertyDescriptor(_class, "passesThroughDependentSkills"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "returnsDependencyMapFromRemoteContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "returnsDependencyMapFromRemoteContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "connectsAsSkill", [_dec7], Object.getOwnPropertyDescriptor(_class, "connectsAsSkill"), _class)), _class));
|
|
410
444
|
exports["default"] = PermissionStoreTest;
|
|
411
|
-
function
|
|
412
|
-
return (
|
|
445
|
+
function buildPermissionContractId(contractId, namespace) {
|
|
446
|
+
return "".concat(namespace, ".").concat(contractId);
|
|
413
447
|
}
|
|
414
448
|
function generateContractBuilder() {
|
|
415
449
|
var contractId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'oeu-aoeuao';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","contractName1","generateShortAlphaId","contractName2","MercuryClientFactory","setIsTestMode","permissions","Store","eventFaker","EventFaker","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","contractId","perm1Id","perm2Id","updateFirstContractBuilder","wasHit","fakeListPermissionContracts","fetchContracts","isTrue","namespace","addRandomDependency","target","passedTarget","namespaces","perm","generatePermValues","perm2","perm3","generateContractRowValues","contract","contract2","contractId2","map","id","file","resolvePath","diskUtil","writeFile","generateContractBuilder","generateId","name","permissionId","defaults","dep","Service","add","expected","perms","AbstractPermissionsTest","replace","substring"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { PermissionContractMap, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore from '../../../features/permission/stores/PermissionStore'\nimport EventFaker, {\n\tListPermContractsTargetAndPayload,\n} from '../../support/EventFaker'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\tprivate static eventFaker: EventFaker\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.contractName2 = generateShortAlphaId()\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\tthis.eventFaker = new EventFaker()\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[this.contractName1]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t\t[this.contractName2]: ['can-high-five'],\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[contractId]: [perm1Id, perm2Id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async remotePermsEmitsListContracts() {\n\t\tlet wasHit = false\n\n\t\tawait this.eventFaker.fakeListPermissionContracts(() => {\n\t\t\twasHit = true\n\t\t})\n\n\t\tawait PermissionStoreTest.fetchContracts()\n\t\tassert.isTrue(wasHit)\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\tassert.isEqualDeep(map, {\n\t\t\t[contractId]: [perm.id, perm2.id],\n\t\t\t[contractId2]: [perm3.id],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t\t'oeu-aoeuao': ['what-the', 'go-dogs'],\n\t\t})\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: PermissionContractMap\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\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}\nfunction generateShortAlphaId() {\n\treturn generateId().replace(/[0-9]/g, '').substring(0, 5)\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":";;;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AAEA;AAGA;AAA+D;AAAA;AAAA;AAAA,IAE1CA,mBAAmB,WAoBtC,IAAAC,eAAI,GAAE,UAMN,IAAAA,eAAI,GAAE,UAQN,IAAAA,eAAI,GAAE,UASN,IAAAA,eAAI,GAAE,UAcN,IAAAA,eAAI,GAAE,UAYN,IAAAA,eAAI,GAAE,UAiBN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,+FA/EP;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAEC,IAAI,CAACC,aAAa,GAAGC,oBAAoB,EAAE;gBAC3C,IAAI,CAACC,aAAa,GAAGD,oBAAoB,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAECE,mCAAoB,CAACC,aAAa,CAAC,IAAI,CAAC;gBACxC,IAAI,CAACC,WAAW,GAAG,IAAI,CAACC,KAAK,CAAC,YAAY,CAAC;gBAC3C,IAAI,CAACC,UAAU,GAAG,IAAIC,sBAAU,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAE2B,IAAI,CAACC,oBAAoB,EAAE;cAAA;gBAA/CJ,WAAW;gBACjBK,iBAAM,CAACC,WAAW,CAACN,WAAW,EAAE,CAAC,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACO,wBAAwB,CAAC,IAAI,CAACZ,aAAa,CAAC;cAAA;gBAAA;gBAAA,OACjD,IAAI,CAACa,2BAA2B,sCACpC,IAAI,CAACb,aAAa,EAAG,CAAC,eAAe,CAAC,EACtC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACY,wBAAwB,CAAC,IAAI,CAACV,aAAa,CAAC;cAAA;gBAAA;gBAAA,OACjD,IAAI,CAACW,2BAA2B,wFACpC,IAAI,CAACb,aAAa,EAAG,CAAC,eAAe,CAAC,4DACtC,IAAI,CAACE,aAAa,EAAG,CAAC,eAAe,CAAC,2BACtC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2GAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOY,UAAU,GAAG,YAAY;gBACzBC,OAAO,GAAG,UAAU;gBACpBC,OAAO,GAAG,SAAS;gBAEzB,IAAI,CAACC,0BAA0B,CAACH,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC;gBAAA;gBAAA,OAEvD,IAAI,CAACH,2BAA2B,wFACpCC,UAAU,EAAG,CAACC,OAAO,EAAEC,OAAO,CAAC,4DAC/B,IAAI,CAACd,aAAa,EAAG,CAAC,eAAe,CAAC,2BACtC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEKgB,MAAM,GAAG,KAAK;gBAAA;gBAAA,OAEZ,IAAI,CAACX,UAAU,CAACY,2BAA2B,CAAC,YAAM;kBACvDD,MAAM,GAAG,IAAI;gBACd,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAEIpB,mBAAmB,CAACsB,cAAc,EAAE;cAAA;gBAC1CV,iBAAM,CAACW,MAAM,CAACH,MAAM,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOI,SAAS,GAAG,IAAI,CAACC,mBAAmB,EAAE;gBAAA;gBAAA,OAItC,IAAI,CAAChB,UAAU,CAACY,2BAA2B,CAAC,gBAAgB;kBAAA,IAAbK,MAAM,QAANA,MAAM;kBAC1DC,YAAY,GAAGD,MAAM;gBACtB,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAEI,IAAI,CAACJ,cAAc,EAAE;cAAA;gBAE3BV,iBAAM,CAACC,WAAW,CAACc,YAAY,EAAE;kBAChCC,UAAU,EAAE,CAACJ,SAAS;gBACvB,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,6HAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOK,IAAI,GAAG,IAAI,CAACC,kBAAkB,EAAE;gBAChCC,KAAK,GAAG,IAAI,CAACD,kBAAkB,EAAE;gBACjCE,KAAK,GAAG,IAAI,CAACF,kBAAkB,EAAE;gBAAA,wBAEN,IAAI,CAACG,yBAAyB,CAAC,CAC/DJ,IAAI,EACJE,KAAK,CACL,CAAC,EAHMG,QAAQ,yBAARA,QAAQ,EAAElB,UAAU,yBAAVA,UAAU;gBAAA,yBAM3B,IAAI,CAACiB,yBAAyB,CAAC,CAACD,KAAK,CAAC,CAAC,EADtBG,SAAS,0BAAnBD,QAAQ,EAAyBE,WAAW,0BAAvBpB,UAAU;gBAAA;gBAAA,OAGjC,IAAI,CAACP,UAAU,CAACY,2BAA2B,CAAC,YAAM;kBACvD,OAAO,CAACa,QAAQ,EAAEC,SAAS,CAAC;gBAC7B,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAEgB,IAAI,CAACb,cAAc,EAAE;cAAA;gBAAjCe,GAAG;gBACTzB,iBAAM,CAACC,WAAW,CAACwB,GAAG,mFACpBrB,UAAU,EAAG,CAACa,IAAI,CAACS,EAAE,EAAEP,KAAK,CAACO,EAAE,CAAC,yDAChCF,WAAW,EAAG,CAACJ,KAAK,CAACM,EAAE,CAAC,yDACxB,IAAI,CAAClC,aAAa,EAAG,CAAC,eAAe,CAAC,yDACvC,YAAY,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,wBACpC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,oCACCY,UAAkB,EAClBC,OAAe,EACfC,OAAe,EACd;MACD,IAAMqB,IAAI,GAAG,IAAI,CAACC,WAAW,CAC5B,KAAK,EACL,aAAa,YACV,IAAI,CAACtC,aAAa,qBACrB;MACDuC,0BAAQ,CAACC,SAAS,CACjBH,IAAI,EACJI,uBAAuB,CAAC3B,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC,CACrD;IACF;EAAC;IAAA;IAAA,OAED,mCACCX,WAA2D,EAC1D;MACD,IAAMS,UAAU,GAAG,IAAA4B,qBAAU,GAAE;MAC/B,IAAMV,QAAQ,GAAG;QAChBI,EAAE,EAAE,IAAAM,qBAAU,GAAE;QAChBV,QAAQ,EAAE;UACTI,EAAE,EAAEtB,UAAU;UACd6B,IAAI,EAAE,IAAAD,qBAAU,GAAE;UAClBrC,WAAW,EAAXA;QACD;MACD,CAAC;MACD,OAAO;QAAE2B,QAAQ,EAARA,QAAQ;QAAElB,UAAU,EAAVA;MAAW,CAAC;IAChC;EAAC;IAAA;IAAA,OAED,8BAAoC;MACnC,IAAM8B,YAAY,GAAG,IAAAF,qBAAU,GAAE;MACjC,IAAMf,IAAI,GAAG;QACZS,EAAE,EAAEQ,YAAY;QAChBD,IAAI,EAAE,IAAAD,qBAAU,GAAE;QAClBG,QAAQ,EAAE,CAAC;MACZ,CAAC;MACD,OAAOlB,IAAI;IACZ;EAAC;IAAA;IAAA,OAED,+BAAqC;MACpC,IAAMmB,GAAG,GAAG,IAAI,CAACC,OAAO,CAAC,YAAY,CAAC;MACtC,IAAMzB,SAAS,GAAG,IAAAoB,qBAAU,GAAE;MAC9BI,GAAG,CAACE,GAAG,CAAC;QACPZ,EAAE,EAAE,IAAAM,qBAAU,GAAE;QAChBpB,SAAS,EAATA;MACD,CAAC,CAAC;MACF,OAAOA,SAAS;IACjB;EAAC;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,mCACQ,IAAI,CAACjB,WAAW,CAACe,cAAc,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iHAED,mBACC6B,QAA+B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEX,IAAI,CAACxC,oBAAoB,EAAE;cAAA;gBAAzCyC,KAAK;gBACXxC,iBAAM,CAACC,WAAW,CAACuC,KAAK,EAAED,QAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0GAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEc,IAAI,CAAC5C,WAAW,CAACI,oBAAoB,EAAE;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACpD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlL+C0C,mCAAuB,8DACtC,aAAa;AAAA;AAmL/C,SAASlD,oBAAoB,GAAG;EAC/B,OAAO,IAAAyC,qBAAU,GAAE,CAACU,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1D;AAEA,SAASZ,uBAAuB,GAI9B;EAAA,IAHD3B,UAAU,uEAAG,YAAY;EAAA,IACzBC,OAAO,uEAAG,UAAU;EAAA,IACpBC,OAAO,uEAAG,SAAS;EAEnB,2JAKUF,UAAU,8IAMFC,OAAO,wRASPC,OAAO;AAa1B"}
|
|
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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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
17
|
+
var _testUtils = require("@sprucelabs/test-utils");
|
|
18
|
+
var _AbstractPermissionsTest = _interopRequireDefault(require("./support/AbstractPermissionsTest"));
|
|
19
|
+
var _dec, _class;
|
|
20
|
+
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); }; }
|
|
21
|
+
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; } }
|
|
22
|
+
var PermissionWriterTest = (_dec = (0, _testUtils.test)(), (_class = /*#__PURE__*/function (_AbstractPermissionsT) {
|
|
23
|
+
(0, _inherits2["default"])(PermissionWriterTest, _AbstractPermissionsT);
|
|
24
|
+
var _super = _createSuper(PermissionWriterTest);
|
|
25
|
+
function PermissionWriterTest() {
|
|
26
|
+
(0, _classCallCheck2["default"])(this, PermissionWriterTest);
|
|
27
|
+
return _super.apply(this, arguments);
|
|
28
|
+
}
|
|
29
|
+
(0, _createClass2["default"])(PermissionWriterTest, null, [{
|
|
30
|
+
key: "writesProperContractId",
|
|
31
|
+
value: function () {
|
|
32
|
+
var _writesProperContractId = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
33
|
+
var contractId, perm1, perm2;
|
|
34
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
35
|
+
while (1) {
|
|
36
|
+
switch (_context.prev = _context.next) {
|
|
37
|
+
case 0:
|
|
38
|
+
contractId = (0, _testUtils.generateId)();
|
|
39
|
+
perm1 = (0, _testUtils.generateId)();
|
|
40
|
+
perm2 = (0, _testUtils.generateId)(); //@ts-ignore
|
|
41
|
+
_context.next = 5;
|
|
42
|
+
return this.writeTypesFile((0, _defineProperty2["default"])({}, contractId, [perm1, perm2]));
|
|
43
|
+
case 5:
|
|
44
|
+
_context.next = 7;
|
|
45
|
+
return this.writeTestFileAndAssertValid(contractId, perm1, perm2);
|
|
46
|
+
case 7:
|
|
47
|
+
case "end":
|
|
48
|
+
return _context.stop();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}, _callee, this);
|
|
52
|
+
}));
|
|
53
|
+
function writesProperContractId() {
|
|
54
|
+
return _writesProperContractId.apply(this, arguments);
|
|
55
|
+
}
|
|
56
|
+
return writesProperContractId;
|
|
57
|
+
}()
|
|
58
|
+
}, {
|
|
59
|
+
key: "writeTypesFile",
|
|
60
|
+
value: function () {
|
|
61
|
+
var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(map) {
|
|
62
|
+
var writer;
|
|
63
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
64
|
+
while (1) {
|
|
65
|
+
switch (_context2.prev = _context2.next) {
|
|
66
|
+
case 0:
|
|
67
|
+
writer = this.writers.Writer('permission', {
|
|
68
|
+
fileDescriptions: []
|
|
69
|
+
});
|
|
70
|
+
_context2.next = 3;
|
|
71
|
+
return writer.writeTypesFile(this.cwd, map);
|
|
72
|
+
case 3:
|
|
73
|
+
case "end":
|
|
74
|
+
return _context2.stop();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, _callee2, this);
|
|
78
|
+
}));
|
|
79
|
+
function writeTypesFile(_x) {
|
|
80
|
+
return _writeTypesFile.apply(this, arguments);
|
|
81
|
+
}
|
|
82
|
+
return writeTypesFile;
|
|
83
|
+
}()
|
|
84
|
+
}]);
|
|
85
|
+
return PermissionWriterTest;
|
|
86
|
+
}(_AbstractPermissionsTest["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "writesProperContractId", [_dec], Object.getOwnPropertyDescriptor(_class, "writesProperContractId"), _class)), _class));
|
|
87
|
+
exports["default"] = PermissionWriterTest;
|
|
88
|
+
//# sourceMappingURL=PermissionWriter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionWriter.test.js","names":["PermissionWriterTest","test","contractId","generateId","perm1","perm2","writeTypesFile","writeTestFileAndAssertValid","map","writer","writers","Writer","fileDescriptions","cwd","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionWriter.test.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { test, generateId } from '@sprucelabs/test-utils'\nimport AbstractPermissionsTest from './support/AbstractPermissionsTest'\n\nexport default class PermissionWriterTest extends AbstractPermissionsTest {\n\t@test()\n\tprotected static async writesProperContractId() {\n\t\tconst contractId = generateId()\n\t\tconst perm1 = generateId()\n\t\tconst perm2 = generateId()\n\n\t\t//@ts-ignore\n\t\tawait this.writeTypesFile({\n\t\t\t[contractId]: [perm1, perm2],\n\t\t})\n\n\t\tawait this.writeTestFileAndAssertValid(contractId, perm1, perm2)\n\t}\n\n\tprivate static async writeTypesFile(map: PermissionContractMap) {\n\t\tconst writer = this.writers.Writer('permission', { fileDescriptions: [] })\n\t\tawait writer.writeTypesFile(this.cwd, map)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA;AACA;AAAuE;AAAA;AAAA;AAAA,IAElDA,oBAAoB,WACvC,IAAAC,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,4GAAP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,UAAU,GAAG,IAAAC,qBAAU,GAAE;gBACzBC,KAAK,GAAG,IAAAD,qBAAU,GAAE;gBACpBE,KAAK,GAAG,IAAAF,qBAAU,GAAE,EAE1B;gBAAA;gBAAA,OACM,IAAI,CAACG,cAAc,sCACvBJ,UAAU,EAAG,CAACE,KAAK,EAAEC,KAAK,CAAC,EAC3B;cAAA;gBAAA;gBAAA,OAEI,IAAI,CAACE,2BAA2B,CAACL,UAAU,EAAEE,KAAK,EAAEC,KAAK,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChE;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED,kBAAoCG,GAA0B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACvDC,MAAM,GAAG,IAAI,CAACC,OAAO,CAACC,MAAM,CAAC,YAAY,EAAE;kBAAEC,gBAAgB,EAAE;gBAAG,CAAC,CAAC;gBAAA;gBAAA,OACpEH,MAAM,CAACH,cAAc,CAAC,IAAI,CAACO,GAAG,EAAEL,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlBgDM,mCAAuB;AAAA"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class SyncingPermissionsTest extends
|
|
3
|
-
|
|
4
|
-
private static
|
|
1
|
+
import AbstractPermissionsTest from './support/AbstractPermissionsTest';
|
|
2
|
+
export default class SyncingPermissionsTest extends AbstractPermissionsTest {
|
|
3
|
+
private static syncAction;
|
|
4
|
+
private static contractId1;
|
|
5
|
+
private static contractId2;
|
|
6
|
+
protected static beforeAll(): Promise<void>;
|
|
5
7
|
protected static beforeEach(): Promise<void>;
|
|
6
8
|
protected static generatesExpectedTypesFile(): Promise<void>;
|
|
9
|
+
protected static syncsNewPermissionsWhenMade(): Promise<void>;
|
|
10
|
+
protected static upgradingSyncsPermissions(): Promise<void>;
|
|
11
|
+
protected static doesNotSyncIfNotInstalled(): Promise<void>;
|
|
12
|
+
protected static generatesCombinedFile(): Promise<void>;
|
|
13
|
+
protected static combinedFileImportsAllPermissions(): Promise<void>;
|
|
14
|
+
private static getCombinedPath;
|
|
15
|
+
private static beginTrackingExecute;
|
|
16
|
+
private static sync;
|
|
17
|
+
private static emitDidExecuteUpgrade;
|
|
7
18
|
}
|