@sprucelabs/spruce-cli 15.2.24 → 15.4.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 +31 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -0
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +20 -14
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
- package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +61 -33
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
- package/build/__tests__/implementation/ListenerStore.test.js +56 -0
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/onTestFileResult.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/__tests__/support/scripts/second.script.js.map +1 -1
- package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/constants.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/cache/constants.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- 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/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/services/EventSettingsService.js.map +1 -1
- package/build/features/event/services/RemoteService.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +1 -0
- package/build/features/event/stores/EventStore.js +6 -1
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +1 -0
- package/build/features/event/stores/ListenerStore.js +6 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.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.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.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/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.d.ts +1 -0
- package/build/features/store/stores/StoreStore.js +6 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js +1 -1
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/test.types.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/universalDevDependencies.js.map +1 -1
- package/build/features/universalFileDescriptions.js.map +1 -1
- package/build/features/universalScripts.js.map +1 -1
- package/build/features/validateAndNormalize.utility.d.ts +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js +1 -3
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.d.ts +2 -1
- package/build/tests/CommandFaker.js +13 -7
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/constants.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/types/apiClient.types.js.map +1 -1
- package/build/types/cli.types.js.map +1 -1
- package/build/types/graphicsInterface.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/apiClient.utility.js.map +1 -1
- package/build/utilities/argParser.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/duration.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/isCi.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/utilities/ui.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/keySelectChoices.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/button.types.js.map +1 -1
- package/build/widgets/types/factory.types.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/layout.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/popup.types.js.map +1 -1
- package/build/widgets/types/progressBar.types.js.map +1 -1
- package/build/widgets/types/table.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/widgets.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/widgets/widget.utilities.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +36 -36
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +21 -7
- package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
- package/src/__tests__/implementation/EventStore.test.ts +14 -0
- package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/event/builders/EventContractBuilder.ts +2 -2
- package/src/features/event/stores/EventStore.ts +11 -8
- package/src/features/event/stores/ListenerStore.ts +5 -3
- package/src/features/event/writers/EventWriter.ts +1 -1
- package/src/features/schema/writers/SchemaWriter.ts +1 -1
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/stores/StoreStore.ts +5 -1
- package/src/features/test/actions/CreateAction.ts +1 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
- package/src/features/view/writers/ViewWriter.ts +3 -2
- package/src/tests/CommandFaker.ts +9 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"names":["GeneratingMercuryEventContractTest","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","pullContracts","Service","importDefault","AbstractCliTest"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async pullsGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-event',\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isAbove(contracts.length, 1)\n\t\tassert.isObject(contracts[1].eventSignatures)\n\t\tassert.isObject(contracts[1].eventSignatures[fqen])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"file":"PullingMercuryEventContract.test.js"}
|
|
1
|
+
{"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","pullContracts","Service","importDefault","AbstractCliTest"],"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'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async pullsGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-event',\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isAbove(contracts.length, 1)\n\t\tassert.isObject(contracts[1].eventSignatures)\n\t\tassert.isObject(contracts[1].eventSignatures[fqen])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,kC,WAQnB,iB,UAKA,iB,UAKA,iB,UAyBA,iB,UAeA,iB,UASA,iB,UAgCA,iB,UAqBA,iB;;;;;;;;;;;;;sGAtHD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAEkB,KAAKC,GAAL,EAFlB;;cAAA;gBAEC,KAAKC,GAFN;;gBAGCC,2BAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiB,cAAjB,CAAnB,EAAqD,IAArD;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHAMA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,QAAP,CAAgB,KAAKL,GAAL,CAASM,UAAT,CAAoB,eAApB,CAAhB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0GAKA;QAAA;UAAA;YAAA;cAAA;gBAECF,aAAOG,UAAP,CAAkB,KAAKC,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAAvD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAKA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,KAAKD,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C,EAA7C,CAFvB;;cAAA;gBAEOC,OAFP;;gBAGCN,aAAOO,OAAP,CAAeD,OAAO,CAACE,MAAvB;;gBAEMC,KALP,GAKeC,kBAASC,gCAAT,CACb,oBADa,EAEbL,OAAO,CAACM,KAFK,CALf;;gBAUCZ,aAAOa,OAAP,CAAeJ,KAAf,EAAsB,KAAKV,WAAL,CAAiB,oBAAjB,CAAtB;;gBAEAC,aAAOc,WAAP,mBAAmBR,OAAO,CAACM,KAA3B,2DAAoC,EAApC,EAAwC;kBACvCG,IAAI,EAAE,oBADiC;kBAEvCC,MAAM,EAAE;gBAF+B,CAAxC;;gBAKMC,QAjBP,GAiBkBpB,2BAASqB,QAAT,CAAkBT,KAAlB,CAjBlB;;gBAmBCT,aAAOc,WAAP,CACCG,QADD,EAEC,gEAFD;;cAnBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAyBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,KAAKb,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C;kBAClEc,WAAW,EAAE;gBADqD,CAA7C,CAFvB;;cAAA;gBAEOb,OAFP;gBAMOG,KANP,GAMeC,kBAASC,gCAAT,CACb,oBADa,EAEbL,OAAO,CAACM,KAFK,CANf;gBAUOQ,QAVP,GAUkB,KAAKrB,WAAL,CAAiB,8BAAjB,CAVlB;;gBAYCC,aAAOa,OAAP,CAAeO,QAAf,EAAyBX,KAAzB;;cAZD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mIAeA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEyB,KAAKY,4BAAL,EAFzB;;cAAA;gBAEOC,SAFP;;gBAICtB,aAAOuB,OAAP,CAAeD,SAAf;;gBACAtB,aAAOwB,QAAP,CAAgBF,SAAS,CAAC,CAAD,CAAT,CAAaG,eAA7B;;gBACAzB,aAAOwB,QAAP,CAAgBF,SAAS,CAAC,CAAD,CAAT,CAAaG,eAAb,4BAAhB;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEkB,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFlB;;cAAA;gBAEC,KAAK/B,GAFN;gBAAA;gBAAA,OAIqB,KAAKgC,eAAL,GAAuBC,oBAAvB,CAA4C;kBAC/Dd,IAAI,EAAE;gBADyD,CAA5C,CAJrB;;cAAA;gBAIOe,KAJP;gBAAA;gBAAA,OAQsB,KAAKC,KAAL,CAAW,OAAX,CARtB;;cAAA;gBAQOC,MARP;gBAAA;gBAAA,OASOA,MAAM,CAACC,qBAAP,CAA6B;kBAClCC,aAAa,EAAE;oBACdT,eAAe,EAAE;sBAChB,2BAA2B;wBAC1BU,QAAQ,EAAE;sBADgB;oBADX;kBADH;gBADmB,CAA7B,CATP;;cAAA;gBAmBOC,IAnBP,GAmBcC,gCAAcC,IAAd,CAAmB;kBAC/BC,SAAS,EAAE,YADoB;kBAE/BC,cAAc,EAAEV,KAAK,CAACW,IAFS;kBAG/BC,OAAO,EAAE;gBAHsB,CAAnB,CAnBd;gBAAA;gBAAA,OAyByB,KAAKrB,4BAAL,EAzBzB;;cAAA;gBAyBOC,SAzBP;;gBA2BCtB,aAAO2C,OAAP,CAAerB,SAAS,CAACsB,MAAzB,EAAiC,CAAjC;;gBACA5C,aAAOwB,QAAP,CAAgBF,SAAS,CAAC,CAAD,CAAT,CAAaG,eAA7B;;gBACAzB,aAAOwB,QAAP,CAAgBF,SAAS,CAAC,CAAD,CAAT,CAAaG,eAAb,CAA6BW,IAA7B,CAAhB;;cA7BD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAgCA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEkB,KAAKV,cAAL,GAAsBC,qBAAtB,CAA4C,MAA5C,CAFlB;;cAAA;gBAEC,KAAK/B,GAFN;gBAAA;gBAAA,OAIuB,KAAKQ,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C,EAA7C,CAJvB;;cAAA;gBAIOC,OAJP;gBAMOG,KANP,GAMeC,kBAASC,gCAAT,CACb,oBADa,EAEbL,OAAO,CAACM,KAFK,CANf;gBAWOK,QAXP,GAWkBpB,2BAASqB,QAAT,CAAkBT,KAAlB,CAXlB;;gBAaCT,aAAOc,WAAP,CAAmBG,QAAnB,EAA6B,+BAA7B;;gBACAjB,aAAOc,WAAP,CAAmBG,QAAnB,EAA6B,UAA7B;;gBACAjB,aAAOc,WAAP,CACCG,QADD,EAEC,qFAFD;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gIAqBA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKb,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C,EAA7C,CAFP;;cAAA;gBAAA;gBAAA,OAIuB,KAAKD,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C,EAA7C,CAJvB;;cAAA;gBAIOC,OAJP;;gBAMCI,kBAASC,gCAAT,CACC,oBADD,EAECL,OAAO,CAACM,KAFT;;gBAKAZ,aAAOc,WAAP,oBAAmBR,OAAO,CAACM,KAA3B,6DAAoC,EAApC,EAAwC;kBACvCG,IAAI,EAAE,oBADiC;kBAEvCC,MAAM,EAAE;gBAF+B,CAAxC;;cAXD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wHAiBA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACkB,KAAKU,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CADlB;;cAAA;gBACC,KAAK/B,GADN;gBAAA;gBAAA,OAGc,KAAKiD,aAAL,EAHd;;cAAA;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yGAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,KAAKzC,MAAL,CAAY,eAAZ,EAA6B,MAA7B,EAAqCC,OAArC,CAA6C,EAA7C,CADvB;;cAAA;gBACOC,OADP;gBAGOG,KAHP,GAGeC,kBAASC,gCAAT,CACb,oBADa,EAEbL,OAAO,CAACM,KAFK,CAHf;gBAAA;gBAAA,OAQyB,KAAKkC,OAAL,CAAa,QAAb,EAAuBC,aAAvB,CAAqCtC,KAArC,CARzB;;cAAA;gBAQOa,SARP;gBAAA,mCASQA,SATR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA/I+D0B,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","listen","Action","installEventFeature","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","executeAndWaitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","waitForInput","reset","MercuryClientFactory","setIsTestMode","eventFaker","on","target","passedTarget","contracts","coreEventContracts","addDependency","isEqualDeep","dependencies","add","id","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAMA;;AAKA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,qB,WAUnB,iB,UAgBA,iB,UAgBA,iB,UAYA,iB,UA6BA,iB,UA2BA,iB,UAiCA,iB,UAeA,iB,UA+BA,iB,WAuGA,iB;;;;;;;;;;;;;sGA/RD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,CAAd;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAAA;AAAA,uBAIuB,KAAKF,MAAL,CAAYG,OAAZ,CAAoB;AACzCC,kBAAAA,SAAS,EAAE;AAD8B,iBAApB,CAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAQCC,6BAAOC,QAAP,CAAgBF,OAAO,CAACG,MAAxB;;AACMC,gBAAAA,GATP,GASaJ,OAAO,CAACG,MAAR,CAAe,CAAf,CATb;;AAWCE,uCAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,oBAA7B,EAAmD;AAClDG,kBAAAA,UAAU,EAAE,CAAC,WAAD;AADsC,iBAAnD;;AAXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKV,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAAA;AAAA,uBAGuB,KAAKF,MAAL,CAAYG,OAAZ,CAAoB;AACzCC,kBAAAA,SAAS,EAAE,WAD8B;AAEzCS,kBAAAA,SAAS,EAAE;AAF8B,iBAApB,CAHvB;;AAAA;AAGOR,gBAAAA,OAHP;;AAQCC,6BAAOC,QAAP,CAAgBF,OAAO,CAACG,MAAxB;;AACMC,gBAAAA,GATP,GASaJ,OAAO,CAACG,MAAR,CAAe,CAAf,CATb;;AAWCE,uCAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,oBAA7B,EAAmD;AAClDK,kBAAAA,UAAU,EAAE,CAAC,WAAD;AADsC,iBAAnD;;AAXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4GAgBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKC,8BAAL,EAF3B;;AAAA;AAAA;AAESV,gBAAAA,OAFT,yBAESA,OAFT;AAIOW,gBAAAA,KAJP,GAIeC,kBAASC,gCAAT,iBAEbb,OAAO,CAACc,KAFK,CAJf;AAAA;AAAA,uBASO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,KAAlC,CATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;gHAYA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKD,8BAAL,EAHR;;AAAA;AAAA;AAESO,gBAAAA,OAFT,0BAESA,OAFT;AAEkBjB,gBAAAA,OAFlB,0BAEkBA,OAFlB;AAE2BkB,gBAAAA,GAF3B,0BAE2BA,GAF3B;AAKOP,gBAAAA,KALP,GAKeC,kBAASC,gCAAT,qBACAI,OADA,mBAEbjB,OAAO,CAACc,KAFK,CALf;;AAUCb,6BAAOkB,WAAP,CAAmBR,KAAnB,EAA0BM,OAA1B;;AAVD;AAAA,uBAYO,KAAKF,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,KAAlC,CAZP;;AAAA;AAAA;AAAA,uBAcsBO,GAAG,CAACE,WAAJ,EAdtB;;AAAA;AAcOC,gBAAAA,MAdP;;AAgBCpB,6BAAOqB,OAAP,CAAeD,MAAf,aAAeA,MAAf,wCAAeA,MAAM,CAAEE,KAAvB,kDAAe,cAAepB,MAA9B;;AACAF,6BAAOC,QAAP,CAAgBmB,MAAM,CAACG,KAAvB;;AAEAvB,6BAAOwB,WAAP,CAAmBJ,MAAM,CAACG,KAAP,CAAarB,MAAhC;;AACAF,6BAAOC,QAAP,CAAgBmB,MAAM,CAACE,KAAvB;;AAEAtB,6BAAOkB,WAAP,CAAmBE,MAAM,CAACE,KAAP,CAAaG,SAAhC,EAA2C;AAC1ClB,kBAAAA,SAAS,EAAE,WAD+B;AAE1CmB,kBAAAA,cAAc,EAAE,OAF0B;AAG1CV,kBAAAA,OAAO,EAAPA;AAH0C,iBAA3C;;AAtBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wIA6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKpB,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAAA;AAAA,uBAIO,KAAK+B,sBAAL,EAJP;;AAAA;AAMKC,gBAAAA,cANL,GAMsB,KAAKC,EAAL,CAAQC,iBAAR,EANtB;;AAQC9B,6BAAO+B,OAAP,CAAeH,cAAc,CAACI,OAA9B,EAAuC,QAAvC;;AACAhC,6BAAOkB,WAAP,CAAmBU,cAAc,CAACK,OAAf,CAAuBC,KAA1C,EAAiD,WAAjD;;AATD;AAAA,uBAWO,KAAKL,EAAL,CAAQM,SAAR,CAAkBC,uCAAlB,CAXP;;AAAA;AAAA;AAAA,uBAaO,KAAKC,YAAL,EAbP;;AAAA;AAeCT,gBAAAA,cAAc,GAAG,KAAKC,EAAL,CAAQC,iBAAR,EAAjB;;AAEA9B,6BAAOkB,WAAP,CAAmBU,cAAc,CAACK,OAAf,CAAuBC,KAA1C,EAAiD,OAAjD;;AAEA,qBAAKL,EAAL,CAAQS,KAAR;;AAnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAsBA;AAAA;AAAA;AAAA;AAAA;AACC,qBAAK,KAAK5C,MAAL,CAAYG,OAAZ,CAAoB,EAApB,CAAL;AADD;AAAA,uBAEO,KAAKwC,YAAL,EAFP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iIAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKzC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGC2C,oDAAqBC,aAArB,CAAmC,IAAnC;;AAHD;AAAA,uBAMOC,+BAAWC,EAAX,CAAc,kCAAd,EAAkD,gBAAgB;AAAA,sBAAbC,MAAa,QAAbA,MAAa;AACvEC,kBAAAA,YAAY,GAAGD,MAAf;AACA,yBAAO;AACNE,oBAAAA,SAAS,sCAAOC,qCAAP;AADH,mBAAP;AAGA,iBALK,CANP;;AAAA;AAaOhD,gBAAAA,SAbP,GAamB,MAbnB;AAcC,qBAAKiD,aAAL,CAAmBjD,SAAnB;AAdD;AAAA,uBAgBO,KAAK6B,sBAAL,EAhBP;;AAAA;AAkBC3B,6BAAOgD,WAAP,CAAmBJ,YAAnB,EAAiC;AAChCtC,kBAAAA,UAAU,EAAE,CAACR,SAAD;AADoB,iBAAjC;;AAIA,qBAAK+B,EAAL,CAAQS,KAAR;;AAtBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAyBA,uBAA6BxC,SAA7B,EAAgD;AAC/C,UAAMmD,YAAY,GAAG,KAAKnC,OAAL,CAAa,YAAb,CAArB;AACAmC,MAAAA,YAAY,CAACC,GAAb,CAAiB;AAChBC,QAAAA,EAAE,EAAErD,SADY;AAEhBA,QAAAA,SAAS,EAAE;AAFK,OAAjB;AAIA;;;;iIAED;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKsD,+DAAL,CACL;AACCC,kBAAAA,QAAQ,EAAE;AADX,iBADK,CAHR;;AAAA;AAAA;AAESC,gBAAAA,QAFT,yBAESA,QAFT;;AASCtD,6BAAOkB,WAAP,CACCoC,QADD,EAEC,gEAFD;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iIAeA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKF,+DAAL,CACL;AACCG,kBAAAA,iBAAiB,EAAE,uDAAgC;AAClDhD,oBAAAA,SAAS,EAAE,cADuC;AAElDiD,oBAAAA,YAAY,EAAEC,mCAFoC;AAGlDC,oBAAAA,aAAa,EAAE;AACdP,sBAAAA,EAAE,EAAE,uBADU;AAEdQ,sBAAAA,MAAM,EAAE;AACPC,wBAAAA,YAAY,EAAE;AACbC,0BAAAA,IAAI,EAAE;AADO;AADP;AAFM;AAHmC,mBAAhC;AADpB,iBADK,CAHR;;AAAA;AAAA;AAESP,gBAAAA,QAFT,0BAESA,QAFT;AAEmBQ,gBAAAA,MAFnB,0BAEmBA,MAFnB;;AAoBC9D,6BAAOkB,WAAP,CACCoC,QADD,EAEC,qDAFD;;AAKAtD,6BAAOkB,WAAP,CACCoC,QADD,sCAE8BQ,MAAM,CAACC,IAFrC,4BAE2D,KAAKC,eAFhE;;AAzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6JA+BA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKZ,+DAAL,CACL;AACCG,kBAAAA,iBAAiB,EAAE,uDAAgC;AAClDhD,oBAAAA,SAAS,EAAE,cADuC;AAElDiD,oBAAAA,YAAY,EAAE;AACbL,sBAAAA,EAAE,EAAE,sBADS;AAEbQ,sBAAAA,MAAM,EAAE;AACPM,wBAAAA,cAAc,EAAE;AACfJ,0BAAAA,IAAI,EAAE,IADS;AAEfK,0BAAAA,UAAU,EAAE;AAFG;AADT;AAFK,qBAFoC;AAWlDR,oBAAAA,aAAa,EAAE;AACdP,sBAAAA,EAAE,EAAE,uBADU;AAEdQ,sBAAAA,MAAM,EAAE;AACPC,wBAAAA,YAAY,EAAE;AACbC,0BAAAA,IAAI,EAAE;AADO;AADP;AAFM;AAXmC,mBAAhC,CADpB;AAqBCM,kBAAAA,qBAAqB,EAAE,yBAAY;AAClChB,oBAAAA,EAAE,EAAE,2BAD8B;AAElCQ,oBAAAA,MAAM,EAAE;AACPC,sBAAAA,YAAY,EAAE;AACbC,wBAAAA,IAAI,EAAE;AADO;AADP;AAF0B,mBAAZ;AArBxB,iBADK,CAHR;;AAAA;AAAA;AAESO,gBAAAA,YAFT,0BAESA,YAFT;AAEuBN,gBAAAA,MAFvB,0BAEuBA,MAFvB;AAE+BO,gBAAAA,aAF/B,0BAE+BA,aAF/B;AAE8CC,gBAAAA,GAF9C,0BAE8CA,GAF9C;AAAA;AAAA,uBAoC6B,KAAKC,YAAL,CAAkB;AAC7CC,kBAAAA,wBAAwB,EAAE;AADmB,iBAAlB,CApC7B;;AAAA;AAoCOC,gBAAAA,aApCP;AAAA;AAAA,uBAwCOA,aAAa,CAACC,UAAd,EAxCP;;AAAA;AAAA;AAAA,uBA0CoB,KAAK/E,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BE,OAA7B,CAAqC;AAAE8E,kBAAAA,KAAK,EAAE;AAAT,iBAArC,CA1CpB;;AAAA;AA0COC,gBAAAA,IA1CP;;AA4CC5E,6BAAOqB,OAAP,CAAeuD,IAAI,CAAC1E,MAApB,EA5CD,CA8CC;;;AA9CD;AAAA,uBA+CO,KAAK2E,IAAL,CAAU,KAAV,CA/CP;;AAAA;AAAA;AAAA,uBAiDuB,KAAKN,YAAL,CAAkB;AACvCO,kBAAAA,OAAO,EAAEhB,MAAM,CAACX,EADuB;AAEvC4B,kBAAAA,MAAM,EAAEjB,MAAM,CAACiB;AAFwB,iBAAlB,CAjDvB;;AAAA;AAiDOC,gBAAAA,MAjDP;AAsDOzE,gBAAAA,SAtDP,aAsDsBuD,MAAM,CAACC,IAtD7B,4BAsDmD,KAAKC,eAtDxD;AAwDCgB,gBAAAA,MAAM,CAACC,aAAP,CAAqB;AACpBC,kBAAAA,eAAe,uCACb3E,SADa,EAEb8D,aAAa,CAACa,eAAd,yBACkB,KAAKlB,eADvB,EAFa;AADK,iBAArB;;AAxDD;AAAA;AAAA,uBAoEQ,KAAKa,IAAL,CAAU,IAAV,CApER;;AAAA;AAAA;AAAA,uBAsEkBG,MAAM,CAACG,IAAP,CAAY5E,SAAZ,EAAuB;AACtCoC,kBAAAA,MAAM,EAAE;AACPsB,oBAAAA,cAAc,EAAEK,GAAG,CAACnB;AADb,mBAD8B;AAItCiC,kBAAAA,OAAO,EAAE;AACRxB,oBAAAA,YAAY,EAAE;AADN;AAJ6B,iBAAvB,CAtElB;;AAAA;AAsEE7D,gBAAAA,OAtEF;;AAAA;AAAA,oBA8EUA,OAAO,CAACsF,cAAR,GAAyB,CA9EnC;AAAA;AAAA;AAAA;;AAAA;AAgFCrF,6BAAO+B,OAAP,CAAehC,OAAO,CAACsF,cAAvB,EAAuC,CAAvC;;AACArF,6BAAO+B,OAAP,CAAehC,OAAO,CAACuF,WAAvB,EAAoC,CAApC;;AACAtF,6BAAO+B,OAAP,CAAehC,OAAO,CAACwF,cAAvB,EAAuC,CAAvC;;AAEA,8BAAAX,IAAI,CAACY,IAAL,gFAAWC,OAAX,mFAA0B,UAACtF,GAAD,EAAgB;AACzCH,+BAAO0F,IAAP,CAAYvF,GAAG,CAACwF,KAAhB;AACA,iBAFD;AApFD;AAAA,sCAwFOf,IAAI,CAACY,IAxFZ,gDAwFO,YAAWI,IAAX,EAxFP;;AAAA;AA0FOC,gBAAAA,KA1FP,GA0Fe7F,aAAO8F,SAAP,CAAiB;AAAA,yBAC9BC,oCAAkBC,uBAAlB,CAA0CjG,OAA1C,CAD8B;AAAA,iBAAjB,CA1Ff;;AA8FCkG,kDAAgB5F,WAAhB,CAA4BwF,KAA5B,EAAmC,0BAAnC;;AAEMK,gBAAAA,YAhGP,GAgGsBnG,OAAO,CAACoG,SAAR,CAAkB,CAAlB,EAAqBD,YAhG3C;;AAiGClG,6BAAO+B,OAAP,CACCmE,YADD,kBAEU9B,YAAY,CAACjB,EAFvB,cAE6BiB,YAAY,CAACL,IAF1C;;AAjGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6JAuGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKX,+DAAL,CACL;AACCC,kBAAAA,QAAQ,EAAE,IADX;AAECc,kBAAAA,qBAAqB,EAAE;AACtBhB,oBAAAA,EAAE,EAAE,MADkB;AAEtBQ,oBAAAA,MAAM,EAAE;AACPR,sBAAAA,EAAE,EAAE;AACHU,wBAAAA,IAAI,EAAE;AADH;AADG;AAFc;AAFxB,iBADK,CAHR;;AAAA;AAAA;AAESuC,gBAAAA,YAFT,0BAESA,YAFT;AAAA;AAAA,uBAiBO,KAAKtF,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCqF,YAAlC,CAjBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAoBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACmB,KAAKxG,mBAAL,CAAyB,QAAzB,CADnB;;AAAA;AACOqB,gBAAAA,GADP;AAGOD,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKuB,KAAKtB,MAAL,CAAYG,OAAZ,CAAoB;AACzCC,kBAAAA,SAAS,EAAE,OAD8B;AAEzCS,kBAAAA,SAAS,EAAE,WAF8B;AAGzCS,kBAAAA,OAAO,EAAPA;AAHyC,iBAApB,CALvB;;AAAA;AAKOjB,gBAAAA,OALP;;AAWCC,6BAAOqB,OAAP,CAAetB,OAAO,CAACG,MAAvB;;AAXD,mDAYQ;AAAEc,kBAAAA,OAAO,EAAPA,OAAF;AAAWjB,kBAAAA,OAAO,EAAPA,OAAX;AAAoBkB,kBAAAA,GAAG,EAAHA;AAApB,iBAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2JAeA,mBACCoF,cADD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGOrC,gBAAAA,eAHP,GAGyB,KAAKA,eAH9B;AAKOK,gBAAAA,aALP,GAKuB;AACrBa,kBAAAA,eAAe,+DACIlB,eADJ,GACwBqC,cADxB;AADM,iBALvB;AAAA;AAAA,uBAYQ,KAAKC,iDAAL,EAZR;;AAAA;AAAA;AAWSC,gBAAAA,YAXT,yBAWSA,YAXT;AAWuBzC,gBAAAA,MAXvB,yBAWuBA,MAXvB;AAW+BM,gBAAAA,YAX/B,yBAW+BA,YAX/B;AAW6CnD,gBAAAA,GAX7C,yBAW6CA,GAX7C;AAWkDqD,gBAAAA,GAXlD,yBAWkDA,GAXlD;AAAA;AAAA,uBAcOiC,YAAY,CAACC,qBAAb,CAAmC1C,MAAnC,EAA2CO,aAA3C,CAdP;;AAAA;AAgBC,qBAAKvD,OAAL,CAAa,YAAb,EAA2BoC,GAA3B,CAA+B;AAC9BC,kBAAAA,EAAE,EAAEW,MAAM,CAACX,EADmB;AAE9BrD,kBAAAA,SAAS,EAAEgE,MAAM,CAACC;AAFY,iBAA/B;AAhBD;AAAA,uBAqBuB,KAAKrE,MAAL,CAAYG,OAAZ,CAAoB;AACzCC,kBAAAA,SAAS,EAAEgE,MAAM,CAACC,IADuB;AAEzCxD,kBAAAA,SAAS,gBAFgC;AAGzCS,kBAAAA,OAAO,EAAEgD;AAHgC,iBAApB,CArBvB;;AAAA;AAqBOjE,gBAAAA,OArBP;;AA2BCC,6BAAOqB,OAAP,CAAetB,OAAO,CAACG,MAAvB;;AAEMuG,gBAAAA,QA7BP,GA6BkB9F,kBAASC,gCAAT,wBACAoD,eADA,mBAEhBjE,OAAO,CAACc,KAFQ,CA7BlB;AAAA;AAAA,uBAkCO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkC0F,QAAlC,CAlCP;;AAAA;AAoCOnD,gBAAAA,QApCP,GAoCkBoD,2BAASC,QAAT,CAAkBF,QAAlB,CApClB;AAAA,mDAsCQ;AACNnD,kBAAAA,QAAQ,EAARA,QADM;AAENQ,kBAAAA,MAAM,EAANA,MAFM;AAGNsC,kBAAAA,YAAY,EAAEK,QAHR;AAINxF,kBAAAA,GAAG,EAAHA,GAJM;AAKNoD,kBAAAA,aAAa,EAAbA,aALM;AAMNC,kBAAAA,GAAG,EAAHA,GANM;AAONF,kBAAAA,YAAY,EAAZA;AAPM,iBAtCR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAvUkDwC,8B,gEAEjDC,8BAAYC,eAAZ,GAA8BC,U","sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ListenAction from '../../../features/event/actions/ListenAction'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\tprivate static listen: ListenAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.listen = this.Action('event', 'listen')\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\n\t}\n\n\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\n\t\tlet passedTarget: any\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tpassedTarget = target\n\t\t\treturn {\n\t\t\t\tcontracts: [...(coreEventContracts as any)],\n\t\t\t}\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tthis.addDependency(namespace)\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static addDependency(namespace: string) {\n\t\tconst dependencies = this.Service('dependency')\n\t\tdependencies.add({\n\t\t\tid: namespace,\n\t\t\tnamespace: 'waka',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
|
|
1
|
+
{"version":3,"file":"CreatingAListener.test.js","names":["CreatingAListenerTest","listen","Action","installEventFeature","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","executeAndWaitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","waitForInput","reset","MercuryClientFactory","setIsTestMode","eventFaker","on","target","passedTarget","contracts","coreEventContracts","addDependency","isEqualDeep","dependencies","add","id","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ListenAction from '../../../features/event/actions/ListenAction'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\tprivate static listen: ListenAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.listen = this.Action('event', 'listen')\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\n\t}\n\n\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\n\t\tlet passedTarget: any\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tpassedTarget = target\n\t\t\treturn {\n\t\t\t\tcontracts: [...(coreEventContracts as any)],\n\t\t\t}\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tthis.addDependency(namespace)\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static addDependency(namespace: string) {\n\t\tconst dependencies = this.Service('dependency')\n\t\tdependencies.add({\n\t\t\tid: namespace,\n\t\t\tnamespace: 'waka',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssert","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport { DEMO_NUMBER_CREATING_AN_EVENT } from '../../../tests/constants'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"file":"CreatingAnEvent.test.js"}
|
|
1
|
+
{"version":3,"file":"CreatingAnEvent.test.js","names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssert","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport { DEMO_NUMBER_CREATING_AN_EVENT } from '../../../tests/constants'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync.test.ts"],"names":["coreContract","eventContractUtil","unifyContracts","coreEventContracts","KeepingEventsInSyncTest","resolveHashSprucePath","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","skipInstallSkillPrompts","results","assertValidSyncEventsResults","skills","getSkillFixture","registerCurrentSkill","name","seedDemoSkill","skill2","Service","add","id","namespace","slug","registerEventContract","eventSignatures","isGlobal","fqen","eventNameUtil","join","eventName","version","eventNamespace","assertGlobalEventsAreTyped","skillEventContractTypesFile","contents","diskUtil","readFile","eventContractPath","doesInclude","promise","syncCoreEventsPretendingToBeMercuryTypes","cli","event","getFeature","wasHit","getEventContractBuilder","assertCoreEventContractsSavedToDisk","assertCorePayloadSchemasAreCreated","isFalse","doesFileExist","oldGetter","bind","isTrue","assertValidSyncSchemasResults","shouldSyncOnlyCoreEvents","eventBuilderFile","builder","writeFile","resolvePath","uninstall","isFalsy","errors","assertEventsHavePayloads","assertCombinedContractContents","coreContractContents","search","doesNotInclude","importCombinedContractsFile","imported","isTruthy","isArray","localContract","sigs","getNamedEventSignatures","sig","getSignatureByName","fullyQualifiedEventName","eventContractsFile","doesDirExist","importDefault","contract","signature","emitPayloadSchema","responsePayloadSchema","shouldHaveWritten","filesToCheck","path","pathUtil","sep","MERCURY_API_NAMESPACE","assertFilesWereGenerated","file","expected","doesExist","namesUtil","toCamel","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport {\n\tEventContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { validateSchema } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nconst coreContract = eventContractUtil.unifyContracts(\n\tcoreEventContracts as any\n) as SpruceSchemas.Mercury.v2020_12_25.EventContract\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static get eventContractPath() {\n\t\treturn this.resolveHashSprucePath('events', 'events.contract.ts')\n\t}\n\n\t@test()\n\tprotected static async hasSyncEventsAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('event', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsWithoutSavingCoreEventsByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst results = await this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({})\n\t\t)\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\t}\n\n\t@test()\n\tprotected static async mergesGlobalEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\n\t\tconst skill2 = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tawait skills.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-sync',\n\t\t\tversion: 'v2021_01_01',\n\t\t\teventNamespace: skill2.slug,\n\t\t})\n\t\tawait this.assertGlobalEventsAreTyped(fqen)\n\t}\n\n\t@test()\n\tprotected static async canSetSkillEventContractTypesFile() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tawait this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({\n\t\t\t\tskillEventContractTypesFile: 'testy test',\n\t\t\t})\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\t\tassert.doesInclude(contents, `declare module 'testy test'`)\n\t}\n\n\t@test()\n\tprotected static async canSyncOnlyCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst promise = this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tawait this.skipInstallSkillPrompts()\n\n\t\tconst results = await promise\n\n\t\tawait this.assertValidSyncEventsResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsHaveNeverBeenSynced() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tthis.assertCoreEventContractsSavedToDisk(false)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, false)\n\n\t\tassert.isFalse(wasHit)\n\t\tassert.isFalse(diskUtil.doesFileExist(this.eventContractPath))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemaAfterSyncEventsSyncsSchemasAndDoesNotWriteCoreEvents() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\tconst oldGetter = event.getEventContractBuilder.bind(event)\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t\treturn oldGetter()\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(wasHit)\n\n\t\tawait this.assertValidSyncSchemasResults(results, false)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasAfterSyncingCoreEventsSavesCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tawait this.assertValidSyncSchemasResults(results, true)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async assertValidSyncEventsResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents = false\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.assertValidSyncSchemasResults(results, shouldSyncOnlyCoreEvents)\n\t}\n\n\tprivate static async assertGlobalEventsAreTyped(eventName: string) {\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\n\t\tassert.doesInclude(contents, `'${eventName}':`)\n\t}\n\n\tprivate static async assertValidSyncSchemasResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertCoreEventContractsSavedToDisk(shouldSyncOnlyCoreEvents)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, shouldSyncOnlyCoreEvents)\n\n\t\tawait this.assertEventsHavePayloads(results)\n\t\tawait this.assertCombinedContractContents()\n\n\t\tconst coreContractContents = diskUtil.readFile(this.eventContractPath)\n\t\tconst search = `did-message::v2020_12_25': MercuryDidMessageEventContract_v2020_12_25['eventSignatures']['did-message::v2020_12_25']`\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tassert.doesInclude(coreContractContents, search)\n\t\t} else {\n\t\t\tassert.doesNotInclude(coreContractContents, search)\n\t\t}\n\t}\n\n\tprivate static async assertCombinedContractContents() {\n\t\tconst imported = await this.importCombinedContractsFile()\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isArray(imported)\n\n\t\tconst localContract = eventContractUtil.unifyContracts(imported)\n\t\tassert.isTruthy(localContract)\n\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\teventContractUtil.getSignatureByName(\n\t\t\t\tlocalContract,\n\t\t\t\tsig.fullyQualifiedEventName\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate static async importCombinedContractsFile(): Promise<EventContract[]> {\n\t\tconst eventContractsFile = this.eventContractPath\n\n\t\t// hack import to bring types in when importing contract file\n\t\tif (\n\t\t\tdiskUtil.doesDirExist(\n\t\t\t\tthis.resolvePath('node_modules/@sprucelabs/mercury-types')\n\t\t\t)\n\t\t) {\n\t\t\tconst contents = diskUtil.readFile(eventContractsFile)\n\t\t\tdiskUtil.writeFile(\n\t\t\t\teventContractsFile,\n\t\t\t\t`import '@sprucelabs/mercury-types'\\n${contents}`\n\t\t\t)\n\t\t}\n\n\t\tconst imported: EventContract[] = await this.Service(\n\t\t\t'import'\n\t\t).importDefault(eventContractsFile)\n\n\t\treturn imported\n\t}\n\n\tprivate static async assertEventsHavePayloads(\n\t\tresults: FeatureActionResponse,\n\t\teventName = 'authenticate'\n\t) {\n\t\tconst imported = await this.importCombinedContractsFile()\n\t\tconst contract = eventContractUtil.unifyContracts(imported)\n\n\t\tassert.isTruthy(contract)\n\n\t\tvalidateEventContract(contract)\n\n\t\tconst signature = eventContractUtil.getSignatureByName(contract, eventName)\n\n\t\tassert.isTruthy(signature.emitPayloadSchema)\n\t\tvalidateSchema(signature.emitPayloadSchema)\n\n\t\tassert.isTruthy(signature.responsePayloadSchema)\n\t\tvalidateSchema(signature.responsePayloadSchema)\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static assertCoreEventContractsSavedToDisk(shouldHaveWritten = true) {\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t`events/mercury/${namesUtil.toCamel(\n\t\t\t\t\tsig.eventName\n\t\t\t\t)}.v2020_12_25.contract.ts`\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to write a file ${expected}.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(\n\t\t\t\t\tdoesExist,\n\t\t\t\t\t`Generated contract for ${sig.fullyQualifiedEventName} and it should not have because it's a core contract.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync.test.js"}
|
|
1
|
+
{"version":3,"file":"KeepingEventsInSync.test.js","names":["coreContract","eventContractUtil","unifyContracts","coreEventContracts","KeepingEventsInSyncTest","resolveHashSprucePath","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","skipInstallSkillPrompts","results","assertValidSyncEventsResults","skills","getSkillFixture","registerCurrentSkill","name","seedDemoSkill","skill2","Service","add","id","namespace","slug","registerEventContract","eventSignatures","isGlobal","fqen","eventNameUtil","join","eventName","version","eventNamespace","assertGlobalEventsAreTyped","skillEventContractTypesFile","contents","diskUtil","readFile","eventContractPath","doesInclude","promise","syncCoreEventsPretendingToBeMercuryTypes","cli","event","getFeature","wasHit","getEventContractBuilder","assertCoreEventContractsSavedToDisk","assertCorePayloadSchemasAreCreated","isFalse","doesFileExist","oldGetter","bind","isTrue","assertValidSyncSchemasResults","shouldSyncOnlyCoreEvents","eventBuilderFile","builder","writeFile","resolvePath","uninstall","isFalsy","errors","assertEventsHavePayloads","assertCombinedContractContents","coreContractContents","search","doesNotInclude","importCombinedContractsFile","imported","isTruthy","isArray","localContract","sigs","getNamedEventSignatures","sig","getSignatureByName","fullyQualifiedEventName","eventContractsFile","doesDirExist","importDefault","contract","signature","emitPayloadSchema","responsePayloadSchema","shouldHaveWritten","filesToCheck","path","pathUtil","sep","MERCURY_API_NAMESPACE","assertFilesWereGenerated","file","expected","doesExist","namesUtil","toCamel","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport {\n\tEventContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { validateSchema } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nconst coreContract = eventContractUtil.unifyContracts(\n\tcoreEventContracts as any\n) as SpruceSchemas.Mercury.v2020_12_25.EventContract\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static get eventContractPath() {\n\t\treturn this.resolveHashSprucePath('events', 'events.contract.ts')\n\t}\n\n\t@test()\n\tprotected static async hasSyncEventsAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('event', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsWithoutSavingCoreEventsByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst results = await this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({})\n\t\t)\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\t}\n\n\t@test()\n\tprotected static async mergesGlobalEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skills = this.getSkillFixture()\n\t\tawait skills.registerCurrentSkill({\n\t\t\tname: 'events in sync skill',\n\t\t})\n\n\t\tconst skill2 = await skills.seedDemoSkill({ name: 'a temp skill' })\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tawait skills.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t'test-sync::v2021_01_01': {\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tawait this.assertValidSyncEventsResults(results)\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-sync',\n\t\t\tversion: 'v2021_01_01',\n\t\t\teventNamespace: skill2.slug,\n\t\t})\n\t\tawait this.assertGlobalEventsAreTyped(fqen)\n\t}\n\n\t@test()\n\tprotected static async canSetSkillEventContractTypesFile() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tawait this.skipInstallSkillPrompts(() =>\n\t\t\tthis.Action('event', 'sync').execute({\n\t\t\t\tskillEventContractTypesFile: 'testy test',\n\t\t\t})\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\t\tassert.doesInclude(contents, `declare module 'testy test'`)\n\t}\n\n\t@test()\n\tprotected static async canSyncOnlyCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('eventsInNodeModule')\n\n\t\tconst promise = this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tawait this.skipInstallSkillPrompts()\n\n\t\tconst results = await promise\n\n\t\tawait this.assertValidSyncEventsResults(results, true)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsHaveNeverBeenSynced() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tthis.assertCoreEventContractsSavedToDisk(false)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, false)\n\n\t\tassert.isFalse(wasHit)\n\t\tassert.isFalse(diskUtil.doesFileExist(this.eventContractPath))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemaAfterSyncEventsSyncsSchemasAndDoesNotWriteCoreEvents() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst event = cli.getFeature('event')\n\t\tlet wasHit = false\n\n\t\tconst oldGetter = event.getEventContractBuilder.bind(event)\n\n\t\t//@ts-ignore\n\t\tevent.getEventContractBuilder = () => {\n\t\t\twasHit = true\n\t\t\treturn oldGetter()\n\t\t}\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(wasHit)\n\n\t\tawait this.assertValidSyncSchemasResults(results, false)\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasAfterSyncingCoreEventsSavesCoreEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tawait this.assertValidSyncSchemasResults(results, true)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async assertValidSyncEventsResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents = false\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.assertValidSyncSchemasResults(results, shouldSyncOnlyCoreEvents)\n\t}\n\n\tprivate static async assertGlobalEventsAreTyped(eventName: string) {\n\t\tconst contents = diskUtil.readFile(this.eventContractPath)\n\n\t\tassert.doesInclude(contents, `'${eventName}':`)\n\t}\n\n\tprivate static async assertValidSyncSchemasResults(\n\t\tresults: FeatureActionResponse,\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertCoreEventContractsSavedToDisk(shouldSyncOnlyCoreEvents)\n\t\tthis.assertCorePayloadSchemasAreCreated(results, shouldSyncOnlyCoreEvents)\n\n\t\tawait this.assertEventsHavePayloads(results)\n\t\tawait this.assertCombinedContractContents()\n\n\t\tconst coreContractContents = diskUtil.readFile(this.eventContractPath)\n\t\tconst search = `did-message::v2020_12_25': MercuryDidMessageEventContract_v2020_12_25['eventSignatures']['did-message::v2020_12_25']`\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tassert.doesInclude(coreContractContents, search)\n\t\t} else {\n\t\t\tassert.doesNotInclude(coreContractContents, search)\n\t\t}\n\t}\n\n\tprivate static async assertCombinedContractContents() {\n\t\tconst imported = await this.importCombinedContractsFile()\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isArray(imported)\n\n\t\tconst localContract = eventContractUtil.unifyContracts(imported)\n\t\tassert.isTruthy(localContract)\n\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\teventContractUtil.getSignatureByName(\n\t\t\t\tlocalContract,\n\t\t\t\tsig.fullyQualifiedEventName\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate static async importCombinedContractsFile(): Promise<EventContract[]> {\n\t\tconst eventContractsFile = this.eventContractPath\n\n\t\t// hack import to bring types in when importing contract file\n\t\tif (\n\t\t\tdiskUtil.doesDirExist(\n\t\t\t\tthis.resolvePath('node_modules/@sprucelabs/mercury-types')\n\t\t\t)\n\t\t) {\n\t\t\tconst contents = diskUtil.readFile(eventContractsFile)\n\t\t\tdiskUtil.writeFile(\n\t\t\t\teventContractsFile,\n\t\t\t\t`import '@sprucelabs/mercury-types'\\n${contents}`\n\t\t\t)\n\t\t}\n\n\t\tconst imported: EventContract[] = await this.Service(\n\t\t\t'import'\n\t\t).importDefault(eventContractsFile)\n\n\t\treturn imported\n\t}\n\n\tprivate static async assertEventsHavePayloads(\n\t\tresults: FeatureActionResponse,\n\t\teventName = 'authenticate'\n\t) {\n\t\tconst imported = await this.importCombinedContractsFile()\n\t\tconst contract = eventContractUtil.unifyContracts(imported)\n\n\t\tassert.isTruthy(contract)\n\n\t\tvalidateEventContract(contract)\n\n\t\tconst signature = eventContractUtil.getSignatureByName(contract, eventName)\n\n\t\tassert.isTruthy(signature.emitPayloadSchema)\n\t\tvalidateSchema(signature.emitPayloadSchema)\n\n\t\tassert.isTruthy(signature.responsePayloadSchema)\n\t\tvalidateSchema(signature.responsePayloadSchema)\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static assertCoreEventContractsSavedToDisk(shouldHaveWritten = true) {\n\t\tconst sigs = eventContractUtil.getNamedEventSignatures(coreContract)\n\n\t\tfor (const sig of sigs) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t`events/mercury/${namesUtil.toCamel(\n\t\t\t\t\tsig.eventName\n\t\t\t\t)}.v2020_12_25.contract.ts`\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to write a file ${expected}.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(\n\t\t\t\t\tdoesExist,\n\t\t\t\t\t`Generated contract for ${sig.fullyQualifiedEventName} and it should not have because it's a core contract.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
|
|
1
|
+
{"version":3,"file":"KeepingEventsInSync2.test.js","names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"KeepingListenersInSync.test.js","names":["KeepingListenersInSyncTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","createBootListener","results","deleteLastFile","syncResults","listenerMap","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","path","pop","isString","diskUtil","deleteFile","name","namespace","eventName","isFalsy","errors","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/KeepingListenersInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingListenersInSyncTest extends AbstractEventTest {\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('event', 'sync.listeners').execute)\n\t}\n\n\t@test()\n\tprotected static async deletingAListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.createBootListener('did-boot')\n\t\tconst results = await this.createBootListener('will-boot')\n\n\t\tthis.deleteLastFile(results)\n\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\n\t\tconst listenerMap = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'listeners.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerMap)\n\t}\n\n\tprivate static deleteLastFile(results: FeatureActionResponse) {\n\t\tconst path = results.files?.pop()?.path\n\t\tassert.isString(path)\n\n\t\tdiskUtil.deleteFile(path)\n\t}\n\n\tprivate static async createBootListener(name: 'will-boot' | 'did-boot') {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: name,\n\t\t})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,0B,WACnB,iB,UAKA,iB;;;;;;;;;;;;;yGALD;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAzD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIO,KAAKC,kBAAL,CAAwB,UAAxB,CAJP;;cAAA;gBAAA;gBAAA,OAKuB,KAAKA,kBAAL,CAAwB,WAAxB,CALvB;;cAAA;gBAKOC,OALP;gBAOC,KAAKC,cAAL,CAAoBD,OAApB;gBAPD;gBAAA,OAS2B,KAAKL,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAT3B;;cAAA;gBASOM,WATP;gBAWOC,WAXP,GAWqBC,kBAASC,gCAAT,CACnB,cADmB,EAEnBH,WAAW,CAACI,KAFO,CAXrB;gBAAA;gBAAA,OAgBO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,WAAlC,CAhBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAmBA,wBAA8BH,OAA9B,EAA8D;MAAA;;MAC7D,IAAMS,IAAI,qBAAGT,OAAO,CAACM,KAAX,yEAAG,eAAeI,GAAf,EAAH,uDAAG,mBAAsBD,IAAnC;;MACAhB,aAAOkB,QAAP,CAAgBF,IAAhB;;MAEAG,2BAASC,UAAT,CAAoBJ,IAApB;IACA;;;;8GAED,kBAAwCK,IAAxC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACuB,KAAKnB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;kBAC5DmB,SAAS,EAAE,OADiD;kBAE5DC,SAAS,EAAEF;gBAFiD,CAAvC,CADvB;;cAAA;gBACOd,OADP;;gBAKCP,aAAOwB,OAAP,CAAejB,OAAO,CAACkB,MAAvB;;gBALD,kCAMQlB,OANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAhCuDmB,8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ListeningToAnEventYouCreate.test.js","names":["ListeningToAnEventYouCreateTest","registerCurrentSkillAndInstallToOrg","currentSkill","eventName","version","fqen","eventNameUtil","join","eventNamespace","slug","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","listenPromise","Action","execute","waitForInput","ui","sendInput","results","assert","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","assertClientIsProperlyTyped","sourceFile","contents","readFile","replace","destinationFile","writeFile","Service","check","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.ts"],"sourcesContent":["import { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ListeningToAnEventYouCreateTest extends AbstractEventTest {\n\t@test()\n\tprotected static async canListenToEventWeCreated() {\n\t\tconst { currentSkill } = await this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = 'register-skill-views'\n\t\tconst version = 'v2021_04_11'\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName,\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\tversion,\n\t\t})\n\n\t\tconst source = this.resolveTestPath('skill_register_skill_views_event/src')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst listenPromise = this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(currentSkill.slug)\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(fqen)\n\n\t\tconst results = await listenPromise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${eventName}.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tdiskUtil.resolvePath('listeners', currentSkill.slug)\n\t\t)\n\n\t\tawait this.assertClientIsProperlyTyped(currentSkill.slug)\n\t}\n\n\tprivate static async assertClientIsProperlyTyped(eventNamespace: string) {\n\t\tconst sourceFile = this.resolvePath('src/client-type-test.ts.hbs')\n\t\tconst contents = diskUtil\n\t\t\t.readFile(sourceFile)\n\t\t\t.replace('{{eventNamespace}}', eventNamespace)\n\n\t\tconst destinationFile = this.resolvePath('src/client-type-test.ts')\n\t\tdiskUtil.writeFile(destinationFile, contents)\n\n\t\tawait this.Service('typeChecker').check(destinationFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,+B,WACnB,iB;;;;;;;;;;;;;qHAAD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEgC,KAAKC,mCAAL,EAFhC;;cAAA;gBAAA;gBAESC,YAFT,yBAESA,YAFT;gBAIOC,SAJP,GAImB,sBAJnB;gBAKOC,OALP,GAKiB,aALjB;gBAOOC,IAPP,GAOcC,gCAAcC,IAAd,CAAmB;kBAC/BJ,SAAS,EAATA,SAD+B;kBAE/BK,cAAc,EAAEN,YAAY,CAACO,IAFE;kBAG/BL,OAAO,EAAPA;gBAH+B,CAAnB,CAPd;gBAaOM,MAbP,GAagB,KAAKC,eAAL,CAAqB,sCAArB,CAbhB;gBAcOC,WAdP,GAcqB,KAAKC,WAAL,CAAiB,KAAjB,CAdrB;gBAAA;gBAAA,OAgBOC,2BAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CAhBP;;cAAA;gBAkBOI,aAlBP,GAkBuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAlBvB;gBAAA;gBAAA,OAoBO,KAAKC,YAAL,EApBP;;cAAA;gBAAA;gBAAA,OAqBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBnB,YAAY,CAACO,IAA/B,CArBP;;cAAA;gBAAA;gBAAA,OAuBO,KAAKU,YAAL,EAvBP;;cAAA;gBAAA;gBAAA,OAwBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBhB,IAAlB,CAxBP;;cAAA;gBAAA;gBAAA,OA0BuBW,aA1BvB;;cAAA;gBA0BOM,OA1BP;;gBA4BCC,aAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;gBAEMC,KA9BP,GA8BeC,kBAASC,gCAAT,WACVzB,SADU,cACGC,OADH,mBAEbkB,OAAO,CAACO,KAFK,CA9Bf;;gBAmCCN,aAAOO,WAAP,CACCJ,KADD,EAECZ,2BAASD,WAAT,CAAqB,WAArB,EAAkCX,YAAY,CAACO,IAA/C,CAFD;;gBAnCD;gBAAA,OAwCO,KAAKsB,2BAAL,CAAiC7B,YAAY,CAACO,IAA9C,CAxCP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uHA2CA,kBAAiDD,cAAjD;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOwB,UADP,GACoB,KAAKnB,WAAL,CAAiB,6BAAjB,CADpB;gBAEOoB,QAFP,GAEkBnB,2BACfoB,QADe,CACNF,UADM,EAEfG,OAFe,CAEP,oBAFO,EAEe3B,cAFf,CAFlB;gBAMO4B,eANP,GAMyB,KAAKvB,WAAL,CAAiB,yBAAjB,CANzB;;gBAOCC,2BAASuB,SAAT,CAAmBD,eAAnB,EAAoCH,QAApC;;gBAPD;gBAAA,OASO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCH,eAAlC,CATP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA5C4DI,8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SettingUpEvents.test.js","names":["SettingUpEventsTest","installEventFeature","cli","checkHealth","health","assert","isTruthy","event","isEqual","status","AbstractEventTest"],"sources":["../../../../src/__tests__/behavioral/events/SettingUpEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SettingUpEventsTest extends AbstractEventTest {\n\t@test()\n\tprotected static async setsUpEvents() {\n\t\tconst cli = await this.installEventFeature('events')\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,mB,WACnB,iB;;;;;;;;;;;;;wGAAD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,KAAKC,mBAAL,CAAyB,QAAzB,CAFnB;;cAAA;gBAEOC,GAFP;gBAAA;gBAAA,OAGsBA,GAAG,CAACC,WAAJ,EAHtB;;cAAA;gBAGOC,MAHP;;gBAICC,aAAOC,QAAP,CAAgBF,MAAM,CAACG,KAAvB;;gBACAF,aAAOG,OAAP,CAAeJ,MAAM,CAACG,KAAP,CAAaE,MAA5B,EAAoC,QAApC;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADgDC,8B"}
|