@sprucelabs/spruce-cli 15.4.11 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.d.ts +2 -1
- package/build/features/schema/stores/SchemaStore.js +2 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js +0 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +36 -36
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
- package/src/features/schema/stores/SchemaStore.ts +4 -2
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
- package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JestJsonParser.test.js","names":["JestJsonParserTest","parser","JestJsonParser","assert","isTruthy","write","startRun","generateTestResults","testResults","getResults","isEqualDeep","totalTestFiles","data","testFiles","isLength","path","status","jestStatus","testFile","START_DIVIDER","END_DIVIDER","JSON","stringify","Error","substr","isFalsy","firstPart","secondPart","firstSelfContained","splitIdx","length","completed","tests","name","errorMessages","duration","errorMessage","find","file","totalTestFilesComplete","totalFailed","totalPassed","totalTests","totalSkipped","totalTodo","AbstractSpruceTest"],"sources":["../../../src/__tests__/implementation/JestJsonParser.test.ts"],"sourcesContent":["import { START_DIVIDER, END_DIVIDER } from '@sprucelabs/jest-json-reporter'\nimport AbstractSpruceTest, { test, assert } from '@sprucelabs/test'\nimport JestJsonParser, { JsonResultKeys } from '../../tests/JestJsonParser'\nimport onTestFileResult from '../support/onTestFileResult'\nexport default class JestJsonParserTest extends AbstractSpruceTest {\n\tprivate static parser: JestJsonParser\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.parser = new JestJsonParser()\n\t}\n\n\t@test()\n\tprotected static canCreateJjp() {\n\t\tassert.isTruthy(this.parser.write)\n\t}\n\n\t@test()\n\tprotected static generatesEmptyResults() {\n\t\tconst startRun = this.generateTestResults('onRunStart')\n\n\t\tthis.parser.write(startRun)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 43,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandleSelfContainedWrite() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(this.generateTestResults('onRunStart'))\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isTruthy(testResults.testFiles)\n\n\t\tassert.isLength(testResults.testFiles, 1)\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\tprivate static generateTestResults(\n\t\tjestStatus: JsonResultKeys,\n\t\ttestFile?: string\n\t): string {\n\t\tswitch (jestStatus) {\n\t\t\tcase 'onRunStart':\n\t\t\t\treturn `${START_DIVIDER}{\"status\":\"onRunStart\",\"results\":{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":43,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1603459399575,\"success\":false,\"testResults\":[],\"wasInterrupted\":false}}${END_DIVIDER}`\n\t\t\tcase 'onTestFileStart':\n\t\t\t\treturn `${START_DIVIDER}{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/var/folders/qw/v2bfr0c94bn37vclwvcltsj40000gn/T/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\".[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\".pnp.[^/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":40472,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/${testFile}\"}}${END_DIVIDER}`\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn `${START_DIVIDER}${JSON.stringify(\n\t\t\t\t\tonTestFileResult(testFile ?? 'missing')\n\t\t\t\t)}${END_DIVIDER}`\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Status not implemented')\n\t\t}\n\t}\n\n\t@test()\n\tprotected static canHandleSelfContainedWriteWithTwoTests() {\n\t\tconst data =\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t\t) +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/RunningTests.test.js'\n\t\t\t)\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t\tassert.isEqualDeep(testResults.testFiles, [\n\t\t\t{\n\t\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: `behavioral/tests/RunningTests.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static multipleSelfContainedWritesWorks() {\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t`behavioral/errors/CreatingANewErrorBuilder.test.js`\n\t\t\t)\n\t\t)\n\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t`behavioral/tests/RunningTests.test.js`\n\t\t\t)\n\t\t)\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t\tassert.isEqualDeep(testResults.testFiles, [\n\t\t\t{\n\t\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: `behavioral/tests/RunningTests.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static partialWriteReturnsNothing() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t).substr(0, 100)\n\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isFalsy(testResults.testFiles)\n\t}\n\n\t@test()\n\tprotected static canPartialWriteAcrossTwoWrites() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t)\n\n\t\tconst firstPart = data.substr(0, 100)\n\t\tconst secondPart = data.substr(100)\n\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 1)\n\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/KeepingErrorsInSync.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canPartialWriteAndSelfContainedAcrossThreeWrites() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t)\n\n\t\tconst firstPart = data.substr(0, 100)\n\t\tconst secondPart = data.substr(100)\n\n\t\tthis.parser.write(this.generateTestResults('onRunStart'))\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\t\t)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 43,\n\t\t\ttestFiles: [\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/errors/KeepingErrorsInSync.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canSelfContainedPlusPartial() {\n\t\tconst firstSelfContained = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t`behavioral/errors/KeepingErrorsInSync.test.js`\n\t\t)\n\t\tconst data =\n\t\t\tfirstSelfContained +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\n\t\tconst splitIdx = firstSelfContained.length + 500\n\t\tconst firstPart = data.substr(0, splitIdx)\n\t\tconst secondPart = data.substr(splitIdx)\n\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/KeepingErrorsInSync.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\n\t\tassert.isEqualDeep(testResults.testFiles[1], {\n\t\t\tpath: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandleGarbageAtFrontOfData() {\n\t\tconst data =\n\t\t\t'yarn test run\\nother garbage' +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 1)\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandlesSplitTestRestsWithGarbageInFrontAndDanglingEnd() {\n\t\tthis.parser.write(\n\t\t\t'yarn run go team ***************************START_JSON_DIVIDER***************************'\n\t\t)\n\t\tthis.parser.write(\n\t\t\t'{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\".[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\".pnp.[^/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":50540,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/tests/RunningTests.test.js\"}}'\n\t\t)\n\t\t/* eslint-disable no-useless-escape */\n\t\tthis.parser\n\t\t\t.write(`***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\"\\.[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\"\\.pnp\\.[^\\/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":48733,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js\"}}\n\t\t\t***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\"\\.[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\"\\.pnp\\.[^\\/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":17443,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/watchers/WatchingForChanges.test.js\"}}`)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t}\n\n\t@test()\n\tprotected static canUpdateAsTestsCompletes() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(data)\n\n\t\tconst completed = this.generateTestResults(\n\t\t\t'onTestFileResult',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(completed)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 11)\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 39,\n\t\t\ttestFiles: [\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/errors/CreatingANewErrorBuilder.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/CasualNameUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'No name returns friend',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 2,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Just last name to just last name',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'First name only to first name only',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'last and first name to First Last initial',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/PhoneUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canMatchDummyNumber',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/TokenUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'exists',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGenerateTokenForPerson',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 10,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'generatesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'decodesAndVerifiesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'decodesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'verifyFailsOnBadSecret',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 17,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/RoleStore.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canCreateOrgStore',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 4,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGenerateBaseRoles',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 80,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/PersonRoleStore.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'personRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 6,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGivePersonGlobalRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 88,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGiveRoleAndThenTakeItAway',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 25,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canAssignOrgRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 30,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'removeRoleFromOrgDoesNotRemoveGlobal',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 28,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'cantAssignSameRoleTwice',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 14,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canAddRemoveThenReAddRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 18,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'removesTheCorrectRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 19,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/ContractValidator.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canRegisterContract',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 2,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'cannotMixinContractWithDuplicateEvents',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canClearEventsFromContract',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'clearingUnknownEventThrowsError',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/MercuryServer.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canCreateServer',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 28,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'throwsWhenEmittingBadEvent',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 21,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/UpdatingARole.test.ts',\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrorMessage: testResults.testFiles.find(\n\t\t\t\t\t\t(file) => file.path === 'behavioral/UpdatingARole.test.ts'\n\t\t\t\t\t)?.errorMessage,\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'hasUpdateRoleEvent',\n\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\terrorMessages: testResults.testFiles.find(\n\t\t\t\t\t\t\t\t(file) => file.path === 'behavioral/UpdatingARole.test.ts'\n\t\t\t\t\t\t\t)?.tests?.[0]?.errorMessages,\n\t\t\t\t\t\t\tduration: 24,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/SkillGenerator.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canInstantiate',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'generatesNewSkillValuesByName',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/Database.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'throws error when updating record not found (neDb)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 3,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can delete record (mongo)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 47,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can upsert (neDb)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can create a compound field unique index (mongo)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 82,\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\ttotalTestFilesComplete: 20,\n\t\t\ttotalFailed: 1,\n\t\t\ttotalPassed: 181,\n\t\t\ttotalTests: 183,\n\t\t\ttotalSkipped: 1,\n\t\t\ttotalTodo: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JestJsonParser.test.js","names":["JestJsonParserTest","test","parser","JestJsonParser","assert","isTruthy","write","startRun","generateTestResults","testResults","getResults","isEqualDeep","totalTestFiles","data","testFiles","isLength","path","status","jestStatus","testFile","START_DIVIDER","END_DIVIDER","JSON","stringify","onTestFileResult","Error","substr","isFalsy","firstPart","secondPart","firstSelfContained","splitIdx","length","completed","tests","name","errorMessages","duration","errorMessage","find","file","totalTestFilesComplete","totalFailed","totalPassed","totalTests","totalSkipped","totalTodo","AbstractSpruceTest"],"sources":["../../../src/__tests__/implementation/JestJsonParser.test.ts"],"sourcesContent":["import { START_DIVIDER, END_DIVIDER } from '@sprucelabs/jest-json-reporter'\nimport AbstractSpruceTest, { test, assert } from '@sprucelabs/test'\nimport JestJsonParser, { JsonResultKeys } from '../../tests/JestJsonParser'\nimport onTestFileResult from '../support/onTestFileResult'\nexport default class JestJsonParserTest extends AbstractSpruceTest {\n\tprivate static parser: JestJsonParser\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.parser = new JestJsonParser()\n\t}\n\n\t@test()\n\tprotected static canCreateJjp() {\n\t\tassert.isTruthy(this.parser.write)\n\t}\n\n\t@test()\n\tprotected static generatesEmptyResults() {\n\t\tconst startRun = this.generateTestResults('onRunStart')\n\n\t\tthis.parser.write(startRun)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 43,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandleSelfContainedWrite() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(this.generateTestResults('onRunStart'))\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isTruthy(testResults.testFiles)\n\n\t\tassert.isLength(testResults.testFiles, 1)\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\tprivate static generateTestResults(\n\t\tjestStatus: JsonResultKeys,\n\t\ttestFile?: string\n\t): string {\n\t\tswitch (jestStatus) {\n\t\t\tcase 'onRunStart':\n\t\t\t\treturn `${START_DIVIDER}{\"status\":\"onRunStart\",\"results\":{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":0,\"numPassedTests\":0,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":43,\"numTotalTests\":0,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1603459399575,\"success\":false,\"testResults\":[],\"wasInterrupted\":false}}${END_DIVIDER}`\n\t\t\tcase 'onTestFileStart':\n\t\t\t\treturn `${START_DIVIDER}{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/var/folders/qw/v2bfr0c94bn37vclwvcltsj40000gn/T/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\".[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\".pnp.[^/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":40472,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/${testFile}\"}}${END_DIVIDER}`\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn `${START_DIVIDER}${JSON.stringify(\n\t\t\t\t\tonTestFileResult(testFile ?? 'missing')\n\t\t\t\t)}${END_DIVIDER}`\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Status not implemented')\n\t\t}\n\t}\n\n\t@test()\n\tprotected static canHandleSelfContainedWriteWithTwoTests() {\n\t\tconst data =\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t\t) +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/RunningTests.test.js'\n\t\t\t)\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t\tassert.isEqualDeep(testResults.testFiles, [\n\t\t\t{\n\t\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: `behavioral/tests/RunningTests.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static multipleSelfContainedWritesWorks() {\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t`behavioral/errors/CreatingANewErrorBuilder.test.js`\n\t\t\t)\n\t\t)\n\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t`behavioral/tests/RunningTests.test.js`\n\t\t\t)\n\t\t)\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t\tassert.isEqualDeep(testResults.testFiles, [\n\t\t\t{\n\t\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: `behavioral/tests/RunningTests.test.ts`,\n\t\t\t\tstatus: 'running',\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static partialWriteReturnsNothing() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t).substr(0, 100)\n\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isFalsy(testResults.testFiles)\n\t}\n\n\t@test()\n\tprotected static canPartialWriteAcrossTwoWrites() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t)\n\n\t\tconst firstPart = data.substr(0, 100)\n\t\tconst secondPart = data.substr(100)\n\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 1)\n\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/KeepingErrorsInSync.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canPartialWriteAndSelfContainedAcrossThreeWrites() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/KeepingErrorsInSync.test.js'\n\t\t)\n\n\t\tconst firstPart = data.substr(0, 100)\n\t\tconst secondPart = data.substr(100)\n\n\t\tthis.parser.write(this.generateTestResults('onRunStart'))\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\t\tthis.parser.write(\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\t\t)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 43,\n\t\t\ttestFiles: [\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/errors/KeepingErrorsInSync.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canSelfContainedPlusPartial() {\n\t\tconst firstSelfContained = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t`behavioral/errors/KeepingErrorsInSync.test.js`\n\t\t)\n\t\tconst data =\n\t\t\tfirstSelfContained +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/tests/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\n\t\tconst splitIdx = firstSelfContained.length + 500\n\t\tconst firstPart = data.substr(0, splitIdx)\n\t\tconst secondPart = data.substr(splitIdx)\n\n\t\tthis.parser.write(firstPart)\n\t\tthis.parser.write(secondPart)\n\n\t\tconst testResults = this.parser.getResults()\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/KeepingErrorsInSync.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\n\t\tassert.isEqualDeep(testResults.testFiles[1], {\n\t\t\tpath: 'behavioral/tests/CreatingANewErrorBuilder.test.ts',\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandleGarbageAtFrontOfData() {\n\t\tconst data =\n\t\t\t'yarn test run\\nother garbage' +\n\t\t\tthis.generateTestResults(\n\t\t\t\t'onTestFileStart',\n\t\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t\t)\n\t\tthis.parser.write(data)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 1)\n\t\tassert.isEqualDeep(testResults.testFiles[0], {\n\t\t\tpath: `behavioral/errors/CreatingANewErrorBuilder.test.ts`,\n\t\t\tstatus: 'running',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canHandlesSplitTestRestsWithGarbageInFrontAndDanglingEnd() {\n\t\tthis.parser.write(\n\t\t\t'yarn run go team ***************************START_JSON_DIVIDER***************************'\n\t\t)\n\t\tthis.parser.write(\n\t\t\t'{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\".[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\".pnp.[^/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":50540,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/tests/RunningTests.test.js\"}}'\n\t\t)\n\t\t/* eslint-disable no-useless-escape */\n\t\tthis.parser\n\t\t\t.write(`***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\"\\.[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\"\\.pnp\\.[^\\/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":48733,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js\"}}\n\t\t\t***************************END_JSON_DIVIDER***************************\n\t\t\t***************************START_JSON_DIVIDER***************************\n\t\t\t{\"status\":\"onTestFileStart\",\"test\":{\"context\":{\"config\":{\"automock\":false,\"cache\":true,\"cacheDirectory\":\"/private/tmp/jest_dx\",\"clearMocks\":false,\"coveragePathIgnorePatterns\":[\"/node_modules/\"],\"cwd\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"detectLeaks\":false,\"detectOpenHandles\":false,\"errorOnDeprecated\":false,\"extraGlobals\":[],\"forceCoverageMatch\":[],\"globals\":{},\"haste\":{\"computeSha1\":false,\"throwOnModuleCollision\":false},\"injectGlobals\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleFileExtensions\":[\"js\",\"json\",\"jsx\",\"ts\",\"tsx\",\"node\"],\"moduleNameMapper\":[[\"^#spruce/schemas/fields/(.*)\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\"],[\"^#spruce/(.*)$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\"]],\"modulePathIgnorePatterns\":[],\"name\":\"44406c6bd09f4805a9dd2ad1a17b150c\",\"prettierPath\":\"prettier\",\"resetMocks\":false,\"resetModules\":false,\"restoreMocks\":false,\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"roots\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"],\"runner\":\"jest-runner\",\"setupFiles\":[],\"setupFilesAfterEnv\":[],\"skipFilter\":false,\"slowTestThreshold\":5,\"snapshotSerializers\":[],\"testEnvironment\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js\",\"testEnvironmentOptions\":{},\"testLocationInResults\":false,\"testMatch\":[\"**/__tests__/**/*.test.js?(x)\"],\"testPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/\"],\"testRegex\":[],\"testRunner\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js\",\"testURL\":\"http://localhost\",\"timers\":\"real\",\"transform\":[[\"\\.[jt]sx?$\",\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js\",{}]],\"transformIgnorePatterns\":[\"/node_modules/\",\"\\.pnp\\.[^\\/]+$\"],\"watchPathIgnorePatterns\":[\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/\"]},\"hasteFS\":{\"_rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\",\"_files\":{}},\"moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"resolver\":{\"_options\":{\"extensions\":[\".js\",\".json\",\".jsx\",\".ts\",\".tsx\",\".node\"],\"hasCoreModules\":true,\"moduleDirectories\":[\"node_modules\"],\"moduleNameMapper\":[{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1\",\"regex\":{}},{\"moduleName\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1\",\"regex\":{}}],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleMap\":{\"duplicates\":[],\"map\":[[\"@sprucelabs/spruce-cli\",{\"g\":[\"package.json\",1]}]],\"mocks\":[],\"rootDir\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli\"},\"_moduleIDCache\":{},\"_moduleNameCache\":{},\"_modulePathCache\":{},\"_supportsNativePlatform\":false}},\"duration\":17443,\"path\":\"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/watchers/WatchingForChanges.test.js\"}}`)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 2)\n\t}\n\n\t@test()\n\tprotected static canUpdateAsTestsCompletes() {\n\t\tconst data = this.generateTestResults(\n\t\t\t'onTestFileStart',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(data)\n\n\t\tconst completed = this.generateTestResults(\n\t\t\t'onTestFileResult',\n\t\t\t'behavioral/errors/CreatingANewErrorBuilder.test.js'\n\t\t)\n\n\t\tthis.parser.write(completed)\n\n\t\tconst testResults = this.parser.getResults()\n\n\t\tassert.isTruthy(testResults.testFiles)\n\t\tassert.isLength(testResults.testFiles, 11)\n\n\t\tassert.isEqualDeep(testResults, {\n\t\t\ttotalTestFiles: 39,\n\t\t\ttestFiles: [\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/errors/CreatingANewErrorBuilder.test.ts',\n\t\t\t\t\tstatus: 'running',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/CasualNameUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'No name returns friend',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 2,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'Just last name to just last name',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'First name only to first name only',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'last and first name to First Last initial',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/PhoneUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canMatchDummyNumber',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/TokenUtility.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'exists',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGenerateTokenForPerson',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 10,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'generatesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'decodesAndVerifiesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'decodesValidToken',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'verifyFailsOnBadSecret',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 17,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/RoleStore.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canCreateOrgStore',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 4,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGenerateBaseRoles',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 80,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/PersonRoleStore.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'personRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 6,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGivePersonGlobalRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 88,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canGiveRoleAndThenTakeItAway',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 25,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canAssignOrgRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 30,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'removeRoleFromOrgDoesNotRemoveGlobal',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 28,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'cantAssignSameRoleTwice',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 14,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canAddRemoveThenReAddRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 18,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'removesTheCorrectRole',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 19,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/ContractValidator.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canRegisterContract',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 2,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'cannotMixinContractWithDuplicateEvents',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canClearEventsFromContract',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'clearingUnknownEventThrowsError',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/MercuryServer.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canCreateServer',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 28,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'throwsWhenEmittingBadEvent',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 21,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'behavioral/UpdatingARole.test.ts',\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrorMessage: testResults.testFiles.find(\n\t\t\t\t\t\t(file) => file.path === 'behavioral/UpdatingARole.test.ts'\n\t\t\t\t\t)?.errorMessage,\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'hasUpdateRoleEvent',\n\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\terrorMessages: testResults.testFiles.find(\n\t\t\t\t\t\t\t\t(file) => file.path === 'behavioral/UpdatingARole.test.ts'\n\t\t\t\t\t\t\t)?.tests?.[0]?.errorMessages,\n\t\t\t\t\t\t\tduration: 24,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/SkillGenerator.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'canInstantiate',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'generatesNewSkillValuesByName',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'implementation/Database.test.ts',\n\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\ttests: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'throws error when updating record not found (neDb)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 3,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can delete record (mongo)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 47,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can upsert (neDb)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 5,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'can create a compound field unique index (mongo)',\n\t\t\t\t\t\t\tstatus: 'passed',\n\t\t\t\t\t\t\terrorMessages: [],\n\t\t\t\t\t\t\tduration: 82,\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\ttotalTestFilesComplete: 20,\n\t\t\ttotalFailed: 1,\n\t\t\ttotalPassed: 181,\n\t\t\ttotalTests: 183,\n\t\t\ttotalSkipped: 1,\n\t\t\ttotalTodo: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintService.test.js","names":["LintServiceTest","LintService","enableLinting","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","stdout","assert","doesThrowAsync","Service","fix","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/LintService.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport LintService from '../../services/LintService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class LintServiceTest extends AbstractCliTest {\n\t@test()\n\tprotected static async throwsWhenLintReturnsMessage() {\n\t\tLintService.enableLinting()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tCommandService.fakeCommand(/node/, {\n\t\t\tcode: 0,\n\t\t\tstdout: `[{\"filePath\":\"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts\",\"messages\":[{\"fatal\":false,\"severity\":1,\"message\":\"File ignored by default. Use a negated ignore pattern (like \\\\\"--ignore-pattern '!<relative/path/to/filename>'\\\\\") to override.\"}],\"errorCount\":1,\"warningCount\":0,\"fixableErrorCount\":0,\"fixableWarningCount\":0,\"usedDeprecatedRules\":[]}]\\n`,\n\t\t})\n\n\t\tawait assert.doesThrowAsync(() => this.Service('lint').fix('./go'))\n\t}\n\n\t@test()\n\tprotected static async worksWhenNoMessagesReturned() {\n\t\tLintService.enableLinting()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tCommandService.fakeCommand(/node/, {\n\t\t\tcode: 0,\n\t\t\tstdout: `[{\"filePath\":\"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts\",\"messages\":[{\"fatal\":false,\"severity\":1,\"message\":\"File ignored by default. Use a negated ignore pattern (like \\\\\"--ignore-pattern '!<relative/path/to/filename>'\\\\\") to override.\"}],\"errorCount\":0,\"warningCount\":1,\"fixableErrorCount\":0,\"fixableWarningCount\":0,\"usedDeprecatedRules\":[]}]\\n`,\n\t\t})\n\n\t\tawait this.Service('lint').fix('./go')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,e,WACnB,
|
|
1
|
+
{"version":3,"file":"LintService.test.js","names":["LintServiceTest","test","LintService","enableLinting","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","code","stdout","assert","doesThrowAsync","Service","fix","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/LintService.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport LintService from '../../services/LintService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class LintServiceTest extends AbstractCliTest {\n\t@test()\n\tprotected static async throwsWhenLintReturnsMessage() {\n\t\tLintService.enableLinting()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tCommandService.fakeCommand(/node/, {\n\t\t\tcode: 0,\n\t\t\tstdout: `[{\"filePath\":\"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts\",\"messages\":[{\"fatal\":false,\"severity\":1,\"message\":\"File ignored by default. Use a negated ignore pattern (like \\\\\"--ignore-pattern '!<relative/path/to/filename>'\\\\\") to override.\"}],\"errorCount\":1,\"warningCount\":0,\"fixableErrorCount\":0,\"fixableWarningCount\":0,\"usedDeprecatedRules\":[]}]\\n`,\n\t\t})\n\n\t\tawait assert.doesThrowAsync(() => this.Service('lint').fix('./go'))\n\t}\n\n\t@test()\n\tprotected static async worksWhenNoMessagesReturned() {\n\t\tLintService.enableLinting()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tCommandService.fakeCommand(/node/, {\n\t\t\tcode: 0,\n\t\t\tstdout: `[{\"filePath\":\"/Users/taylorromero/Development/SpruceLabs/spruce-appointments-skill/src/.spruce/stores/stores.types.ts\",\"messages\":[{\"fatal\":false,\"severity\":1,\"message\":\"File ignored by default. Use a negated ignore pattern (like \\\\\"--ignore-pattern '!<relative/path/to/filename>'\\\\\") to override.\"}],\"errorCount\":0,\"warningCount\":1,\"fixableErrorCount\":0,\"fixableWarningCount\":0,\"usedDeprecatedRules\":[]}]\\n`,\n\t\t})\n\n\t\tawait this.Service('lint').fix('./go')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,e,WACnB,IAAAC,UAAA,G,UAcA,IAAAA,UAAA,G;;;;;;;;;;;;;wHAdD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAECC,uBAAA,CAAYC,aAAZ;;gBAFD;gBAAA,OAIO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAJP;;cAAA;gBAMCC,0BAAA,CAAeC,WAAf,CAA2B,MAA3B,EAAmC;kBAClCC,IAAI,EAAE,CAD4B;kBAElCC,MAAM;gBAF4B,CAAnC;;gBAND;gBAAA,OAWOC,YAAA,CAAOC,cAAP,CAAsB;kBAAA,OAAM,KAAI,CAACC,OAAL,CAAa,MAAb,EAAqBC,GAArB,CAAyB,MAAzB,CAAN;gBAAA,CAAtB,CAXP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uHAcA;QAAA;UAAA;YAAA;cAAA;gBAECX,uBAAA,CAAYC,aAAZ;;gBAFD;gBAAA,OAIO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAJP;;cAAA;gBAMCC,0BAAA,CAAeC,WAAf,CAA2B,MAA3B,EAAmC;kBAClCC,IAAI,EAAE,CAD4B;kBAElCC,MAAM;gBAF4B,CAAnC;;gBAND;gBAAA,OAWO,KAAKG,OAAL,CAAa,MAAb,EAAqBC,GAArB,CAAyB,MAAzB,CAXP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAf4CC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListenerStore.test.js","names":["ListenerStoreTest","fake","login","listenerStore","Store","expected","resolvePath","assert","isEqual","generateGlobbyPattern","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ListenerStore.test.ts"],"sourcesContent":["import { fake } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\n@fake.login()\nexport default class ListenerStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static canCreateListenerStore() {\n\t\tconst listenerStore = this.Store('listener')\n\t\tconst expected = this.resolvePath('src', '**/*.listener.ts')\n\t\t//@ts-ignore\n\t\tassert.isEqual(expected, listenerStore.generateGlobbyPattern())\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAGqBA,iB,WADpBC,
|
|
1
|
+
{"version":3,"file":"ListenerStore.test.js","names":["ListenerStoreTest","fake","login","test","listenerStore","Store","expected","resolvePath","assert","isEqual","generateGlobbyPattern","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ListenerStore.test.ts"],"sourcesContent":["import { fake } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\n@fake.login()\nexport default class ListenerStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static canCreateListenerStore() {\n\t\tconst listenerStore = this.Store('listener')\n\t\tconst expected = this.resolvePath('src', '**/*.listener.ts')\n\t\t//@ts-ignore\n\t\tassert.isEqual(expected, listenerStore.generateGlobbyPattern())\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAGqBA,iB,WADpBC,wBAAA,CAAKC,KAAL,E,UAEC,IAAAC,UAAA,G;;;;;;;;;;;;WAAD,kCAC0C;MACzC,IAAMC,aAAa,GAAG,KAAKC,KAAL,CAAW,UAAX,CAAtB;MACA,IAAMC,QAAQ,GAAG,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,kBAAxB,CAAjB,CAFyC,CAGzC;;MACAC,YAAA,CAAOC,OAAP,CAAeH,QAAf,EAAyBF,aAAa,CAACM,qBAAd,EAAzB;IACA;;;EAP6CC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingScriptLoader.test.js","names":["OnboardingScriptLoaderTest","assert","isFunction","ScriptLoader","LoadScripts","Player","player","isTrue","ScriptPlayer","ui","dir","resolveTestPath","onboardingStore","Store","commandExecuter","command","commandExecuterCommands","push","playScriptWithKey","doesInclude","invocations","options","message","isLength","isEqual","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingScriptLoader.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ScriptLoader from '../../features/onboard/ScriptLoader'\nimport ScriptPlayer from '../../features/onboard/ScriptPlayer'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingScriptLoaderTest extends AbstractCliTest {\n\tprivate static commandExecuterCommands: string[] = []\n\n\t@test()\n\tprotected static scripLoaderLoadScriptsFunction() {\n\t\tassert.isFunction(ScriptLoader.LoadScripts)\n\t}\n\n\t@test()\n\tprotected static async loadingScriptsReturnsPlayer() {\n\t\tconst player = await this.Player()\n\t\tassert.isTrue(player instanceof ScriptPlayer)\n\t}\n\n\tprivate static async Player() {\n\t\treturn await ScriptLoader.LoadScripts({\n\t\t\tui: this.ui,\n\t\t\tdir: this.resolveTestPath('../support/scripts'),\n\t\t\tonboardingStore: this.Store('onboarding'),\n\t\t\tcommandExecuter: async (command: string) => {\n\t\t\t\tthis.commandExecuterCommands.push(command)\n\t\t\t},\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async playsLoadedScripts() {\n\t\tconst player = await this.Player()\n\n\t\tawait player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello world' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'second script' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'the last script' },\n\t\t})\n\n\t\tassert.isLength(this.commandExecuterCommands, 1)\n\t\tassert.isEqual(\n\t\t\tthis.commandExecuterCommands[0],\n\t\t\t'first script command executed'\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,0B,WAGnB,
|
|
1
|
+
{"version":3,"file":"OnboardingScriptLoader.test.js","names":["OnboardingScriptLoaderTest","test","assert","isFunction","ScriptLoader","LoadScripts","Player","player","isTrue","ScriptPlayer","ui","dir","resolveTestPath","onboardingStore","Store","commandExecuter","command","commandExecuterCommands","push","playScriptWithKey","doesInclude","invocations","options","message","isLength","isEqual","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingScriptLoader.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ScriptLoader from '../../features/onboard/ScriptLoader'\nimport ScriptPlayer from '../../features/onboard/ScriptPlayer'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingScriptLoaderTest extends AbstractCliTest {\n\tprivate static commandExecuterCommands: string[] = []\n\n\t@test()\n\tprotected static scripLoaderLoadScriptsFunction() {\n\t\tassert.isFunction(ScriptLoader.LoadScripts)\n\t}\n\n\t@test()\n\tprotected static async loadingScriptsReturnsPlayer() {\n\t\tconst player = await this.Player()\n\t\tassert.isTrue(player instanceof ScriptPlayer)\n\t}\n\n\tprivate static async Player() {\n\t\treturn await ScriptLoader.LoadScripts({\n\t\t\tui: this.ui,\n\t\t\tdir: this.resolveTestPath('../support/scripts'),\n\t\t\tonboardingStore: this.Store('onboarding'),\n\t\t\tcommandExecuter: async (command: string) => {\n\t\t\t\tthis.commandExecuterCommands.push(command)\n\t\t\t},\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async playsLoadedScripts() {\n\t\tconst player = await this.Player()\n\n\t\tawait player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello world' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'second script' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'the last script' },\n\t\t})\n\n\t\tassert.isLength(this.commandExecuterCommands, 1)\n\t\tassert.isEqual(\n\t\t\tthis.commandExecuterCommands[0],\n\t\t\t'first script command executed'\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,0B,WAGnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAiBA,IAAAA,UAAA,G;;;;;;;;;;;;WAtBD,0CACkD;MACjDC,YAAA,CAAOC,UAAP,CAAkBC,wBAAA,CAAaC,WAA/B;IACA;;;;uHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEsB,KAAKC,MAAL,EAFtB;;cAAA;gBAEOC,MAFP;;gBAGCL,YAAA,CAAOM,MAAP,CAAcD,MAAM,YAAYE,wBAAhC;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kGAMA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACcL,wBAAA,CAAaC,WAAb,CAAyB;kBACrCK,EAAE,EAAE,KAAKA,EAD4B;kBAErCC,GAAG,EAAE,KAAKC,eAAL,CAAqB,oBAArB,CAFgC;kBAGrCC,eAAe,EAAE,KAAKC,KAAL,CAAW,YAAX,CAHoB;kBAIrCC,eAAe;oBAAA,qGAAE,kBAAOC,OAAP;sBAAA;wBAAA;0BAAA;4BAAA;8BAChB,KAAI,CAACC,uBAAL,CAA6BC,IAA7B,CAAkCF,OAAlC;;4BADgB;4BAAA;8BAAA;0BAAA;wBAAA;sBAAA;oBAAA,CAAF;;oBAAA;sBAAA;oBAAA;;oBAAA;kBAAA;gBAJsB,CAAzB,CADd;;cAAA;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;8GAWA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEsB,KAAKV,MAAL,EAFtB;;cAAA;gBAEOC,MAFP;gBAAA;gBAAA,OAIOA,MAAM,CAACY,iBAAP,CAAyB,OAAzB,CAJP;;cAAA;gBAMCjB,YAAA,CAAOkB,WAAP,CAAmB,KAAKV,EAAL,CAAQW,WAA3B,EAAwC;kBACvCL,OAAO,EAAE,YAD8B;kBAEvCM,OAAO,EAAE;oBAAEC,OAAO,EAAE;kBAAX;gBAF8B,CAAxC;;gBAKArB,YAAA,CAAOkB,WAAP,CAAmB,KAAKV,EAAL,CAAQW,WAA3B,EAAwC;kBACvCL,OAAO,EAAE,YAD8B;kBAEvCM,OAAO,EAAE;oBAAEC,OAAO,EAAE;kBAAX;gBAF8B,CAAxC;;gBAKArB,YAAA,CAAOkB,WAAP,CAAmB,KAAKV,EAAL,CAAQW,WAA3B,EAAwC;kBACvCL,OAAO,EAAE,YAD8B;kBAEvCM,OAAO,EAAE;oBAAEC,OAAO,EAAE;kBAAX;gBAF8B,CAAxC;;gBAKArB,YAAA,CAAOsB,QAAP,CAAgB,KAAKP,uBAArB,EAA8C,CAA9C;;gBACAf,YAAA,CAAOuB,OAAP,CACC,KAAKR,uBAAL,CAA6B,CAA7B,CADD,EAEC,+BAFD;;cAtBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAzBuDS,4B,wEACJ,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingScriptPlayer.test.js","names":["OnboardingScriptPlayerTest","store","Store","commandExecuterCommands","player","ScriptPlayer","ui","onboardingStore","commandExecuter","command","push","assert","isTruthy","playScript","doesInclude","invocations","options","message","renderLine","doesThrowAsync","playScriptWithKey","loadScript","redirect","mode","getMode","isEqual","executeCommand","isLength","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingScriptPlayer.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ScriptPlayer from '../../features/onboard/ScriptPlayer'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingScriptPlayerTest extends AbstractCliTest {\n\tprivate static player: ScriptPlayer\n\tprivate static commandExecuterCommands: string[] = []\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tconst store = this.Store('onboarding')\n\n\t\tthis.commandExecuterCommands = []\n\t\tthis.player = new ScriptPlayer({\n\t\t\tui: this.ui,\n\t\t\tonboardingStore: store,\n\t\t\tcommandExecuter: async (command: string) => {\n\t\t\t\tthis.commandExecuterCommands.push(command)\n\t\t\t},\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canCreateScriptPlayer() {\n\t\tassert.isTruthy(this.player)\n\t}\n\n\t@test()\n\tprotected static async canPlayTextScript() {\n\t\tawait this.player.playScript(['Hey there!'])\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'Hey there!' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canPlayCallback() {\n\t\tawait this.player.playScript([\n\t\t\t(player) => {\n\t\t\t\tplayer.ui.renderLine('hello world')\n\t\t\t},\n\t\t])\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello world' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canPlayAsyncCallback() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tplayer.ui.renderLine('hello async world')\n\t\t\t},\n\t\t])\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello async world' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadScriptKey() {\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.player.playScriptWithKey('not-found')\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async canLoadScriptsByKey() {\n\t\tthis.player.loadScript('first', ['hey there', 'how are you'])\n\t\tthis.player.loadScript('second', ['hey there 2', 'how are you 2'])\n\n\t\tawait this.player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you' },\n\t\t})\n\n\t\tawait this.player.playScriptWithKey('second')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 2' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async onScriptCanRedirectToAnother() {\n\t\tthis.player.loadScript('first', [\n\t\t\t'hey there',\n\t\t\t'how are you',\n\t\t\tScriptPlayer.redirect('second'),\n\t\t])\n\n\t\tthis.player.loadScript('second', [\n\t\t\t'hey there 2',\n\t\t\t'how are you 2',\n\t\t\t(player) => player.redirect('third'),\n\t\t])\n\n\t\tthis.player.loadScript('third', ['hey there 3', 'how are you 3'])\n\n\t\tawait this.player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 3' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async scriptsCanAccessOnboardingStore() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tconst mode = player.onboardingStore.getMode()\n\t\t\t\tassert.isEqual(mode, 'off')\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async canInvokeCommand() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tawait player.executeCommand('test.command')\n\t\t\t},\n\t\t])\n\n\t\tassert.isLength(this.commandExecuterCommands, 1)\n\t\tassert.isEqual(this.commandExecuterCommands[0], 'test.command')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,0B,WAmBnB,
|
|
1
|
+
{"version":3,"file":"OnboardingScriptPlayer.test.js","names":["OnboardingScriptPlayerTest","test","store","Store","commandExecuterCommands","player","ScriptPlayer","ui","onboardingStore","commandExecuter","command","push","assert","isTruthy","playScript","doesInclude","invocations","options","message","renderLine","doesThrowAsync","playScriptWithKey","loadScript","redirect","mode","getMode","isEqual","executeCommand","isLength","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingScriptPlayer.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport ScriptPlayer from '../../features/onboard/ScriptPlayer'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingScriptPlayerTest extends AbstractCliTest {\n\tprivate static player: ScriptPlayer\n\tprivate static commandExecuterCommands: string[] = []\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tconst store = this.Store('onboarding')\n\n\t\tthis.commandExecuterCommands = []\n\t\tthis.player = new ScriptPlayer({\n\t\t\tui: this.ui,\n\t\t\tonboardingStore: store,\n\t\t\tcommandExecuter: async (command: string) => {\n\t\t\t\tthis.commandExecuterCommands.push(command)\n\t\t\t},\n\t\t})\n\t}\n\n\t@test()\n\tprotected static canCreateScriptPlayer() {\n\t\tassert.isTruthy(this.player)\n\t}\n\n\t@test()\n\tprotected static async canPlayTextScript() {\n\t\tawait this.player.playScript(['Hey there!'])\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'Hey there!' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canPlayCallback() {\n\t\tawait this.player.playScript([\n\t\t\t(player) => {\n\t\t\t\tplayer.ui.renderLine('hello world')\n\t\t\t},\n\t\t])\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello world' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canPlayAsyncCallback() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tplayer.ui.renderLine('hello async world')\n\t\t\t},\n\t\t])\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hello async world' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadScriptKey() {\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.player.playScriptWithKey('not-found')\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async canLoadScriptsByKey() {\n\t\tthis.player.loadScript('first', ['hey there', 'how are you'])\n\t\tthis.player.loadScript('second', ['hey there 2', 'how are you 2'])\n\n\t\tawait this.player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you' },\n\t\t})\n\n\t\tawait this.player.playScriptWithKey('second')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 2' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async onScriptCanRedirectToAnother() {\n\t\tthis.player.loadScript('first', [\n\t\t\t'hey there',\n\t\t\t'how are you',\n\t\t\tScriptPlayer.redirect('second'),\n\t\t])\n\n\t\tthis.player.loadScript('second', [\n\t\t\t'hey there 2',\n\t\t\t'how are you 2',\n\t\t\t(player) => player.redirect('third'),\n\t\t])\n\n\t\tthis.player.loadScript('third', ['hey there 3', 'how are you 3'])\n\n\t\tawait this.player.playScriptWithKey('first')\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'hey there 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 2' },\n\t\t})\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderLine',\n\t\t\toptions: { message: 'how are you 3' },\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async scriptsCanAccessOnboardingStore() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tconst mode = player.onboardingStore.getMode()\n\t\t\t\tassert.isEqual(mode, 'off')\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async canInvokeCommand() {\n\t\tawait this.player.playScript([\n\t\t\tasync (player) => {\n\t\t\t\tawait player.executeCommand('test.command')\n\t\t\t},\n\t\t])\n\n\t\tassert.isLength(this.commandExecuterCommands, 1)\n\t\tassert.isEqual(this.commandExecuterCommands[0], 'test.command')\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingStore.test.js","names":["OnboardingStoreTest","store","OnboardingStore","Store","assert","isTruthy","mode","getMode","isEqual","setMode","newStore","stage","featuresUtil","generateCommand","setStage","getStage","store1","store2","currentStage","isFalsy","reset","doesThrow","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport featuresUtil from '../../features/feature.utilities'\nimport OnboardingStore from '../../features/onboard/stores/OnboardingStore'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingStoreTest extends AbstractCliTest {\n\tprivate static store: OnboardingStore\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tconst store = this.OnboardingStore()\n\t\tthis.store = store\n\t}\n\n\tprivate static OnboardingStore() {\n\t\tconst store = this.Store('onboarding')\n\t\treturn store\n\t}\n\n\t@test()\n\tprotected static canGetStore() {\n\t\tassert.isTruthy(this.store)\n\t}\n\n\t@test()\n\tprotected static startsAsOff() {\n\t\tconst mode = this.store.getMode()\n\t\tassert.isEqual(mode, 'off')\n\t}\n\n\t@test()\n\tprotected static canSetToShortMode() {\n\t\tthis.store.setMode('short')\n\t\tassert.isEqual(this.store.getMode(), 'short')\n\t}\n\n\t@test()\n\tprotected static canSetToImmersiveMode() {\n\t\tthis.store.setMode('immersive')\n\t\tassert.isEqual(this.store.getMode(), 'immersive')\n\t}\n\n\t@test()\n\tprotected static remembersModeBetweenBoots() {\n\t\tthis.store.setMode('immersive')\n\n\t\tconst newStore = this.OnboardingStore()\n\t\tassert.isEqual(newStore.getMode(), 'immersive')\n\t}\n\n\t@test()\n\tprotected static async remembersStageBetweenBoots() {\n\t\tconst stage = featuresUtil.generateCommand('test', 'test') as 'test'\n\n\t\tthis.store.setStage(stage)\n\n\t\tconst newStore = this.OnboardingStore()\n\t\tassert.isEqual(newStore.getStage(), stage)\n\t}\n\n\t@test()\n\tprotected static valuesSharedBetween2Instances() {\n\t\tconst store1 = this.OnboardingStore()\n\t\tconst store2 = this.OnboardingStore()\n\n\t\tstore1.setMode('immersive')\n\t\tassert.isEqual(store2.getMode(), store1.getMode())\n\t}\n\n\t@test()\n\tprotected static stageIsNotSetToStart() {\n\t\tconst currentStage = this.store.getStage()\n\t\tassert.isFalsy(currentStage)\n\t}\n\n\t@test()\n\tprotected static stageCanBeSet() {\n\t\tthis.store.setStage('test')\n\t\tconst stage = this.store.getStage()\n\t\tassert.isEqual(stage, 'test')\n\t}\n\n\t@test()\n\tprotected static canBeReset() {\n\t\tthis.store.setStage('test')\n\t\tthis.store.reset()\n\n\t\tconst stage = this.store.getStage()\n\n\t\tassert.isFalsy(stage)\n\t\tassert.isEqual(this.store.getMode(), 'off')\n\t}\n\n\t@test()\n\tprotected static cantSetBadStage() {\n\t\t//@ts-ignore\n\t\tassert.doesThrow(() => this.store.setStage('taco'))\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,mB,WAenB,
|
|
1
|
+
{"version":3,"file":"OnboardingStore.test.js","names":["OnboardingStoreTest","test","store","OnboardingStore","Store","assert","isTruthy","mode","getMode","isEqual","setMode","newStore","stage","featuresUtil","generateCommand","setStage","getStage","store1","store2","currentStage","isFalsy","reset","doesThrow","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OnboardingStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport featuresUtil from '../../features/feature.utilities'\nimport OnboardingStore from '../../features/onboard/stores/OnboardingStore'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OnboardingStoreTest extends AbstractCliTest {\n\tprivate static store: OnboardingStore\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tconst store = this.OnboardingStore()\n\t\tthis.store = store\n\t}\n\n\tprivate static OnboardingStore() {\n\t\tconst store = this.Store('onboarding')\n\t\treturn store\n\t}\n\n\t@test()\n\tprotected static canGetStore() {\n\t\tassert.isTruthy(this.store)\n\t}\n\n\t@test()\n\tprotected static startsAsOff() {\n\t\tconst mode = this.store.getMode()\n\t\tassert.isEqual(mode, 'off')\n\t}\n\n\t@test()\n\tprotected static canSetToShortMode() {\n\t\tthis.store.setMode('short')\n\t\tassert.isEqual(this.store.getMode(), 'short')\n\t}\n\n\t@test()\n\tprotected static canSetToImmersiveMode() {\n\t\tthis.store.setMode('immersive')\n\t\tassert.isEqual(this.store.getMode(), 'immersive')\n\t}\n\n\t@test()\n\tprotected static remembersModeBetweenBoots() {\n\t\tthis.store.setMode('immersive')\n\n\t\tconst newStore = this.OnboardingStore()\n\t\tassert.isEqual(newStore.getMode(), 'immersive')\n\t}\n\n\t@test()\n\tprotected static async remembersStageBetweenBoots() {\n\t\tconst stage = featuresUtil.generateCommand('test', 'test') as 'test'\n\n\t\tthis.store.setStage(stage)\n\n\t\tconst newStore = this.OnboardingStore()\n\t\tassert.isEqual(newStore.getStage(), stage)\n\t}\n\n\t@test()\n\tprotected static valuesSharedBetween2Instances() {\n\t\tconst store1 = this.OnboardingStore()\n\t\tconst store2 = this.OnboardingStore()\n\n\t\tstore1.setMode('immersive')\n\t\tassert.isEqual(store2.getMode(), store1.getMode())\n\t}\n\n\t@test()\n\tprotected static stageIsNotSetToStart() {\n\t\tconst currentStage = this.store.getStage()\n\t\tassert.isFalsy(currentStage)\n\t}\n\n\t@test()\n\tprotected static stageCanBeSet() {\n\t\tthis.store.setStage('test')\n\t\tconst stage = this.store.getStage()\n\t\tassert.isEqual(stage, 'test')\n\t}\n\n\t@test()\n\tprotected static canBeReset() {\n\t\tthis.store.setStage('test')\n\t\tthis.store.reset()\n\n\t\tconst stage = this.store.getStage()\n\n\t\tassert.isFalsy(stage)\n\t\tassert.isEqual(this.store.getMode(), 'off')\n\t}\n\n\t@test()\n\tprotected static cantSetBadStage() {\n\t\t//@ts-ignore\n\t\tassert.doesThrow(() => this.store.setStage('taco'))\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationStore.test.js","names":["OrganizationStoreTest","assert","isTruthy","Store","FeatureFixture","installCachedFeatures","getOrganizationFixture","seedDemoOrg","name","org","getSkillFixture","registerCurrentSkill","skill","isSkillInstalledAtOrg","id","isInstalled","isFalse","fetchMyOrganizations","myOrgs","doesInclude","deleteOrganization","myOrgs2","doesNotInclude","installSkillAtOrganization","isTrue","orgFixture","org1","org2","orgs","isAbove","length","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OrganizationStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OrganizationStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canCreateStore() {\n\t\tassert.isTruthy(this.Store('organization'))\n\t}\n\n\t@test()\n\tprotected static async skillIsNotInstalledByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'a new skill',\n\t\t})\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tassert.isFalse(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async canDeleteOrg() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst myOrgs = await this.Store('organization').fetchMyOrganizations()\n\n\t\tassert.doesInclude(myOrgs, org)\n\n\t\tawait this.Store('organization').deleteOrganization(org.id)\n\n\t\tconst myOrgs2 = await this.Store('organization').fetchMyOrganizations()\n\n\t\tassert.doesNotInclude(myOrgs2, org)\n\t}\n\n\t@test()\n\tprotected static async installSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'a new skill',\n\t\t})\n\n\t\tawait this.Store('organization').installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async canGetMyOrgs() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\t\tconst orgFixture = this.getOrganizationFixture()\n\t\tconst org1 = await orgFixture.seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\t\tconst org2 = await orgFixture.seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst orgs = await this.Store('organization').fetchMyOrganizations()\n\t\tassert.isAbove(orgs.length, 1)\n\t\tassert.doesInclude(orgs, org1)\n\t\tassert.doesInclude(orgs, org2)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,qB,WACnB,
|
|
1
|
+
{"version":3,"file":"OrganizationStore.test.js","names":["OrganizationStoreTest","test","assert","isTruthy","Store","FeatureFixture","installCachedFeatures","getOrganizationFixture","seedDemoOrg","name","org","getSkillFixture","registerCurrentSkill","skill","isSkillInstalledAtOrg","id","isInstalled","isFalse","fetchMyOrganizations","myOrgs","doesInclude","deleteOrganization","myOrgs2","doesNotInclude","installSkillAtOrganization","isTrue","orgFixture","org1","org2","orgs","isAbove","length","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/OrganizationStore.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class OrganizationStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canCreateStore() {\n\t\tassert.isTruthy(this.Store('organization'))\n\t}\n\n\t@test()\n\tprotected static async skillIsNotInstalledByDefault() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'a new skill',\n\t\t})\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tassert.isFalse(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async canDeleteOrg() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst myOrgs = await this.Store('organization').fetchMyOrganizations()\n\n\t\tassert.doesInclude(myOrgs, org)\n\n\t\tawait this.Store('organization').deleteOrganization(org.id)\n\n\t\tconst myOrgs2 = await this.Store('organization').fetchMyOrganizations()\n\n\t\tassert.doesNotInclude(myOrgs2, org)\n\t}\n\n\t@test()\n\tprotected static async installSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'a new skill',\n\t\t})\n\n\t\tawait this.Store('organization').installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async canGetMyOrgs() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\t\tconst orgFixture = this.getOrganizationFixture()\n\t\tconst org1 = await orgFixture.seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\t\tconst org2 = await orgFixture.seedDemoOrg({\n\t\t\tname: 'A cool org',\n\t\t})\n\n\t\tconst orgs = await this.Store('organization').fetchMyOrganizations()\n\t\tassert.isAbove(orgs.length, 1)\n\t\tassert.doesInclude(orgs, org1)\n\t\tassert.doesInclude(orgs, org2)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParentTestFinder.test.js","names":["ParentTestFinderTest","finder","ParentTestFinder","cwd","assert","isTruthy","copyTestFiles","testFinder","findAbstractTests","matches","isLength","doesInclude","name","path","resolvePath","source","resolveTestPath","destination","diskUtil","copyDir","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ParentTestFinder.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport ParentTestFinder from '../../features/error/ParentTestFinder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class ParentTestFinderTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canCreateFinder() {\n\t\tconst finder = new ParentTestFinder(this.cwd)\n\t\tassert.isTruthy(finder)\n\t}\n\n\t@test()\n\tprotected static async canFindAbstractTests() {\n\t\tawait this.copyTestFiles()\n\n\t\tconst testFinder = new ParentTestFinder(this.cwd)\n\t\tconst matches = await testFinder.findAbstractTests()\n\n\t\tassert.isLength(matches, 3)\n\t\tassert.doesInclude(matches, {\n\t\t\tname: 'AbstractTest',\n\t\t\tpath: this.resolvePath('src', 'AbstractTest.ts'),\n\t\t})\n\n\t\tassert.doesInclude(matches, {\n\t\t\tname: 'AbstractBananaTestDifferentThanFileName',\n\t\t\tpath: this.resolvePath('src', 'deeper', 'AbstractBananaTest.ts'),\n\t\t})\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,oB,WACnB,
|
|
1
|
+
{"version":3,"file":"ParentTestFinder.test.js","names":["ParentTestFinderTest","test","finder","ParentTestFinder","cwd","assert","isTruthy","copyTestFiles","testFinder","findAbstractTests","matches","isLength","doesInclude","name","path","resolvePath","source","resolveTestPath","destination","diskUtil","copyDir","AbstractCliTest"],"sources":["../../../src/__tests__/implementation/ParentTestFinder.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport ParentTestFinder from '../../features/error/ParentTestFinder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class ParentTestFinderTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canCreateFinder() {\n\t\tconst finder = new ParentTestFinder(this.cwd)\n\t\tassert.isTruthy(finder)\n\t}\n\n\t@test()\n\tprotected static async canFindAbstractTests() {\n\t\tawait this.copyTestFiles()\n\n\t\tconst testFinder = new ParentTestFinder(this.cwd)\n\t\tconst matches = await testFinder.findAbstractTests()\n\n\t\tassert.isLength(matches, 3)\n\t\tassert.doesInclude(matches, {\n\t\t\tname: 'AbstractTest',\n\t\t\tpath: this.resolvePath('src', 'AbstractTest.ts'),\n\t\t})\n\n\t\tassert.doesInclude(matches, {\n\t\t\tname: 'AbstractBananaTestDifferentThanFileName',\n\t\t\tpath: this.resolvePath('src', 'deeper', 'AbstractBananaTest.ts'),\n\t\t})\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,oB,WACnB,IAAAC,UAAA,G,UAMA,IAAAA,UAAA,G;;;;;;;;;;;;;2GAND;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,MAFP,GAEgB,IAAIC,4BAAJ,CAAqB,KAAKC,GAA1B,CAFhB;;gBAGCC,YAAA,CAAOC,QAAP,CAAgBJ,MAAhB;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHAMA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKK,aAAL,EAFP;;cAAA;gBAIOC,UAJP,GAIoB,IAAIL,4BAAJ,CAAqB,KAAKC,GAA1B,CAJpB;gBAAA;gBAAA,OAKuBI,UAAU,CAACC,iBAAX,EALvB;;cAAA;gBAKOC,OALP;;gBAOCL,YAAA,CAAOM,QAAP,CAAgBD,OAAhB,EAAyB,CAAzB;;gBACAL,YAAA,CAAOO,WAAP,CAAmBF,OAAnB,EAA4B;kBAC3BG,IAAI,EAAE,cADqB;kBAE3BC,IAAI,EAAE,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,iBAAxB;gBAFqB,CAA5B;;gBAKAV,YAAA,CAAOO,WAAP,CAAmBF,OAAnB,EAA4B;kBAC3BG,IAAI,EAAE,yCADqB;kBAE3BC,IAAI,EAAE,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,QAAxB,EAAkC,uBAAlC;gBAFqB,CAA5B;;cAbD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yGAmBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,MADP,GACgB,KAAKC,eAAL,CAAqB,gBAArB,CADhB;gBAEOC,WAFP,GAEqB,KAAKH,WAAL,CAAiB,KAAjB,CAFrB;gBAAA;gBAAA,OAIOI,0BAAA,CAASC,OAAT,CAAiBJ,MAAjB,EAAyBE,WAAzB,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA1BiDG,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkgService.test.js","names":["PkgServiceTest","pkg","Service","assert","isTruthy","version","get","isNotEqual","CommandService","fakeCommand","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport PkgService from '../../services/PkgService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class PkgServiceTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static pkg: PkgService\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.pkg = this.Service('pkg')\n\t}\n\n\t@test()\n\tprotected static async canCreatePkgService() {\n\t\tassert.isTruthy(this.pkg)\n\t}\n\n\t@test()\n\tprotected static async installANonSpruceLabsModuleMakesItsVersionAnActualVersion() {\n\t\tconst version = this.pkg.get('dependencies.dotenv')\n\t\tassert.isNotEqual(version, 'latest')\n\t}\n\n\t@test()\n\tprotected static async handlesAtLatestInName() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.pkg.install('@sprucelabs/heartwood-view-controllers@latest')\n\n\t\tthis.pkg.isInstalled('@sprucelabs/heartwood-view-controllers')\n\t}\n\n\t@test()\n\tprotected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install.*?--no-progress/gis), {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst { totalInstalled } = await this.pkg.install(\n\t\t\t'@sprucelabs/jest-json-reporter'\n\t\t)\n\n\t\tassert.isEqual(totalInstalled, 1)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'jest-json-reporter'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {\n\t\tconst { totalInstalled } = await this.pkg.install([\n\t\t\t'moment',\n\t\t\t'@sprucelabs/calendar-utils',\n\t\t])\n\n\t\tassert.isEqual(totalInstalled, 2)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'calendar-utils'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,
|
|
1
|
+
{"version":3,"file":"PkgService.test.js","names":["PkgServiceTest","test","pkg","Service","assert","isTruthy","version","get","isNotEqual","CommandService","fakeCommand","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport PkgService from '../../services/PkgService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class PkgServiceTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static pkg: PkgService\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.pkg = this.Service('pkg')\n\t}\n\n\t@test()\n\tprotected static async canCreatePkgService() {\n\t\tassert.isTruthy(this.pkg)\n\t}\n\n\t@test()\n\tprotected static async installANonSpruceLabsModuleMakesItsVersionAnActualVersion() {\n\t\tconst version = this.pkg.get('dependencies.dotenv')\n\t\tassert.isNotEqual(version, 'latest')\n\t}\n\n\t@test()\n\tprotected static async handlesAtLatestInName() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.pkg.install('@sprucelabs/heartwood-view-controllers@latest')\n\n\t\tthis.pkg.isInstalled('@sprucelabs/heartwood-view-controllers')\n\t}\n\n\t@test()\n\tprotected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install.*?--no-progress/gis), {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst { totalInstalled } = await this.pkg.install(\n\t\t\t'@sprucelabs/jest-json-reporter'\n\t\t)\n\n\t\tassert.isEqual(totalInstalled, 1)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'jest-json-reporter'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {\n\t\tconst { totalInstalled } = await this.pkg.install([\n\t\t\t'moment',\n\t\t\t'@sprucelabs/calendar-utils',\n\t\t])\n\n\t\tassert.isEqual(totalInstalled, 2)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'calendar-utils'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAMA,IAAAA,UAAA,G,UAWA,IAAAA,UAAA,G,UAwBA,IAAAA,UAAA,G;;;;;;;;;;;;;sGAnDD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,GAAL,GAAW,KAAKC,OAAL,CAAa,KAAb,CAAX;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,QAAP,CAAgB,KAAKH,GAArB;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;qJAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOI,OAFP,GAEiB,KAAKJ,GAAL,CAASK,GAAT,CAAa,qBAAb,CAFjB;;gBAGCH,YAAA,CAAOI,UAAP,CAAkBF,OAAlB,EAA2B,QAA3B;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;iHAMA;QAAA;UAAA;YAAA;cAAA;gBAECG,0BAAA,CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,QAAX,CAA3B,EAAkD;kBACjDC,IAAI,EAAE;gBAD2C,CAAlD;;gBAFD;gBAAA,OAMO,KAAKV,GAAL,CAASW,OAAT,CAAiB,+CAAjB,CANP;;cAAA;gBAQC,KAAKX,GAAL,CAASY,WAAT,CAAqB,wCAArB;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2IAWA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAECL,0BAAA,CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,oDAAX,CAA3B,EAA2E;kBAC1EC,IAAI,EAAE;gBADoE,CAA3E;;gBAFD;gBAAA,OAMkC,KAAKV,GAAL,CAASW,OAAT,CAChC,gCADgC,CANlC;;cAAA;gBAAA;gBAMSE,cANT,yBAMSA,cANT;;gBAUCX,YAAA,CAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;gBAEME,YAZP,GAYsB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,oBAHoB,CAZtB;;gBAkBCd,YAAA,CAAOe,MAAP,CACCC,0BAAA,CAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;cAlBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mJAwBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEkC,KAAKf,GAAL,CAASW,OAAT,CAAiB,CACjD,QADiD,EAEjD,4BAFiD,CAAjB,CAFlC;;cAAA;gBAAA;gBAESE,cAFT,0BAESA,cAFT;;gBAOCX,YAAA,CAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;gBAEME,YATP,GASsB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,gBAHoB,CATtB;;gBAeCd,YAAA,CAAOe,MAAP,CACCC,0BAAA,CAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;cAfD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAvD2CK,8B,8DACV,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaStore.test.js","names":["LOCAL_NAMESPACE","SchemaStoreTest","test","skip","assert","isTruthy","Store","isFunction","fetchSchemas","fetchFields","localNamespace","results","schemasByNamespace","errors","isEqual","length","CORE_NAMESPACE","coreSchemas","isAbove","validateSchemas","doesInclude","id","copySchemasAndFetchSchemas","localSchemaDir","resolvePath","isLength","Object","keys","localSchemas","message","copySchemasAndFieldsThenFetchFields","fieldTypes","fieldClassMap","type","namesUtil","toPascal","localAddonsDir","fields","errorAssert","assertError","sort","a","b","originalError","options","schemaId","installSchemaFeature","cli","wasFired","on","isTrue","payload","emitPayload","name","schemas","namespace","MyCoolNamespace","copySchemas","version","description","isRequired","TestSkill","schema","testBuilderDir","syncSchemas","schemasDir","diskUtil","copyDir","resolveTestPath","registrationsDir","addonsDir","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/SchemaStore.test.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tvalidateSchema,\n} from '@sprucelabs/schema'\nimport {\n\tCORE_NAMESPACE,\n\tdiskUtil,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport fieldClassMap from '#spruce/schemas/fields/fieldClassMap'\nimport { coreSchemas } from '../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TestSkill'\n\nexport default class SchemaStoreTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canInstantiateSchemaStore() {\n\t\tassert.isTruthy(this.Store('schema'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchSchemaTemplateItemsMethod() {\n\t\tassert.isFunction(this.Store('schema').fetchSchemas)\n\t\tassert.isFunction(this.Store('schema').fetchFields)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreSchemas() {\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[CORE_NAMESPACE])\n\n\t\tconst coreSchemas = schemasByNamespace[CORE_NAMESPACE]\n\t\tassert.isAbove(coreSchemas.length, 0)\n\n\t\tthis.validateSchemas(coreSchemas)\n\n\t\tassert.doesInclude(coreSchemas, { id: 'person' })\n\t\tassert.doesInclude(coreSchemas, { id: 'skill' })\n\t}\n\n\t@test()\n\tprotected static async fetchesLocalSchemas() {\n\t\tconst results = await this.copySchemasAndFetchSchemas({\n\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[LOCAL_NAMESPACE])\n\t\tassert.isLength(Object.keys(schemasByNamespace), 2)\n\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test.skip(\n\t\t\"Skipped because schemas are bulk imported and it's all or nothing.\"\n\t)\n\tprotected static async canHandleABadSchema() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{\n\t\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t\t},\n\t\t\t'test_builders_one_bad'\n\t\t)\n\n\t\tassert.isEqual(results.errors.length, 1)\n\n\t\tassert.doesInclude(results.errors[0].message, 'badSchema')\n\n\t\tconst { schemasByNamespace } = results\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test()\n\tprotected static async canFetchCoreFields() {\n\t\tconst results = await SchemaStoreTest.copySchemasAndFieldsThenFetchFields()\n\n\t\tconst fieldTypes = Object.keys(fieldClassMap)\n\n\t\tfor (const type of fieldTypes) {\n\t\t\tassert.doesInclude(results, {\n\t\t\t\t'fields[].registration.type': namesUtil.toPascal(type),\n\t\t\t})\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canFetchLocalFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields({\n\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tassert.isLength(results.fields, Object.keys(fieldClassMap).length + 1)\n\t\tassert.doesInclude(results, { 'fields[].registration.type': 'Test' })\n\t\tassert.doesInclude(results, {\n\t\t\t'fields[].registration.description': 'A test for us all',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canHandleBadFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields(\n\t\t\t{\n\t\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t\t},\n\t\t\t'field_registrations_one_bad'\n\t\t)\n\n\t\tassert.isLength(results.errors, 1)\n\t\tassert.doesInclude(results.errors[0].message, 'badField')\n\t}\n\n\t@test()\n\tprotected static async wontLetYouSpecifyANamespaceNorVersion() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{},\n\t\t\t'test_builders_with_namespace_and_version'\n\t\t)\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 2)\n\n\t\terrorAssert.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT')\n\t\terrorAssert.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT')\n\n\t\tresults.errors = results.errors.sort((a, b) =>\n\t\t\t//@ts-ignore\n\t\t\ta.originalError.options.schemaId > b.originalError.options.schemaId\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[0].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithNamespace',\n\t\t\t\terrors: ['namespace_should_not_be_set'],\n\t\t\t}\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[1].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithVersion',\n\t\t\t\terrors: ['version_should_not_be_set'],\n\t\t\t}\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emitsDidFetchEvent() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet wasFired = false\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\twasFired = true\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isTrue(wasFired)\n\t}\n\n\t@test()\n\tprotected static async fetchEventPayloadIncludesAllOtherSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet emitPayload: any\n\t\tawait cli.on('schema.did-fetch-schemas', (payload) => {\n\t\t\temitPayload = payload\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tfor (const name in coreSchemas) {\n\t\t\tassert.doesInclude(\n\t\t\t\temitPayload.schemas,\n\t\t\t\t//@ts-ignore\n\t\t\t\tnormalizeSchemaToIdWithVersion(coreSchemas[name])\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canListenToFetchEventToDropInAdditionalSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tnamespace: 'MyCoolNamespace',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tconst { schemasByNamespace } = results\n\n\t\tassert.isTruthy(schemasByNamespace.MyCoolNamespace)\n\t}\n\n\t@test()\n\tprotected static async multipleSchemasWithSameIdAndVersionReturnOnce() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait this.copySchemas()\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'schemaOne',\n\t\t\t\t\t\tname: 'First schema',\n\t\t\t\t\t\tnamespace: 'TestSkill',\n\t\t\t\t\t\tversion: 'v2020_06_23',\n\t\t\t\t\t\tdescription: 'It is going to be great!',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.schemasByNamespace.TestSkill, 3)\n\t}\n\n\tprivate static validateSchemas(schemas: Schema[]) {\n\t\tfor (const schema of schemas) {\n\t\t\tvalidateSchema(schema)\n\t\t}\n\t}\n\n\tprivate static async copySchemasAndFetchSchemas(\n\t\toptions?: Record<string, any>,\n\t\ttestBuilderDir = 'test_builders'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.copySchemas(testBuilderDir)\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t\t...(options || {}),\n\t\t})\n\t\treturn results\n\t}\n\n\tprivate static async copySchemas(testBuilderDir = 'test_builders') {\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(testBuilderDir), schemasDir)\n\t}\n\n\tprivate static async copySchemasAndFieldsThenFetchFields(\n\t\toptions?: Record<string, any>,\n\t\tregistrationsDir = 'field_registrations'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst addonsDir = this.resolvePath('src', 'addons')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(registrationsDir), addonsDir)\n\n\t\tconst results = await this.Store('schema').fetchFields(options)\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SchemaStore.test.js","names":["LOCAL_NAMESPACE","SchemaStoreTest","test","skip","assert","isTruthy","Store","isFunction","fetchSchemas","fetchFields","localNamespace","results","schemasByNamespace","errors","isEqual","length","CORE_NAMESPACE","coreSchemas","isAbove","validateSchemas","doesInclude","id","copySchemasAndFetchSchemas","localSchemaDir","resolvePath","isLength","Object","keys","localSchemas","message","copySchemasAndFieldsThenFetchFields","fieldTypes","fieldClassMap","type","namesUtil","toPascal","localAddonsDir","fields","errorAssert","assertError","sort","a","b","originalError","options","schemaId","installSchemaFeature","cli","wasFired","on","isTrue","payload","emitPayload","name","schemas","normalizeSchemaToIdWithVersion","buildSchema","namespace","MyCoolNamespace","copySchemas","version","description","isRequired","TestSkill","schema","validateSchema","testBuilderDir","syncSchemas","schemasDir","diskUtil","copyDir","resolveTestPath","registrationsDir","addonsDir","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/SchemaStore.test.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tvalidateSchema,\n} from '@sprucelabs/schema'\nimport {\n\tCORE_NAMESPACE,\n\tdiskUtil,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport fieldClassMap from '#spruce/schemas/fields/fieldClassMap'\nimport { coreSchemas } from '../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TestSkill'\n\nexport default class SchemaStoreTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canInstantiateSchemaStore() {\n\t\tassert.isTruthy(this.Store('schema'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchSchemaTemplateItemsMethod() {\n\t\tassert.isFunction(this.Store('schema').fetchSchemas)\n\t\tassert.isFunction(this.Store('schema').fetchFields)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreSchemas() {\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[CORE_NAMESPACE])\n\n\t\tconst coreSchemas = schemasByNamespace[CORE_NAMESPACE]\n\t\tassert.isAbove(coreSchemas.length, 0)\n\n\t\tthis.validateSchemas(coreSchemas)\n\n\t\tassert.doesInclude(coreSchemas, { id: 'person' })\n\t\tassert.doesInclude(coreSchemas, { id: 'skill' })\n\t}\n\n\t@test()\n\tprotected static async fetchesLocalSchemas() {\n\t\tconst results = await this.copySchemasAndFetchSchemas({\n\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[LOCAL_NAMESPACE])\n\t\tassert.isLength(Object.keys(schemasByNamespace), 2)\n\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test.skip(\n\t\t\"Skipped because schemas are bulk imported and it's all or nothing.\"\n\t)\n\tprotected static async canHandleABadSchema() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{\n\t\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t\t},\n\t\t\t'test_builders_one_bad'\n\t\t)\n\n\t\tassert.isEqual(results.errors.length, 1)\n\n\t\tassert.doesInclude(results.errors[0].message, 'badSchema')\n\n\t\tconst { schemasByNamespace } = results\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test()\n\tprotected static async canFetchCoreFields() {\n\t\tconst results = await SchemaStoreTest.copySchemasAndFieldsThenFetchFields()\n\n\t\tconst fieldTypes = Object.keys(fieldClassMap)\n\n\t\tfor (const type of fieldTypes) {\n\t\t\tassert.doesInclude(results, {\n\t\t\t\t'fields[].registration.type': namesUtil.toPascal(type),\n\t\t\t})\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canFetchLocalFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields({\n\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tassert.isLength(results.fields, Object.keys(fieldClassMap).length + 1)\n\t\tassert.doesInclude(results, { 'fields[].registration.type': 'Test' })\n\t\tassert.doesInclude(results, {\n\t\t\t'fields[].registration.description': 'A test for us all',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canHandleBadFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields(\n\t\t\t{\n\t\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t\t},\n\t\t\t'field_registrations_one_bad'\n\t\t)\n\n\t\tassert.isLength(results.errors, 1)\n\t\tassert.doesInclude(results.errors[0].message, 'badField')\n\t}\n\n\t@test()\n\tprotected static async wontLetYouSpecifyANamespaceNorVersion() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{},\n\t\t\t'test_builders_with_namespace_and_version'\n\t\t)\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 2)\n\n\t\terrorAssert.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT')\n\t\terrorAssert.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT')\n\n\t\tresults.errors = results.errors.sort((a, b) =>\n\t\t\t//@ts-ignore\n\t\t\ta.originalError.options.schemaId > b.originalError.options.schemaId\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[0].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithNamespace',\n\t\t\t\terrors: ['namespace_should_not_be_set'],\n\t\t\t}\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[1].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithVersion',\n\t\t\t\terrors: ['version_should_not_be_set'],\n\t\t\t}\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emitsDidFetchEvent() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet wasFired = false\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\twasFired = true\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isTrue(wasFired)\n\t}\n\n\t@test()\n\tprotected static async fetchEventPayloadIncludesAllOtherSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet emitPayload: any\n\t\tawait cli.on('schema.did-fetch-schemas', (payload) => {\n\t\t\temitPayload = payload\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tfor (const name in coreSchemas) {\n\t\t\tassert.doesInclude(\n\t\t\t\temitPayload.schemas,\n\t\t\t\t//@ts-ignore\n\t\t\t\tnormalizeSchemaToIdWithVersion(coreSchemas[name])\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canListenToFetchEventToDropInAdditionalSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tnamespace: 'MyCoolNamespace',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tconst { schemasByNamespace } = results\n\n\t\tassert.isTruthy(schemasByNamespace.MyCoolNamespace)\n\t}\n\n\t@test()\n\tprotected static async multipleSchemasWithSameIdAndVersionReturnOnce() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait this.copySchemas()\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'schemaOne',\n\t\t\t\t\t\tname: 'First schema',\n\t\t\t\t\t\tnamespace: 'TestSkill',\n\t\t\t\t\t\tversion: 'v2020_06_23',\n\t\t\t\t\t\tdescription: 'It is going to be great!',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.schemasByNamespace.TestSkill, 3)\n\t}\n\n\tprivate static validateSchemas(schemas: Schema[]) {\n\t\tfor (const schema of schemas) {\n\t\t\tvalidateSchema(schema)\n\t\t}\n\t}\n\n\tprivate static async copySchemasAndFetchSchemas(\n\t\toptions?: Record<string, any>,\n\t\ttestBuilderDir = 'test_builders'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.copySchemas(testBuilderDir)\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t\t...(options || {}),\n\t\t})\n\t\treturn results\n\t}\n\n\tprivate static async copySchemas(testBuilderDir = 'test_builders') {\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(testBuilderDir), schemasDir)\n\t}\n\n\tprivate static async copySchemasAndFieldsThenFetchFields(\n\t\toptions?: Record<string, any>,\n\t\tregistrationsDir = 'field_registrations'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst addonsDir = this.resolvePath('src', 'addons')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(registrationsDir), addonsDir)\n\n\t\tconst results = await this.Store('schema').fetchFields(options)\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
|