@sprucelabs/spruce-cli 15.4.12 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- 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/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/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/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/GlobalEmitter.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 +3 -3
- 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.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 +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.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.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.js.map +1 -1
- 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.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/scripts/first.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.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/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/conversation/ConversationFeature.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/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.js.map +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/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/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/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/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.d.ts +2 -1
- package/build/features/schema/stores/SchemaStore.js +2 -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.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.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.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.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/writers/TestWriter.js.map +1 -1
- 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.map +1 -1
- package/build/features/vscode/VsCodeFeature.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 +0 -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/CommandService.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/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/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.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/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.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/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/commander.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/tsConfig.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.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/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +34 -34
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
- package/src/features/schema/stores/SchemaStore.ts +4 -2
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
- package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeepingErrorClassInSync.test.js","names":["KeepsErrorClassInSyncTest","installErrorFeature","createAction","Action","execute","nameReadable","nameCamel","results","testUtil","assertFileByNameInGeneratedFiles","files","assert","doesInclude","name","action","file","Service","check","path","match","contents","diskUtil","readFile","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/KeepingErrorClassInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepsErrorClassInSyncTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async errorFileShouldBeCreatedAndPassed() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(/SpruceError/, results.files)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'SpruceError.ts',\n\t\t\taction: 'updated',\n\t\t})\n\n\t\tfor (const file of results.files ?? []) {\n\t\t\tawait this.Service('typeChecker').check(file.path)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async errorFileShouldBeUpdated() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst createAction = this.Action('error', 'create')\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError1',\n\t\t\tnameReadable: 'Test error 1',\n\t\t})\n\t\tconst results = await createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test Error 2',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/SpruceError/,\n\t\t\tresults.files\n\t\t)\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, \"'TEST_ERROR_1'\")\n\t\tassert.doesInclude(contents, \"'TEST_ERROR_2'\")\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEqBA,yB,WACnB,
|
|
1
|
+
{"version":3,"file":"KeepingErrorClassInSync.test.js","names":["KeepsErrorClassInSyncTest","test","installErrorFeature","createAction","Action","execute","nameReadable","nameCamel","results","testUtil","assertFileByNameInGeneratedFiles","files","assert","doesInclude","name","action","file","Service","check","path","match","contents","diskUtil","readFile","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/KeepingErrorClassInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepsErrorClassInSyncTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async errorFileShouldBeCreatedAndPassed() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(/SpruceError/, results.files)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'SpruceError.ts',\n\t\t\taction: 'updated',\n\t\t})\n\n\t\tfor (const file of results.files ?? []) {\n\t\t\tawait this.Service('typeChecker').check(file.path)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async errorFileShouldBeUpdated() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst createAction = this.Action('error', 'create')\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError1',\n\t\t\tnameReadable: 'Test error 1',\n\t\t})\n\t\tconst results = await createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test Error 2',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/SpruceError/,\n\t\t\tresults.files\n\t\t)\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, \"'TEST_ERROR_1'\")\n\t\tassert.doesInclude(contents, \"'TEST_ERROR_2'\")\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEqBA,yB,WACnB,IAAAC,UAAA,G,UAsBA,IAAAA,UAAA,G;;;;;;;;;;;;;6HAtBD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,YAHP,GAGsB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,CAHtB;gBAAA;gBAAA,OAKuBD,YAAY,CAACE,OAAb,CAAqB;kBAC1CC,YAAY,EAAE,YAD4B;kBAE1CC,SAAS,EAAE;gBAF+B,CAArB,CALvB;;cAAA;gBAKOC,OALP;;gBAUCC,iBAAA,CAASC,gCAAT,CAA0C,aAA1C,EAAyDF,OAAO,CAACG,KAAjE;;gBAEAC,YAAA,CAAOC,WAAP,mBAAmBL,OAAO,CAACG,KAA3B,2DAAoC,EAApC,EAAwC;kBACvCG,IAAI,EAAE,gBADiC;kBAEvCC,MAAM,EAAE;gBAF+B,CAAxC;;gBAZD,0DAiBoBP,OAAO,CAACG,KAjB5B,6DAiBqC,EAjBrC;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAiBYK,IAjBZ;gBAAA;gBAAA,OAkBQ,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCF,IAAI,CAACG,IAAvC,CAlBR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAsBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKjB,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAGOC,YAHP,GAGsB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,CAHtB;gBAAA;gBAAA,OAIOD,YAAY,CAACE,OAAb,CAAqB;kBAC1BE,SAAS,EAAE,YADe;kBAE1BD,YAAY,EAAE;gBAFY,CAArB,CAJP;;cAAA;gBAAA;gBAAA,OAQuBH,YAAY,CAACE,OAAb,CAAqB;kBAC1CE,SAAS,EAAE,YAD+B;kBAE1CD,YAAY,EAAE;gBAF4B,CAArB,CARvB;;cAAA;gBAQOE,OARP;gBAaOY,KAbP,GAaeX,iBAAA,CAASC,gCAAT,CACb,aADa,EAEbF,OAAO,CAACG,KAFK,CAbf;gBAiBOU,QAjBP,GAiBkBC,0BAAA,CAASC,QAAT,CAAkBH,KAAlB,CAjBlB;;gBAmBCR,YAAA,CAAOC,WAAP,CAAmBQ,QAAnB,EAA6B,gBAA7B;;gBACAT,YAAA,CAAOC,WAAP,CAAmBQ,QAAnB,EAA6B,gBAA7B;;gBApBD;gBAAA,OAsBO,KAAKJ,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCE,KAAlC,CAtBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAvBsDI,8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeepingErrorsInSync.test.js","names":["KeepingErrorsInSyncTest","Cli","assert","isFunction","Action","execute","installErrorFeature","createAction","nameReadable","nameCamel","pkg","Service","uninstall","ImportService","clearCache","results","isTruthy","errors","isLength","optionsMatch","testUtil","assertFileByNameInGeneratedFiles","files","check","typesMatch","optionsContent","diskUtil","readFile","doesInclude","typesContent","builderMatch","deleteFile","isFalse","doesFileExist","resolveHashSprucePath","testError1","testError1SchemaMatch","testError1BuilderMatch","isTrue","errorTypesFile","doesNotInclude","source","resolveTestPath","destination","resolvePath","copyDir","typeChecker","errorOptionsFile","contents","errorClassFile","classContents","syncResults","assertValidActionResponseFiles","parentSchema","parentSchemaContents","cwd","shouldFetchCoreSchemas","isFalsy","writeFile","path","syncAction","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/KeepingErrorsInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test'\nimport ImportService from '../../../services/ImportService'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingErrorsInSyncTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async hasSyncErrorAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('error', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsHelpfulErrorWhenTsNodeIsRemoved() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tawait createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall('ts-node')\n\n\t\tImportService.clearCache()\n\n\t\tconst results = await this.Action('error', 'sync').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\t}\n\n\t@test()\n\tprotected static async errorsStayInSyncWhenSchemasAreDeleted() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\tconst optionsMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/^options\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(optionsMatch)\n\n\t\tconst typesMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/^errors\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\t// should contain our test error\n\t\tlet optionsContent = diskUtil.readFile(optionsMatch)\n\t\tassert.doesInclude(optionsContent, /SpruceErrors\\.TestingErrors\\.TestError/)\n\n\t\tlet typesContent = diskUtil.readFile(typesMatch)\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError/gis\n\t\t)\n\n\t\t// delete our testError\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testError\\.builder/,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.deleteFile(builderMatch)\n\n\t\t// resync\n\t\tawait this.Action('error', 'sync').execute({})\n\n\t\t// #spruce/errors should not exist\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolveHashSprucePath('errors')))\n\n\t\t// build 2 errors\n\t\tconst testError1 = await createAction.execute({\n\t\t\tnameCamel: 'testError1',\n\t\t\tnameReadable: 'Test error 1',\n\t\t})\n\n\t\tconst testError1SchemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testError1.schema',\n\t\t\ttestError1.files\n\t\t)\n\n\t\tconst testError1BuilderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testError1.builder',\n\t\t\ttestError1.files\n\t\t)\n\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test error 2',\n\t\t})\n\n\t\t// #spruce/errors should exist\n\t\tassert.isTrue(diskUtil.doesFileExist(this.resolveHashSprucePath('errors')))\n\n\t\ttypesContent = diskUtil.readFile(this.errorTypesFile)\n\n\t\t// types should include both\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError1/gis\n\t\t)\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError2/gis\n\t\t)\n\n\t\t// definition file for testError1\n\t\tassert.isTrue(diskUtil.doesFileExist(testError1SchemaMatch))\n\n\t\t// delete builder 1\n\t\tdiskUtil.deleteFile(testError1BuilderMatch)\n\t\tassert.isFalse(diskUtil.doesFileExist(testError1BuilderMatch))\n\n\t\t// sync\n\t\tawait this.Action('error', 'sync').execute({})\n\n\t\t// types should no longer include test error 1\n\t\ttypesContent = diskUtil.readFile(this.errorTypesFile)\n\t\tassert.doesNotInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError1/\n\t\t)\n\n\t\t// the definition file should be gone now\n\t\tassert.isFalse(diskUtil.doesFileExist(testError1SchemaMatch))\n\t}\n\n\t@test()\n\tprotected static async canHandleNestedSchemasWithoutAddingThemToOptions() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst source = this.resolveTestPath('nested_error_schemas')\n\t\tconst destination = this.resolvePath('src/errors')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst results = await this.Action('error', 'sync').execute({})\n\t\tconst errorTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/errors\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tawait typeChecker.check(errorTypesFile)\n\n\t\tconst errorOptionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/options\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(errorOptionsFile)\n\t\tassert.doesNotInclude(contents, 'INestedSchema')\n\n\t\tconst errorClassFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'SpruceError.ts',\n\t\t\tresults.files\n\t\t)\n\t\tlet classContents = diskUtil.readFile(errorClassFile)\n\t\tassert.doesNotInclude(classContents, /NESTED_SCHEMA/)\n\n\t\tconst createAction = this.Action('error', 'create')\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test error 2',\n\t\t})\n\n\t\tconst syncResults = await this.Action('error', 'sync').execute({})\n\n\t\tclassContents = diskUtil.readFile(errorClassFile)\n\t\tassert.doesNotInclude(classContents, /NESTED_SCHEMA/)\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tconst parentSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'good.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst parentSchemaContents = diskUtil.readFile(parentSchema)\n\n\t\tassert.doesNotInclude(parentSchemaContents, this.cwd)\n\t}\n\n\t@test()\n\tprotected static async canCreateAndSyncErrorsWithNoCoreSchemasAndNoFields() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\t\tdiskUtil.writeFile(\n\t\t\tresults.files[0].path,\n\t\t\t`import { buildErrorSchema } from '@sprucelabs/schema'\n\n\n\t\texport default buildErrorSchema({\n\t\t\tid: 'testError',\n\t\t\tname: 'Test error',\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t}\n\t\t})`\n\t\t)\n\n\t\tconst syncAction = this.Action('error', 'sync')\n\t\tconst syncResults = await syncAction.execute({\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeepingErrorsInSync.test.js","names":["KeepingErrorsInSyncTest","test","Cli","assert","isFunction","Action","execute","installErrorFeature","createAction","nameReadable","nameCamel","pkg","Service","uninstall","ImportService","clearCache","results","isTruthy","errors","isLength","optionsMatch","testUtil","assertFileByNameInGeneratedFiles","files","check","typesMatch","optionsContent","diskUtil","readFile","doesInclude","typesContent","builderMatch","deleteFile","isFalse","doesFileExist","resolveHashSprucePath","testError1","testError1SchemaMatch","testError1BuilderMatch","isTrue","errorTypesFile","doesNotInclude","source","resolveTestPath","destination","resolvePath","copyDir","typeChecker","errorOptionsFile","contents","errorClassFile","classContents","syncResults","assertValidActionResponseFiles","parentSchema","parentSchemaContents","cwd","shouldFetchCoreSchemas","isFalsy","writeFile","path","syncAction","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/KeepingErrorsInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test'\nimport ImportService from '../../../services/ImportService'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingErrorsInSyncTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async hasSyncErrorAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('error', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsHelpfulErrorWhenTsNodeIsRemoved() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tawait createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall('ts-node')\n\n\t\tImportService.clearCache()\n\n\t\tconst results = await this.Action('error', 'sync').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\t}\n\n\t@test()\n\tprotected static async errorsStayInSyncWhenSchemasAreDeleted() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t})\n\n\t\tconst optionsMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/^options\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(optionsMatch)\n\n\t\tconst typesMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/^errors\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\t// should contain our test error\n\t\tlet optionsContent = diskUtil.readFile(optionsMatch)\n\t\tassert.doesInclude(optionsContent, /SpruceErrors\\.TestingErrors\\.TestError/)\n\n\t\tlet typesContent = diskUtil.readFile(typesMatch)\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError/gis\n\t\t)\n\n\t\t// delete our testError\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testError\\.builder/,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.deleteFile(builderMatch)\n\n\t\t// resync\n\t\tawait this.Action('error', 'sync').execute({})\n\n\t\t// #spruce/errors should not exist\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolveHashSprucePath('errors')))\n\n\t\t// build 2 errors\n\t\tconst testError1 = await createAction.execute({\n\t\t\tnameCamel: 'testError1',\n\t\t\tnameReadable: 'Test error 1',\n\t\t})\n\n\t\tconst testError1SchemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testError1.schema',\n\t\t\ttestError1.files\n\t\t)\n\n\t\tconst testError1BuilderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testError1.builder',\n\t\t\ttestError1.files\n\t\t)\n\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test error 2',\n\t\t})\n\n\t\t// #spruce/errors should exist\n\t\tassert.isTrue(diskUtil.doesFileExist(this.resolveHashSprucePath('errors')))\n\n\t\ttypesContent = diskUtil.readFile(this.errorTypesFile)\n\n\t\t// types should include both\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError1/gis\n\t\t)\n\t\tassert.doesInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError2/gis\n\t\t)\n\n\t\t// definition file for testError1\n\t\tassert.isTrue(diskUtil.doesFileExist(testError1SchemaMatch))\n\n\t\t// delete builder 1\n\t\tdiskUtil.deleteFile(testError1BuilderMatch)\n\t\tassert.isFalse(diskUtil.doesFileExist(testError1BuilderMatch))\n\n\t\t// sync\n\t\tawait this.Action('error', 'sync').execute({})\n\n\t\t// types should no longer include test error 1\n\t\ttypesContent = diskUtil.readFile(this.errorTypesFile)\n\t\tassert.doesNotInclude(\n\t\t\ttypesContent,\n\t\t\t/SpruceErrors\\.TestingErrors.*?TestError1/\n\t\t)\n\n\t\t// the definition file should be gone now\n\t\tassert.isFalse(diskUtil.doesFileExist(testError1SchemaMatch))\n\t}\n\n\t@test()\n\tprotected static async canHandleNestedSchemasWithoutAddingThemToOptions() {\n\t\tawait this.installErrorFeature('errors')\n\t\tconst source = this.resolveTestPath('nested_error_schemas')\n\t\tconst destination = this.resolvePath('src/errors')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst results = await this.Action('error', 'sync').execute({})\n\t\tconst errorTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/errors\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tawait typeChecker.check(errorTypesFile)\n\n\t\tconst errorOptionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/options\\.types/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(errorOptionsFile)\n\t\tassert.doesNotInclude(contents, 'INestedSchema')\n\n\t\tconst errorClassFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'SpruceError.ts',\n\t\t\tresults.files\n\t\t)\n\t\tlet classContents = diskUtil.readFile(errorClassFile)\n\t\tassert.doesNotInclude(classContents, /NESTED_SCHEMA/)\n\n\t\tconst createAction = this.Action('error', 'create')\n\t\tawait createAction.execute({\n\t\t\tnameCamel: 'testError2',\n\t\t\tnameReadable: 'Test error 2',\n\t\t})\n\n\t\tconst syncResults = await this.Action('error', 'sync').execute({})\n\n\t\tclassContents = diskUtil.readFile(errorClassFile)\n\t\tassert.doesNotInclude(classContents, /NESTED_SCHEMA/)\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tconst parentSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'good.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst parentSchemaContents = diskUtil.readFile(parentSchema)\n\n\t\tassert.doesNotInclude(parentSchemaContents, this.cwd)\n\t}\n\n\t@test()\n\tprotected static async canCreateAndSyncErrorsWithNoCoreSchemasAndNoFields() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst createAction = this.Action('error', 'create')\n\n\t\tconst results = await createAction.execute({\n\t\t\tnameReadable: 'Test error',\n\t\t\tnameCamel: 'testError',\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\t\tdiskUtil.writeFile(\n\t\t\tresults.files[0].path,\n\t\t\t`import { buildErrorSchema } from '@sprucelabs/schema'\n\n\n\t\texport default buildErrorSchema({\n\t\t\tid: 'testError',\n\t\t\tname: 'Test error',\n\t\t\tdescription: '',\n\t\t\tfields: {\n\t\t\t}\n\t\t})`\n\t\t)\n\n\t\tconst syncAction = this.Action('error', 'sync')\n\t\tconst syncResults = await syncAction.execute({\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingUpErrors.test.js","names":["SettingUpErrorTest","fixture","FeatureFixture","assert","doesThrowAsync","installFeatures","code","err","errorAssert","assertError","installErrorFeature","installer","getFeatureInstaller","isInstalled","isSchemaInstalled","isTrue","isErrorInstalled","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/SettingUpErrors.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\n\nexport default class SettingUpErrorTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async failsIfSkillIsNotInstalled() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tfixture.installFeatures([\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async installsSchemasIfNotInstalled() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tconst isSchemaInstalled = await installer.isInstalled('schema')\n\t\tassert.isTrue(isSchemaInstalled)\n\n\t\tconst isErrorInstalled = await installer.isInstalled('error')\n\t\tassert.isTrue(isErrorInstalled)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WACnB,
|
|
1
|
+
{"version":3,"file":"SettingUpErrors.test.js","names":["SettingUpErrorTest","test","fixture","FeatureFixture","assert","doesThrowAsync","installFeatures","code","err","errorAssert","assertError","installErrorFeature","installer","getFeatureInstaller","isInstalled","isSchemaInstalled","isTrue","isErrorInstalled","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/SettingUpErrors.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\n\nexport default class SettingUpErrorTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async failsIfSkillIsNotInstalled() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tfixture.installFeatures([\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async installsSchemasIfNotInstalled() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tconst isSchemaInstalled = await installer.isInstalled('schema')\n\t\tassert.isTrue(isSchemaInstalled)\n\n\t\tconst isErrorInstalled = await installer.isInstalled('error')\n\t\tassert.isTrue(isErrorInstalled)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WACnB,IAAAC,UAAA,G,UAcA,IAAAA,UAAA,G;;;;;;;;;;;;;sHAdD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,OAFP,GAEiB,KAAKC,cAAL,EAFjB;gBAAA;gBAAA,OAGmBC,YAAA,CAAOC,cAAP,CAAsB;kBAAA,OACvCH,OAAO,CAACI,eAAR,CAAwB,CACvB;oBACCC,IAAI,EAAE;kBADP,CADuB,CAAxB,CADuC;gBAAA,CAAtB,CAHnB;;cAAA;gBAGOC,GAHP;;gBAWCC,sBAAA,CAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,mBAA7B;;cAXD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yHAcA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKG,mBAAL,CAAyB,QAAzB,CAFP;;cAAA;gBAIOC,SAJP,GAImB,KAAKC,mBAAL,EAJnB;gBAAA;gBAAA,OAMiCD,SAAS,CAACE,WAAV,CAAsB,QAAtB,CANjC;;cAAA;gBAMOC,iBANP;;gBAOCX,YAAA,CAAOY,MAAP,CAAcD,iBAAd;;gBAPD;gBAAA,OASgCH,SAAS,CAACE,WAAV,CAAsB,OAAtB,CAThC;;cAAA;gBASOG,gBATP;;gBAUCb,YAAA,CAAOY,MAAP,CAAcC,gBAAd;;cAVD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAf+CC,8B"}
|
|
@@ -1 +1 @@
|
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","test","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","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":"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"}
|
|
@@ -1 +1 @@
|
|
|
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","fakeGetEventContracts","target","passedTarget","installAddDependencyExecuteAndWaitForInput","isEqualDeep","CORE_EVENT_NAMESPACE","cb","eventFaker","on","contracts","coreEventContracts","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","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","MercuryClientFactory","setIsTestMode","addDependency","dependencies","add","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, SpruceSchemas } 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, {\n\tCORE_EVENT_NAMESPACE,\n} 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\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\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tlet passedTarget: any\n\t\tawait this.fakeGetEventContracts((target) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tawait this.installAddDependencyExecuteAndWaitForInput(namespace)\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace, CORE_EVENT_NAMESPACE],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async fakeGetEventContracts(\n\t\tcb?: (\n\t\t\ttarget?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsTarget | null\n\t\t) => void,\n\t\tresults?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsResponsePayload['contracts']\n\t) {\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tcb?.(target)\n\t\t\treturn {\n\t\t\t\tcontracts: results ?? [...(coreEventContracts as any)],\n\t\t\t}\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 installAddDependencyExecuteAndWaitForInput(\n\t\tnamespace: string\n\t) {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.addDependency(namespace)\n\t\tawait this.executeAndWaitForInput()\n\t\treturn this.ui.getLastInvocation()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\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\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
|
+
{"version":3,"file":"CreatingAListener.test.js","names":["CreatingAListenerTest","test","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","fakeGetEventContracts","target","passedTarget","installAddDependencyExecuteAndWaitForInput","isEqualDeep","CORE_EVENT_NAMESPACE","cb","eventFaker","on","contracts","coreEventContracts","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","buildEmitTargetAndPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","buildSchema","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","MercuryClientFactory","setIsTestMode","addDependency","dependencies","add","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, SpruceSchemas } 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, {\n\tCORE_EVENT_NAMESPACE,\n} 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\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\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tlet passedTarget: any\n\t\tawait this.fakeGetEventContracts((target) => {\n\t\t\tpassedTarget = target\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tawait this.installAddDependencyExecuteAndWaitForInput(namespace)\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace, CORE_EVENT_NAMESPACE],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async fakeGetEventContracts(\n\t\tcb?: (\n\t\t\ttarget?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsTarget | null\n\t\t) => void,\n\t\tresults?: SpruceSchemas.Mercury.v2020_12_25.GetEventContractsResponsePayload['contracts']\n\t) {\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tcb?.(target)\n\t\t\treturn {\n\t\t\t\tcontracts: results ?? [...(coreEventContracts as any)],\n\t\t\t}\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 installAddDependencyExecuteAndWaitForInput(\n\t\tnamespace: string\n\t) {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\t\tthis.addDependency(namespace)\n\t\tawait this.executeAndWaitForInput()\n\t\treturn this.ui.getLastInvocation()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\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\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,"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
|
+
{"version":3,"file":"CreatingAnEvent.test.js","names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","test","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,"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
|
+
{"version":3,"file":"KeepingEventsInSync.test.js","names":["coreContract","eventContractUtil","unifyContracts","coreEventContracts","KeepingEventsInSyncTest","test","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","validateEventContract","signature","emitPayloadSchema","validateSchema","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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"}
|