@sprucelabs/spruce-cli 15.4.12 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  3. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  43. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  44. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  45. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  49. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  50. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  51. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  52. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  63. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  64. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  65. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  66. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  67. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  68. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  69. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  70. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  71. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  89. package/build/GlobalEmitter.js.map +1 -1
  90. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  91. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  92. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  93. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  94. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  95. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  96. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  97. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  98. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  99. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  100. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  101. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  102. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  103. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  104. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  105. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  106. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  107. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  108. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  109. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  110. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  111. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  112. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  113. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  114. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  115. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  116. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  117. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  118. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  119. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  120. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  121. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  122. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  123. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  124. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  125. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  126. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  127. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  128. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  129. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  130. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  131. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  132. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  133. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  134. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  135. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  136. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  137. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  138. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  139. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  140. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  141. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  142. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  143. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  144. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  145. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  146. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  147. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  148. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  149. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  150. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  151. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  152. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  153. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  154. package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
  155. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  156. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  157. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  158. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  159. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  161. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  169. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  171. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  173. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  175. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  176. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  177. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  178. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  179. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  180. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  181. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  182. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  183. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  184. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  185. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  186. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  187. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  188. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  189. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  190. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  191. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  192. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  193. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  194. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  195. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  196. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  197. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  198. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  199. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  200. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
  201. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  202. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  203. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  204. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  205. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  206. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  207. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  208. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  209. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  210. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  211. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  212. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  213. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  214. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  215. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  216. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  217. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  218. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  219. package/build/addons/filePrompt.addon.js.map +1 -1
  220. package/build/cli.js.map +1 -1
  221. package/build/components/FormComponent.js.map +1 -1
  222. package/build/components/QuizComponent.js.map +1 -1
  223. package/build/errors/SpruceError.js.map +1 -1
  224. package/build/errors/actionCancelled.builder.js.map +1 -1
  225. package/build/errors/bootError.builder.js.map +1 -1
  226. package/build/errors/buildFailed.builder.js.map +1 -1
  227. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  228. package/build/errors/commandAborted.builder.js.map +1 -1
  229. package/build/errors/commandBlocked.builder.js.map +1 -1
  230. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  231. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  232. package/build/errors/dependencyExists.builder.js.map +1 -1
  233. package/build/errors/deployFailed.builder.js.map +1 -1
  234. package/build/errors/directoryEmpty.builder.js.map +1 -1
  235. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  236. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  237. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  238. package/build/errors/failedToImport.builder.js.map +1 -1
  239. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  240. package/build/errors/fileExists.builder.js.map +1 -1
  241. package/build/errors/generic.builder.js.map +1 -1
  242. package/build/errors/invalidCommand.builder.js.map +1 -1
  243. package/build/errors/invalidEventContract.builder.js.map +1 -1
  244. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  245. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  246. package/build/errors/lintFailed.builder.js.map +1 -1
  247. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  248. package/build/errors/missingDependencies.builder.js.map +1 -1
  249. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  250. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  251. package/build/errors/notImplemented.builder.js.map +1 -1
  252. package/build/errors/notLoggedIn.builder.js.map +1 -1
  253. package/build/errors/schemaExists.builder.js.map +1 -1
  254. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  255. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  256. package/build/errors/skillNotFound.builder.js.map +1 -1
  257. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  258. package/build/errors/skillViewExists.builder.js.map +1 -1
  259. package/build/errors/storeExists.builder.js.map +1 -1
  260. package/build/errors/testFailed.builder.js.map +1 -1
  261. package/build/errors/themeExists.builder.js.map +1 -1
  262. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  263. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  264. package/build/features/AbstractAction.d.ts +1 -1
  265. package/build/features/AbstractAction.js.map +1 -1
  266. package/build/features/AbstractFeature.js.map +1 -1
  267. package/build/features/ActionExecuter.js.map +1 -1
  268. package/build/features/ActionFactory.js.map +1 -1
  269. package/build/features/ActionQuestionAsker.js.map +1 -1
  270. package/build/features/FeatureCommandAttacher.js.map +1 -1
  271. package/build/features/FeatureInstaller.js.map +1 -1
  272. package/build/features/OverrideActionDecorator.js.map +1 -1
  273. package/build/features/cache/CacheFeature.js.map +1 -1
  274. package/build/features/cache/actions/DisableAction.js.map +1 -1
  275. package/build/features/cache/actions/EnableAction.js.map +1 -1
  276. package/build/features/conversation/ConversationFeature.js.map +1 -1
  277. package/build/features/conversation/actions/TestAction.js.map +1 -1
  278. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  279. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  280. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  281. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  282. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  283. package/build/features/deploy/DeployFeature.js.map +1 -1
  284. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  285. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  286. package/build/features/error/ErrorFeature.js.map +1 -1
  287. package/build/features/error/ParentTestFinder.js.map +1 -1
  288. package/build/features/error/actions/CreateAction.js.map +1 -1
  289. package/build/features/error/actions/SyncAction.js.map +1 -1
  290. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  291. package/build/features/event/EventFeature.js.map +1 -1
  292. package/build/features/event/actions/CreateAction.js.map +1 -1
  293. package/build/features/event/actions/ListenAction.js.map +1 -1
  294. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  295. package/build/features/event/actions/SyncAction.js.map +1 -1
  296. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  297. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  298. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  299. package/build/features/event/stores/EventStore.js.map +1 -1
  300. package/build/features/event/stores/ListenerStore.js.map +1 -1
  301. package/build/features/event/writers/EventWriter.js.map +1 -1
  302. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  303. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  304. package/build/features/feature.utilities.js.map +1 -1
  305. package/build/features/features.types.js.map +1 -1
  306. package/build/features/log/LogFeature.js.map +1 -1
  307. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  308. package/build/features/log/writers/LogWriter.js.map +1 -1
  309. package/build/features/node/NodeFeature.js.map +1 -1
  310. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  311. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  312. package/build/features/node/writers/NodeWriter.js.map +1 -1
  313. package/build/features/onboard/OnboardFeature.js.map +1 -1
  314. package/build/features/onboard/ScriptLoader.js.map +1 -1
  315. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  316. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  317. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  318. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  319. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  320. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  321. package/build/features/organization/OrganizationFeature.js.map +1 -1
  322. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  323. package/build/features/person/PersonFeature.js.map +1 -1
  324. package/build/features/person/actions/LoginAction.js.map +1 -1
  325. package/build/features/person/actions/LogoutAction.js.map +1 -1
  326. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  327. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  328. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  329. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  330. package/build/features/schema/SchemaFeature.js.map +1 -1
  331. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  332. package/build/features/schema/actions/CreateAction.js.map +1 -1
  333. package/build/features/schema/actions/SyncAction.js.map +1 -1
  334. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  335. package/build/features/schema/services/SchemaService.js.map +1 -1
  336. package/build/features/schema/stores/SchemaStore.d.ts +2 -1
  337. package/build/features/schema/stores/SchemaStore.js +2 -1
  338. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  339. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  340. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  341. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  342. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  343. package/build/features/skill/SkillFeature.js.map +1 -1
  344. package/build/features/skill/actions/BootAction.js.map +1 -1
  345. package/build/features/skill/actions/CreateAction.js.map +1 -1
  346. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  347. package/build/features/skill/actions/LoginAction.js.map +1 -1
  348. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  349. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  350. package/build/features/skill/stores/SkillStore.js.map +1 -1
  351. package/build/features/skill/updaters/Updater.js.map +1 -1
  352. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  353. package/build/features/store/StoreFeature.js.map +1 -1
  354. package/build/features/store/actions/CreateAction.js.map +1 -1
  355. package/build/features/store/actions/SyncAction.js.map +1 -1
  356. package/build/features/store/stores/StoreStore.js.map +1 -1
  357. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  358. package/build/features/store/writers/StoreWriter.js.map +1 -1
  359. package/build/features/test/TestFeature.js.map +1 -1
  360. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  361. package/build/features/test/TestReporter.js.map +1 -1
  362. package/build/features/test/TestRunner.js.map +1 -1
  363. package/build/features/test/actions/CreateAction.js.map +1 -1
  364. package/build/features/test/actions/SetupAction.js.map +1 -1
  365. package/build/features/test/actions/TestAction.js.map +1 -1
  366. package/build/features/test/writers/TestWriter.js.map +1 -1
  367. package/build/features/validateAndNormalize.utility.js.map +1 -1
  368. package/build/features/view/ViewFeature.js.map +1 -1
  369. package/build/features/view/actions/CreateAction.js.map +1 -1
  370. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  371. package/build/features/view/actions/SyncAction.js.map +1 -1
  372. package/build/features/view/actions/WatchAction.js.map +1 -1
  373. package/build/features/view/stores/ViewStore.js.map +1 -1
  374. package/build/features/view/writers/ViewWriter.js.map +1 -1
  375. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  376. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  377. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  378. package/build/features/watch/WatchFeature.js.map +1 -1
  379. package/build/index.js.map +1 -1
  380. package/build/interfaces/SpyInterface.js +0 -1
  381. package/build/interfaces/SpyInterface.js.map +1 -1
  382. package/build/interfaces/TerminalInterface.js.map +1 -1
  383. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  384. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  385. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  386. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  387. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  388. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  389. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  390. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  391. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  392. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  393. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  394. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  395. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  396. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  397. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  398. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  399. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  400. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  401. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  402. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  403. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  404. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  405. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  406. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  407. package/build/services/CommandService.d.ts +1 -0
  408. package/build/services/CommandService.js.map +1 -1
  409. package/build/services/GameService.js.map +1 -1
  410. package/build/services/ImportService.js.map +1 -1
  411. package/build/services/LintService.js.map +1 -1
  412. package/build/services/PkgService.js.map +1 -1
  413. package/build/services/ServiceFactory.js.map +1 -1
  414. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  415. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  416. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  417. package/build/tests/AbstractCliTest.js.map +1 -1
  418. package/build/tests/AbstractEventTest.js.map +1 -1
  419. package/build/tests/AbstractSchemaTest.js.map +1 -1
  420. package/build/tests/AbstractTestTest.js.map +1 -1
  421. package/build/tests/CommandFaker.js.map +1 -1
  422. package/build/tests/JestJsonParser.js.map +1 -1
  423. package/build/tests/buildTestCache.js.map +1 -1
  424. package/build/tests/cleanTestCache.js.map +1 -1
  425. package/build/tests/cleanTestData.js.map +1 -1
  426. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  427. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  428. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  429. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  430. package/build/tests/utilities/test.utility.js.map +1 -1
  431. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  432. package/build/utilities/action.utility.js.map +1 -1
  433. package/build/utilities/apiClient.utility.d.ts +1 -1
  434. package/build/utilities/commander.utility.js.map +1 -1
  435. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  436. package/build/utilities/form.utility.js.map +1 -1
  437. package/build/utilities/introspection.utility.js.map +1 -1
  438. package/build/utilities/tsConfig.utility.js.map +1 -1
  439. package/build/widgets/Theme.js.map +1 -1
  440. package/build/widgets/WidgetFactory.js.map +1 -1
  441. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  442. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  443. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  444. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  445. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  446. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  447. package/build/widgets/terminalKit/termKit.utility.d.ts +1 -1
  448. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  449. package/build/widgets/types/input.types.js.map +1 -1
  450. package/build/widgets/types/menuBar.types.js.map +1 -1
  451. package/build/widgets/types/text.types.js.map +1 -1
  452. package/build/widgets/types/window.types.js.map +1 -1
  453. package/build/widgets/widget.utilities.d.ts +1 -1
  454. package/build/writers/AbstractWriter.js.map +1 -1
  455. package/package.json +36 -36
  456. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
  457. package/src/features/schema/stores/SchemaStore.ts +4 -2
  458. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
  459. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
  460. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
  461. package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectingAnAbstractTestClass.test.js","names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","commandFaker","fakeInstall","testFeature","getFeatureInstaller","getFeature","feat","install","features","code","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","action","Action","actual","buildParentClassFromCandidate","path","isDefaultExport","isEqual","importPath","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","type","nameReadable","nameCamel","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CreateAction from '../../../features/test/actions/CreateAction'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static relativePathsAddDotSlash() {\n\t\tconst action = this.Action('test', 'create') as CreateAction\n\n\t\t//@ts-ignore\n\t\tconst actual = action.buildParentClassFromCandidate(\n\t\t\t{\n\t\t\t\tlabel: 'test',\n\t\t\t\tname: 'AbstractTest',\n\t\t\t\tpath: this.resolvePath('test/AbstractTest'),\n\t\t\t\tisDefaultExport: false,\n\t\t\t},\n\t\t\tthis.resolvePath('test')\n\t\t)\n\n\t\tassert.isEqual(actual.importPath, './AbstractTest')\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectingAnAbstractTestClass.test.js","names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","test","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","commandFaker","fakeInstall","testFeature","getFeatureInstaller","getFeature","feat","install","features","code","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","action","Action","actual","buildParentClassFromCandidate","path","isDefaultExport","isEqual","importPath","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","type","nameReadable","nameCamel","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CreateAction from '../../../features/test/actions/CreateAction'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static relativePathsAddDotSlash() {\n\t\tconst action = this.Action('test', 'create') as CreateAction\n\n\t\t//@ts-ignore\n\t\tconst actual = action.buildParentClassFromCandidate(\n\t\t\t{\n\t\t\t\tlabel: 'test',\n\t\t\t\tname: 'AbstractTest',\n\t\t\t\tpath: this.resolvePath('test/AbstractTest'),\n\t\t\t\tisDefaultExport: false,\n\t\t\t},\n\t\t\tthis.resolvePath('test')\n\t\t)\n\n\t\tassert.isEqual(actual.importPath, './AbstractTest')\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingUpTests.test.js","names":["SettingUpTestsTest","installTests","code","assertIsFeatureInstalled","command","Service","assert","doesThrowAsync","execute","err","errorAssert","assertError","doesInclude","options","stdout","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SettingUpTests.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\n\nexport default class SettingUpTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async installsTests() {\n\t\tawait this.installTests()\n\t\tconst code: FeatureCode = 'test'\n\t\tawait this.assertIsFeatureInstalled(code)\n\t}\n\n\t@test()\n\tprotected static async canRunTestsButSaysAtLeastOneTestIsNeeded() {\n\t\tawait this.installTests()\n\t\tconst command = this.Service('command')\n\t\tconst err = await assert.doesThrowAsync(() => command.execute('yarn test'))\n\n\t\terrorAssert.assertError(err, 'EXECUTING_COMMAND_FAILED')\n\t\t//@ts-ignore\n\t\tassert.doesInclude(err.options.stdout, /passWithNoTests/)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,kB,WACnB,iB,UAOA,iB;;;;;;;;;;;;;yGAPD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,YAAL,EAFP;;cAAA;gBAGOC,IAHP,GAG2B,MAH3B;gBAAA;gBAAA,OAIO,KAAKC,wBAAL,CAA8BD,IAA9B,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKD,YAAL,EAFP;;cAAA;gBAGOG,OAHP,GAGiB,KAAKC,OAAL,CAAa,SAAb,CAHjB;gBAAA;gBAAA,OAImBC,aAAOC,cAAP,CAAsB;kBAAA,OAAMH,OAAO,CAACI,OAAR,CAAgB,WAAhB,CAAN;gBAAA,CAAtB,CAJnB;;cAAA;gBAIOC,GAJP;;gBAMCC,uBAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,0BAA7B,EAND,CAOC;;;gBACAH,aAAOM,WAAP,CAAmBH,GAAG,CAACI,OAAJ,CAAYC,MAA/B,EAAuC,iBAAvC;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAR+CC,6B"}
1
+ {"version":3,"file":"SettingUpTests.test.js","names":["SettingUpTestsTest","test","installTests","code","assertIsFeatureInstalled","command","Service","assert","doesThrowAsync","execute","err","errorAssert","assertError","doesInclude","options","stdout","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SettingUpTests.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\n\nexport default class SettingUpTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async installsTests() {\n\t\tawait this.installTests()\n\t\tconst code: FeatureCode = 'test'\n\t\tawait this.assertIsFeatureInstalled(code)\n\t}\n\n\t@test()\n\tprotected static async canRunTestsButSaysAtLeastOneTestIsNeeded() {\n\t\tawait this.installTests()\n\t\tconst command = this.Service('command')\n\t\tconst err = await assert.doesThrowAsync(() => command.execute('yarn test'))\n\n\t\terrorAssert.assertError(err, 'EXECUTING_COMMAND_FAILED')\n\t\t//@ts-ignore\n\t\tassert.doesInclude(err.options.stdout, /passWithNoTests/)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,kB,WACnB,IAAAC,UAAA,G,UAOA,IAAAA,UAAA,G;;;;;;;;;;;;;yGAPD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,YAAL,EAFP;;cAAA;gBAGOC,IAHP,GAG2B,MAH3B;gBAAA;gBAAA,OAIO,KAAKC,wBAAL,CAA8BD,IAA9B,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oIAOA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKD,YAAL,EAFP;;cAAA;gBAGOG,OAHP,GAGiB,KAAKC,OAAL,CAAa,SAAb,CAHjB;gBAAA;gBAAA,OAImBC,YAAA,CAAOC,cAAP,CAAsB;kBAAA,OAAMH,OAAO,CAACI,OAAR,CAAgB,WAAhB,CAAN;gBAAA,CAAtB,CAJnB;;cAAA;gBAIOC,GAJP;;gBAMCC,sBAAA,CAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,0BAA7B,EAND,CAOC;;;gBACAH,YAAA,CAAOM,WAAP,CAAmBH,GAAG,CAACI,OAAJ,CAAYC,MAA/B,EAAuC,iBAAvC;;cARD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAR+CC,6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatingDependencies.test.js","names":["UpdatingDependenciesTest","action","Action","assert","isFunction","execute","files","file","diskUtil","writeFile","resolvePath","promise","wait","isFalse","doesFileExist","path","dir","isTrue","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class UpdatingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'node'\n\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async hasUpdateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async removesLockFilesBeforeInstallAndAlsoCleansUpAfterInstall() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file), 'not empty')\n\t\t}\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tfor (const file of files) {\n\t\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(file)))\n\t\t}\n\n\t\tawait promise\n\n\t\tfor (const file of files) {\n\t\t\tconst path = this.resolvePath(file)\n\t\t\tassert.isFalse(diskUtil.doesFileExist(path), `Expectedly found ${path}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async removesAndReAddsNodeModulesFolder() {\n\t\tconst dir = this.resolvePath('node_modules')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(100)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(dir))\n\n\t\tawait promise\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;sGAjCD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,aAAOC,UAAP,CAAkB,KAAKH,MAAL,CAAYI,OAA9B;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oJAKA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOC,KAFP,GAEe,CAAC,mBAAD,EAAsB,WAAtB,CAFf;;gBAGC,sBAAmBA,KAAnB,4BAA0B;kBAAfC,IAAe;;kBACzBC,2BAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBH,IAAjB,CAAnB,EAA2C,WAA3C;gBACA;;gBAEKI,OAPP,GAOiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CAPjB;gBAAA;gBAAA,OASO,KAAKO,IAAL,CAAU,EAAV,CATP;;cAAA;gBAWC,wBAAmBN,KAAnB,+BAA0B;kBAAfC,KAAe;;kBACzBJ,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuB,KAAKJ,WAAL,CAAiBH,KAAjB,CAAvB,CAAf;gBACA;;gBAbF;gBAAA,OAeOI,OAfP;;cAAA;gBAiBC,wBAAmBL,KAAnB,+BAA0B;kBAAfC,MAAe;kBACnBQ,IADmB,GACZ,KAAKL,WAAL,CAAiBH,MAAjB,CADY;;kBAEzBJ,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBC,IAAvB,CAAf,6BAAiEA,IAAjE;gBACA;;cApBF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6HAuBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,GAFP,GAEa,KAAKN,WAAL,CAAiB,cAAjB,CAFb;;gBAICP,aAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;gBAEML,OANP,GAMiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CANjB;gBAAA;gBAAA,OAQO,KAAKO,IAAL,CAAU,GAAV,CARP;;cAAA;gBAUCT,aAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBE,GAAvB,CAAf;;gBAVD;gBAAA,OAYOL,OAZP;;cAAA;gBAcCR,aAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;cAdD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAtCqDE,8B,8DACpB,M"}
1
+ {"version":3,"file":"UpdatingDependencies.test.js","names":["UpdatingDependenciesTest","test","action","Action","assert","isFunction","execute","files","file","diskUtil","writeFile","resolvePath","promise","wait","isFalse","doesFileExist","path","dir","isTrue","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class UpdatingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'node'\n\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async hasUpdateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async removesLockFilesBeforeInstallAndAlsoCleansUpAfterInstall() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file), 'not empty')\n\t\t}\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tfor (const file of files) {\n\t\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(file)))\n\t\t}\n\n\t\tawait promise\n\n\t\tfor (const file of files) {\n\t\t\tconst path = this.resolvePath(file)\n\t\t\tassert.isFalse(diskUtil.doesFileExist(path), `Expectedly found ${path}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async removesAndReAddsNodeModulesFolder() {\n\t\tconst dir = this.resolvePath('node_modules')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(100)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(dir))\n\n\t\tawait promise\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,wB,WAUnB,IAAAC,UAAA,G,UAKA,IAAAA,UAAA,G,UAuBA,IAAAA,UAAA,G;;;;;;;;;;;;;sGAjCD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAKA;QAAA;UAAA;YAAA;cAAA;gBAECC,YAAA,CAAOC,UAAP,CAAkB,KAAKH,MAAL,CAAYI,OAA9B;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;oJAKA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOC,KAFP,GAEe,CAAC,mBAAD,EAAsB,WAAtB,CAFf;;gBAGC,sBAAmBA,KAAnB,4BAA0B;kBAAfC,IAAe;;kBACzBC,0BAAA,CAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBH,IAAjB,CAAnB,EAA2C,WAA3C;gBACA;;gBAEKI,OAPP,GAOiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CAPjB;gBAAA;gBAAA,OASO,KAAKO,IAAL,CAAU,EAAV,CATP;;cAAA;gBAWC,wBAAmBN,KAAnB,+BAA0B;kBAAfC,KAAe;;kBACzBJ,YAAA,CAAOU,OAAP,CAAeL,0BAAA,CAASM,aAAT,CAAuB,KAAKJ,WAAL,CAAiBH,KAAjB,CAAvB,CAAf;gBACA;;gBAbF;gBAAA,OAeOI,OAfP;;cAAA;gBAiBC,wBAAmBL,KAAnB,+BAA0B;kBAAfC,MAAe;kBACnBQ,IADmB,GACZ,KAAKL,WAAL,CAAiBH,MAAjB,CADY;;kBAEzBJ,YAAA,CAAOU,OAAP,CAAeL,0BAAA,CAASM,aAAT,CAAuBC,IAAvB,CAAf,6BAAiEA,IAAjE;gBACA;;cApBF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6HAuBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,GAFP,GAEa,KAAKN,WAAL,CAAiB,cAAjB,CAFb;;gBAICP,YAAA,CAAOc,MAAP,CAAcT,0BAAA,CAASM,aAAT,CAAuBE,GAAvB,CAAd;;gBAEML,OANP,GAMiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CANjB;gBAAA;gBAAA,OAQO,KAAKO,IAAL,CAAU,GAAV,CARP;;cAAA;gBAUCT,YAAA,CAAOU,OAAP,CAAeL,0BAAA,CAASM,aAAT,CAAuBE,GAAvB,CAAf;;gBAVD;gBAAA,OAYOL,OAZP;;cAAA;gBAcCR,YAAA,CAAOc,MAAP,CAAcT,0BAAA,CAASM,aAAT,CAAuBE,GAAvB,CAAd;;cAdD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAtCqDE,8B,8DACpB,M"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatingDependencies2.test.js","names":["UpdateDependencies2Test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","getFeatureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","fakeCommand","code","callback","_","args","execute","assert","doesInclude","installRandomPackage","installRandomDevPackage","devName","blocked","blockRandomPackages","loadAllDependencies","allDeps","allDevDeps","pkg","getInstalledFeatures","features","feature","featureDependencies","deps","filter","d","isDev","map","n","stripLatest","devDeps","doesNotInclude","pkgJson","readPackage","Object","keys","dependencies","devDependencies","names","length","install","blockUpgrade","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { random, uniq } from 'lodash'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { NpmPackage } from '../../../types/cli.types'\n\nexport default class UpdateDependencies2Test extends AbstractCliTest {\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async locksVersionOfDependencyWhenDependencyAlreadyInPackageJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('pkg').set({ path: 'dependencies.axios', value: '0.0.1' })\n\n\t\tconst skill = this.getFeatureInstaller().getFeature('skill')\n\t\tskill.packageDependencies.push({\n\t\t\tname: 'axios',\n\t\t\tversion: '0.21.3',\n\t\t})\n\n\t\tconst passedArgs: string[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(...args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tassert.doesInclude(passedArgs, 'axios@0.21.3')\n\t}\n\n\t@test()\n\tprotected static async runsAddForAllDependenciesInPkgJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst name = await this.installRandomPackage()\n\t\tconst devName = await this.installRandomDevPackage()\n\t\tconst blocked = this.blockRandomPackages()\n\n\t\tconst { allDeps, allDevDeps } = this.loadAllDependencies(name, devName)\n\n\t\tlet passedArgs: any[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst features = await this.getFeatureInstaller().getInstalledFeatures()\n\n\t\tfor (const feature of features) {\n\t\t\tconst featureDependencies = feature.packageDependencies as NpmPackage[]\n\n\t\t\tconst deps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => !d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tconst devDeps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDevDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tfor (const d of deps) {\n\t\t\t\tassert.doesInclude(passedArgs[0], d)\n\t\t\t}\n\n\t\t\tfor (const d of devDeps) {\n\t\t\t\tassert.doesInclude(passedArgs[1], d)\n\t\t\t}\n\t\t}\n\n\t\tassert.doesNotInclude(passedArgs[0], blocked)\n\t\tassert.doesNotInclude(passedArgs[1], blocked)\n\t}\n\n\tprivate static loadAllDependencies(name: string, devName: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgJson = pkg.readPackage()\n\t\tconst allDeps = [...(Object.keys(pkgJson.dependencies) ?? []), name]\n\t\tconst allDevDeps = [\n\t\t\t...(Object.keys(pkgJson.devDependencies) ?? []),\n\t\t\tdevName,\n\t\t]\n\t\treturn { allDeps, allDevDeps }\n\t}\n\n\tprotected static async installRandomPackage() {\n\t\tconst names = ['moment', 'lodash']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name)\n\n\t\treturn name\n\t}\n\n\tprotected static async installRandomDevPackage() {\n\t\tconst names = ['chalk', 'axios']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name, { isDev: true })\n\n\t\treturn name\n\t}\n\n\tprotected static blockRandomPackages() {\n\t\tconst names = ['@sprucelabs/error', 'typescript']\n\t\tconst name = names[random(0, names.length - 1)]\n\n\t\tthis.action.blockUpgrade(name, this.Service('pkg'))\n\t\tthis.action.blockUpgrade('random', this.Service('pkg'))\n\n\t\treturn name\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;IAGqBA,uB,WAQnB,iB,UA0BA,iB;;;;;;;;;;;;;sGA/BD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sJAKA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAIC,KAAKC,OAAL,CAAa,KAAb,EAAoBC,GAApB,CAAwB;kBAAEC,IAAI,EAAE,oBAAR;kBAA8BC,KAAK,EAAE;gBAArC,CAAxB;gBAEMC,KANP,GAMe,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,OAAtC,CANf;gBAOCF,KAAK,CAACG,mBAAN,CAA0BC,IAA1B,CAA+B;kBAC9BC,IAAI,EAAE,OADwB;kBAE9BC,OAAO,EAAE;gBAFqB,CAA/B;gBAKMC,UAZP,GAY8B,EAZ9B;;gBAcCC,2BAAeC,WAAf,CAA2B,4BAA3B,EAAyD;kBACxDC,IAAI,EAAE,CADkD;kBAExDC,QAAQ,EAAE,kBAACC,CAAD,EAAIC,IAAJ,EAAa;oBACtBN,UAAU,CAACH,IAAX,OAAAG,UAAU,sCAASM,IAAT,EAAV;kBACA;gBAJuD,CAAzD;;gBAdD;gBAAA,OAqBO,KAAKrB,MAAL,CAAYsB,OAAZ,CAAoB,EAApB,CArBP;;cAAA;gBAuBCC,aAAOC,WAAP,CAAmBT,UAAnB,EAA+B,cAA/B;;cAvBD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;8HA0BA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,KAAKb,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;cAAA;gBAAA;gBAAA,OAIoB,KAAKsB,oBAAL,EAJpB;;cAAA;gBAIOZ,IAJP;gBAAA;gBAAA,OAKuB,KAAKa,uBAAL,EALvB;;cAAA;gBAKOC,OALP;gBAMOC,OANP,GAMiB,KAAKC,mBAAL,EANjB;gBAAA,wBAQiC,KAAKC,mBAAL,CAAyBjB,IAAzB,EAA+Bc,OAA/B,CARjC,EAQSI,OART,yBAQSA,OART,EAQkBC,UARlB,yBAQkBA,UARlB;gBAUKjB,UAVL,GAUyB,EAVzB;;gBAYCC,2BAAeC,WAAf,CAA2B,4BAA3B,EAAyD;kBACxDC,IAAI,EAAE,CADkD;kBAExDC,QAAQ,EAAE,kBAACC,CAAD,EAAIC,IAAJ,EAAa;oBACtBN,UAAU,CAACH,IAAX,CAAgBS,IAAhB;kBACA;gBAJuD,CAAzD;;gBAZD;gBAAA,OAmBO,KAAKrB,MAAL,CAAYsB,OAAZ,CAAoB,EAApB,CAnBP;;cAAA;gBAqBOW,GArBP,GAqBa,KAAK7B,OAAL,CAAa,KAAb,CArBb;gBAAA;gBAAA,OAsBwB,KAAKK,mBAAL,GAA2ByB,oBAA3B,EAtBxB;;cAAA;gBAsBOC,QAtBP;gBAAA,uCAwBuBA,QAxBvB;;gBAAA;kBAwBC,oDAAgC;oBAArBC,OAAqB;oBACzBC,mBADyB,GACHD,OAAO,CAACzB,mBADL;oBAGzB2B,IAHyB,GAGlB,kBACZ,8CACIP,OADJ,uCAEIM,mBAAmB,CAACE,MAApB,CAA2B,UAACC,CAAD;sBAAA,OAAO,CAACA,CAAC,CAACC,KAAV;oBAAA,CAA3B,EAA4CC,GAA5C,CAAgD,UAACF,CAAD;sBAAA,OAAOA,CAAC,CAAC3B,IAAT;oBAAA,CAAhD,CAFJ,GAIE6B,GAJF,CAIM,UAACC,CAAD;sBAAA,OAAOV,GAAG,CAACW,WAAJ,CAAgBD,CAAhB,CAAP;oBAAA,CAJN,EAKEJ,MALF,CAKS,UAACI,CAAD;sBAAA,OAAOA,CAAC,KAAKf,OAAb;oBAAA,CALT,CADY,CAHkB;oBAYzBiB,OAZyB,GAYf,kBACf,8CACIb,UADJ,uCAEIK,mBAAmB,CAACE,MAApB,CAA2B,UAACC,CAAD;sBAAA,OAAOA,CAAC,CAACC,KAAT;oBAAA,CAA3B,EAA2CC,GAA3C,CAA+C,UAACF,CAAD;sBAAA,OAAOA,CAAC,CAAC3B,IAAT;oBAAA,CAA/C,CAFJ,GAIE6B,GAJF,CAIM,UAACC,CAAD;sBAAA,OAAOV,GAAG,CAACW,WAAJ,CAAgBD,CAAhB,CAAP;oBAAA,CAJN,EAKEJ,MALF,CAKS,UAACI,CAAD;sBAAA,OAAOA,CAAC,KAAKf,OAAb;oBAAA,CALT,CADe,CAZe;oBAAA,wCAqBfU,IArBe;;oBAAA;sBAqB/B,uDAAsB;wBAAXE,CAAW;;wBACrBjB,aAAOC,WAAP,CAAmBT,UAAU,CAAC,CAAD,CAA7B,EAAkCyB,CAAlC;sBACA;oBAvB8B;sBAAA;oBAAA;sBAAA;oBAAA;;oBAAA,wCAyBfK,OAzBe;;oBAAA;sBAyB/B,uDAAyB;wBAAdL,EAAc;;wBACxBjB,aAAOC,WAAP,CAAmBT,UAAU,CAAC,CAAD,CAA7B,EAAkCyB,EAAlC;sBACA;oBA3B8B;sBAAA;oBAAA;sBAAA;oBAAA;kBA4B/B;gBApDF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAsDCjB,aAAOuB,cAAP,CAAsB/B,UAAU,CAAC,CAAD,CAAhC,EAAqCa,OAArC;;gBACAL,aAAOuB,cAAP,CAAsB/B,UAAU,CAAC,CAAD,CAAhC,EAAqCa,OAArC;;cAvDD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WA0DA,6BAAmCf,IAAnC,EAAiDc,OAAjD,EAAkE;MAAA;;MACjE,IAAMM,GAAG,GAAG,KAAK7B,OAAL,CAAa,KAAb,CAAZ;MACA,IAAM2C,OAAO,GAAGd,GAAG,CAACe,WAAJ,EAAhB;MACA,IAAMjB,OAAO,iEAAQkB,MAAM,CAACC,IAAP,CAAYH,OAAO,CAACI,YAApB,CAAR,uDAA6C,EAA7C,IAAkDtC,IAAlD,EAAb;MACA,IAAMmB,UAAU,kEACXiB,MAAM,CAACC,IAAP,CAAYH,OAAO,CAACK,eAApB,CADW,yDAC6B,EAD7B,IAEfzB,OAFe,EAAhB;MAIA,OAAO;QAAEI,OAAO,EAAPA,OAAF;QAAWC,UAAU,EAAVA;MAAX,CAAP;IACA;;;;gHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOqB,KADP,GACe,CAAC,QAAD,EAAW,QAAX,CADf;gBAEOxC,IAFP,GAEcwC,KAAK,CAAC,oBAAO,CAAP,EAAUA,KAAK,CAACC,MAAN,GAAe,CAAzB,CAAD,CAFnB;gBAGOrB,GAHP,GAGa,KAAK7B,OAAL,CAAa,KAAb,CAHb;gBAAA;gBAAA,OAIO6B,GAAG,CAACsB,OAAJ,CAAY1C,IAAZ,CAJP;;cAAA;gBAAA,kCAMQA,IANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOwC,KADP,GACe,CAAC,OAAD,EAAU,OAAV,CADf;gBAEOxC,IAFP,GAEcwC,KAAK,CAAC,oBAAO,CAAP,EAAUA,KAAK,CAACC,MAAN,GAAe,CAAzB,CAAD,CAFnB;gBAGOrB,GAHP,GAGa,KAAK7B,OAAL,CAAa,KAAb,CAHb;gBAAA;gBAAA,OAIO6B,GAAG,CAACsB,OAAJ,CAAY1C,IAAZ,EAAkB;kBAAE4B,KAAK,EAAE;gBAAT,CAAlB,CAJP;;cAAA;gBAAA,kCAMQ5B,IANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WASA,+BAAuC;MACtC,IAAMwC,KAAK,GAAG,CAAC,mBAAD,EAAsB,YAAtB,CAAd;MACA,IAAMxC,IAAI,GAAGwC,KAAK,CAAC,oBAAO,CAAP,EAAUA,KAAK,CAACC,MAAN,GAAe,CAAzB,CAAD,CAAlB;MAEA,KAAKtD,MAAL,CAAYwD,YAAZ,CAAyB3C,IAAzB,EAA+B,KAAKT,OAAL,CAAa,KAAb,CAA/B;MACA,KAAKJ,MAAL,CAAYwD,YAAZ,CAAyB,QAAzB,EAAmC,KAAKpD,OAAL,CAAa,KAAb,CAAnC;MAEA,OAAOS,IAAP;IACA;;;EAjImD4C,4B"}
1
+ {"version":3,"file":"UpdatingDependencies2.test.js","names":["UpdateDependencies2Test","test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","getFeatureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","fakeCommand","code","callback","_","args","execute","assert","doesInclude","installRandomPackage","installRandomDevPackage","devName","blocked","blockRandomPackages","loadAllDependencies","allDeps","allDevDeps","pkg","getInstalledFeatures","features","feature","featureDependencies","deps","uniq","filter","d","isDev","map","n","stripLatest","devDeps","doesNotInclude","pkgJson","readPackage","Object","keys","dependencies","devDependencies","names","random","length","install","blockUpgrade","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { random, uniq } from 'lodash'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { NpmPackage } from '../../../types/cli.types'\n\nexport default class UpdateDependencies2Test extends AbstractCliTest {\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async locksVersionOfDependencyWhenDependencyAlreadyInPackageJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('pkg').set({ path: 'dependencies.axios', value: '0.0.1' })\n\n\t\tconst skill = this.getFeatureInstaller().getFeature('skill')\n\t\tskill.packageDependencies.push({\n\t\t\tname: 'axios',\n\t\t\tversion: '0.21.3',\n\t\t})\n\n\t\tconst passedArgs: string[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(...args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tassert.doesInclude(passedArgs, 'axios@0.21.3')\n\t}\n\n\t@test()\n\tprotected static async runsAddForAllDependenciesInPkgJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst name = await this.installRandomPackage()\n\t\tconst devName = await this.installRandomDevPackage()\n\t\tconst blocked = this.blockRandomPackages()\n\n\t\tconst { allDeps, allDevDeps } = this.loadAllDependencies(name, devName)\n\n\t\tlet passedArgs: any[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst features = await this.getFeatureInstaller().getInstalledFeatures()\n\n\t\tfor (const feature of features) {\n\t\t\tconst featureDependencies = feature.packageDependencies as NpmPackage[]\n\n\t\t\tconst deps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => !d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tconst devDeps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDevDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tfor (const d of deps) {\n\t\t\t\tassert.doesInclude(passedArgs[0], d)\n\t\t\t}\n\n\t\t\tfor (const d of devDeps) {\n\t\t\t\tassert.doesInclude(passedArgs[1], d)\n\t\t\t}\n\t\t}\n\n\t\tassert.doesNotInclude(passedArgs[0], blocked)\n\t\tassert.doesNotInclude(passedArgs[1], blocked)\n\t}\n\n\tprivate static loadAllDependencies(name: string, devName: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgJson = pkg.readPackage()\n\t\tconst allDeps = [...(Object.keys(pkgJson.dependencies) ?? []), name]\n\t\tconst allDevDeps = [\n\t\t\t...(Object.keys(pkgJson.devDependencies) ?? []),\n\t\t\tdevName,\n\t\t]\n\t\treturn { allDeps, allDevDeps }\n\t}\n\n\tprotected static async installRandomPackage() {\n\t\tconst names = ['moment', 'lodash']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name)\n\n\t\treturn name\n\t}\n\n\tprotected static async installRandomDevPackage() {\n\t\tconst names = ['chalk', 'axios']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name, { isDev: true })\n\n\t\treturn name\n\t}\n\n\tprotected static blockRandomPackages() {\n\t\tconst names = ['@sprucelabs/error', 'typescript']\n\t\tconst name = names[random(0, names.length - 1)]\n\n\t\tthis.action.blockUpgrade(name, this.Service('pkg'))\n\t\tthis.action.blockUpgrade('random', this.Service('pkg'))\n\n\t\treturn name\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingANodeModule.test.js","names":["UpgradingANodeModuleTest","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","fakeCommand","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAiBA,iB,UAcA,iB;;;;;;;;;;;;;sGAxCD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAGO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,kBAA5C,CAHP;;cAAA;gBAKOC,gBALP,GAK0B,KAAKC,mBAAL,EAL1B;gBAMCD,gBAAgB,CAACE,wBAAjB,CAA0C,OAA1C;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gIASA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,2BAAeC,WAAf,CAA2B,sBAA3B,EAAoD;kBAAEC,IAAI,EAAE;gBAAR,CAApD;;gBACAF,2BAAeC,WAAf,CAA2B,yBAA3B,EAAkD;kBAAEC,IAAI,EAAE;gBAAR,CAAlD;;gBACAF,2BAAeC,WAAf,CAA2B,uBAA3B,EAAgD;kBAAEC,IAAI,EAAE;gBAAR,CAAhD;;gBAJD;gBAAA,OAMO,KAAKC,UAAL,GAAkBC,EAAlB,CAAqB,qBAArB,EAA4C,YAAM;kBACvD,OAAO;oBACNC,MAAM,EAAEC;kBADF,CAAP;gBAGA,CAJK,CANP;;cAAA;gBAAA;gBAAA,OAYuB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAZvB;;cAAA;gBAYOC,OAZP;;gBAcCC,aAAOC,QAAP,CAAgBF,OAAO,CAACJ,MAAxB;;cAdD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wHAiBA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEOO,gBAFP,GAE0B,CAAC,sBAAD,EAAyB,sBAAzB,CAF1B;gBAAA;gBAAA,OAIuB,KAAKL,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAJvB;;cAAA;gBAIOC,OAJP;;gBAMCC,aAAOG,OAAP,CAAeJ,OAAO,CAACJ,MAAvB;;gBAEA,iCAAqBO,gBAArB,uCAAuC;kBAA5BE,MAA4B;kBAChCC,SADgC,GACpBC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiBJ,MAAjB,CAAvB,CADoB;;kBAEtCJ,aAAOS,OAAP,CAAeJ,SAAf,kCAAmDD,MAAnD;gBACA;;cAXF;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4HAcA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAEC,qBAAmB,CAAC,eAAD,EAAkB,cAAlB,CAAnB,4BAAsD;kBAA3CM,IAA2C;kBAC/CC,QAD+C,GACpC,KAAKH,WAAL,CAAiBE,IAAjB,CADoC;;kBAErDJ,2BAASM,SAAT,CAAmBD,QAAnB,EAA6B,aAA7B;gBACA;;gBAEDrB,2BAAeC,WAAf,CAA2B,QAA3B,EAAqC;kBACpCC,IAAI,EAAE;gBAD8B,CAArC;;gBAIMqB,OAXP,GAWiB,KAAKhB,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAXjB;gBAAA;gBAAA,OAaOgB,qBAASC,6BAAT,CAAuC,KAAKC,EAA5C,CAbP;;cAAA;gBAeChB,aAAOiB,OAAP,CACCX,2BAASY,QAAT,CAAkB,KAAKV,WAAL,CAAiB,cAAjB,CAAlB,CADD,EAEC,aAFD;;gBAfD;gBAAA,OAoBOK,OApBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAzCqDM,4B"}
1
+ {"version":3,"file":"UpgradingANodeModule.test.js","names":["UpgradingANodeModuleTest","test","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","fakeCommand","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill.test.js","names":["BROKEN_SKILL_INDEX_CONTENTS","UpgradingASkillTest","commandFaker","fakeRebuild","installAndBreakSkill","cli","fakeCleanBuild","fakeBuild","files","name","path","forceEverythingAction","forceRequiredSkipRestAction","upgradeMode","file","clearFileIfAboutToBeUpdated","Action","execute","results","checkHealth","passedHealthCheck","assert","isEqualDeep","skill","status","action","doesInclude","JSON","stringify","promise","waitForInput","assertFailedHealthCheck","last","ui","getLastInvocation","FILE_ACTION_OVERWRITE","sendInput","isFalsy","errors","health","isEqual","installBreakAndUpgradeSkill","FILE_ACTION_SKIP","assertSkillIsBroken","FILE_ACTION_ALWAYS_SKIP","installSkill","pkgService","Service","set","value","failedHealth","passedHealth","diskUtil","writeFile","resolvePath","cacheKey","indexFile","fixture","FeatureFixture","installFeatures","code","options","description","failedHealthCheck","contents","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../../../constants'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { GeneratedFile } from '../../../types/cli.types'\nconst BROKEN_SKILL_INDEX_CONTENTS = \"throw new Error('cheese!')\\n\"\nexport default class UpgradingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test()\n\tprotected static async forceEverythingUpgradeOverwritesWhatHasChanged() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tthis.commandFaker.fakeCleanBuild()\n\t\tthis.commandFaker.fakeBuild()\n\n\t\tconst files: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t}[] = [\n\t\t\t{\n\t\t\t\tname: 'index.ts',\n\t\t\t\tpath: 'src/index.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: '.eslintrc.js',\n\t\t\t\tpath: '.eslintrc.js',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'SpruceError.ts',\n\t\t\t\tpath: 'src/errors/SpruceError.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'options.types.ts',\n\t\t\t\tpath: 'src/.spruce/errors/options.types.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t]\n\n\t\tfor (const upgradeMode of ['forceRequiredSkipRest', 'forceEverything']) {\n\t\t\tfor (const file of files) {\n\t\t\t\tthis.clearFileIfAboutToBeUpdated(file, upgradeMode)\n\t\t\t}\n\n\t\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\t\tupgradeMode,\n\t\t\t})\n\n\t\t\tif (upgradeMode === 'forceRequiredSkipRest') {\n\t\t\t\tconst passedHealthCheck = await cli.checkHealth()\n\t\t\t\tassert.isEqualDeep(passedHealthCheck, { skill: { status: 'passed' } })\n\t\t\t}\n\n\t\t\tfor (const file of files) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tconst action = file[`${upgradeMode}Action`]\n\t\t\t\tassert.doesInclude(\n\t\t\t\t\tresults.files,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: file.name,\n\t\t\t\t\t\taction,\n\t\t\t\t\t},\n\t\t\t\t\t`${\n\t\t\t\t\t\tfile.name\n\t\t\t\t\t} was not ${action} when ${upgradeMode} in \\n\\n ${JSON.stringify(\n\t\t\t\t\t\tresults.files ?? [],\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tconst passedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(passedHealthCheck, {\n\t\t\t'skill.status': 'passed',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async upgradeWillAskIfYouWantToOverwriteFiles() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_OVERWRITE,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_OVERWRITE)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'passed')\n\t}\n\n\t@test()\n\tprotected static async canSkipFile() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async canAlwaysSkipFiles() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_ALWAYS_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async upgradesUpdatesPackageScripts() {\n\t\tconst cli = await this.installSkill('schemas')\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tpkgService.set({ path: 'scripts', value: {} })\n\n\t\tconst failedHealth = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealth, {\n\t\t\t'skill.errors[].message': '\"health.local\" not found',\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst passedHealth = await cli.checkHealth()\n\t\tassert.isEqual(passedHealth.skill.status, 'passed')\n\t}\n\n\tprivate static clearFileIfAboutToBeUpdated(\n\t\tfile: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t},\n\t\tupgradeMode: string\n\t) {\n\t\t//@ts-ignore\n\t\tif (file[`${upgradeMode}Action`] === 'updated') {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file.path), '')\n\t\t}\n\t}\n\n\tprivate static async installAndBreakSkill(cacheKey: string) {\n\t\tconst cli = await this.installSkill(cacheKey)\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tdiskUtil.writeFile(indexFile, BROKEN_SKILL_INDEX_CONTENTS)\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\treturn cli\n\t}\n\n\tprivate static async installSkill(cacheKey: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\t\treturn cli\n\t}\n\n\tprivate static async assertFailedHealthCheck(cli: CliInterface) {\n\t\tconst failedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealthCheck, {\n\t\t\t'skill.errors[].message': 'cheese',\n\t\t})\n\t}\n\n\tprivate static async installBreakAndUpgradeSkill() {\n\t\tawait this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\treturn { last, promise }\n\t}\n\n\tprivate static assertSkillIsBroken() {\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tconst contents = diskUtil.readFile(indexFile)\n\t\tassert.isEqual(contents, BROKEN_SKILL_INDEX_CONTENTS)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill.test.js","names":["BROKEN_SKILL_INDEX_CONTENTS","UpgradingASkillTest","test","commandFaker","fakeRebuild","installAndBreakSkill","cli","fakeCleanBuild","fakeBuild","files","name","path","forceEverythingAction","forceRequiredSkipRestAction","upgradeMode","file","clearFileIfAboutToBeUpdated","Action","execute","results","checkHealth","passedHealthCheck","assert","isEqualDeep","skill","status","action","doesInclude","JSON","stringify","promise","waitForInput","assertFailedHealthCheck","last","ui","getLastInvocation","FILE_ACTION_OVERWRITE","sendInput","isFalsy","errors","health","isEqual","installBreakAndUpgradeSkill","FILE_ACTION_SKIP","assertSkillIsBroken","FILE_ACTION_ALWAYS_SKIP","installSkill","pkgService","Service","set","value","failedHealth","passedHealth","diskUtil","writeFile","resolvePath","cacheKey","indexFile","fixture","FeatureFixture","installFeatures","code","options","description","failedHealthCheck","contents","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../../../constants'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { GeneratedFile } from '../../../types/cli.types'\nconst BROKEN_SKILL_INDEX_CONTENTS = \"throw new Error('cheese!')\\n\"\nexport default class UpgradingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test()\n\tprotected static async forceEverythingUpgradeOverwritesWhatHasChanged() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tthis.commandFaker.fakeCleanBuild()\n\t\tthis.commandFaker.fakeBuild()\n\n\t\tconst files: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t}[] = [\n\t\t\t{\n\t\t\t\tname: 'index.ts',\n\t\t\t\tpath: 'src/index.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: '.eslintrc.js',\n\t\t\t\tpath: '.eslintrc.js',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'SpruceError.ts',\n\t\t\t\tpath: 'src/errors/SpruceError.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'options.types.ts',\n\t\t\t\tpath: 'src/.spruce/errors/options.types.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t]\n\n\t\tfor (const upgradeMode of ['forceRequiredSkipRest', 'forceEverything']) {\n\t\t\tfor (const file of files) {\n\t\t\t\tthis.clearFileIfAboutToBeUpdated(file, upgradeMode)\n\t\t\t}\n\n\t\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\t\tupgradeMode,\n\t\t\t})\n\n\t\t\tif (upgradeMode === 'forceRequiredSkipRest') {\n\t\t\t\tconst passedHealthCheck = await cli.checkHealth()\n\t\t\t\tassert.isEqualDeep(passedHealthCheck, { skill: { status: 'passed' } })\n\t\t\t}\n\n\t\t\tfor (const file of files) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tconst action = file[`${upgradeMode}Action`]\n\t\t\t\tassert.doesInclude(\n\t\t\t\t\tresults.files,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: file.name,\n\t\t\t\t\t\taction,\n\t\t\t\t\t},\n\t\t\t\t\t`${\n\t\t\t\t\t\tfile.name\n\t\t\t\t\t} was not ${action} when ${upgradeMode} in \\n\\n ${JSON.stringify(\n\t\t\t\t\t\tresults.files ?? [],\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tconst passedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(passedHealthCheck, {\n\t\t\t'skill.status': 'passed',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async upgradeWillAskIfYouWantToOverwriteFiles() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_OVERWRITE,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_OVERWRITE)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'passed')\n\t}\n\n\t@test()\n\tprotected static async canSkipFile() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async canAlwaysSkipFiles() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_ALWAYS_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async upgradesUpdatesPackageScripts() {\n\t\tconst cli = await this.installSkill('schemas')\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tpkgService.set({ path: 'scripts', value: {} })\n\n\t\tconst failedHealth = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealth, {\n\t\t\t'skill.errors[].message': '\"health.local\" not found',\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst passedHealth = await cli.checkHealth()\n\t\tassert.isEqual(passedHealth.skill.status, 'passed')\n\t}\n\n\tprivate static clearFileIfAboutToBeUpdated(\n\t\tfile: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t},\n\t\tupgradeMode: string\n\t) {\n\t\t//@ts-ignore\n\t\tif (file[`${upgradeMode}Action`] === 'updated') {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file.path), '')\n\t\t}\n\t}\n\n\tprivate static async installAndBreakSkill(cacheKey: string) {\n\t\tconst cli = await this.installSkill(cacheKey)\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tdiskUtil.writeFile(indexFile, BROKEN_SKILL_INDEX_CONTENTS)\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\treturn cli\n\t}\n\n\tprivate static async installSkill(cacheKey: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\t\treturn cli\n\t}\n\n\tprivate static async assertFailedHealthCheck(cli: CliInterface) {\n\t\tconst failedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealthCheck, {\n\t\t\t'skill.errors[].message': 'cheese',\n\t\t})\n\t}\n\n\tprivate static async installBreakAndUpgradeSkill() {\n\t\tawait this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\treturn { last, promise }\n\t}\n\n\tprivate static assertSkillIsBroken() {\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tconst contents = diskUtil.readFile(indexFile)\n\t\tassert.isEqual(contents, BROKEN_SKILL_INDEX_CONTENTS)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill2.test.js","names":["UpgradingASkill2Test","commandFaker","fakeRebuild","pluginName","cacheKey","shouldMockYarn","FeatureFixture","installCachedFeatures","fakeCommand","pluginPath","resolveHashSprucePath","originalContents","diskUtil","readFile","writeFile","Action","execute","results","assert","isFalsy","errors","testUtil","assertFileByNameInGeneratedFiles","files","updatedContents","isEqual","doesInclude","summaryLines","pkg","Service","set","path","value","promise","waitForInput","last","ui","getLastInvocation","command","options","choices","sendInput","get","isNotEqual","match","newContents","listeners","resolvePath","doesDirExist","matches","fsUtil","readdirSync","isLength","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill2.test.ts"],"sourcesContent":["import fsUtil from 'fs'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill2Test extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test(\n\t\t'Upgrades error.plugin (even if skill is broken)',\n\t\t'error.plugin.ts',\n\t\t'errors'\n\t)\n\t@test(\n\t\t'Upgrades schema.plugin (even if skill is broken)',\n\t\t'schema.plugin.ts',\n\t\t'schemas'\n\t)\n\t@test(\n\t\t'Upgrades conversation.plugin (even if skill is broken)',\n\t\t'conversation.plugin.ts',\n\t\t'conversation',\n\t\tfalse\n\t)\n\t@test(\n\t\t'Upgrades view.plugin (even if skill is broken)',\n\t\t'view.plugin.ts',\n\t\t'views',\n\t\tfalse\n\t)\n\tprotected static async upgradesPlugins(\n\t\tpluginName: string,\n\t\tcacheKey: string,\n\t\tshouldMockYarn = true\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(cacheKey)\n\n\t\tshouldMockYarn && this.commandFaker.fakeCommand(/yarn/, 0)\n\n\t\tconst pluginPath = this.resolveHashSprucePath(`features/${pluginName}`)\n\t\tconst originalContents = diskUtil.readFile(pluginPath)\n\n\t\tdiskUtil.writeFile(pluginPath, 'aoeuaoeuao-euaoeu')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(pluginName, results.files)\n\n\t\tconst updatedContents = diskUtil.readFile(pluginPath)\n\n\t\tassert.isEqual(updatedContents, originalContents)\n\n\t\tassert.doesInclude(results.summaryLines ?? [], 'successfully')\n\t}\n\n\t@test()\n\tprotected static async canSkipPackageScriptChanges() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tassert.doesInclude(last.options.options.choices, { value: 'skip' })\n\t\tassert.doesInclude(last.options.options.choices, { value: 'skipAll' })\n\t\tassert.doesInclude(last.options.options.choices, { value: 'overwrite' })\n\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async asksForEachScriptChange() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait this.waitForInput()\n\n\t\tlast = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async canSkipAllScriptChanges() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skipAll')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async canOverwriteChangedScript() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tassert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillWithSandboxUpgradesTheListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('sandbox')\n\t\tconst results = await this.Action('sandbox', 'setup').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/will-boot/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst originalContents = diskUtil.readFile(match)\n\t\tdiskUtil.writeFile(match, 'broken')\n\n\t\tthis.commandFaker.fakeCommand(/yarn/, 0)\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst newContents = diskUtil.readFile(match)\n\t\tassert.isEqual(originalContents, newContents)\n\t}\n\n\tprotected static assertSandboxListenerNotWritten() {\n\t\tconst listeners = this.resolvePath('src', 'listeners')\n\t\tif (!diskUtil.doesDirExist(listeners)) {\n\t\t\treturn\n\t\t}\n\t\tconst matches = fsUtil.readdirSync(listeners)\n\t\tassert.isLength(\n\t\t\tmatches,\n\t\t\t0,\n\t\t\t'A sandbox listeners was written and it should not have been.'\n\t\t)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill2.test.js","names":["UpgradingASkill2Test","test","commandFaker","fakeRebuild","pluginName","cacheKey","shouldMockYarn","FeatureFixture","installCachedFeatures","fakeCommand","pluginPath","resolveHashSprucePath","originalContents","diskUtil","readFile","writeFile","Action","execute","results","assert","isFalsy","errors","testUtil","assertFileByNameInGeneratedFiles","files","updatedContents","isEqual","doesInclude","summaryLines","pkg","Service","set","path","value","promise","waitForInput","last","ui","getLastInvocation","command","options","choices","sendInput","get","isNotEqual","match","newContents","listeners","resolvePath","doesDirExist","matches","fsUtil","readdirSync","isLength","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill2.test.ts"],"sourcesContent":["import fsUtil from 'fs'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill2Test extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.commandFaker.fakeRebuild()\n\t}\n\n\t@test(\n\t\t'Upgrades error.plugin (even if skill is broken)',\n\t\t'error.plugin.ts',\n\t\t'errors'\n\t)\n\t@test(\n\t\t'Upgrades schema.plugin (even if skill is broken)',\n\t\t'schema.plugin.ts',\n\t\t'schemas'\n\t)\n\t@test(\n\t\t'Upgrades conversation.plugin (even if skill is broken)',\n\t\t'conversation.plugin.ts',\n\t\t'conversation',\n\t\tfalse\n\t)\n\t@test(\n\t\t'Upgrades view.plugin (even if skill is broken)',\n\t\t'view.plugin.ts',\n\t\t'views',\n\t\tfalse\n\t)\n\tprotected static async upgradesPlugins(\n\t\tpluginName: string,\n\t\tcacheKey: string,\n\t\tshouldMockYarn = true\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(cacheKey)\n\n\t\tshouldMockYarn && this.commandFaker.fakeCommand(/yarn/, 0)\n\n\t\tconst pluginPath = this.resolveHashSprucePath(`features/${pluginName}`)\n\t\tconst originalContents = diskUtil.readFile(pluginPath)\n\n\t\tdiskUtil.writeFile(pluginPath, 'aoeuaoeuao-euaoeu')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(pluginName, results.files)\n\n\t\tconst updatedContents = diskUtil.readFile(pluginPath)\n\n\t\tassert.isEqual(updatedContents, originalContents)\n\n\t\tassert.doesInclude(results.summaryLines ?? [], 'successfully')\n\t}\n\n\t@test()\n\tprotected static async canSkipPackageScriptChanges() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tassert.doesInclude(last.options.options.choices, { value: 'skip' })\n\t\tassert.doesInclude(last.options.options.choices, { value: 'skipAll' })\n\t\tassert.doesInclude(last.options.options.choices, { value: 'overwrite' })\n\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async asksForEachScriptChange() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait this.waitForInput()\n\n\t\tlast = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skip')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async canSkipAllScriptChanges() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('skipAll')\n\n\t\tawait promise\n\n\t\tassert.isEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async canOverwriteChangedScript() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tassert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillWithSandboxUpgradesTheListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('sandbox')\n\t\tconst results = await this.Action('sandbox', 'setup').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/will-boot/,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst originalContents = diskUtil.readFile(match)\n\t\tdiskUtil.writeFile(match, 'broken')\n\n\t\tthis.commandFaker.fakeCommand(/yarn/, 0)\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst newContents = diskUtil.readFile(match)\n\t\tassert.isEqual(originalContents, newContents)\n\t}\n\n\tprotected static assertSandboxListenerNotWritten() {\n\t\tconst listeners = this.resolvePath('src', 'listeners')\n\t\tif (!diskUtil.doesDirExist(listeners)) {\n\t\t\treturn\n\t\t}\n\t\tconst matches = fsUtil.readdirSync(listeners)\n\t\tassert.isLength(\n\t\t\tmatches,\n\t\t\t0,\n\t\t\t'A sandbox listeners was written and it should not have been.'\n\t\t)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill3.test.js","names":["UpgradingASkill3Test","originalErrorSyncExecute","SyncAction","prototype","execute","CommandService","fakeCommand","RegExp","code","clearMockResponses","FeatureFixture","installCachedFeatures","Action","dependencies","Service","get","assert","isFalsy","results","doesThrow","testUtil","assertFileByNameInGeneratedFiles","files","assertViewPluginNotWritten","events","eventDiskUtil","resolveCombinedEventsContractFile","cwd","isTrue","diskUtil","doesFileExist","UpdateDependenciesAction","Error","isTruthy","errors","doesInclude","message","wasCleanBuildCalled","callback","wasBuildDevCalled","plugin","getViewsPluginPath","deleteFile","isFalse","isInstalled","wasHit","disableCleanBuildAndYarnAdd","isEqual","destroyErrorPlugin","expectedContents","promise","upgradeMode","waitForInput","ui","sendInput","actualContents","readFile","nameReadable","nameCamel","disableCleanAndBuild","resolveHashSprucePath","writeFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts"],"sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SyncAction from '../../../features/error/actions/SyncAction'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill3Test extends AbstractCliTest {\n\tprivate static originalErrorSyncExecute: any\n\tprotected static async beforeEach() {\n\t\tif (!this.originalErrorSyncExecute) {\n\t\t\tthis.originalErrorSyncExecute = SyncAction.prototype.execute\n\t\t} else {\n\t\t\tSyncAction.prototype.execute = this.originalErrorSyncExecute\n\t\t}\n\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotAddResolvePathAliasesToDependenciesAfterUpgrade() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\t}\n\n\t@test()\n\tprotected static async featuresNotEnabledDontInstall() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'events.contract.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\n\t\tthis.assertViewPluginNotWritten()\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillSyncsEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\t\tconst events = eventDiskUtil.resolveCombinedEventsContractFile(this.cwd)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(events))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeCallsUpdateDependencies() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tUpdateDependenciesAction.prototype.execute = () => {\n\t\t\tthrow new Error('baaaaad')\n\t\t}\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, 'baaaaad')\n\t}\n\n\t@test()\n\tprotected static async callsCleanFixAndBuildDev() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tlet wasCleanBuildCalled = false\n\t\tUpdateDependenciesAction.prototype.execute = async () => {\n\t\t\treturn {}\n\t\t}\n\n\t\tCommandService.fakeCommand('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasCleanBuildCalled = true\n\t\t\t},\n\t\t})\n\n\t\tlet wasBuildDevCalled = false\n\n\t\tCommandService.fakeCommand('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasBuildDevCalled = true\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTrue(wasCleanBuildCalled)\n\t\tassert.isTrue(wasBuildDevCalled)\n\t}\n\n\t@test()\n\tprotected static async writesViewPlugin() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst plugin = this.getViewsPluginPath()\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\n\t\tdiskUtil.deleteFile(plugin)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(plugin))\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\t}\n\n\t@test('sync with errors installed')\n\t@test('sync with errors not installed', false)\n\tprotected static async upgradeSyncsErrors(isInstalled = true) {\n\t\tawait this.FeatureFixture().installCachedFeatures(\n\t\t\tisInstalled ? 'errors' : 'schemas'\n\t\t)\n\n\t\tlet wasHit = false\n\n\t\tSyncAction.prototype.execute = async () => {\n\t\t\twasHit = true\n\t\t\treturn {}\n\t\t}\n\n\t\tthis.disableCleanBuildAndYarnAdd()\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(wasHit, isInstalled)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginInSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tawait this.disableCleanBuildAndYarnAdd()\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginWhenErrorInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('errors')\n\n\t\tawait this.Action('error', 'create').execute({\n\t\t\tnameReadable: 'Test pass',\n\t\t\tnameCamel: 'testPass',\n\t\t})\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tthis.disableCleanAndBuild()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\tprivate static destroyErrorPlugin() {\n\t\tconst plugin = this.resolveHashSprucePath('errors', 'options.types.ts')\n\t\tconst expectedContents = diskUtil.readFile(plugin)\n\n\t\tdiskUtil.writeFile(plugin, 'waka')\n\t\treturn { plugin, expectedContents }\n\t}\n\n\tprivate static getViewsPluginPath() {\n\t\treturn this.resolveHashSprucePath('features', 'view.plugin.ts')\n\t}\n\n\tprotected static assertViewPluginNotWritten() {\n\t\tassert.isFalse(diskUtil.doesFileExist(this.getViewsPluginPath()))\n\t}\n\n\tprivate static disableCleanBuildAndYarnAdd() {\n\t\tthis.disableCleanAndBuild()\n\n\t\tCommandService.fakeCommand(/yarn.*?add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\tprivate static disableCleanAndBuild() {\n\t\tCommandService.fakeCommand('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.fakeCommand('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill3.test.js","names":["UpgradingASkill3Test","test","originalErrorSyncExecute","SyncAction","prototype","execute","CommandService","fakeCommand","RegExp","code","clearMockResponses","FeatureFixture","installCachedFeatures","Action","dependencies","Service","get","assert","isFalsy","results","doesThrow","testUtil","assertFileByNameInGeneratedFiles","files","assertViewPluginNotWritten","events","eventDiskUtil","resolveCombinedEventsContractFile","cwd","isTrue","diskUtil","doesFileExist","UpdateDependenciesAction","Error","isTruthy","errors","doesInclude","message","wasCleanBuildCalled","callback","wasBuildDevCalled","plugin","getViewsPluginPath","deleteFile","isFalse","isInstalled","wasHit","disableCleanBuildAndYarnAdd","isEqual","destroyErrorPlugin","expectedContents","promise","upgradeMode","waitForInput","ui","sendInput","actualContents","readFile","nameReadable","nameCamel","disableCleanAndBuild","resolveHashSprucePath","writeFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts"],"sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SyncAction from '../../../features/error/actions/SyncAction'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill3Test extends AbstractCliTest {\n\tprivate static originalErrorSyncExecute: any\n\tprotected static async beforeEach() {\n\t\tif (!this.originalErrorSyncExecute) {\n\t\t\tthis.originalErrorSyncExecute = SyncAction.prototype.execute\n\t\t} else {\n\t\t\tSyncAction.prototype.execute = this.originalErrorSyncExecute\n\t\t}\n\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotAddResolvePathAliasesToDependenciesAfterUpgrade() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\t}\n\n\t@test()\n\tprotected static async featuresNotEnabledDontInstall() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'events.contract.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\n\t\tthis.assertViewPluginNotWritten()\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillSyncsEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\t\tconst events = eventDiskUtil.resolveCombinedEventsContractFile(this.cwd)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(events))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeCallsUpdateDependencies() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tUpdateDependenciesAction.prototype.execute = () => {\n\t\t\tthrow new Error('baaaaad')\n\t\t}\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, 'baaaaad')\n\t}\n\n\t@test()\n\tprotected static async callsCleanFixAndBuildDev() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tlet wasCleanBuildCalled = false\n\t\tUpdateDependenciesAction.prototype.execute = async () => {\n\t\t\treturn {}\n\t\t}\n\n\t\tCommandService.fakeCommand('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasCleanBuildCalled = true\n\t\t\t},\n\t\t})\n\n\t\tlet wasBuildDevCalled = false\n\n\t\tCommandService.fakeCommand('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasBuildDevCalled = true\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTrue(wasCleanBuildCalled)\n\t\tassert.isTrue(wasBuildDevCalled)\n\t}\n\n\t@test()\n\tprotected static async writesViewPlugin() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst plugin = this.getViewsPluginPath()\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\n\t\tdiskUtil.deleteFile(plugin)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(plugin))\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\t}\n\n\t@test('sync with errors installed')\n\t@test('sync with errors not installed', false)\n\tprotected static async upgradeSyncsErrors(isInstalled = true) {\n\t\tawait this.FeatureFixture().installCachedFeatures(\n\t\t\tisInstalled ? 'errors' : 'schemas'\n\t\t)\n\n\t\tlet wasHit = false\n\n\t\tSyncAction.prototype.execute = async () => {\n\t\t\twasHit = true\n\t\t\treturn {}\n\t\t}\n\n\t\tthis.disableCleanBuildAndYarnAdd()\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(wasHit, isInstalled)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginInSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tawait this.disableCleanBuildAndYarnAdd()\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginWhenErrorInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('errors')\n\n\t\tawait this.Action('error', 'create').execute({\n\t\t\tnameReadable: 'Test pass',\n\t\t\tnameCamel: 'testPass',\n\t\t})\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tthis.disableCleanAndBuild()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\tprivate static destroyErrorPlugin() {\n\t\tconst plugin = this.resolveHashSprucePath('errors', 'options.types.ts')\n\t\tconst expectedContents = diskUtil.readFile(plugin)\n\n\t\tdiskUtil.writeFile(plugin, 'waka')\n\t\treturn { plugin, expectedContents }\n\t}\n\n\tprivate static getViewsPluginPath() {\n\t\treturn this.resolveHashSprucePath('features', 'view.plugin.ts')\n\t}\n\n\tprotected static assertViewPluginNotWritten() {\n\t\tassert.isFalse(diskUtil.doesFileExist(this.getViewsPluginPath()))\n\t}\n\n\tprivate static disableCleanBuildAndYarnAdd() {\n\t\tthis.disableCleanAndBuild()\n\n\t\tCommandService.fakeCommand(/yarn.*?add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\tprivate static disableCleanAndBuild() {\n\t\tCommandService.fakeCommand('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.fakeCommand('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill4.test.js","names":["UpgradingASkill4Test","CommandService","fakeCommand","RegExp","code","FeatureFixture","installCachedFeatures","features","Service","process","cwd","get","pkg","checks","feat","nodeModule","path","resolveHashSprucePath","plugin","diskUtil","doesFileExist","undefined","push","check","unset","deleteFile","Action","execute","assert","isTruthy","isTrue","cli","skillFeature","getFeature","scripts","isEqual","assertSandboxListenerNotWritten","set","value","promise","waitForInput","last","ui","getLastInvocation","command","sendInput","isNotEqual","listeners","resolvePath","doesDirExist","matches","fsUtil","readdirSync","isLength","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts"],"sourcesContent":["import fsUtil from 'fs'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill4Test extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async restoresMissingPackagesAndPlugins() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst features = this.Service('pkg', process.cwd()).get(\n\t\t\t'testSkillCache.everything'\n\t\t)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst checks: { nodeModule?: string; plugin?: string }[] = []\n\n\t\tfor (const feat of features) {\n\t\t\tconst { code } = feat\n\t\t\tconst nodeModule = `@sprucelabs/spruce-${code}-plugin`\n\t\t\tconst path = this.resolveHashSprucePath('features', `${code}.plugin.ts`)\n\t\t\tconst plugin = diskUtil.doesFileExist(path) ? path : undefined\n\n\t\t\tchecks.push({\n\t\t\t\tnodeModule: pkg.get(['dependencies', nodeModule])\n\t\t\t\t\t? nodeModule\n\t\t\t\t\t: undefined,\n\t\t\t\tplugin,\n\t\t\t})\n\t\t}\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tpkg.unset(['dependencies', check.nodeModule])\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tdiskUtil.deleteFile(check.plugin)\n\t\t\t}\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn clean/, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn build.dev/, { code: 0 })\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tpkg.get(['dependencies', check.nodeModule]),\n\t\t\t\t\t`${check.nodeModule} was not added back as a dependencies.`\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tassert.isTrue(\n\t\t\t\t\tdiskUtil.doesFileExist(check.plugin),\n\t\t\t\t\t`${check.plugin} was not rewritten.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async doesNotAskIfNewScriptsAreAddedToSkillFeature() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\n\t\tconst skillFeature = cli.getFeature('skill')\n\t\t//@ts-ignore\n\t\tskillFeature.scripts['taco'] = 'bravo'\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(pkg.get(['scripts', 'taco']), 'bravo')\n\n\t\tthis.assertSandboxListenerNotWritten()\n\t}\n\n\t@test()\n\tprotected static async canOverwriteMultipleChangedScript() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tlast = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tassert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isNotEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\tprotected static assertSandboxListenerNotWritten() {\n\t\tconst listeners = this.resolvePath('src', 'listeners')\n\t\tif (!diskUtil.doesDirExist(listeners)) {\n\t\t\treturn\n\t\t}\n\t\tconst matches = fsUtil.readdirSync(listeners)\n\t\tassert.isLength(\n\t\t\tmatches,\n\t\t\t0,\n\t\t\t'A sandbox listeners was written and it should not have been.'\n\t\t)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill4.test.js","names":["UpgradingASkill4Test","test","CommandService","fakeCommand","RegExp","code","FeatureFixture","installCachedFeatures","features","Service","process","cwd","get","pkg","checks","feat","nodeModule","path","resolveHashSprucePath","plugin","diskUtil","doesFileExist","undefined","push","check","unset","deleteFile","Action","execute","assert","isTruthy","isTrue","cli","skillFeature","getFeature","scripts","isEqual","assertSandboxListenerNotWritten","set","value","promise","waitForInput","last","ui","getLastInvocation","command","sendInput","isNotEqual","listeners","resolvePath","doesDirExist","matches","fsUtil","readdirSync","isLength","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts"],"sourcesContent":["import fsUtil from 'fs'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill4Test extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async restoresMissingPackagesAndPlugins() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst features = this.Service('pkg', process.cwd()).get(\n\t\t\t'testSkillCache.everything'\n\t\t)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst checks: { nodeModule?: string; plugin?: string }[] = []\n\n\t\tfor (const feat of features) {\n\t\t\tconst { code } = feat\n\t\t\tconst nodeModule = `@sprucelabs/spruce-${code}-plugin`\n\t\t\tconst path = this.resolveHashSprucePath('features', `${code}.plugin.ts`)\n\t\t\tconst plugin = diskUtil.doesFileExist(path) ? path : undefined\n\n\t\t\tchecks.push({\n\t\t\t\tnodeModule: pkg.get(['dependencies', nodeModule])\n\t\t\t\t\t? nodeModule\n\t\t\t\t\t: undefined,\n\t\t\t\tplugin,\n\t\t\t})\n\t\t}\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tpkg.unset(['dependencies', check.nodeModule])\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tdiskUtil.deleteFile(check.plugin)\n\t\t\t}\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn clean/, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn build.dev/, { code: 0 })\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tpkg.get(['dependencies', check.nodeModule]),\n\t\t\t\t\t`${check.nodeModule} was not added back as a dependencies.`\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tassert.isTrue(\n\t\t\t\t\tdiskUtil.doesFileExist(check.plugin),\n\t\t\t\t\t`${check.plugin} was not rewritten.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async doesNotAskIfNewScriptsAreAddedToSkillFeature() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\n\t\tconst skillFeature = cli.getFeature('skill')\n\t\t//@ts-ignore\n\t\tskillFeature.scripts['taco'] = 'bravo'\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(pkg.get(['scripts', 'taco']), 'bravo')\n\n\t\tthis.assertSandboxListenerNotWritten()\n\t}\n\n\t@test()\n\tprotected static async canOverwriteMultipleChangedScript() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tlast = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tassert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isNotEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\tprotected static assertSandboxListenerNotWritten() {\n\t\tconst listeners = this.resolvePath('src', 'listeners')\n\t\tif (!diskUtil.doesDirExist(listeners)) {\n\t\t\treturn\n\t\t}\n\t\tconst matches = fsUtil.readdirSync(listeners)\n\t\tassert.isLength(\n\t\t\tmatches,\n\t\t\t0,\n\t\t\t'A sandbox listeners was written and it should not have been.'\n\t\t)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill5.test.js","names":["UpgradingASkill5Test","installSetListenerCacheAndBlockExecute","assert","doesThrowAsync","Action","execute","value","Settings","getListenerCache","isFalsy","isEqualDeep","shouldBeDeleted","shouldCreateSchema","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","RegExp","code","nameReadable","namePascal","nameCamel","description","emitter","getEmitter","wasHit","on","payload","featureCode","actionCode","isTrue","moveDependencyToProd","moveDependencyToDev","wasMovedBackToDev","wasMovedBackToProd","callback","_","args","indexOf","isFalse","name","pkg","Service","uninstall","install","isDev","settings","setListenerCache","Error","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill5Test extends AbstractCliTest {\n\t@test()\n\tprotected static async upgradeResetsEventCache() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.Action('node', 'upgrade').execute({})\n\t\t)\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isFalsy(value)\n\t}\n\n\t@test()\n\tprotected static async doesNotResetEventCacheWithOtherAction() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() => this.Action('schema', 'sync').execute({}))\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isEqualDeep(value, { shouldBeDeleted: true })\n\t}\n\n\t@test('syncs schemas when schemas installed and schemas folder exists', true)\n\t@test(\n\t\t'does not syncs schemas when schemas installed but schemas folder does not exist',\n\t\tfalse\n\t)\n\tprotected static async shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(\n\t\tshouldCreateSchema: boolean\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tif (shouldCreateSchema) {\n\t\t\tawait this.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t}\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tlet wasHit = false\n\n\t\tawait emitter.on('feature.will-execute', (payload) => {\n\t\t\tif (payload.featureCode === 'schema' && payload.actionCode === 'sync') {\n\t\t\t\twasHit = true\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(wasHit === shouldCreateSchema)\n\t}\n\n\t@test()\n\tprotected static async modulesMovedFromDevToProdDependenciesStayThere() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.moveDependencyToProd('@sprucelabs/resolve-path-aliases')\n\t\tawait this.moveDependencyToDev('@sprucelabs/error')\n\n\t\tlet wasMovedBackToDev = false\n\t\tlet wasMovedBackToProd = false\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tif (\n\t\t\t\t\targs.indexOf('-D') > -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/resolve-path-aliases') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToDev = true\n\t\t\t\t} else if (\n\t\t\t\t\targs.indexOf('-D') === -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/error') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToProd = true\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalse(wasMovedBackToDev, 'dependency moved back to dev')\n\t\tassert.isFalse(wasMovedBackToProd, 'dependency moved back to prod')\n\t}\n\n\tprivate static async moveDependencyToDev(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name, { isDev: true })\n\t}\n\tprivate static async moveDependencyToProd(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name)\n\t}\n\n\tprivate static async installSetListenerCacheAndBlockExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst settings = this.Settings()\n\t\tsettings.setListenerCache({ shouldBeDeleted: true })\n\n\t\tconst emitter = this.getEmitter()\n\t\tvoid emitter.on('feature.will-execute', () => {\n\t\t\tthrow new Error('Stop!')\n\t\t})\n\t}\n\n\tprivate static Settings() {\n\t\treturn this.Service('eventSettings')\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill5.test.js","names":["UpgradingASkill5Test","test","installSetListenerCacheAndBlockExecute","assert","doesThrowAsync","Action","execute","value","Settings","getListenerCache","isFalsy","isEqualDeep","shouldBeDeleted","shouldCreateSchema","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","RegExp","code","nameReadable","namePascal","nameCamel","description","emitter","getEmitter","wasHit","on","payload","featureCode","actionCode","isTrue","moveDependencyToProd","moveDependencyToDev","wasMovedBackToDev","wasMovedBackToProd","callback","_","args","indexOf","isFalse","name","pkg","Service","uninstall","install","isDev","settings","setListenerCache","Error","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill5Test extends AbstractCliTest {\n\t@test()\n\tprotected static async upgradeResetsEventCache() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.Action('node', 'upgrade').execute({})\n\t\t)\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isFalsy(value)\n\t}\n\n\t@test()\n\tprotected static async doesNotResetEventCacheWithOtherAction() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() => this.Action('schema', 'sync').execute({}))\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isEqualDeep(value, { shouldBeDeleted: true })\n\t}\n\n\t@test('syncs schemas when schemas installed and schemas folder exists', true)\n\t@test(\n\t\t'does not syncs schemas when schemas installed but schemas folder does not exist',\n\t\tfalse\n\t)\n\tprotected static async shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(\n\t\tshouldCreateSchema: boolean\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tif (shouldCreateSchema) {\n\t\t\tawait this.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t}\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tlet wasHit = false\n\n\t\tawait emitter.on('feature.will-execute', (payload) => {\n\t\t\tif (payload.featureCode === 'schema' && payload.actionCode === 'sync') {\n\t\t\t\twasHit = true\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(wasHit === shouldCreateSchema)\n\t}\n\n\t@test()\n\tprotected static async modulesMovedFromDevToProdDependenciesStayThere() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.moveDependencyToProd('@sprucelabs/resolve-path-aliases')\n\t\tawait this.moveDependencyToDev('@sprucelabs/error')\n\n\t\tlet wasMovedBackToDev = false\n\t\tlet wasMovedBackToProd = false\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tif (\n\t\t\t\t\targs.indexOf('-D') > -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/resolve-path-aliases') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToDev = true\n\t\t\t\t} else if (\n\t\t\t\t\targs.indexOf('-D') === -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/error') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToProd = true\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalse(wasMovedBackToDev, 'dependency moved back to dev')\n\t\tassert.isFalse(wasMovedBackToProd, 'dependency moved back to prod')\n\t}\n\n\tprivate static async moveDependencyToDev(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name, { isDev: true })\n\t}\n\tprivate static async moveDependencyToProd(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name)\n\t}\n\n\tprivate static async installSetListenerCacheAndBlockExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst settings = this.Settings()\n\t\tsettings.setListenerCache({ shouldBeDeleted: true })\n\n\t\tconst emitter = this.getEmitter()\n\t\tvoid emitter.on('feature.will-execute', () => {\n\t\t\tthrow new Error('Stop!')\n\t\t})\n\t}\n\n\tprivate static Settings() {\n\t\treturn this.Service('eventSettings')\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","commandFaker","fakeCommand","RegExp","wasHit","getEmitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\n\t\tthis.commandFaker.fakeCommand(new RegExp(/yarn/))\n\n\t\tlet wasHit = false\n\n\t\tawait this.getEmitter().on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.getEmitter().emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t\tresults: {},\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,sB,WACnB,gBAAK,sCAAL,EAA6C,QAA7C,EAAuD,IAAvD,C,UACA,gBAAK,8CAAL,EAAqD,QAArD,EAA+D,KAA/D,C,UACA,gBACA,iEADA,EAEA,mBAFA,EAGA,KAHA,EAIA,QAJA,C,UAMA,gBACA,6DADA,EAEA,QAFA,EAGA,KAHA,EAIA,QAJA,C;;;;;;;;;;;;;mHARD,kBAeCC,WAfD,EAgBCC,SAhBD;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAiBCC,UAjBD,8DAiBc,SAjBd;gBAAA;gBAAA,OAmBO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CJ,WAA5C,CAnBP;;cAAA;gBAqBC,KAAKK,YAAL,CAAkBC,WAAlB,CAA8B,IAAIC,MAAJ,CAAW,MAAX,CAA9B;gBAEIC,MAvBL,GAuBc,KAvBd;gBAAA;gBAAA,OAyBO,KAAKC,UAAL,GAAkBC,EAAlB,CACL,sBADK;kBAAA,0FAEL;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASV,WAAT,QAASA,WAAT,EAAsBE,UAAtB,QAAsBA,UAAtB;;4BACC,IAAIF,WAAW,KAAK,OAAhB,IAA2BE,UAAU,KAAK,gBAA9C,EAAgE;8BAC/DM,MAAM,GAAG,IAAT;4BACA;;0BAHF;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAFK;;kBAAA;oBAAA;kBAAA;gBAAA,IAzBP;;cAAA;gBAAA;gBAAA,OAkCuB,KAAKC,UAAL,GAAkBE,IAAlB,CAAuB,qBAAvB,EAA8C;kBACnEX,WAAW,EAAE,MADsD;kBAEnEE,UAAU,EAAVA,UAFmE;kBAGnEU,OAAO,EAAE;gBAH0D,CAA9C,CAlCvB;;cAAA;gBAkCOA,OAlCP;gBAAA,wBAwCoBC,oCAAkBC,+BAAlB,CAClBF,OADkB,EAElBG,uBAFkB,CAxCpB,EAwCSC,MAxCT,yBAwCSA,MAxCT;;gBA6CCC,aAAOC,OAAP,CAAeF,MAAf;;gBAEAC,aAAOE,OAAP,CAAeX,MAAf,EAAuBP,SAAvB;;cA/CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADmDmB,4B"}
1
+ {"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","test","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","commandFaker","fakeCommand","RegExp","wasHit","getEmitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\n\t\tthis.commandFaker.fakeCommand(new RegExp(/yarn/))\n\n\t\tlet wasHit = false\n\n\t\tawait this.getEmitter().on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.getEmitter().emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t\tresults: {},\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,sB,WACnB,IAAAC,UAAA,EAAK,sCAAL,EAA6C,QAA7C,EAAuD,IAAvD,C,UACA,IAAAA,UAAA,EAAK,8CAAL,EAAqD,QAArD,EAA+D,KAA/D,C,UACA,IAAAA,UAAA,EACA,iEADA,EAEA,mBAFA,EAGA,KAHA,EAIA,QAJA,C,UAMA,IAAAA,UAAA,EACA,6DADA,EAEA,QAFA,EAGA,KAHA,EAIA,QAJA,C;;;;;;;;;;;;;mHARD,kBAeCC,WAfD,EAgBCC,SAhBD;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAiBCC,UAjBD,8DAiBc,SAjBd;gBAAA;gBAAA,OAmBO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CJ,WAA5C,CAnBP;;cAAA;gBAqBC,KAAKK,YAAL,CAAkBC,WAAlB,CAA8B,IAAIC,MAAJ,CAAW,MAAX,CAA9B;gBAEIC,MAvBL,GAuBc,KAvBd;gBAAA;gBAAA,OAyBO,KAAKC,UAAL,GAAkBC,EAAlB,CACL,sBADK;kBAAA,0FAEL;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASV,WAAT,QAASA,WAAT,EAAsBE,UAAtB,QAAsBA,UAAtB;;4BACC,IAAIF,WAAW,KAAK,OAAhB,IAA2BE,UAAU,KAAK,gBAA9C,EAAgE;8BAC/DM,MAAM,GAAG,IAAT;4BACA;;0BAHF;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAFK;;kBAAA;oBAAA;kBAAA;gBAAA,IAzBP;;cAAA;gBAAA;gBAAA,OAkCuB,KAAKC,UAAL,GAAkBE,IAAlB,CAAuB,qBAAvB,EAA8C;kBACnEX,WAAW,EAAE,MADsD;kBAEnEE,UAAU,EAAVA,UAFmE;kBAGnEU,OAAO,EAAE;gBAH0D,CAA9C,CAlCvB;;cAAA;gBAkCOA,OAlCP;gBAAA,wBAwCoBC,mCAAA,CAAkBC,+BAAlB,CAClBF,OADkB,EAElBG,uBAFkB,CAxCpB,EAwCSC,MAxCT,yBAwCSA,MAxCT;;gBA6CCC,YAAA,CAAOC,OAAP,CAAeF,MAAf;;gBAEAC,YAAA,CAAOE,OAAP,CAAeX,MAAf,EAAuBP,SAAvB;;cA/CD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADmDmB,4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingWithSandboxFeatureInstalled.test.js","names":["UpgradingWithSandboxFeatureInstalledTest","FeatureFixture","installCachedFeatures","listenToDidInstallInThePast","setup","setupAndGetListenerPath","match","fileName","pathUtil","basename","expected","versionUtil","generateVersion","dirValue","assert","isEqual","diskUtil","deleteFile","writeFile","resolvePath","dirname","Action","execute","syncResults","isFalsy","errors","secondMatch","name","results","testUtil","assertFileByNameInGeneratedFiles","files","namespace","eventName","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class UpgradingWithSandboxFeatureInstalledTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.FeatureFixture().installCachedFeatures('sandbox')\n\t\tawait this.listenToDidInstallInThePast()\n\t}\n\n\t@test()\n\tprotected static async doesNotAskForVersionWhenSettingUpSandboxWithCoreListener() {\n\t\tawait this.setup()\n\t}\n\n\t@test()\n\tprotected static async usesTodaysVersionEvenWithCoreListener() {\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tconst fileName = pathUtil.basename(match)\n\t\tconst expected = `will-boot.${\n\t\t\tversionUtil.generateVersion().dirValue\n\t\t}.listener.ts`\n\t\tassert.isEqual(fileName, expected)\n\t}\n\n\t@test()\n\tprotected static async overwritesExistingWillBoot() {\n\t\tconst expected = `will-boot.v2010_01_10.listener.ts`\n\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tdiskUtil.deleteFile(match)\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath(pathUtil.dirname(match), expected),\n\t\t\t'export default async () => {}'\n\t\t)\n\n\t\tconst syncResults = await this.Action('event', 'syncListeners').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst secondMatch = await this.setupAndGetListenerPath()\n\t\tconst name = pathUtil.basename(secondMatch)\n\n\t\tassert.isEqual(name, expected)\n\t}\n\n\tprivate static async setupAndGetListenerPath() {\n\t\tconst results = await this.setup()\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/will-boot/gi,\n\t\t\tresults.files\n\t\t)\n\t\treturn match\n\t}\n\n\tprivate static async setup() {\n\t\tconst results = await this.Action('sandbox', 'setup').execute({})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n\n\tprivate static async listenToDidInstallInThePast() {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'mercury',\n\t\t\teventName: 'did-install::v2020_12_25',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingWithSandboxFeatureInstalled.test.js","names":["UpgradingWithSandboxFeatureInstalledTest","test","FeatureFixture","installCachedFeatures","listenToDidInstallInThePast","setup","setupAndGetListenerPath","match","fileName","pathUtil","basename","expected","versionUtil","generateVersion","dirValue","assert","isEqual","diskUtil","deleteFile","writeFile","resolvePath","dirname","Action","execute","syncResults","isFalsy","errors","secondMatch","name","results","testUtil","assertFileByNameInGeneratedFiles","files","namespace","eventName","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class UpgradingWithSandboxFeatureInstalledTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.FeatureFixture().installCachedFeatures('sandbox')\n\t\tawait this.listenToDidInstallInThePast()\n\t}\n\n\t@test()\n\tprotected static async doesNotAskForVersionWhenSettingUpSandboxWithCoreListener() {\n\t\tawait this.setup()\n\t}\n\n\t@test()\n\tprotected static async usesTodaysVersionEvenWithCoreListener() {\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tconst fileName = pathUtil.basename(match)\n\t\tconst expected = `will-boot.${\n\t\t\tversionUtil.generateVersion().dirValue\n\t\t}.listener.ts`\n\t\tassert.isEqual(fileName, expected)\n\t}\n\n\t@test()\n\tprotected static async overwritesExistingWillBoot() {\n\t\tconst expected = `will-boot.v2010_01_10.listener.ts`\n\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tdiskUtil.deleteFile(match)\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath(pathUtil.dirname(match), expected),\n\t\t\t'export default async () => {}'\n\t\t)\n\n\t\tconst syncResults = await this.Action('event', 'syncListeners').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst secondMatch = await this.setupAndGetListenerPath()\n\t\tconst name = pathUtil.basename(secondMatch)\n\n\t\tassert.isEqual(name, expected)\n\t}\n\n\tprivate static async setupAndGetListenerPath() {\n\t\tconst results = await this.setup()\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/will-boot/gi,\n\t\t\tresults.files\n\t\t)\n\t\treturn match\n\t}\n\n\tprivate static async setup() {\n\t\tconst results = await this.Action('sandbox', 'setup').execute({})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n\n\tprivate static async listenToDidInstallInThePast() {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'mercury',\n\t\t\teventName: 'did-install::v2020_12_25',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}