@sprucelabs/spruce-cli 15.2.24 → 15.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +61 -33
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
- package/build/__tests__/implementation/ListenerStore.test.js +56 -0
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/onTestFileResult.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/__tests__/support/scripts/second.script.js.map +1 -1
- package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/constants.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/cache/constants.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/services/EventSettingsService.js.map +1 -1
- package/build/features/event/services/RemoteService.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +1 -0
- package/build/features/event/stores/EventStore.js +6 -1
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +1 -0
- package/build/features/event/stores/ListenerStore.js +6 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.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/test.types.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/universalDevDependencies.js.map +1 -1
- package/build/features/universalFileDescriptions.js.map +1 -1
- package/build/features/universalScripts.js.map +1 -1
- package/build/features/validateAndNormalize.utility.d.ts +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/constants.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/types/apiClient.types.js.map +1 -1
- package/build/types/cli.types.js.map +1 -1
- package/build/types/graphicsInterface.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/apiClient.utility.js.map +1 -1
- package/build/utilities/argParser.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/duration.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/isCi.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/utilities/ui.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/keySelectChoices.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/button.types.js.map +1 -1
- package/build/widgets/types/factory.types.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/layout.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/popup.types.js.map +1 -1
- package/build/widgets/types/progressBar.types.js.map +1 -1
- package/build/widgets/types/table.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/widgets.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/widgets/widget.utilities.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/implementation/EventStore.test.ts +14 -0
- package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/event/builders/EventContractBuilder.ts +2 -2
- package/src/features/event/stores/EventStore.ts +11 -8
- package/src/features/event/stores/ListenerStore.ts +5 -3
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"CreatingASkill.test.js","names":["CreatingASkillTest","CommandService","fakeCommand","RegExp","code","promise","Action","shouldAutoHandleDependencies","execute","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","hints","assert","doesInclude","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/skill/CreatingASkill.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingAtADestinationAsksForSkillDetailsOnce() {\n\t\tconst promise = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'taco' })\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('adventure')\n\t\tawait this.ui.sendInput('i would not')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/taco\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst { hints } = results\n\n\t\tassert.doesInclude(hints, 'cd taco')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,iB;;;;;;;;;;;;;sGAPD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAECC,2BAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,+BAAX,CAA3B,EAA+D;kBAC9DC,IAAI,EAAE;gBADwD,CAA/D;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,OAFP,GAEiB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;kBAC9CC,4BAA4B,EAAE;gBADgB,CAA/B,EAEbC,OAFa,CAEL;kBAAEC,WAAW,EAAE;gBAAf,CAFK,CAFjB;gBAAA;gBAAA,OAMO,KAAKC,YAAL,EANP;;cAAA;gBAAA;gBAAA,OAQO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,WAAlB,CARP;;cAAA;gBAAA;gBAAA,OASO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,aAAlB,CATP;;cAAA;gBAAA;gBAAA,OAWuBP,OAXvB;;cAAA;gBAWOQ,OAXP;;gBAaCC,kBAASC,gCAAT,CACC,uBADD,EAECF,OAAO,CAACG,KAFT;;gBAKQC,KAlBT,GAkBmBJ,OAlBnB,CAkBSI,KAlBT;;gBAoBCC,aAAOC,WAAP,CAAmBF,KAAnB,EAA0B,SAA1B;;cApBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAR+CG,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"RegisteringASkill.test.js","names":["RegisteringASkillTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","results","isTruthy","errors","errorAssert","assertError","options","responseErrors","MercuryClientFactory","setIsTestMode","people","loginAsDemoPerson","slug","Date","getTime","connectToApi","client","on","fail","doesInclude","message","isFalsy","skill","meta","emit","target","skillId","id","getSkillResults","eventResponseUtil","getFirstResponseOrThrow","getSkill","isEqual","auth","Service","currentSkill","getCurrentSkill","name","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/skill/RegisteringASkill.test.ts"],"sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class RegisteringASkillTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasRegisterAction() {\n\t\tassert.isFunction(this.Action('skill', 'register').execute)\n\t}\n\n\t@test()\n\tprotected static async cantRegisterWithoutBeingLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst results = await this.Action('skill', 'register').execute({\n\t\t\tnameReadable: 'My great skill',\n\t\t\tnameKebab: 'my-great-skill',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'MERCURY_RESPONSE_ERROR')\n\t\terrorAssert.assertError(\n\t\t\tresults.errors[0].options.responseErrors[0],\n\t\t\t'UNAUTHORIZED_ACCESS'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenRegistrationFails() {\n\t\tMercuryClientFactory.setIsTestMode(true)\n\n\t\tawait this.people.loginAsDemoPerson()\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst slug = `my-new-skill-${new Date().getTime()}`\n\n\t\tconst client = await this.connectToApi()\n\t\tawait client.on('register-skill::v2020_12_25', (() => {\n\t\t\tassert.fail('what the!!??')\n\t\t}) as any)\n\n\t\tconst results = await this.Action('skill', 'register').execute({\n\t\t\tnameReadable: 'My great skill',\n\t\t\tnameKebab: slug,\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, 'what the!!??')\n\t}\n\n\t@test()\n\tprotected static async canRegisterSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst slug = `my-new-skill-${new Date().getTime()}`\n\t\tconst results = await this.Action('skill', 'register').execute({\n\t\t\tnameReadable: 'my new skill',\n\t\t\tnameKebab: slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tconst skill = results.meta?.skill\n\t\tassert.isTruthy(skill)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst getSkillResults = await client.emit('get-skill::v2020_12_25', {\n\t\t\ttarget: { skillId: skill.id },\n\t\t})\n\n\t\tconst { skill: getSkill } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(getSkillResults)\n\n\t\tassert.isEqual(skill.id, getSkill.id)\n\n\t\tconst auth = this.Service('auth')\n\t\tconst currentSkill = auth.getCurrentSkill()\n\n\t\tassert.isTruthy(currentSkill)\n\t\tassert.isEqual(currentSkill.name, 'my new skill')\n\t\tassert.isEqual(currentSkill.slug, slug)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/skill/SettingUpASkill.test.ts"],"names":["SettingUpASkill","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","name2","description","checkHealth","health","isEqual","skill","status","doesInclude","installSkill","diskUtil","moveFile","resolvePath","fixture","FeatureFixture","installCachedFeatures","hashSpruceDir","resolveHashSprucePath","isTrue","doesDirExist","errors","length","fail","message","isEqualDeep","name","results","isTruthy","files","isAbove","generateFiles","filter","file","action","packagesInstalled","hiddenFiles","assertDevDependenciesExist","assertSkillNameIsSaved","env","Service","get","destination","isFalse","doesFileExist","HASH_SPRUCE_DIR","first","path","pkg","devDependencies","AbstractCliTest"],"mappings":"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","sourcesContent":["import { diskUtil, HASH_SPRUCE_DIR } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class SettingUpASkill extends AbstractCliTest {\n\t@test()\n\tprotected static async failsWithBadParams() {\n\t\tconst cli = await this.Cli()\n\t\tawait assert.doesThrowAsync(async () => {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcode: 'skill',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tname2: 'test',\n\t\t\t\t\t\t\tdescription: 'This is such a good skill!',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\t\t}, 'name')\n\t}\n\n\t@test()\n\tprotected static async failsHealthCheckWithNothingInstalled() {\n\t\tconst cli = await this.Cli()\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'failed')\n\t\tassert.doesInclude(health, {\n\t\t\t'skill.errors[].options.code': 'SKILL_NOT_INSTALLED',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsAFailedHealthCheckWhenIndexFileIsMoved() {\n\t\tconst cli = await this.installSkill()\n\n\t\tdiskUtil.moveFile(\n\t\t\tthis.resolvePath('src', 'index.ts'),\n\t\t\tthis.resolvePath('src', 'index2.ts')\n\t\t)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'failed')\n\t\tassert.doesInclude(health, {\n\t\t\t'skill.errors[].options.code': 'BOOT_ERROR',\n\t\t})\n\t}\n\n\tprivate static async installSkill() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installCachedFeatures('skills')\n\t\treturn cli\n\t}\n\n\t@test()\n\tprotected static async getsAGoodHealthCheckAndNothingElse() {\n\t\tconst cli = await this.installSkill()\n\n\t\tconst hashSpruceDir = this.resolveHashSprucePath()\n\t\tassert.isTrue(diskUtil.doesDirExist(hashSpruceDir))\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tif (health.skill?.errors && health.skill.errors.length > 0) {\n\t\t\tassert.fail(health.skill.errors?.[0].message)\n\t\t}\n\n\t\tassert.isEqualDeep(health, { skill: { status: 'passed' } })\n\t}\n\n\t@test()\n\tprotected static async reportsProperInstallResults() {\n\t\tconst cli = await this.Cli()\n\t\tconst results = await cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Transfer file check skill',\n\t\t\t\t\t\tdescription: 'For tracking files copied count',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isAbove(results.files.length, 0)\n\n\t\tconst generateFiles = results.files.filter(\n\t\t\t(file) => file.action === 'generated'\n\t\t)\n\n\t\tassert.isEqual(generateFiles.length, results.files.length)\n\n\t\tassert.isTruthy(results.packagesInstalled)\n\t\tassert.isAbove(results.packagesInstalled.length, 0)\n\n\t\tconst hiddenFiles = results.files.filter((file) => file.name[0] === '.')\n\t\tassert.isAbove(hiddenFiles.length, 0)\n\n\t\tthis.assertDevDependenciesExist()\n\t\tthis.assertSkillNameIsSaved()\n\t}\n\n\tprivate static assertSkillNameIsSaved() {\n\t\tconst env = this.Service('env')\n\t\tassert.isTruthy(env.get('SKILL_NAME'))\n\t\tassert.isEqual(env.get('SKILL_NAME'), 'Transfer file check skill')\n\t}\n\n\t@test()\n\tprotected static async canAcceptOptionalDestination() {\n\t\tconst cli = await this.Cli()\n\t\tconst results = await cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Transfer file check skill',\n\t\t\t\t\t\tdescription: 'For tracking files copied count',\n\t\t\t\t\t\tdestination: 'taco',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tassert.isTrue(diskUtil.doesDirExist(this.resolvePath('taco')))\n\t\tassert.isFalse(diskUtil.doesDirExist(this.resolvePath('.env')))\n\t\tassert.isTrue(diskUtil.doesDirExist(this.resolvePath('taco', '.env')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('src')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('node_modules')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(HASH_SPRUCE_DIR)))\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(this.resolvePath('taco', 'package.json'))\n\t\t)\n\n\t\tconst first = results.files?.[0]\n\t\tassert.isTruthy(first)\n\n\t\tassert.doesInclude(first.path, 'taco')\n\t}\n\n\tprotected static assertDevDependenciesExist() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst devDependencies = pkg.get('devDependencies')\n\t\tassert.isTruthy(devDependencies)\n\t}\n}\n"],"file":"SettingUpASkill.test.js"}
|
|
1
|
+
{"version":3,"file":"SettingUpASkill.test.js","names":["SettingUpASkill","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","name2","description","checkHealth","health","isEqual","skill","status","doesInclude","installSkill","diskUtil","moveFile","resolvePath","fixture","FeatureFixture","installCachedFeatures","hashSpruceDir","resolveHashSprucePath","isTrue","doesDirExist","errors","length","fail","message","isEqualDeep","name","results","isTruthy","files","isAbove","generateFiles","filter","file","action","packagesInstalled","hiddenFiles","assertDevDependenciesExist","assertSkillNameIsSaved","env","Service","get","destination","isFalse","doesFileExist","HASH_SPRUCE_DIR","first","path","pkg","devDependencies","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/skill/SettingUpASkill.test.ts"],"sourcesContent":["import { diskUtil, HASH_SPRUCE_DIR } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class SettingUpASkill extends AbstractCliTest {\n\t@test()\n\tprotected static async failsWithBadParams() {\n\t\tconst cli = await this.Cli()\n\t\tawait assert.doesThrowAsync(async () => {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcode: 'skill',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tname2: 'test',\n\t\t\t\t\t\t\tdescription: 'This is such a good skill!',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\t\t}, 'name')\n\t}\n\n\t@test()\n\tprotected static async failsHealthCheckWithNothingInstalled() {\n\t\tconst cli = await this.Cli()\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'failed')\n\t\tassert.doesInclude(health, {\n\t\t\t'skill.errors[].options.code': 'SKILL_NOT_INSTALLED',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsAFailedHealthCheckWhenIndexFileIsMoved() {\n\t\tconst cli = await this.installSkill()\n\n\t\tdiskUtil.moveFile(\n\t\t\tthis.resolvePath('src', 'index.ts'),\n\t\t\tthis.resolvePath('src', 'index2.ts')\n\t\t)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'failed')\n\t\tassert.doesInclude(health, {\n\t\t\t'skill.errors[].options.code': 'BOOT_ERROR',\n\t\t})\n\t}\n\n\tprivate static async installSkill() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installCachedFeatures('skills')\n\t\treturn cli\n\t}\n\n\t@test()\n\tprotected static async getsAGoodHealthCheckAndNothingElse() {\n\t\tconst cli = await this.installSkill()\n\n\t\tconst hashSpruceDir = this.resolveHashSprucePath()\n\t\tassert.isTrue(diskUtil.doesDirExist(hashSpruceDir))\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tif (health.skill?.errors && health.skill.errors.length > 0) {\n\t\t\tassert.fail(health.skill.errors?.[0].message)\n\t\t}\n\n\t\tassert.isEqualDeep(health, { skill: { status: 'passed' } })\n\t}\n\n\t@test()\n\tprotected static async reportsProperInstallResults() {\n\t\tconst cli = await this.Cli()\n\t\tconst results = await cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Transfer file check skill',\n\t\t\t\t\t\tdescription: 'For tracking files copied count',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isAbove(results.files.length, 0)\n\n\t\tconst generateFiles = results.files.filter(\n\t\t\t(file) => file.action === 'generated'\n\t\t)\n\n\t\tassert.isEqual(generateFiles.length, results.files.length)\n\n\t\tassert.isTruthy(results.packagesInstalled)\n\t\tassert.isAbove(results.packagesInstalled.length, 0)\n\n\t\tconst hiddenFiles = results.files.filter((file) => file.name[0] === '.')\n\t\tassert.isAbove(hiddenFiles.length, 0)\n\n\t\tthis.assertDevDependenciesExist()\n\t\tthis.assertSkillNameIsSaved()\n\t}\n\n\tprivate static assertSkillNameIsSaved() {\n\t\tconst env = this.Service('env')\n\t\tassert.isTruthy(env.get('SKILL_NAME'))\n\t\tassert.isEqual(env.get('SKILL_NAME'), 'Transfer file check skill')\n\t}\n\n\t@test()\n\tprotected static async canAcceptOptionalDestination() {\n\t\tconst cli = await this.Cli()\n\t\tconst results = await cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Transfer file check skill',\n\t\t\t\t\t\tdescription: 'For tracking files copied count',\n\t\t\t\t\t\tdestination: 'taco',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tassert.isTrue(diskUtil.doesDirExist(this.resolvePath('taco')))\n\t\tassert.isFalse(diskUtil.doesDirExist(this.resolvePath('.env')))\n\t\tassert.isTrue(diskUtil.doesDirExist(this.resolvePath('taco', '.env')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('src')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('node_modules')))\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(HASH_SPRUCE_DIR)))\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(this.resolvePath('taco', 'package.json'))\n\t\t)\n\n\t\tconst first = results.files?.[0]\n\t\tassert.isTruthy(first)\n\n\t\tassert.doesInclude(first.path, 'taco')\n\t}\n\n\tprotected static assertDevDependenciesExist() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst devDependencies = pkg.get('devDependencies')\n\t\tassert.isTruthy(devDependencies)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/stores/CreatingADataStore.test.ts"],"names":["CreatingDataStoresTest","assert","isFunction","Action","execute","cli","checkHealth","shouldRunOnSourceFiles","health","isFalsy","skill","errors","isTruthy","store","isArray","stores","isLength","nameReadable","nameReadablePlural","namePascal","results","path","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","file","resolveHashSprucePath","isTrue","diskUtil","doesFileExist","isEqual","name","errorAssert","assertError","storeContents","readFile","replace","writeFile","testFile","resolveTestPath","testContents","dest","resolvePath","isFalse","getAbstractTestPath","CommandService","fakeCommand","code","storesFile","deleteFile","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport '@sprucelabs/spruce-store-plugin'\nimport CommandService from '../../../services/CommandService'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\n\t@test()\n\tprotected static async hasCreateStoreAction() {\n\t\tassert.isFunction(this.Action('store', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async getsNoStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\tassert.isFalsy(health.skill.errors)\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isArray(health.store.stores)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 0)\n\t}\n\n\t@test()\n\tprotected static async generatesValidStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'People.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async generatesAMapFile() {\n\t\tconst file = this.resolveHashSprucePath('stores', 'stores.ts')\n\t\tassert.isTrue(diskUtil.doesFileExist(file))\n\t\tawait this.Service('typeChecker').check(file)\n\t}\n\n\t@test()\n\tprotected static async getsOneStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 1)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async canGenerateASecondStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Bids.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsSecondStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 2)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'Bids')\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[1].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async errorsWhenGeneratingAStoreWithTheSameName() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'STORE_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async storeFactoryAndStoresAreTyped() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Product',\n\t\t\tnameReadablePlural: 'Products',\n\t\t\tnamePascal: 'Product',\n\t\t})\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Products.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst storeContents = diskUtil\n\t\t\t.readFile(path)\n\t\t\t.replace(\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions',\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions & {hello: string}'\n\t\t\t)\n\n\t\tdiskUtil.writeFile(path, storeContents)\n\n\t\tconst testFile = this.resolveTestPath('store-test.ts.hbs')\n\t\tconst testContents = diskUtil.readFile(testFile)\n\n\t\tconst dest = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(dest, testContents)\n\n\t\tawait this.Service('typeChecker').check(dest)\n\t}\n\n\t@test()\n\tprotected static async doesNotCreateAbstractTestFileBecauseTestIsNotInstalled() {\n\t\tassert.isFalse(\n\t\t\tdiskUtil.doesFileExist(CreatingDataStoresTest.getAbstractTestPath())\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeRestoresDataStoreTypes() {\n\t\tCommandService.fakeCommand('yarn rebuild', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.fakeCommand(/yarn add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst storesFile = this.resolveHashSprucePath('stores/stores.types.ts')\n\t\tdiskUtil.deleteFile(storesFile)\n\t\tawait this.Action('node', 'upgrade').execute({})\n\t\tassert.isTrue(diskUtil.doesFileExist(storesFile))\n\t}\n\n\tprivate static getAbstractTestPath(): string {\n\t\treturn this.resolvePath('src', 'tests', 'AbstractDataStoreTest.ts')\n\t}\n}\n"],"file":"CreatingADataStore.test.js"}
|
|
1
|
+
{"version":3,"file":"CreatingADataStore.test.js","names":["CreatingDataStoresTest","assert","isFunction","Action","execute","cli","checkHealth","shouldRunOnSourceFiles","health","isFalsy","skill","errors","isTruthy","store","isArray","stores","isLength","nameReadable","nameReadablePlural","namePascal","results","path","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","file","resolveHashSprucePath","isTrue","diskUtil","doesFileExist","isEqual","name","errorAssert","assertError","storeContents","readFile","replace","writeFile","testFile","resolveTestPath","testContents","dest","resolvePath","isFalse","getAbstractTestPath","CommandService","fakeCommand","code","storesFile","deleteFile","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/stores/CreatingADataStore.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport '@sprucelabs/spruce-store-plugin'\nimport CommandService from '../../../services/CommandService'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\n\t@test()\n\tprotected static async hasCreateStoreAction() {\n\t\tassert.isFunction(this.Action('store', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async getsNoStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\tassert.isFalsy(health.skill.errors)\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isArray(health.store.stores)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 0)\n\t}\n\n\t@test()\n\tprotected static async generatesValidStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'People.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async generatesAMapFile() {\n\t\tconst file = this.resolveHashSprucePath('stores', 'stores.ts')\n\t\tassert.isTrue(diskUtil.doesFileExist(file))\n\t\tawait this.Service('typeChecker').check(file)\n\t}\n\n\t@test()\n\tprotected static async getsOneStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 1)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async canGenerateASecondStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Bids.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsSecondStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 2)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'Bids')\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[1].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async errorsWhenGeneratingAStoreWithTheSameName() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'STORE_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async storeFactoryAndStoresAreTyped() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Product',\n\t\t\tnameReadablePlural: 'Products',\n\t\t\tnamePascal: 'Product',\n\t\t})\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Products.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst storeContents = diskUtil\n\t\t\t.readFile(path)\n\t\t\t.replace(\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions',\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions & {hello: string}'\n\t\t\t)\n\n\t\tdiskUtil.writeFile(path, storeContents)\n\n\t\tconst testFile = this.resolveTestPath('store-test.ts.hbs')\n\t\tconst testContents = diskUtil.readFile(testFile)\n\n\t\tconst dest = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(dest, testContents)\n\n\t\tawait this.Service('typeChecker').check(dest)\n\t}\n\n\t@test()\n\tprotected static async doesNotCreateAbstractTestFileBecauseTestIsNotInstalled() {\n\t\tassert.isFalse(\n\t\t\tdiskUtil.doesFileExist(CreatingDataStoresTest.getAbstractTestPath())\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeRestoresDataStoreTypes() {\n\t\tCommandService.fakeCommand('yarn rebuild', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.fakeCommand(/yarn add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst storesFile = this.resolveHashSprucePath('stores/stores.types.ts')\n\t\tdiskUtil.deleteFile(storesFile)\n\t\tawait this.Action('node', 'upgrade').execute({})\n\t\tassert.isTrue(diskUtil.doesFileExist(storesFile))\n\t}\n\n\tprivate static getAbstractTestPath(): string {\n\t\treturn this.resolvePath('src', 'tests', 'AbstractDataStoreTest.ts')\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"KeepingDataStoresInSync.test.js","names":["KeepingDataStoresInSyncTest","badStoreDest","resolvePath","diskUtil","deleteFile","assert","isFunction","Action","execute","syncStores","results","isLength","files","writeFile","isArray","errors","errorAssert","assertError","file","nameReadable","nameReadablePlural","namePascal","validateFiles","typesFile","testUtil","assertFileByNameInGeneratedFiles","mapFile","Promise","all","Service","check","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingDataStoresInSyncTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\tprotected static badStoreDest: string\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\t}\n\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('store', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsNothingToStart() {\n\t\tconst results = await this.syncStores()\n\n\t\tassert.isLength(results.files, 0)\n\t}\n\n\t@test()\n\tprotected static async badFileReturnsError() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst results = await this.syncStores()\n\t\tassert.isArray(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssert.assertError(results.errors[0], 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypeFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\t@test()\n\tprotected static async fileIsValidAfterSync() {\n\t\tconst results = await this.syncStores()\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\t@test()\n\tprotected static async canAddSecondStore() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tawait this.validateFiles(results)\n\t}\n\n\tprivate static async validateFiles(results: FeatureActionResponse) {\n\t\tconst typesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst mapFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait Promise.all([\n\t\t\tthis.Service('typeChecker').check(typesFile),\n\t\t\tthis.Service('typeChecker').check(mapFile),\n\t\t])\n\t}\n\n\tprivate static async syncStores() {\n\t\treturn this.Action('store', 'sync').execute({})\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"names":["CreatingBehavioralTestsTest","assert","isFunction","Action","execute","installTests","testFeature","getFeatureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","LintService","enableLinting","createTestAndGetFile","match","Service","build","doesThrowAsync","testType","createTestSubDir","installAndStartTestActionAndWaitForInput","promise","uiAssert","assertSelectRenderChoice","ui","sendInput","waitAndSelectSubClass","dirs","dir","dirName","results","expectedPath","resolvePath","isEqual","files","path","file","resolveTestDir","diskUtil","writeFile","assertSelectDidNotRenderChoice","reset","testFile","contents","readFile","newDir","createDir","testDirs","selectOptionBasedOnLabel","response","type","nameReadable","nameCamel","namePascal","waitForInput","selectedSubClass","createTest","testUtil","assertFileByNameInGeneratedFiles","AbstractTestTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport LintService from '../../../services/LintService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfFeatureNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractStoreTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tLintService.enableLinting()\n\t\tconst match = await this.createTestAndGetFile(testName)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\t@test('finds folders inside behavioral', 'behavioral')\n\t@test('finds folders inside implementation', 'implementation')\n\tprotected static async promptsToSelectFolderIfInsideTestDir(\n\t\ttestType: string\n\t) {\n\t\tawait this.installTests()\n\n\t\tthis.createTestSubDir(testType, 'dummy1')\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\ttestType\n\t\t)\n\n\t\tuiAssert.assertSelectRenderChoice(this.ui, '.', testType)\n\t\tuiAssert.assertSelectRenderChoice(this.ui, `dummy1`, `${testType}/dummy1`)\n\n\t\tawait this.ui.sendInput('.')\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async listsManyDirsIfExistInsideTestDir() {\n\t\tawait this.installTests()\n\n\t\tconst dirs = ['dir1', 'dir2', 'dir3']\n\n\t\tfor (const dir of dirs) {\n\t\t\tthis.createTestSubDir('behavioral', dir)\n\t\t}\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tfor (const dir of dirs) {\n\t\t\tuiAssert.assertSelectRenderChoice(this.ui, `${dir}`, `behavioral/${dir}`)\n\t\t}\n\n\t\tawait this.ui.sendInput('.')\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test('can select sub dir 1', 'test')\n\t@test('can select sub dir 2', 'test-2')\n\tprotected static async selectingAnOptionRendersToSubDir(dirName: string) {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', dirName)\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\t'behavioral'\n\t\t)\n\n\t\tawait this.ui.sendInput(`${dirName}`)\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tconst results = await promise\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'src',\n\t\t\t'__tests__',\n\t\t\t'behavioral',\n\t\t\tdirName,\n\t\t\t'CanBookAppointment.test.ts'\n\t\t)\n\n\t\tassert.isEqual(expectedPath, results.files?.[0]?.path)\n\t}\n\n\t@test()\n\tprotected static async doesNotListFiles() {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', 'subdir')\n\n\t\tconst file = this.resolveTestDir('behavioral', 'test.ts')\n\t\tdiskUtil.writeFile(file, 'what the!?')\n\n\t\tawait this.installAndStartTestActionAndWaitForInput()\n\n\t\tuiAssert.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\t'test',\n\t\t\t`behavioral/test/test.ts`\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async allTestsComeFakedToStart() {\n\t\tconst testFile = await this.createTestAndGetFile()\n\t\tconst contents = diskUtil.readFile(testFile)\n\t\tassert.doesInclude(contents, 'fake.login()')\n\t}\n\n\tprivate static createTestSubDir(...testDirs: string[]) {\n\t\tconst newDir = this.resolveTestDir(...testDirs)\n\t\tdiskUtil.createDir(newDir)\n\t}\n\n\tprivate static resolveTestDir(...testDirs: string[]) {\n\t\treturn this.resolvePath('src', '__tests__', ...testDirs)\n\t}\n\n\tprivate static async createTest(testName = 'AbstractSpruceFixtureTest') {\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\t\treturn response\n\t}\n\n\tprivate static async installAndStartTestActionAndWaitForInput(\n\t\ttestType = 'behavioral'\n\t) {\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: testType,\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n\n\tprivate static async waitAndSelectSubClass(selectedSubClass?: string) {\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(selectedSubClass ?? '')\n\t}\n\n\tprivate static async createTestAndGetFile(testName?: string) {\n\t\tconst response = await this.createTest(testName)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\t\treturn match\n\t}\n}\n"],"file":"CreatingATest.test.js"}
|
|
1
|
+
{"version":3,"file":"CreatingATest.test.js","names":["CreatingBehavioralTestsTest","assert","isFunction","Action","execute","installTests","testFeature","getFeatureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","LintService","enableLinting","createTestAndGetFile","match","Service","build","doesThrowAsync","testType","createTestSubDir","installAndStartTestActionAndWaitForInput","promise","uiAssert","assertSelectRenderChoice","ui","sendInput","waitAndSelectSubClass","dirs","dir","dirName","results","expectedPath","resolvePath","isEqual","files","path","file","resolveTestDir","diskUtil","writeFile","assertSelectDidNotRenderChoice","reset","testFile","contents","readFile","newDir","createDir","testDirs","selectOptionBasedOnLabel","response","type","nameReadable","nameCamel","namePascal","waitForInput","selectedSubClass","createTest","testUtil","assertFileByNameInGeneratedFiles","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport LintService from '../../../services/LintService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfFeatureNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractStoreTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tLintService.enableLinting()\n\t\tconst match = await this.createTestAndGetFile(testName)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\t@test('finds folders inside behavioral', 'behavioral')\n\t@test('finds folders inside implementation', 'implementation')\n\tprotected static async promptsToSelectFolderIfInsideTestDir(\n\t\ttestType: string\n\t) {\n\t\tawait this.installTests()\n\n\t\tthis.createTestSubDir(testType, 'dummy1')\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\ttestType\n\t\t)\n\n\t\tuiAssert.assertSelectRenderChoice(this.ui, '.', testType)\n\t\tuiAssert.assertSelectRenderChoice(this.ui, `dummy1`, `${testType}/dummy1`)\n\n\t\tawait this.ui.sendInput('.')\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async listsManyDirsIfExistInsideTestDir() {\n\t\tawait this.installTests()\n\n\t\tconst dirs = ['dir1', 'dir2', 'dir3']\n\n\t\tfor (const dir of dirs) {\n\t\t\tthis.createTestSubDir('behavioral', dir)\n\t\t}\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tfor (const dir of dirs) {\n\t\t\tuiAssert.assertSelectRenderChoice(this.ui, `${dir}`, `behavioral/${dir}`)\n\t\t}\n\n\t\tawait this.ui.sendInput('.')\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test('can select sub dir 1', 'test')\n\t@test('can select sub dir 2', 'test-2')\n\tprotected static async selectingAnOptionRendersToSubDir(dirName: string) {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', dirName)\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\t'behavioral'\n\t\t)\n\n\t\tawait this.ui.sendInput(`${dirName}`)\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tconst results = await promise\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'src',\n\t\t\t'__tests__',\n\t\t\t'behavioral',\n\t\t\tdirName,\n\t\t\t'CanBookAppointment.test.ts'\n\t\t)\n\n\t\tassert.isEqual(expectedPath, results.files?.[0]?.path)\n\t}\n\n\t@test()\n\tprotected static async doesNotListFiles() {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', 'subdir')\n\n\t\tconst file = this.resolveTestDir('behavioral', 'test.ts')\n\t\tdiskUtil.writeFile(file, 'what the!?')\n\n\t\tawait this.installAndStartTestActionAndWaitForInput()\n\n\t\tuiAssert.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\t'test',\n\t\t\t`behavioral/test/test.ts`\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async allTestsComeFakedToStart() {\n\t\tconst testFile = await this.createTestAndGetFile()\n\t\tconst contents = diskUtil.readFile(testFile)\n\t\tassert.doesInclude(contents, 'fake.login()')\n\t}\n\n\tprivate static createTestSubDir(...testDirs: string[]) {\n\t\tconst newDir = this.resolveTestDir(...testDirs)\n\t\tdiskUtil.createDir(newDir)\n\t}\n\n\tprivate static resolveTestDir(...testDirs: string[]) {\n\t\treturn this.resolvePath('src', '__tests__', ...testDirs)\n\t}\n\n\tprivate static async createTest(testName = 'AbstractSpruceFixtureTest') {\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\t\treturn response\n\t}\n\n\tprivate static async installAndStartTestActionAndWaitForInput(\n\t\ttestType = 'behavioral'\n\t) {\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: testType,\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n\n\tprivate static async waitAndSelectSubClass(selectedSubClass?: string) {\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(selectedSubClass ?? '')\n\t}\n\n\tprivate static async createTestAndGetFile(testName?: string) {\n\t\tconst response = await this.createTest(testName)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\t\treturn match\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,2B,WACnB,iB,UAKA,iB,UAaA,gBACA,2DADA,EAEA,2BAFA,C,UAIA,gBACA,mDADA,EAEA,sCAFA,C,UAkBA,gBAAK,iCAAL,EAAwC,YAAxC,C,UACA,gBAAK,qCAAL,EAA4C,gBAA5C,C,UAqBA,iB,UAuBA,gBAAK,sBAAL,EAA6B,MAA7B,C,UACA,gBAAK,sBAAL,EAA6B,QAA7B,C,WA0BA,iB,WAmBA,iB;;;;;;;;;;;;;2GAnID;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gIAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,YAAL,CAAkB,mBAAlB,CAFP;;cAAA;gBAIOC,WAJP,GAIqB,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,MAAtC,CAJrB;gBAAA;gBAAA,OAK0BF,WAAW,CAACG,0BAAZ,EAL1B;;cAAA;gBAKOC,UALP;;gBAOCT,aAAOU,WAAP,CAAmBD,UAAnB,EAA+B;kBAC9BE,KAAK,EAAE,8CADuB;kBAE9BC,IAAI,EAAE;gBAFwB,CAA/B;;cAPD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHAaA,kBAQ+CC,QAR/C;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBASCC,wBAAYC,aAAZ;;gBATD;gBAAA,OAUqB,KAAKC,oBAAL,CAA0BH,QAA1B,CAVrB;;cAAA;gBAUOI,KAVP;;gBAYCjB,aAAOU,WAAP,CAAmBO,KAAnB,EAA0B,YAA1B;;gBAZD;gBAAA,OAcO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAdP;;cAAA;gBAAA;gBAAA,OAgBOnB,aAAOoB,cAAP,CACL;kBAAA,OAAM,KAAI,CAACF,OAAL,CAAa,SAAb,EAAwBf,OAAxB,CAAgC,WAAhC,CAAN;gBAAA,CADK,EAEL,2CAFK,CAhBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gIAsBA,kBAGCkB,QAHD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAKO,KAAKjB,YAAL,EALP;;cAAA;gBAOC,KAAKkB,gBAAL,CAAsBD,QAAtB,EAAgC,QAAhC;gBAPD;gBAAA,OAS2B,KAAKE,wCAAL,CACzBF,QADyB,CAT3B;;cAAA;gBAAA;gBASSG,OATT,yBASSA,OATT;;gBAaCC,qBAASC,wBAAT,CAAkC,KAAKC,EAAvC,EAA2C,GAA3C,EAAgDN,QAAhD;;gBACAI,qBAASC,wBAAT,CAAkC,KAAKC,EAAvC,sBAAwDN,QAAxD;;gBAdD;gBAAA,OAgBO,KAAKM,EAAL,CAAQC,SAAR,CAAkB,GAAlB,CAhBP;;cAAA;gBAAA;gBAAA,OAiBO,KAAKC,qBAAL,EAjBP;;cAAA;gBAAA;gBAAA,OAmBOL,OAnBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6HAsBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKpB,YAAL,EAFP;;cAAA;gBAIO0B,IAJP,GAIc,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CAJd;;gBAMC,qBAAkBA,IAAlB,2BAAwB;kBAAbC,GAAa;kBACvB,KAAKT,gBAAL,CAAsB,YAAtB,EAAoCS,GAApC;gBACA;;gBARF;gBAAA,OAU2B,KAAKR,wCAAL,EAV3B;;cAAA;gBAAA;gBAUSC,OAVT,0BAUSA,OAVT;;gBAYC,uBAAkBM,IAAlB,8BAAwB;kBAAbC,IAAa;;kBACvBN,qBAASC,wBAAT,CAAkC,KAAKC,EAAvC,YAA8CI,IAA9C,wBAAmEA,IAAnE;gBACA;;gBAdF;gBAAA,OAgBO,KAAKJ,EAAL,CAAQC,SAAR,CAAkB,GAAlB,CAhBP;;cAAA;gBAAA;gBAAA,OAkBO,KAAKC,qBAAL,EAlBP;;cAAA;gBAAA;gBAAA,OAoBOL,OApBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4HAuBA,kBAEwDQ,OAFxD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGO,KAAK5B,YAAL,EAHP;;cAAA;gBAIC,KAAKkB,gBAAL,CAAsB,YAAtB,EAAoCU,OAApC;gBAJD;gBAAA,OAM2B,KAAKT,wCAAL,CACzB,YADyB,CAN3B;;cAAA;gBAAA;gBAMSC,OANT,0BAMSA,OANT;gBAAA;gBAAA,OAUO,KAAKG,EAAL,CAAQC,SAAR,WAAqBI,OAArB,EAVP;;cAAA;gBAAA;gBAAA,OAYO,KAAKH,qBAAL,EAZP;;cAAA;gBAAA;gBAAA,OAcuBL,OAdvB;;cAAA;gBAcOS,OAdP;gBAgBOC,YAhBP,GAgBsB,KAAKC,WAAL,CACpB,KADoB,EAEpB,WAFoB,EAGpB,YAHoB,EAIpBH,OAJoB,EAKpB,4BALoB,CAhBtB;;gBAwBChC,aAAOoC,OAAP,CAAeF,YAAf,oBAA6BD,OAAO,CAACI,KAArC,sEAA6B,eAAgB,CAAhB,CAA7B,oDAA6B,gBAAoBC,IAAjD;;cAxBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GA2BA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKlC,YAAL,EAFP;;cAAA;gBAGC,KAAKkB,gBAAL,CAAsB,YAAtB,EAAoC,QAApC;gBAEMiB,IALP,GAKc,KAAKC,cAAL,CAAoB,YAApB,EAAkC,SAAlC,CALd;;gBAMCC,2BAASC,SAAT,CAAmBH,IAAnB,EAAyB,YAAzB;;gBAND;gBAAA,OAQO,KAAKhB,wCAAL,EARP;;cAAA;gBAUCE,qBAASkB,8BAAT,CACC,KAAKhB,EADN,EAEC,MAFD;;gBAMA,KAAKA,EAAL,CAAQiB,KAAR;;cAhBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oHAmBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEwB,KAAK5B,oBAAL,EAFxB;;cAAA;gBAEO6B,QAFP;gBAGOC,QAHP,GAGkBL,2BAASM,QAAT,CAAkBF,QAAlB,CAHlB;;gBAIC7C,aAAOU,WAAP,CAAmBoC,QAAnB,EAA6B,cAA7B;;cAJD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAOA,4BAAuD;MACtD,IAAME,MAAM,GAAG,KAAKR,cAAL,uBAAf;;MACAC,2BAASQ,SAAT,CAAmBD,MAAnB;IACA;;;WAED,0BAAqD;MAAA,kCAApBE,QAAoB;QAApBA,QAAoB;MAAA;;MACpD,OAAO,KAAKf,WAAL,cAAiB,KAAjB,EAAwB,WAAxB,SAAwCe,QAAxC,EAAP;IACA;;;;sGAED;QAAA;QAAA;QAAA;QAAA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAgCrC,QAAhC,8DAA2C,2BAA3C;gBAAA;gBAAA,OAC2B,KAAKU,wCAAL,EAD3B;;cAAA;gBAAA;gBACSC,OADT,0BACSA,OADT;gBAGC,KAAK2B,wBAAL,CAA8BtC,QAA9B;gBAHD;gBAAA,OAKwBW,OALxB;;cAAA;gBAKO4B,QALP;gBAAA,kCAMQA,QANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIASA;QAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACC/B,QADD,iEACY,YADZ;gBAAA;gBAAA,OAGO,KAAKjB,YAAL,EAHP;;cAAA;gBAIOoB,OAJP,GAIiB,KAAKtB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;kBACrDkD,IAAI,EAAEhC,QAD+C;kBAErDiC,YAAY,EAAE,sBAFuC;kBAGrDC,SAAS,EAAE,oBAH0C;kBAIrDC,UAAU,EAAE;gBAJyC,CAAtC,CAJjB;gBAAA;gBAAA,OAWO,KAAKC,YAAL,EAXP;;cAAA;gBAAA,mCAYQ;kBAAEjC,OAAO,EAAPA;gBAAF,CAZR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAeA,mBAA2CkC,gBAA3C;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKD,YAAL,EADP;;cAAA;gBAAA;gBAAA,OAEO,KAAK9B,EAAL,CAAQC,SAAR,CAAkB8B,gBAAlB,aAAkBA,gBAAlB,cAAkBA,gBAAlB,GAAsC,EAAtC,CAFP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAKA,mBAA0C7C,QAA1C;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACwB,KAAK8C,UAAL,CAAgB9C,QAAhB,CADxB;;cAAA;gBACOuC,QADP;gBAGOnC,KAHP,GAGe2C,kBAASC,gCAAT,CACb,4BADa,EAEbT,QAAQ,CAACf,KAFI,CAHf;gBAAA,mCAOQpB,KAPR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAjLwD6C,6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"RunningTests.test.js","names":["RunningTestsTest","Cli","assert","isFunction","Action","execute","installTests","creationPromise","type","nameReadable","nameCamel","namePascal","waitForInput","ui","sendInput","creationResults","file","files","isTruthy","fixBadTest","path","promise","Service","build","shouldReportWhileRunning","results","errors","isLength","errorAssert","assertError","meta","testResults","doesInclude","wasKilled","totalTestFiles","totalTestFilesComplete","totalFailed","totalPassed","totalSkipped","totalTests","totalTodo","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/RunningTests.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\n\nexport default class RunningTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasTestAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('test', 'test').execute)\n\t}\n\n\t@test()\n\tprotected static async runningTestsActuallyRunsTests() {\n\t\tawait this.installTests()\n\t\tconst creationPromise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst creationResults = await creationPromise\n\n\t\tconst file = creationResults.files?.[0]\n\t\tassert.isTruthy(file)\n\n\t\tthis.fixBadTest(file.path)\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can cancel appointment',\n\t\t\tnameCamel: 'canCancelAppointment',\n\t\t\tnamePascal: 'CanCancelAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tawait promise\n\n\t\tawait this.Service('build').build()\n\n\t\tconst results = await this.Action('test', 'test').execute({\n\t\t\tshouldReportWhileRunning: false,\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssert.assertError(results.errors[0], 'TEST_FAILED')\n\n\t\tassert.isTruthy(results.meta)\n\t\tassert.isTruthy(results.meta?.testResults)\n\n\t\tassert.doesInclude(results.meta?.testResults, {\n\t\t\twasKilled: false,\n\t\t\ttotalTestFiles: 2,\n\t\t\ttotalTestFilesComplete: 2,\n\t\t\ttotalFailed: 1,\n\t\t\ttotalPassed: 3,\n\t\t\ttotalSkipped: 0,\n\t\t\ttotalTests: 4,\n\t\t\ttotalTodo: 0,\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WACnB,iB,UAMA,iB;;;;;;;;;;;;;yGAND;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,GAAL,EAFP;;cAAA;gBAGCC,aAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,MAApB,EAA4BC,OAA9C;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yHAMA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,YAAL,EAFP;;cAAA;gBAGOC,eAHP,GAGyB,KAAKH,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;kBAC7DG,IAAI,EAAE,YADuD;kBAE7DC,YAAY,EAAE,sBAF+C;kBAG7DC,SAAS,EAAE,oBAHkD;kBAI7DC,UAAU,EAAE;gBAJiD,CAAtC,CAHzB;gBAAA;gBAAA,OAUO,KAAKC,YAAL,EAVP;;cAAA;gBAAA;gBAAA,OAWO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,EAAlB,CAXP;;cAAA;gBAAA;gBAAA,OAa+BP,eAb/B;;cAAA;gBAaOQ,eAbP;gBAeOC,IAfP,4BAecD,eAAe,CAACE,KAf9B,0DAec,sBAAwB,CAAxB,CAfd;;gBAgBCf,aAAOgB,QAAP,CAAgBF,IAAhB;;gBAEA,KAAKG,UAAL,CAAgBH,IAAI,CAACI,IAArB;gBAEMC,OApBP,GAoBiB,KAAKjB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;kBACrDG,IAAI,EAAE,YAD+C;kBAErDC,YAAY,EAAE,wBAFuC;kBAGrDC,SAAS,EAAE,sBAH0C;kBAIrDC,UAAU,EAAE;gBAJyC,CAAtC,CApBjB;gBAAA;gBAAA,OA2BO,KAAKC,YAAL,EA3BP;;cAAA;gBAAA;gBAAA,OA4BO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,EAAlB,CA5BP;;cAAA;gBAAA;gBAAA,OA8BOO,OA9BP;;cAAA;gBAAA;gBAAA,OAgCO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAhCP;;cAAA;gBAAA;gBAAA,OAkCuB,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,MAApB,EAA4BC,OAA5B,CAAoC;kBACzDmB,wBAAwB,EAAE;gBAD+B,CAApC,CAlCvB;;cAAA;gBAkCOC,OAlCP;;gBAsCCvB,aAAOgB,QAAP,CAAgBO,OAAO,CAACC,MAAxB;;gBACAxB,aAAOyB,QAAP,CAAgBF,OAAO,CAACC,MAAxB,EAAgC,CAAhC;;gBAEAE,uBAAYC,WAAZ,CAAwBJ,OAAO,CAACC,MAAR,CAAe,CAAf,CAAxB,EAA2C,aAA3C;;gBAEAxB,aAAOgB,QAAP,CAAgBO,OAAO,CAACK,IAAxB;;gBACA5B,aAAOgB,QAAP,kBAAgBO,OAAO,CAACK,IAAxB,kDAAgB,cAAcC,WAA9B;;gBAEA7B,aAAO8B,WAAP,mBAAmBP,OAAO,CAACK,IAA3B,mDAAmB,eAAcC,WAAjC,EAA8C;kBAC7CE,SAAS,EAAE,KADkC;kBAE7CC,cAAc,EAAE,CAF6B;kBAG7CC,sBAAsB,EAAE,CAHqB;kBAI7CC,WAAW,EAAE,CAJgC;kBAK7CC,WAAW,EAAE,CALgC;kBAM7CC,YAAY,EAAE,CAN+B;kBAO7CC,UAAU,EAAE,CAPiC;kBAQ7CC,SAAS,EAAE;gBARkC,CAA9C;;cA9CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAP6CC,6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","CommandService","fakeCommand","RegExp","code","testFeature","getFeatureInstaller","getFeature","feat","install","features","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","Action","type","nameReadable","nameCamel","AbstractTestTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,qBAAqB,GAAG,CAC7B,8BAD6B,EAE7B,sCAF6B,EAG7B,+CAH6B,EAI7B,2BAJ6B,EAK7B,cAL6B,EAM7B,eAN6B,EAO7B,yCAP6B,CAA9B;AAUA,IAAMC,2BAGH,GAAG,CACL;AAAEC,EAAAA,WAAW,EAAE,OAAf;AAAwBC,EAAAA,SAAS,EAAE;AAAnC,CADK,EAEL;AAAED,EAAAA,WAAW,EAAE,MAAf;AAAuBC,EAAAA,SAAS,EAAE;AAAlC,CAFK,CAHN;IAQqBC,gC,WACnB,iB,UAcA,iB,UAoBA,iB,UAoDA,iB,UA8BA,iB;;;;;;;;;;;;;wHApHD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKC,2CAAL,EAF3B;;AAAA;AAAA;AAESC,gBAAAA,OAFT,yBAESA,OAFT;AAAA;AAAA,uBAIuBA,OAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAMCC,kCAASC,gCAAT,CACC,4BADD,EAECF,OAAO,CAACG,KAFT;;AAND;AAAA,uBAWO,KAAKC,iCAAL,EAXP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sIAcA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,WAAxB,EAAqC,YAArC,EAAmD,MAAnD,CAFjB;;AAGCC,2CAASC,SAAT,CAAmBH,OAAnB;;AAHD;AAAA,uBAKO,KAAKI,uBAAL,EALP;;AAAA;AAAA;AAAA,uBAO2B,KAAKC,iCAAL,EAP3B;;AAAA;AAAA;AAOSX,gBAAAA,OAPT,yBAOSA,OAPT;AAAA;AAAA,uBASO,KAAKY,EAAL,CAAQC,SAAR,CAAkB,MAAlB,CATP;;AAAA;AAAA;AAAA,uBAWO,KAAKC,YAAL,EAXP;;AAAA;AAaC,qBAAKC,wBAAL,CAA8B,yCAA9B;AAbD;AAAA,uBAeOf,OAfP;;AAAA;AAAA;AAAA,uBAiBO,KAAKK,iCAAL,EAjBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAoBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKW,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAGC,qBAAKA,GAAG,CAACC,EAAJ,CAAO,qCAAP,6FAA8C;AAAA;AAAA;AAAA;AAAA;AAAA,4DAC3C;AACNC,4BAAAA,eAAe,EAAE,CAChB;AACCC,8BAAAA,IAAI,EAAE,WADP;AAECC,8BAAAA,KAAK,EAAE,WAFR;AAGC,wCAAQ;AAHT,6BADgB,EAMhB;AACCD,8BAAAA,IAAI,EAAE,YADP;AAECC,8BAAAA,KAAK,EAAE,YAFR;AAGC,wCAAQ;AAHT,6BANgB;AADX,2BAD2C;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA9C,GAAL;AAHD;AAAA,uBAqBQ,KAAKC,wCAAL,EArBR;;AAAA;AAAA;AAoBSC,gBAAAA,OApBT,yBAoBSA,OApBT;AAoBkBvB,gBAAAA,OApBlB,yBAoBkBA,OApBlB;;AAuBCwB,6BAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAC3BF,kBAAAA,KAAK,EAAE;AADoB,iBAA5B;;AAIAG,6BAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAC3BF,kBAAAA,KAAK,EAAE;AADoB,iBAA5B;;AAIA,qBAAKN,wBAAL,CAA8B,YAA9B;AA/BD;AAAA,uBAiCuBf,OAjCvB;;AAAA;AAiCOC,gBAAAA,OAjCP;;AAmCCuB,6BAAOE,OAAP,CAAezB,OAAO,CAAC0B,MAAvB;;AAEMC,gBAAAA,KArCP,GAqCe1B,kBAASC,gCAAT,CACb,4BADa,EAEbF,OAAO,CAACG,KAFK,CArCf;AA0COyB,gBAAAA,QA1CP,GA0CkBrB,2BAASsB,QAAT,CAAkBF,KAAlB,CA1ClB;;AA4CCJ,6BAAOC,WAAP,CACCI,QADD,EAEC,sDAFD;;AAKAL,6BAAOC,WAAP,CAAmBI,QAAnB,EAA6B,oBAA7B;;AAjDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kIAoDA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECE,2CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,+BAAX,CAA3B,EAA+D;AAC9DC,kBAAAA,IAAI,EAAE;AADwD,iBAA/D;;AAFD;AAAA,uBAMO,KAAKlB,YAAL,EANP;;AAAA;AAQOmB,gBAAAA,WARP,GAQqB,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,MAAtC,CARrB;AAAA,uDAUoB1C,2BAVpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUY2C,0BAAAA,IAVZ;AAAA;AAAA,iCAWQ,KAAI,CAACF,mBAAL,GAA2BG,OAA3B,CAAmC;AACxCC,4BAAAA,QAAQ,EAAE,CACT;AACC;AACAN,8BAAAA,IAAI,EAAEI,IAAI,CAAC1C;AAFZ,6BADS;AAD8B,2BAAnC,CAXR;;AAAA;AAAA;AAAA,iCAoB2BuC,WAAW,CAACM,0BAAZ,EApB3B;;AAAA;AAoBQC,0BAAAA,UApBR;;AAsBElB,uCAAOmB,QAAP,CACCD,UAAU,CAACE,IAAX,CAAgB,iBAAc;AAAA,gCAAXxB,IAAW,SAAXA,IAAW;AAC7B,mCAAOA,IAAI,KAAKkB,IAAI,CAACzC,SAArB;AACA,2BAFD,CADD;;AAtBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sIA8BA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECkC,2CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,+BAAX,CAA3B,EAA+D;AAC9DC,kBAAAA,IAAI,EAAE;AADwD,iBAA/D;;AAFD,wDAMoBvC,2BANpB;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAMY2C,0BAAAA,IANZ;AAOE,0BAAA,MAAI,CAACO,GAAL,GAAWrC,2BAASsC,mBAAT,EAAX;AAPF;AAAA,iCAQQ,MAAI,CAAC9B,YAAL,EARR;;AAAA;AAAA;AAAA,iCAWS,MAAI,CAACM,wCAAL,EAXT;;AAAA;AAAA;AAUUC,0BAAAA,OAVV,yBAUUA,OAVV;AAUmBvB,0BAAAA,OAVnB,yBAUmBA,OAVnB;AAaQ4B,0BAAAA,KAbR,GAagBL,OAAO,CAACqB,IAAR,CAAa,UAACG,CAAD;AAAA,mCAAYA,CAAC,CAAC1B,KAAF,CAAQ2B,QAAR,CAAiBV,IAAI,CAACzC,SAAtB,CAAZ;AAAA,2BAAb,CAbhB;;AAeE2B,uCAAOmB,QAAP,CAAgBf,KAAhB;;AAfF;AAAA,iCAiB0B,MAAI,CAACQ,mBAAL,GAA2Ba,WAA3B,CACvBX,IAAI,CAAC1C,WADkB,CAjB1B;;AAAA;AAiBMqD,0BAAAA,WAjBN;;AAoBEzB,uCAAO0B,OAAP,CAAeD,WAAf;;AApBF;AAAA,iCAsBQ,MAAI,CAACrC,EAAL,CAAQC,SAAR,CAAkBe,KAAlB,aAAkBA,KAAlB,uBAAkBA,KAAK,CAAEuB,KAAzB,CAtBR;;AAAA;AAAA;AAAA,iCAwBQnD,OAxBR;;AAAA;AAAA;AAAA,iCA0BsB,MAAI,CAACoC,mBAAL,GAA2Ba,WAA3B,CACnBX,IAAI,CAAC1C,WADc,CA1BtB;;AAAA;AA0BEqD,0BAAAA,WA1BF;;AA6BEzB,uCAAO4B,MAAP,CAAcH,WAAd;;AA7BF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAiCA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAKI,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EADP;;AAAA;AAAA;AAAA,uBAGO9B,aAAO+B,cAAP,CACL;AAAA,yBAAM,MAAI,CAACF,OAAL,CAAa,SAAb,EAAwBG,OAAxB,CAAgC,WAAhC,CAAN;AAAA,iBADK,EAEL,2CAFK,CAHP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uIASA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAK9C,uBAAL,EADP;;AAAA;AAAA;AAAA,uBAIQ,KAAKY,wCAAL,EAJR;;AAAA;AAAA;AAGSC,gBAAAA,OAHT,0BAGSA,OAHT;AAGkBvB,gBAAAA,OAHlB,0BAGkBA,OAHlB;AAAA,wDAMwBN,qBANxB;;AAAA;AAMC,yEAA8C;AAAnC+D,oBAAAA,QAAmC;;AAC7CjC,iCAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAAEF,sBAAAA,KAAK,EAAEoC;AAAT,qBAA5B;AACA;AARF;AAAA;AAAA;AAAA;AAAA;;AAUC,qBAAK1C,wBAAL,CAA8B,yCAA9B;AAVD,mDAYQ;AAAEf,kBAAAA,OAAO,EAAPA;AAAF,iBAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAKgB,YAAL,EADP;;AAAA;AAAA;AAAA,uBAEO,KAAK0C,aAAL,EAFP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,MADP,GACgB,KAAKC,eAAL,CAAqB,gBAArB,CADhB;AAEOC,gBAAAA,WAFP,GAEqB,KAAKtD,WAAL,CAAiB,KAAjB,CAFrB;AAAA;AAAA,uBAIOC,2BAASsD,OAAT,CAAiBH,MAAjB,EAAyBE,WAAzB,CAJP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAOA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAC2B,KAAKlD,iCAAL,EAD3B;;AAAA;AAAA;AACSX,gBAAAA,OADT,0BACSA,OADT;AAGO+D,gBAAAA,IAHP,GAGc,KAAKnD,EAAL,CAAQoD,iBAAR,EAHd;AAAA,iDAIqBD,IAAI,CAACE,OAAL,CAAaA,OAJlC,yEAI6C,EAJ7C,EAIS1C,OAJT,SAISA,OAJT;AAAA,mDAMQ;AAAEvB,kBAAAA,OAAO,EAAPA,OAAF;AAAWuB,kBAAAA,OAAO,EAAPA;AAAX,iBANR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AACOvB,gBAAAA,OADP,GACiB,KAAKkE,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BV,OAA9B,CAAsC;AACrDW,kBAAAA,IAAI,EAAE,YAD+C;AAErDC,kBAAAA,YAAY,EAAE,sBAFuC;AAGrDC,kBAAAA,SAAS,EAAE;AAH0C,iBAAtC,CADjB;AAAA;AAAA,uBAOO,KAAKvD,YAAL,EAPP;;AAAA;AAAA,mDAQQ;AAAEd,kBAAAA,OAAO,EAAPA;AAAF,iBARR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAtM6DsE,6B","sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CommandService from '../../../services/CommandService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\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 { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"file":"SelectingAnAbstractTestClass.test.js"}
|
|
1
|
+
{"version":3,"file":"SelectingAnAbstractTestClass.test.js","names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","CommandService","fakeCommand","RegExp","code","testFeature","getFeatureInstaller","getFeature","feat","install","features","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","Action","type","nameReadable","nameCamel","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CommandService from '../../../services/CommandService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\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 { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SettingUpTests.test.js","names":["SettingUpTestsTest","installTests","code","assertIsFeatureInstalled","command","Service","assert","doesThrowAsync","execute","err","errorAssert","assertError","doesInclude","options","stdout","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SettingUpTests.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\n\nexport default class SettingUpTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async installsTests() {\n\t\tawait this.installTests()\n\t\tconst code: FeatureCode = 'test'\n\t\tawait this.assertIsFeatureInstalled(code)\n\t}\n\n\t@test()\n\tprotected static async canRunTestsButSaysAtLeastOneTestIsNeeded() {\n\t\tawait this.installTests()\n\t\tconst command = this.Service('command')\n\t\tconst err = await assert.doesThrowAsync(() => command.execute('yarn test'))\n\n\t\terrorAssert.assertError(err, 'EXECUTING_COMMAND_FAILED')\n\t\t//@ts-ignore\n\t\tassert.doesInclude(err.options.stdout, /passWithNoTests/)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,kB,WACnB,iB,UAOA,iB;;;;;;;;;;;;;yGAPD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,YAAL,EAFP;;cAAA;gBAGOC,IAHP,GAG2B,MAH3B;gBAAA;gBAAA,OAIO,KAAKC,wBAAL,CAA8BD,IAA9B,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKD,YAAL,EAFP;;cAAA;gBAGOG,OAHP,GAGiB,KAAKC,OAAL,CAAa,SAAb,CAHjB;gBAAA;gBAAA,OAImBC,aAAOC,cAAP,CAAsB;kBAAA,OAAMH,OAAO,CAACI,OAAR,CAAgB,WAAhB,CAAN;gBAAA,CAAtB,CAJnB;;cAAA;gBAIOC,GAJP;;gBAMCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,0BAA7B,EAND,CAOC;;;gBACAH,aAAOM,WAAP,CAAmBH,GAAG,CAACI,OAAJ,CAAYC,MAA/B,EAAuC,iBAAvC;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAR+CC,6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"UpdatingDependencies.test.js","names":["UpdatingDependenciesTest","action","Action","assert","isFunction","execute","files","file","diskUtil","writeFile","resolvePath","promise","wait","isFalse","doesFileExist","path","dir","isTrue","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class UpdatingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'node'\n\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async hasUpdateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async removesLockFilesBeforeInstallAndAlsoCleansUpAfterInstall() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file), 'not empty')\n\t\t}\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tfor (const file of files) {\n\t\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(file)))\n\t\t}\n\n\t\tawait promise\n\n\t\tfor (const file of files) {\n\t\t\tconst path = this.resolvePath(file)\n\t\t\tassert.isFalse(diskUtil.doesFileExist(path), `Expectedly found ${path}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async removesAndReAddsNodeModulesFolder() {\n\t\tconst dir = this.resolvePath('node_modules')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(100)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(dir))\n\n\t\tawait promise\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;sGAjCD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKH,MAAL,CAAYI,OAA9B;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oJAKA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOC,KAFP,GAEe,CAAC,mBAAD,EAAsB,WAAtB,CAFf;;gBAGC,sBAAmBA,KAAnB,4BAA0B;kBAAfC,IAAe;;kBACzBC,2BAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBH,IAAjB,CAAnB,EAA2C,WAA3C;gBACA;;gBAEKI,OAPP,GAOiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CAPjB;gBAAA;gBAAA,OASO,KAAKO,IAAL,CAAU,EAAV,CATP;;cAAA;gBAWC,wBAAmBN,KAAnB,+BAA0B;kBAAfC,KAAe;;kBACzBJ,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuB,KAAKJ,WAAL,CAAiBH,KAAjB,CAAvB,CAAf;gBACA;;gBAbF;gBAAA,OAeOI,OAfP;;cAAA;gBAiBC,wBAAmBL,KAAnB,+BAA0B;kBAAfC,MAAe;kBACnBQ,IADmB,GACZ,KAAKL,WAAL,CAAiBH,MAAjB,CADY;;kBAEzBJ,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBC,IAAvB,CAAf,6BAAiEA,IAAjE;gBACA;;cApBF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6HAuBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,GAFP,GAEa,KAAKN,WAAL,CAAiB,cAAjB,CAFb;;gBAICP,aAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;gBAEML,OANP,GAMiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CANjB;gBAAA;gBAAA,OAQO,KAAKO,IAAL,CAAU,GAAV,CARP;;cAAA;gBAUCT,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBE,GAAvB,CAAf;;gBAVD;gBAAA,OAYOL,OAZP;;cAAA;gBAcCR,aAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;cAdD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAtCqDE,8B,8DACpB,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"UpdatingDependencies2.test.js","names":["UpdateDependencies2Test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","getFeatureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","fakeCommand","code","callback","_","args","execute","assert","doesInclude","installRandomPackage","installRandomDevPackage","devName","blocked","blockRandomPackages","loadAllDependencies","allDeps","allDevDeps","pkg","getInstalledFeatures","features","feature","featureDependencies","deps","filter","d","isDev","map","n","stripLatest","devDeps","doesNotInclude","pkgJson","readPackage","Object","keys","dependencies","devDependencies","names","length","install","blockUpgrade","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { random, uniq } from 'lodash'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { NpmPackage } from '../../../types/cli.types'\n\nexport default class UpdateDependencies2Test extends AbstractCliTest {\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async locksVersionOfDependencyWhenDependencyAlreadyInPackageJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('pkg').set({ path: 'dependencies.axios', value: '0.0.1' })\n\n\t\tconst skill = this.getFeatureInstaller().getFeature('skill')\n\t\tskill.packageDependencies.push({\n\t\t\tname: 'axios',\n\t\t\tversion: '0.21.3',\n\t\t})\n\n\t\tconst passedArgs: string[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(...args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tassert.doesInclude(passedArgs, 'axios@0.21.3')\n\t}\n\n\t@test()\n\tprotected static async runsAddForAllDependenciesInPkgJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst name = await this.installRandomPackage()\n\t\tconst devName = await this.installRandomDevPackage()\n\t\tconst blocked = this.blockRandomPackages()\n\n\t\tconst { allDeps, allDevDeps } = this.loadAllDependencies(name, devName)\n\n\t\tlet passedArgs: any[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst features = await this.getFeatureInstaller().getInstalledFeatures()\n\n\t\tfor (const feature of features) {\n\t\t\tconst featureDependencies = feature.packageDependencies as NpmPackage[]\n\n\t\t\tconst deps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => !d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tconst devDeps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDevDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tfor (const d of deps) {\n\t\t\t\tassert.doesInclude(passedArgs[0], d)\n\t\t\t}\n\n\t\t\tfor (const d of devDeps) {\n\t\t\t\tassert.doesInclude(passedArgs[1], d)\n\t\t\t}\n\t\t}\n\n\t\tassert.doesNotInclude(passedArgs[0], blocked)\n\t\tassert.doesNotInclude(passedArgs[1], blocked)\n\t}\n\n\tprivate static loadAllDependencies(name: string, devName: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgJson = pkg.readPackage()\n\t\tconst allDeps = [...(Object.keys(pkgJson.dependencies) ?? []), name]\n\t\tconst allDevDeps = [\n\t\t\t...(Object.keys(pkgJson.devDependencies) ?? []),\n\t\t\tdevName,\n\t\t]\n\t\treturn { allDeps, allDevDeps }\n\t}\n\n\tprotected static async installRandomPackage() {\n\t\tconst names = ['moment', 'lodash']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name)\n\n\t\treturn name\n\t}\n\n\tprotected static async installRandomDevPackage() {\n\t\tconst names = ['chalk', 'axios']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name, { isDev: true })\n\n\t\treturn name\n\t}\n\n\tprotected static blockRandomPackages() {\n\t\tconst names = ['@sprucelabs/error', 'typescript']\n\t\tconst name = names[random(0, names.length - 1)]\n\n\t\tthis.action.blockUpgrade(name, this.Service('pkg'))\n\t\tthis.action.blockUpgrade('random', this.Service('pkg'))\n\n\t\treturn name\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"UpgradingANodeModule.test.js","names":["UpgradingANodeModuleTest","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","fakeCommand","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAiBA,iB,UAcA,iB;;;;;;;;;;;;;sGAxCD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAGO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,kBAA5C,CAHP;;cAAA;gBAKOC,gBALP,GAK0B,KAAKC,mBAAL,EAL1B;gBAMCD,gBAAgB,CAACE,wBAAjB,CAA0C,OAA1C;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gIASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,2BAAeC,WAAf,CAA2B,sBAA3B,EAAoD;kBAAEC,IAAI,EAAE;gBAAR,CAApD;;gBACAF,2BAAeC,WAAf,CAA2B,yBAA3B,EAAkD;kBAAEC,IAAI,EAAE;gBAAR,CAAlD;;gBACAF,2BAAeC,WAAf,CAA2B,uBAA3B,EAAgD;kBAAEC,IAAI,EAAE;gBAAR,CAAhD;;gBAJD;gBAAA,OAMO,KAAKC,UAAL,GAAkBC,EAAlB,CAAqB,qBAArB,EAA4C,YAAM;kBACvD,OAAO;oBACNC,MAAM,EAAEC;kBADF,CAAP;gBAGA,CAJK,CANP;;cAAA;gBAAA;gBAAA,OAYuB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAZvB;;cAAA;gBAYOC,OAZP;;gBAcCC,aAAOC,QAAP,CAAgBF,OAAO,CAACJ,MAAxB;;cAdD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wHAiBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOO,gBAFP,GAE0B,CAAC,sBAAD,EAAyB,sBAAzB,CAF1B;gBAAA;gBAAA,OAIuB,KAAKL,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAJvB;;cAAA;gBAIOC,OAJP;;gBAMCC,aAAOG,OAAP,CAAeJ,OAAO,CAACJ,MAAvB;;gBAEA,iCAAqBO,gBAArB,uCAAuC;kBAA5BE,MAA4B;kBAChCC,SADgC,GACpBC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiBJ,MAAjB,CAAvB,CADoB;;kBAEtCJ,aAAOS,OAAP,CAAeJ,SAAf,kCAAmDD,MAAnD;gBACA;;cAXF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4HAcA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEC,qBAAmB,CAAC,eAAD,EAAkB,cAAlB,CAAnB,4BAAsD;kBAA3CM,IAA2C;kBAC/CC,QAD+C,GACpC,KAAKH,WAAL,CAAiBE,IAAjB,CADoC;;kBAErDJ,2BAASM,SAAT,CAAmBD,QAAnB,EAA6B,aAA7B;gBACA;;gBAEDrB,2BAAeC,WAAf,CAA2B,QAA3B,EAAqC;kBACpCC,IAAI,EAAE;gBAD8B,CAArC;;gBAIMqB,OAXP,GAWiB,KAAKhB,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAXjB;gBAAA;gBAAA,OAaOgB,qBAASC,6BAAT,CAAuC,KAAKC,EAA5C,CAbP;;cAAA;gBAeChB,aAAOiB,OAAP,CACCX,2BAASY,QAAT,CAAkB,KAAKV,WAAL,CAAiB,cAAjB,CAAlB,CADD,EAEC,aAFD;;gBAfD;gBAAA,OAoBOK,OApBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAzCqDM,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts"],"names":["BROKEN_SKILL_INDEX_CONTENTS","UpgradingASkillTest","commandFaker","fakeRebuild","installAndBreakSkill","cli","fakeCleanBuild","fakeBuild","files","name","path","forceEverythingAction","forceRequiredSkipRestAction","upgradeMode","file","clearFileIfAboutToBeUpdated","Action","execute","results","checkHealth","passedHealthCheck","assert","isEqualDeep","skill","status","action","doesInclude","JSON","stringify","promise","waitForInput","assertFailedHealthCheck","last","ui","getLastInvocation","FILE_ACTION_OVERWRITE","sendInput","isFalsy","errors","health","isEqual","installBreakAndUpgradeSkill","FILE_ACTION_SKIP","assertSkillIsBroken","FILE_ACTION_ALWAYS_SKIP","installSkill","pkgService","Service","set","value","failedHealth","passedHealth","diskUtil","writeFile","resolvePath","cacheKey","indexFile","fixture","FeatureFixture","installFeatures","code","options","description","failedHealthCheck","contents","readFile","AbstractCliTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../../../constants'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { GeneratedFile } from '../../../types/cli.types'\nconst BROKEN_SKILL_INDEX_CONTENTS = \"throw new Error('cheese!')\\n\"\nexport default class UpgradingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test()\n\tprotected static async forceEverythingUpgradeOverwritesWhatHasChanged() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tthis.commandFaker.fakeCleanBuild()\n\t\tthis.commandFaker.fakeBuild()\n\n\t\tconst files: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t}[] = [\n\t\t\t{\n\t\t\t\tname: 'index.ts',\n\t\t\t\tpath: 'src/index.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: '.eslintrc.js',\n\t\t\t\tpath: '.eslintrc.js',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'SpruceError.ts',\n\t\t\t\tpath: 'src/errors/SpruceError.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'options.types.ts',\n\t\t\t\tpath: 'src/.spruce/errors/options.types.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t]\n\n\t\tfor (const upgradeMode of ['forceRequiredSkipRest', 'forceEverything']) {\n\t\t\tfor (const file of files) {\n\t\t\t\tthis.clearFileIfAboutToBeUpdated(file, upgradeMode)\n\t\t\t}\n\n\t\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\t\tupgradeMode,\n\t\t\t})\n\n\t\t\tif (upgradeMode === 'forceRequiredSkipRest') {\n\t\t\t\tconst passedHealthCheck = await cli.checkHealth()\n\t\t\t\tassert.isEqualDeep(passedHealthCheck, { skill: { status: 'passed' } })\n\t\t\t}\n\n\t\t\tfor (const file of files) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tconst action = file[`${upgradeMode}Action`]\n\t\t\t\tassert.doesInclude(\n\t\t\t\t\tresults.files,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: file.name,\n\t\t\t\t\t\taction,\n\t\t\t\t\t},\n\t\t\t\t\t`${\n\t\t\t\t\t\tfile.name\n\t\t\t\t\t} was not ${action} when ${upgradeMode} in \\n\\n ${JSON.stringify(\n\t\t\t\t\t\tresults.files ?? [],\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tconst passedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(passedHealthCheck, {\n\t\t\t'skill.status': 'passed',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async upgradeWillAskIfYouWantToOverwriteFiles() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_OVERWRITE,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_OVERWRITE)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'passed')\n\t}\n\n\t@test()\n\tprotected static async canSkipFile() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async canAlwaysSkipFiles() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_ALWAYS_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async upgradesUpdatesPackageScripts() {\n\t\tconst cli = await this.installSkill('schemas')\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tpkgService.set({ path: 'scripts', value: {} })\n\n\t\tconst failedHealth = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealth, {\n\t\t\t'skill.errors[].message': '\"health.local\" not found',\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst passedHealth = await cli.checkHealth()\n\t\tassert.isEqual(passedHealth.skill.status, 'passed')\n\t}\n\n\tprivate static clearFileIfAboutToBeUpdated(\n\t\tfile: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t},\n\t\tupgradeMode: string\n\t) {\n\t\t//@ts-ignore\n\t\tif (file[`${upgradeMode}Action`] === 'updated') {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file.path), '')\n\t\t}\n\t}\n\n\tprivate static async installAndBreakSkill(cacheKey: string) {\n\t\tconst cli = await this.installSkill(cacheKey)\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tdiskUtil.writeFile(indexFile, BROKEN_SKILL_INDEX_CONTENTS)\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\treturn cli\n\t}\n\n\tprivate static async installSkill(cacheKey: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\t\treturn cli\n\t}\n\n\tprivate static async assertFailedHealthCheck(cli: CliInterface) {\n\t\tconst failedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealthCheck, {\n\t\t\t'skill.errors[].message': 'cheese',\n\t\t})\n\t}\n\n\tprivate static async installBreakAndUpgradeSkill() {\n\t\tawait this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\treturn { last, promise }\n\t}\n\n\tprivate static assertSkillIsBroken() {\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tconst contents = diskUtil.readFile(indexFile)\n\t\tassert.isEqual(contents, BROKEN_SKILL_INDEX_CONTENTS)\n\t}\n}\n"],"file":"UpgradingASkill.test.js"}
|
|
1
|
+
{"version":3,"file":"UpgradingASkill.test.js","names":["BROKEN_SKILL_INDEX_CONTENTS","UpgradingASkillTest","commandFaker","fakeRebuild","installAndBreakSkill","cli","fakeCleanBuild","fakeBuild","files","name","path","forceEverythingAction","forceRequiredSkipRestAction","upgradeMode","file","clearFileIfAboutToBeUpdated","Action","execute","results","checkHealth","passedHealthCheck","assert","isEqualDeep","skill","status","action","doesInclude","JSON","stringify","promise","waitForInput","assertFailedHealthCheck","last","ui","getLastInvocation","FILE_ACTION_OVERWRITE","sendInput","isFalsy","errors","health","isEqual","installBreakAndUpgradeSkill","FILE_ACTION_SKIP","assertSkillIsBroken","FILE_ACTION_ALWAYS_SKIP","installSkill","pkgService","Service","set","value","failedHealth","passedHealth","diskUtil","writeFile","resolvePath","cacheKey","indexFile","fixture","FeatureFixture","installFeatures","code","options","description","failedHealthCheck","contents","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../../../constants'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { GeneratedFile } from '../../../types/cli.types'\nconst BROKEN_SKILL_INDEX_CONTENTS = \"throw new Error('cheese!')\\n\"\nexport default class UpgradingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test()\n\tprotected static async forceEverythingUpgradeOverwritesWhatHasChanged() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tthis.commandFaker.fakeCleanBuild()\n\t\tthis.commandFaker.fakeBuild()\n\n\t\tconst files: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t}[] = [\n\t\t\t{\n\t\t\t\tname: 'index.ts',\n\t\t\t\tpath: 'src/index.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: '.eslintrc.js',\n\t\t\t\tpath: '.eslintrc.js',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'SpruceError.ts',\n\t\t\t\tpath: 'src/errors/SpruceError.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'options.types.ts',\n\t\t\t\tpath: 'src/.spruce/errors/options.types.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t]\n\n\t\tfor (const upgradeMode of ['forceRequiredSkipRest', 'forceEverything']) {\n\t\t\tfor (const file of files) {\n\t\t\t\tthis.clearFileIfAboutToBeUpdated(file, upgradeMode)\n\t\t\t}\n\n\t\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\t\tupgradeMode,\n\t\t\t})\n\n\t\t\tif (upgradeMode === 'forceRequiredSkipRest') {\n\t\t\t\tconst passedHealthCheck = await cli.checkHealth()\n\t\t\t\tassert.isEqualDeep(passedHealthCheck, { skill: { status: 'passed' } })\n\t\t\t}\n\n\t\t\tfor (const file of files) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tconst action = file[`${upgradeMode}Action`]\n\t\t\t\tassert.doesInclude(\n\t\t\t\t\tresults.files,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: file.name,\n\t\t\t\t\t\taction,\n\t\t\t\t\t},\n\t\t\t\t\t`${\n\t\t\t\t\t\tfile.name\n\t\t\t\t\t} was not ${action} when ${upgradeMode} in \\n\\n ${JSON.stringify(\n\t\t\t\t\t\tresults.files ?? [],\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tconst passedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(passedHealthCheck, {\n\t\t\t'skill.status': 'passed',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async upgradeWillAskIfYouWantToOverwriteFiles() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_OVERWRITE,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_OVERWRITE)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'passed')\n\t}\n\n\t@test()\n\tprotected static async canSkipFile() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async canAlwaysSkipFiles() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_ALWAYS_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async upgradesUpdatesPackageScripts() {\n\t\tconst cli = await this.installSkill('schemas')\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tpkgService.set({ path: 'scripts', value: {} })\n\n\t\tconst failedHealth = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealth, {\n\t\t\t'skill.errors[].message': '\"health.local\" not found',\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst passedHealth = await cli.checkHealth()\n\t\tassert.isEqual(passedHealth.skill.status, 'passed')\n\t}\n\n\tprivate static clearFileIfAboutToBeUpdated(\n\t\tfile: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t},\n\t\tupgradeMode: string\n\t) {\n\t\t//@ts-ignore\n\t\tif (file[`${upgradeMode}Action`] === 'updated') {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file.path), '')\n\t\t}\n\t}\n\n\tprivate static async installAndBreakSkill(cacheKey: string) {\n\t\tconst cli = await this.installSkill(cacheKey)\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tdiskUtil.writeFile(indexFile, BROKEN_SKILL_INDEX_CONTENTS)\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\treturn cli\n\t}\n\n\tprivate static async installSkill(cacheKey: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\t\treturn cli\n\t}\n\n\tprivate static async assertFailedHealthCheck(cli: CliInterface) {\n\t\tconst failedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealthCheck, {\n\t\t\t'skill.errors[].message': 'cheese',\n\t\t})\n\t}\n\n\tprivate static async installBreakAndUpgradeSkill() {\n\t\tawait this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\treturn { last, promise }\n\t}\n\n\tprivate static assertSkillIsBroken() {\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tconst contents = diskUtil.readFile(indexFile)\n\t\tassert.isEqual(contents, BROKEN_SKILL_INDEX_CONTENTS)\n\t}\n}\n"],"mappings":"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"}
|