@sprucelabs/spruce-cli 15.2.23 → 15.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/.spruce/errors/errors.types.js.map +1 -1
  3. package/build/.spruce/errors/options.types.js.map +1 -1
  4. package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
  5. package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
  6. package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
  7. package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
  8. package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
  9. package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
  10. package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
  11. package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
  12. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
  13. package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
  14. package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
  15. package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
  16. package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
  17. package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
  18. package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
  19. package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
  20. package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
  21. package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
  22. package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
  23. package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
  24. package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
  25. package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
  26. package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
  27. package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
  28. package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
  29. package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
  30. package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
  31. package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
  32. package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
  33. package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
  34. package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
  35. package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
  36. package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
  37. package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
  38. package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
  39. package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
  40. package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
  41. package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
  42. package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
  43. package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
  44. package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
  45. package/build/.spruce/events/events.contract.js.map +1 -1
  46. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  47. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  48. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  49. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
  50. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  51. package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
  52. package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
  53. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
  54. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
  55. package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  56. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
  57. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
  58. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
  59. package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
  60. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  61. package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
  62. package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
  63. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
  64. package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
  65. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
  66. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
  67. package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
  68. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
  69. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
  70. package/build/.spruce/schemas/schemas.types.js.map +1 -1
  71. package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
  72. package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
  73. package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
  74. package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
  75. package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
  76. package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
  77. package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
  78. package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
  79. package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
  80. package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
  81. package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
  82. package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
  83. package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
  84. package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
  85. package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
  86. package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
  87. package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
  88. package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
  89. package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
  90. package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
  91. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
  92. package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
  93. package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
  94. package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
  95. package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
  96. package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
  97. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
  98. package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
  99. package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
  100. package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
  101. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
  102. package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
  103. package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
  104. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
  105. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
  106. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
  107. package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
  108. package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
  109. package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
  110. package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
  111. package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
  112. package/build/.spruce/skill.types.js.map +1 -1
  113. package/build/GlobalEmitter.js.map +1 -1
  114. package/build/InFlightEntertainment.js.map +1 -1
  115. package/build/__tests__/behavioral/AddingADependency.test.js +3 -1
  116. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  117. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  118. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  119. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  120. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  121. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
  122. package/build/__tests__/behavioral/DeployingASkill.test.js +20 -20
  123. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  124. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  125. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +12 -12
  126. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  127. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  128. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +3 -1
  129. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  130. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
  131. package/build/__tests__/behavioral/LoggingInAsASkill.test.js +4 -2
  132. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  133. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  134. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  135. package/build/__tests__/behavioral/RebuildingASkill.test.js +2 -2
  136. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  137. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  138. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +6 -4
  139. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  140. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js +3 -1
  141. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  142. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js +3 -1
  143. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  144. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  145. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  146. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  147. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js +5 -3
  148. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  149. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  150. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  151. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  152. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
  153. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  154. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  155. package/build/__tests__/behavioral/WatchingSkillViews.test.js +6 -6
  156. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  157. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  158. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  159. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  160. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  161. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  162. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +5 -0
  163. package/build/__tests__/behavioral/events/CreatingAListener.test.js +242 -119
  164. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  165. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +3 -1
  166. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  167. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  168. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  169. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  170. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  171. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  172. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  173. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +1 -1
  174. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  175. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  176. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  177. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  178. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  179. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  180. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  181. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  182. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  183. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  184. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  185. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  186. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  187. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  188. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  189. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +1 -1
  190. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  191. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  192. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  193. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +2 -2
  194. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  195. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  196. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  197. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  198. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -1
  199. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +8 -8
  200. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  201. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  202. package/build/__tests__/behavioral/{UpdatingDependencies.test.d.ts → upgrading/UpdatingDependencies.test.d.ts} +1 -1
  203. package/build/__tests__/behavioral/{UpdatingDependencies.test.js → upgrading/UpdatingDependencies.test.js} +1 -1
  204. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -0
  205. package/build/__tests__/behavioral/{UpdatingDependencies2.test.d.ts → upgrading/UpdatingDependencies2.test.d.ts} +1 -1
  206. package/build/__tests__/behavioral/{UpdatingDependencies2.test.js → upgrading/UpdatingDependencies2.test.js} +4 -4
  207. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -0
  208. package/build/__tests__/behavioral/{UpgradingANodeModule.test.d.ts → upgrading/UpgradingANodeModule.test.d.ts} +1 -1
  209. package/build/__tests__/behavioral/{UpgradingANodeModule.test.js → upgrading/UpgradingANodeModule.test.js} +7 -7
  210. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -0
  211. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.d.ts +0 -0
  212. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.js +3 -14
  213. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -0
  214. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.d.ts +0 -0
  215. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.js +4 -13
  216. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -0
  217. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.d.ts +0 -0
  218. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.js +6 -6
  219. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -0
  220. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.d.ts +0 -0
  221. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.js +3 -3
  222. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -0
  223. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.d.ts +0 -0
  224. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.js +2 -2
  225. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -0
  226. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.d.ts +0 -0
  227. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.js +4 -8
  228. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -0
  229. package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.d.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.d.ts} +3 -3
  230. package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.js → upgrading/UpgradingWithSandboxFeatureInstalled.test.js} +14 -14
  231. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
  232. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  233. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  234. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  235. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  236. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  237. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  238. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  239. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  240. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  241. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  242. package/build/__tests__/implementation/ActionExecuter4.test.js +2 -2
  243. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  244. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  245. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  246. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  247. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  248. package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
  249. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  250. package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
  251. package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
  252. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  253. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  254. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  255. package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
  256. package/build/__tests__/implementation/EventStore.test.js +68 -35
  257. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  258. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  259. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  260. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  261. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  262. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  263. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  264. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  265. package/build/__tests__/implementation/Introspection.test.js.map +1 -1
  266. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  267. package/build/__tests__/implementation/LintService.test.js +2 -2
  268. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  269. package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
  270. package/build/__tests__/implementation/ListenerStore.test.js +56 -0
  271. package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
  272. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  273. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  274. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  275. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  276. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  277. package/build/__tests__/implementation/PkgService.test.js +2 -2
  278. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  279. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  280. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  281. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  282. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  283. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  284. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  285. package/build/__tests__/implementation/StoreFeature.test.js +2 -2
  286. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  287. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  288. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  289. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  290. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  291. package/build/__tests__/support/onTestFileResult.js.map +1 -1
  292. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  293. package/build/__tests__/support/scripts/second.script.js.map +1 -1
  294. package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
  295. package/build/addons/filePrompt.addon.js.map +1 -1
  296. package/build/cli.js +1 -1
  297. package/build/cli.js.map +1 -1
  298. package/build/components/AbstractComponent.js.map +1 -1
  299. package/build/components/FormComponent.js.map +1 -1
  300. package/build/components/QuizComponent.js.map +1 -1
  301. package/build/constants.js.map +1 -1
  302. package/build/errors/SpruceError.js.map +1 -1
  303. package/build/errors/actionCancelled.builder.js.map +1 -1
  304. package/build/errors/bootError.builder.js.map +1 -1
  305. package/build/errors/buildFailed.builder.js.map +1 -1
  306. package/build/errors/cacheNotEnabled.builder.js.map +1 -1
  307. package/build/errors/commandAborted.builder.js.map +1 -1
  308. package/build/errors/commandBlocked.builder.js.map +1 -1
  309. package/build/errors/commandNotImplemented.builder.js.map +1 -1
  310. package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
  311. package/build/errors/dependencyExists.builder.js.map +1 -1
  312. package/build/errors/deployFailed.builder.js.map +1 -1
  313. package/build/errors/directoryEmpty.builder.js.map +1 -1
  314. package/build/errors/directoryNotSkill.builder.js.map +1 -1
  315. package/build/errors/dockerNotStarted.builder.js.map +1 -1
  316. package/build/errors/executingCommandFailed.builder.js.map +1 -1
  317. package/build/errors/failedToImport.builder.js.map +1 -1
  318. package/build/errors/featureNotInstalled.builder.js.map +1 -1
  319. package/build/errors/fileExists.builder.js.map +1 -1
  320. package/build/errors/generic.builder.js.map +1 -1
  321. package/build/errors/invalidCommand.builder.js.map +1 -1
  322. package/build/errors/invalidEventContract.builder.js.map +1 -1
  323. package/build/errors/invalidFeatureCode.builder.js.map +1 -1
  324. package/build/errors/invalidTestDirectory.builder.js.map +1 -1
  325. package/build/errors/lintFailed.builder.js.map +1 -1
  326. package/build/errors/mercuryResponseError.builder.js.map +1 -1
  327. package/build/errors/missingDependencies.builder.js.map +1 -1
  328. package/build/errors/noOrganizationsFound.builder.js.map +1 -1
  329. package/build/errors/noSkillsRegistered.builder.js.map +1 -1
  330. package/build/errors/notImplemented.builder.js.map +1 -1
  331. package/build/errors/notLoggedIn.builder.js.map +1 -1
  332. package/build/errors/schemaExists.builder.js.map +1 -1
  333. package/build/errors/schemaFailedToImport.builder.js.map +1 -1
  334. package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
  335. package/build/errors/skillNotFound.builder.js.map +1 -1
  336. package/build/errors/skillNotRegistered.builder.js.map +1 -1
  337. package/build/errors/skillViewExists.builder.js.map +1 -1
  338. package/build/errors/storeExists.builder.js.map +1 -1
  339. package/build/errors/testFailed.builder.js.map +1 -1
  340. package/build/errors/themeExists.builder.js.map +1 -1
  341. package/build/errors/transportAlreadyExists.builder.js.map +1 -1
  342. package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
  343. package/build/features/AbstractAction.js.map +1 -1
  344. package/build/features/AbstractFeature.js.map +1 -1
  345. package/build/features/ActionExecuter.js.map +1 -1
  346. package/build/features/ActionFactory.js.map +1 -1
  347. package/build/features/ActionQuestionAsker.js.map +1 -1
  348. package/build/features/FeatureCommandAttacher.js.map +1 -1
  349. package/build/features/FeatureInstaller.js.map +1 -1
  350. package/build/features/FeatureInstallerFactory.js.map +1 -1
  351. package/build/features/OverrideActionDecorator.js.map +1 -1
  352. package/build/features/cache/CacheFeature.js.map +1 -1
  353. package/build/features/cache/actions/DisableAction.js.map +1 -1
  354. package/build/features/cache/actions/EnableAction.js.map +1 -1
  355. package/build/features/cache/constants.js.map +1 -1
  356. package/build/features/conversation/ConversationFeature.js.map +1 -1
  357. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  358. package/build/features/conversation/actions/TestAction.js.map +1 -1
  359. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  360. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  361. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  362. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  363. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  364. package/build/features/deploy/DeployFeature.js.map +1 -1
  365. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  366. package/build/features/deploy/writers/DeployWriter.js.map +1 -1
  367. package/build/features/error/ErrorFeature.js.map +1 -1
  368. package/build/features/error/ParentTestFinder.js.map +1 -1
  369. package/build/features/error/actions/CreateAction.js.map +1 -1
  370. package/build/features/error/actions/SyncAction.js.map +1 -1
  371. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  372. package/build/features/event/EventFeature.d.ts +1 -0
  373. package/build/features/event/EventFeature.js +89 -56
  374. package/build/features/event/EventFeature.js.map +1 -1
  375. package/build/features/event/actions/CreateAction.js.map +1 -1
  376. package/build/features/event/actions/ListenAction.d.ts +1 -0
  377. package/build/features/event/actions/ListenAction.js +23 -31
  378. package/build/features/event/actions/ListenAction.js.map +1 -1
  379. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  380. package/build/features/event/actions/SyncAction.js.map +1 -1
  381. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  382. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  383. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
  384. package/build/features/event/services/EventSettingsService.js.map +1 -1
  385. package/build/features/event/services/RemoteService.js.map +1 -1
  386. package/build/features/event/stores/EventStore.d.ts +7 -5
  387. package/build/features/event/stores/EventStore.js +16 -8
  388. package/build/features/event/stores/EventStore.js.map +1 -1
  389. package/build/features/event/stores/ListenerStore.d.ts +1 -0
  390. package/build/features/event/stores/ListenerStore.js +6 -1
  391. package/build/features/event/stores/ListenerStore.js.map +1 -1
  392. package/build/features/event/writers/EventWriter.js.map +1 -1
  393. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  394. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  395. package/build/features/feature.utilities.js.map +1 -1
  396. package/build/features/features.types.js.map +1 -1
  397. package/build/features/log/LogFeature.js.map +1 -1
  398. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  399. package/build/features/log/writers/LogWriter.js.map +1 -1
  400. package/build/features/node/NodeFeature.js.map +1 -1
  401. package/build/features/node/actions/CreateAction.js.map +1 -1
  402. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  403. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  404. package/build/features/node/writers/NodeWriter.js.map +1 -1
  405. package/build/features/onboard/OnboardFeature.js.map +1 -1
  406. package/build/features/onboard/ScriptLoader.js.map +1 -1
  407. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  408. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  409. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  410. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  411. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  412. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  413. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  414. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  415. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  416. package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
  417. package/build/features/organization/OrganizationFeature.js.map +1 -1
  418. package/build/features/organization/actions/CreateAction.js.map +1 -1
  419. package/build/features/organization/actions/InstallAction.js.map +1 -1
  420. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  421. package/build/features/person/PersonFeature.js.map +1 -1
  422. package/build/features/person/actions/LoginAction.js.map +1 -1
  423. package/build/features/person/actions/LogoutAction.js.map +1 -1
  424. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  425. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  426. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  427. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  428. package/build/features/schema/SchemaFeature.js.map +1 -1
  429. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  430. package/build/features/schema/actions/CreateAction.js.map +1 -1
  431. package/build/features/schema/actions/SyncAction.js.map +1 -1
  432. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  433. package/build/features/schema/services/SchemaService.js.map +1 -1
  434. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  435. package/build/features/schema/utilities/schema.utility.js.map +1 -1
  436. package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
  437. package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
  438. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  439. package/build/features/skill/SkillFeature.js.map +1 -1
  440. package/build/features/skill/actions/BootAction.js.map +1 -1
  441. package/build/features/skill/actions/CreateAction.js.map +1 -1
  442. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  443. package/build/features/skill/actions/LoginAction.js.map +1 -1
  444. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  445. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  446. package/build/features/skill/stores/SkillStore.js.map +1 -1
  447. package/build/features/skill/updaters/Updater.js.map +1 -1
  448. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  449. package/build/features/store/StoreFeature.d.ts +1 -1
  450. package/build/features/store/StoreFeature.js +15 -14
  451. package/build/features/store/StoreFeature.js.map +1 -1
  452. package/build/features/store/actions/CreateAction.js.map +1 -1
  453. package/build/features/store/actions/SyncAction.js.map +1 -1
  454. package/build/features/store/stores/StoreStore.d.ts +1 -0
  455. package/build/features/store/stores/StoreStore.js +6 -1
  456. package/build/features/store/stores/StoreStore.js.map +1 -1
  457. package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
  458. package/build/features/store/writers/StoreWriter.js.map +1 -1
  459. package/build/features/test/TestFeature.js.map +1 -1
  460. package/build/features/test/TestLogItemGenerator.js.map +1 -1
  461. package/build/features/test/TestReporter.js.map +1 -1
  462. package/build/features/test/TestRunner.js.map +1 -1
  463. package/build/features/test/actions/CreateAction.js.map +1 -1
  464. package/build/features/test/actions/SetupAction.js.map +1 -1
  465. package/build/features/test/actions/TestAction.js.map +1 -1
  466. package/build/features/test/test.types.js.map +1 -1
  467. package/build/features/test/writers/TestWriter.js.map +1 -1
  468. package/build/features/universalDevDependencies.js.map +1 -1
  469. package/build/features/universalFileDescriptions.js.map +1 -1
  470. package/build/features/universalScripts.js.map +1 -1
  471. package/build/features/validateAndNormalize.utility.d.ts +2 -2
  472. package/build/features/validateAndNormalize.utility.js +2 -2
  473. package/build/features/validateAndNormalize.utility.js.map +1 -1
  474. package/build/features/view/ViewFeature.js.map +1 -1
  475. package/build/features/view/actions/CreateAction.js.map +1 -1
  476. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  477. package/build/features/view/actions/SyncAction.js.map +1 -1
  478. package/build/features/view/actions/WatchAction.js.map +1 -1
  479. package/build/features/view/stores/ViewStore.js.map +1 -1
  480. package/build/features/view/writers/ViewWriter.js.map +1 -1
  481. package/build/features/vscode/VsCodeFeature.js.map +1 -1
  482. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  483. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  484. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  485. package/build/features/watch/WatchFeature.js.map +1 -1
  486. package/build/index.js.map +1 -1
  487. package/build/interfaces/SpyInterface.js.map +1 -1
  488. package/build/interfaces/TerminalInterface.js.map +1 -1
  489. package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
  490. package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
  491. package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
  492. package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
  493. package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
  494. package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
  495. package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
  496. package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
  497. package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
  498. package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
  499. package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
  500. package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
  501. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  502. package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
  503. package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
  504. package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
  505. package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
  506. package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
  507. package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
  508. package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
  509. package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
  510. package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
  511. package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
  512. package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
  513. package/build/services/BuildService.js.map +1 -1
  514. package/build/services/CommandService.d.ts +1 -1
  515. package/build/services/CommandService.js +2 -2
  516. package/build/services/CommandService.js.map +1 -1
  517. package/build/services/DependencyService.js.map +1 -1
  518. package/build/services/GameService.js.map +1 -1
  519. package/build/services/ImportService.js.map +1 -1
  520. package/build/services/LintService.js.map +1 -1
  521. package/build/services/PkgService.js.map +1 -1
  522. package/build/services/ServiceFactory.js.map +1 -1
  523. package/build/services/TypeCheckerService.js.map +1 -1
  524. package/build/stores/AbstractLocalStore.js.map +1 -1
  525. package/build/stores/AbstractStore.js.map +1 -1
  526. package/build/stores/StoreFactory.js.map +1 -1
  527. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  528. package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
  529. package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
  530. package/build/tests/AbstractCliTest.d.ts +2 -0
  531. package/build/tests/AbstractCliTest.js +9 -2
  532. package/build/tests/AbstractCliTest.js.map +1 -1
  533. package/build/tests/AbstractErrorTest.js.map +1 -1
  534. package/build/tests/AbstractEventTest.js.map +1 -1
  535. package/build/tests/AbstractSchemaTest.js.map +1 -1
  536. package/build/tests/AbstractSkillTest.js.map +1 -1
  537. package/build/tests/AbstractTestTest.js.map +1 -1
  538. package/build/tests/CommandFaker.d.ts +8 -0
  539. package/build/tests/CommandFaker.js +54 -0
  540. package/build/tests/CommandFaker.js.map +1 -0
  541. package/build/tests/JestJsonParser.js.map +1 -1
  542. package/build/tests/MockProgramFactory.js.map +1 -1
  543. package/build/tests/buildTestCache.js.map +1 -1
  544. package/build/tests/cleanTestCache.js.map +1 -1
  545. package/build/tests/cleanTestData.js +9 -10
  546. package/build/tests/cleanTestData.js.map +1 -1
  547. package/build/tests/constants.d.ts +8 -0
  548. package/build/tests/constants.js +28 -0
  549. package/build/tests/constants.js.map +1 -0
  550. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  551. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  552. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  553. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  554. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  555. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  556. package/build/tests/utilities/test.utility.js.map +1 -1
  557. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  558. package/build/types/apiClient.types.js.map +1 -1
  559. package/build/types/cli.types.js.map +1 -1
  560. package/build/types/graphicsInterface.types.js.map +1 -1
  561. package/build/updaters/ScriptUpdater.js.map +1 -1
  562. package/build/utilities/action.utility.js.map +1 -1
  563. package/build/utilities/apiClient.utility.js.map +1 -1
  564. package/build/utilities/argParser.utility.js.map +1 -1
  565. package/build/utilities/commander.utility.js.map +1 -1
  566. package/build/utilities/duration.utility.js.map +1 -1
  567. package/build/utilities/eventContractCleaner.utility.js.map +1 -1
  568. package/build/utilities/form.utility.js.map +1 -1
  569. package/build/utilities/introspection.utility.js.map +1 -1
  570. package/build/utilities/isCi.js.map +1 -1
  571. package/build/utilities/tsConfig.utility.js.map +1 -1
  572. package/build/utilities/ui.utility.js.map +1 -1
  573. package/build/widgets/Theme.js.map +1 -1
  574. package/build/widgets/WidgetFactory.js.map +1 -1
  575. package/build/widgets/keySelectChoices.js.map +1 -1
  576. package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
  577. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  578. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  579. package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
  580. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  581. package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
  582. package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
  583. package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
  584. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  585. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  586. package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
  587. package/build/widgets/types/button.types.js.map +1 -1
  588. package/build/widgets/types/factory.types.js.map +1 -1
  589. package/build/widgets/types/input.types.js.map +1 -1
  590. package/build/widgets/types/layout.types.js.map +1 -1
  591. package/build/widgets/types/menuBar.types.js.map +1 -1
  592. package/build/widgets/types/popup.types.js.map +1 -1
  593. package/build/widgets/types/progressBar.types.js.map +1 -1
  594. package/build/widgets/types/table.types.js.map +1 -1
  595. package/build/widgets/types/text.types.js.map +1 -1
  596. package/build/widgets/types/widgets.types.js.map +1 -1
  597. package/build/widgets/types/window.types.js.map +1 -1
  598. package/build/widgets/widget.utilities.js.map +1 -1
  599. package/build/writers/AbstractWriter.js.map +1 -1
  600. package/build/writers/WriterFactory.js.map +1 -1
  601. package/package.json +72 -72
  602. package/src/__tests__/behavioral/AddingADependency.test.ts +2 -1
  603. package/src/__tests__/behavioral/DeployingASkill.test.ts +20 -20
  604. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +12 -12
  605. package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +2 -1
  606. package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -2
  607. package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
  608. package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +3 -5
  609. package/src/__tests__/behavioral/RegisteringGlobalEvents.test.ts +2 -1
  610. package/src/__tests__/behavioral/RegisteringSkillViewOnBoot.test.ts +2 -1
  611. package/src/__tests__/behavioral/SettingUpASkillForTesting.test.ts +4 -3
  612. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +6 -6
  613. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +54 -7
  614. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -1
  615. package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +1 -1
  616. package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +1 -1
  617. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
  618. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +3 -3
  619. package/src/__tests__/behavioral/{UpdatingDependencies.test.ts → upgrading/UpdatingDependencies.test.ts} +2 -2
  620. package/src/__tests__/behavioral/{UpdatingDependencies2.test.ts → upgrading/UpdatingDependencies2.test.ts} +6 -6
  621. package/src/__tests__/behavioral/{UpgradingANodeModule.test.ts → upgrading/UpgradingANodeModule.test.ts} +7 -7
  622. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.ts +3 -11
  623. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.ts +4 -7
  624. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.ts +6 -6
  625. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.ts +3 -3
  626. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.ts +2 -2
  627. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.ts +3 -5
  628. package/src/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.ts} +5 -5
  629. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  630. package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
  631. package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
  632. package/src/__tests__/implementation/EventStore.test.ts +17 -1
  633. package/src/__tests__/implementation/LintService.test.ts +2 -2
  634. package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
  635. package/src/__tests__/implementation/PkgService.test.ts +4 -7
  636. package/src/__tests__/implementation/StoreFeature.test.ts +2 -2
  637. package/src/cli.ts +1 -1
  638. package/src/features/AbstractAction.ts +2 -2
  639. package/src/features/event/EventFeature.ts +14 -11
  640. package/src/features/event/actions/ListenAction.ts +22 -12
  641. package/src/features/event/builders/EventContractBuilder.ts +2 -2
  642. package/src/features/event/stores/EventStore.ts +28 -20
  643. package/src/features/event/stores/ListenerStore.ts +5 -3
  644. package/src/features/store/StoreFeature.ts +7 -6
  645. package/src/features/store/stores/StoreStore.ts +5 -1
  646. package/src/features/validateAndNormalize.utility.ts +2 -2
  647. package/src/services/CommandService.ts +1 -4
  648. package/src/tests/AbstractCliTest.ts +6 -1
  649. package/src/tests/CommandFaker.ts +24 -0
  650. package/src/tests/cleanTestData.ts +2 -19
  651. package/src/tests/constants.ts +17 -0
  652. package/build/__tests__/behavioral/UpdatingDependencies.test.js.map +0 -1
  653. package/build/__tests__/behavioral/UpdatingDependencies2.test.js.map +0 -1
  654. package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +0 -1
  655. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +0 -1
  656. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +0 -1
  657. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +0 -1
  658. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +0 -1
  659. package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js.map +0 -1
  660. package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js.map +0 -1
  661. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { fake } from '@sprucelabs/spruce-test-fixtures'
2
+ import { test, assert } from '@sprucelabs/test'
3
+ import AbstractCliTest from '../../tests/AbstractCliTest'
4
+
5
+ @fake.login()
6
+ export default class ListenerStoreTest extends AbstractCliTest {
7
+ @test()
8
+ protected static canCreateListenerStore() {
9
+ const listenerStore = this.Store('listener')
10
+ const expected = this.resolvePath('src', '**/*.listener.ts')
11
+ //@ts-ignore
12
+ assert.isEqual(expected, listenerStore.generateGlobbyPattern())
13
+ }
14
+ }
@@ -26,7 +26,7 @@ export default class PkgServiceTest extends AbstractSkillTest {
26
26
 
27
27
  @test()
28
28
  protected static async handlesAtLatestInName() {
29
- CommandService.setMockResponse(new RegExp(/yarn/gis), {
29
+ CommandService.fakeCommand(new RegExp(/yarn/gis), {
30
30
  code: 0,
31
31
  })
32
32
 
@@ -37,12 +37,9 @@ export default class PkgServiceTest extends AbstractSkillTest {
37
37
 
38
38
  @test()
39
39
  protected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {
40
- CommandService.setMockResponse(
41
- new RegExp(/npm.*?install.*?--no-progress/gis),
42
- {
43
- code: 1,
44
- }
45
- )
40
+ CommandService.fakeCommand(new RegExp(/npm.*?install.*?--no-progress/gis), {
41
+ code: 1,
42
+ })
46
43
 
47
44
  const { totalInstalled } = await this.pkg.install(
48
45
  '@sprucelabs/jest-json-reporter'
@@ -7,7 +7,7 @@ export default class StoreFeatureTest extends AbstractCliTest {
7
7
  protected static async syncsOnWillExecute() {
8
8
  await this.FeatureFixture().installCachedFeatures('stores')
9
9
 
10
- CommandService.setMockResponse(/yarn/, {
10
+ CommandService.fakeCommand(/yarn/, {
11
11
  code: 0,
12
12
  })
13
13
 
@@ -27,7 +27,7 @@ export default class StoreFeatureTest extends AbstractCliTest {
27
27
  actionCode: 'upgrade',
28
28
  })
29
29
 
30
- assert.isEqual(hitCount, 1)
30
+ assert.isEqual(hitCount, 0)
31
31
 
32
32
  await emitter.emit('feature.did-execute', {
33
33
  featureCode: 'node',
package/src/cli.ts CHANGED
@@ -466,7 +466,7 @@ export async function run(argv: string[] = []): Promise<void> {
466
466
  async function setupInFlightEntertainment(ui: TerminalInterface) {
467
467
  if (
468
468
  TerminalInterface.doesSupportColor() &&
469
- process.env.ENABLE_INSTALL_INTERTAINMENT !== 'false'
469
+ process.env.ENABLE_INSTALL_ENTERTAINMENT !== 'false'
470
470
  ) {
471
471
  const command = new CommandService(diskUtil.resolvePath(__dirname, '../'))
472
472
  InFlightEntertainment.setup({ command, ui })
@@ -29,7 +29,7 @@ import {
29
29
  ActionOptions,
30
30
  FeatureCode,
31
31
  } from './features.types'
32
- import validateAndNormalizeUtil from './validateAndNormalize.utility'
32
+ import validateAndNormalizer from './validateAndNormalize.utility'
33
33
 
34
34
  export default abstract class AbstractAction<S extends Schema = Schema>
35
35
  implements FeatureAction<S>, ServiceProvider
@@ -105,7 +105,7 @@ export default abstract class AbstractAction<S extends Schema = Schema>
105
105
 
106
106
  protected validateAndNormalizeOptions(options: SchemaPartialValues<S>) {
107
107
  const schema = this.optionsSchema
108
- return validateAndNormalizeUtil.validateAndNormalize(schema, options)
108
+ return validateAndNormalizer.validateAndNormalize(schema, options)
109
109
  }
110
110
 
111
111
  protected async resolveVersion(
@@ -102,25 +102,24 @@ export default class EventFeature extends AbstractFeature {
102
102
  }
103
103
 
104
104
  const isInstalled = await this.featureInstaller.isInstalled('event')
105
-
106
- if (
105
+ const isRemoteRelevant =
107
106
  isInstalled &&
108
107
  (featureCode === 'event' ||
109
108
  featureCode === 'eventContract' ||
110
109
  actionCode === 'login') &&
111
110
  actionCode !== 'setRemote'
112
- ) {
111
+
112
+ if (isRemoteRelevant) {
113
113
  const remoteResults = await this.appendRemoteToResultsOrPrompt()
114
114
  results = actionUtil.mergeActionResults(results, remoteResults)
115
115
  }
116
116
 
117
- if (featureCode === 'node' && actionCode === 'upgrade' && isInstalled) {
118
- const syncResults = await this.Action('event', 'sync.listeners').execute(
119
- {}
120
- )
121
- results = actionUtil.mergeActionResults(results, syncResults)
122
- }
117
+ return results
118
+ }
123
119
 
120
+ private async syncListenersAndMixinResults(results: FeatureActionResponse) {
121
+ const syncResults = await this.Action('event', 'sync.listeners').execute({})
122
+ results = actionUtil.mergeActionResults(results, syncResults)
124
123
  return results
125
124
  }
126
125
 
@@ -133,8 +132,12 @@ export default class EventFeature extends AbstractFeature {
133
132
 
134
133
  let results = {}
135
134
 
136
- if (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {
137
- results = this.Action('event', 'sync').execute({})
135
+ const isUpgrade =
136
+ isInstalled && featureCode === 'node' && actionCode === 'upgrade'
137
+
138
+ if (isUpgrade) {
139
+ results = await this.Action('event', 'sync').execute({})
140
+ results = await this.syncListenersAndMixinResults(results)
138
141
  }
139
142
 
140
143
  if (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {
@@ -21,6 +21,7 @@ import EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplat
21
21
  import actionUtil from '../../../utilities/action.utility'
22
22
  import AbstractAction from '../../AbstractAction'
23
23
  import { FeatureActionResponse } from '../../features.types'
24
+ import { FetchContractsOptions } from '../stores/EventStore'
24
25
 
25
26
  const SKILL_EVENT_NAMESPACE = 'skill'
26
27
  const CORE_EVENT_NAMESPACE = 'mercury'
@@ -163,22 +164,31 @@ export default class ListenAction extends AbstractAction<OptionsSchema> {
163
164
  namespace !== SKILL_EVENT_NAMESPACE &&
164
165
  namespace !== CORE_EVENT_NAMESPACE
165
166
  ? [namespace]
166
- : undefined
167
-
168
- const { contracts } = skill.slug
169
- ? await eventStore.fetchEventContracts({
170
- localNamespace: skill.slug,
171
- namespaces: namespacesForFetch,
172
- didUpdateHandler: (msg: string) => this.ui.startLoading(msg),
173
- })
174
- : await eventStore.fetchEventContracts({
175
- namespaces: namespacesForFetch,
176
- didUpdateHandler: (msg: string) => this.ui.startLoading(msg),
177
- })
167
+ : this.getDependencyNamespaces()
168
+
169
+ const options: FetchContractsOptions = {
170
+ didUpdateHandler: (msg: string) => this.ui.startLoading(msg),
171
+ }
172
+
173
+ if (skill.slug) {
174
+ options.localNamespace = skill.slug
175
+ }
176
+
177
+ if (namespacesForFetch.length > 0) {
178
+ options.namespaces = namespacesForFetch
179
+ }
180
+
181
+ const { contracts } = await eventStore.fetchEventContracts(options)
178
182
 
179
183
  return contracts
180
184
  }
181
185
 
186
+ private getDependencyNamespaces() {
187
+ return this.Service('dependency')
188
+ .get()
189
+ .map((d) => d.namespace)
190
+ }
191
+
182
192
  private async syncEvents(
183
193
  options: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions
184
194
  ) {
@@ -12,7 +12,7 @@ import EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplat
12
12
  import { GraphicsInterface } from '../../../types/cli.types'
13
13
  import { FeatureActionResponse } from '../../features.types'
14
14
  import SkillStore from '../../skill/stores/SkillStore'
15
- import validateAndNormalizeUtil from '../../validateAndNormalize.utility'
15
+ import validateAndNormalizer from '../../validateAndNormalize.utility'
16
16
  import EventStore from '../stores/EventStore'
17
17
  import EventWriter from '../writers/EventWriter'
18
18
 
@@ -49,7 +49,7 @@ export default class EventContractBuilder {
49
49
  public async fetchAndWriteContracts(
50
50
  options: Options
51
51
  ): Promise<FeatureActionResponse> {
52
- const normalizedOptions = validateAndNormalizeUtil.validateAndNormalize(
52
+ const normalizedOptions = validateAndNormalizer.validateAndNormalize(
53
53
  this.optionsSchema,
54
54
  options
55
55
  )
@@ -53,6 +53,12 @@ const eventFileNamesImportKeyMap = {
53
53
  'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },
54
54
  }
55
55
 
56
+ export interface FetchContractsOptions {
57
+ localNamespace?: string
58
+ namespaces?: string[]
59
+ didUpdateHandler?: InternalUpdateHandler
60
+ }
61
+
56
62
  export default class EventStore extends AbstractStore {
57
63
  public name = 'event'
58
64
  protected static contractCache: Record<string, any> = {}
@@ -63,11 +69,9 @@ export default class EventStore extends AbstractStore {
63
69
  EventStore.contractCache = {}
64
70
  }
65
71
 
66
- public async fetchEventContracts(options?: {
67
- localNamespace?: string
68
- namespaces?: string[]
69
- didUpdateHandler?: InternalUpdateHandler
70
- }): Promise<EventStoreFetchEventContractsResponse> {
72
+ public async fetchEventContracts(
73
+ options?: FetchContractsOptions
74
+ ): Promise<EventStoreFetchEventContractsResponse> {
71
75
  const { localNamespace, didUpdateHandler, namespaces } = options ?? {}
72
76
 
73
77
  didUpdateHandler?.('Pulling remote contracts...')
@@ -107,13 +111,14 @@ export default class EventStore extends AbstractStore {
107
111
  if (!EventStore.contractCache[key]) {
108
112
  const client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })
109
113
 
110
- const results = await client.emit('get-event-contracts::v2020_12_25', {
111
- target: {
112
- namespaces,
113
- },
114
- })
115
-
116
- const { contracts } = eventResponseUtil.getFirstResponseOrThrow(results)
114
+ const [{ contracts }] = await client.emitAndFlattenResponses(
115
+ 'get-event-contracts::v2020_12_25',
116
+ {
117
+ target: {
118
+ namespaces,
119
+ },
120
+ }
121
+ )
117
122
 
118
123
  EventStore.contractCache[key] = contracts
119
124
  }
@@ -145,14 +150,7 @@ export default class EventStore extends AbstractStore {
145
150
  return EventStore.localEventCache
146
151
  }
147
152
 
148
- const localMatches = await globby(
149
- diskUtil.resolvePath(
150
- this.cwd,
151
- 'src',
152
- 'events',
153
- '**/*.(builder|options).ts'
154
- )
155
- )
153
+ const localMatches = await globby(this.generateGlobbyForLocalEvents())
156
154
 
157
155
  const ns = namesUtil.toKebab(localNamespace)
158
156
  const eventSignatures: Record<string, EventSignature> = {}
@@ -274,6 +272,16 @@ export default class EventStore extends AbstractStore {
274
272
  return null
275
273
  }
276
274
 
275
+ private generateGlobbyForLocalEvents(): string | readonly string[] {
276
+ return diskUtil.resolvePath(
277
+ this.cwd,
278
+ 'src',
279
+ '**',
280
+ 'events',
281
+ '**/*.(builder|options).ts'
282
+ )
283
+ }
284
+
277
285
  public async registerEventContract(options: {
278
286
  eventContract: EventContract
279
287
  }) {
@@ -12,9 +12,7 @@ export default class ListenerStore extends AbstractStore {
12
12
  public name = 'listener'
13
13
 
14
14
  public async loadListeners() {
15
- const matches = await globby(
16
- diskUtil.resolvePath(this.cwd, 'src', 'listeners', '**/*.listener.ts')
17
- )
15
+ const matches = await globby(this.generateGlobbyPattern())
18
16
 
19
17
  const listeners: Listener[] = []
20
18
 
@@ -29,4 +27,8 @@ export default class ListenerStore extends AbstractStore {
29
27
 
30
28
  return listeners
31
29
  }
30
+
31
+ private generateGlobbyPattern(): string {
32
+ return diskUtil.resolvePath(this.cwd, 'src', '**/*.listener.ts')
33
+ }
32
34
  }
@@ -37,8 +37,8 @@ export default class StoreFeature extends AbstractFeature {
37
37
  this.registerAbstractTestClassHandler.bind(this)
38
38
  )
39
39
  void this.emitter.on(
40
- 'feature.will-execute',
41
- this.handleWillExecute.bind(this)
40
+ 'feature.did-execute',
41
+ this.handleDidExecute.bind(this)
42
42
  )
43
43
  }
44
44
 
@@ -55,20 +55,21 @@ export default class StoreFeature extends AbstractFeature {
55
55
  }
56
56
  }
57
57
 
58
- private async handleWillExecute(payload: {
58
+ private async handleDidExecute(payload: {
59
59
  featureCode: string
60
60
  actionCode: string
61
61
  }) {
62
62
  const isInstalled = await this.featureInstaller.isInstalled('store')
63
63
 
64
- if (
64
+ const isUpgrade =
65
65
  isInstalled &&
66
66
  payload.featureCode === 'node' &&
67
67
  payload.actionCode === 'upgrade'
68
- ) {
68
+
69
+ if (isUpgrade) {
69
70
  uiUtil.renderMasthead({
70
71
  ui: this.ui,
71
- headline: 'Resyncing data stores...',
72
+ headline: 'Re-syncing data stores...',
72
73
  })
73
74
 
74
75
  const results = await this.Action('store', 'sync').execute({})
@@ -13,7 +13,7 @@ export default class StoreStore extends AbstractStore {
13
13
  public name = 'store'
14
14
 
15
15
  public async fetchStores() {
16
- const search = diskUtil.resolvePath(this.cwd, 'src', 'stores', '*.store.ts')
16
+ const search = this.generateGlobbyPattern()
17
17
  const matches = await globby(search)
18
18
 
19
19
  const results = introspectionUtil.introspect(matches)
@@ -32,4 +32,8 @@ export default class StoreStore extends AbstractStore {
32
32
 
33
33
  return stores
34
34
  }
35
+
36
+ private generateGlobbyPattern() {
37
+ return diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts')
38
+ }
35
39
  }
@@ -11,7 +11,7 @@ type StripNulls<T extends Record<string, any>> = {
11
11
  [K in keyof T]: Exclude<T[K], null>
12
12
  }
13
13
 
14
- const validateAndNormalizeUtil = {
14
+ const validateAndNormalizer = {
15
15
  validateAndNormalize<S extends Schema = Schema>(
16
16
  schema: S,
17
17
  options: SchemaPartialValues<S, false>
@@ -44,4 +44,4 @@ const validateAndNormalizeUtil = {
44
44
  },
45
45
  }
46
46
 
47
- export default validateAndNormalizeUtil
47
+ export default validateAndNormalizer
@@ -184,10 +184,7 @@ export default class CommandService {
184
184
  return { mockResponse: match?.response, mockKey }
185
185
  }
186
186
 
187
- public static setMockResponse(
188
- command: string | RegExp,
189
- response: MockResponse
190
- ) {
187
+ public static fakeCommand(command: string | RegExp, response: MockResponse) {
191
188
  this.mockResponses.unshift({
192
189
  command,
193
190
  response,
@@ -35,6 +35,7 @@ import StoreFactory, {
35
35
  import { ApiClientFactoryOptions } from '../types/apiClient.types'
36
36
  import { OptionOverrides } from '../types/cli.types'
37
37
  import WriterFactory from '../writers/WriterFactory'
38
+ import CommandFaker from './CommandFaker'
38
39
  import FeatureFixture, {
39
40
  FeatureFixtureOptions,
40
41
  } from './fixtures/FeatureFixture'
@@ -52,6 +53,7 @@ type ExecuterOptions = Partial<ActionExecuterOptions> & {
52
53
  export default abstract class AbstractCliTest extends AbstractSpruceTest {
53
54
  protected static cliRoot = pathUtil.join(__dirname, '..')
54
55
  protected static homeDir: string
56
+ protected static commandFaker: CommandFaker
55
57
 
56
58
  private static _ui: SpyInterface
57
59
  private static emitter?: GlobalEmitter
@@ -72,7 +74,7 @@ export default abstract class AbstractCliTest extends AbstractSpruceTest {
72
74
  ImportService.setCacheDir(diskUtil.createRandomTempDir())
73
75
  ImportService.enableCaching()
74
76
 
75
- process.env.ENABLE_INSTALL_INTERTAINMENT = 'false'
77
+ process.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'
76
78
 
77
79
  this.originalEnv = { ...process.env }
78
80
  }
@@ -106,6 +108,9 @@ export default abstract class AbstractCliTest extends AbstractSpruceTest {
106
108
  EventStore.clearCache()
107
109
  CommandService.clearMockResponses()
108
110
  MercuryClientFactory.reset()
111
+ MercuryClientFactory.setIsTestMode(false)
112
+
113
+ this.commandFaker = new CommandFaker()
109
114
  }
110
115
 
111
116
  protected static async afterEach() {
@@ -0,0 +1,24 @@
1
+ import CommandService from '../services/CommandService'
2
+
3
+ type Command = RegExp | string
4
+
5
+ export default class CommandFaker {
6
+ public fakeRebuild(code = 0) {
7
+ const command = new RegExp(/yarn rebuild/gis)
8
+ this.fakeCommand(command, code)
9
+ }
10
+
11
+ public fakeCommand(command: Command, code = 0) {
12
+ CommandService.fakeCommand(command, {
13
+ code,
14
+ })
15
+ }
16
+
17
+ public fakeCleanBuild(code = 0) {
18
+ this.fakeCommand('yarn clean.build', code)
19
+ }
20
+
21
+ public fakeBuild(code = 0) {
22
+ this.fakeCommand('yarn build.dev', code)
23
+ }
24
+ }
@@ -3,30 +3,13 @@ import CliGlobalEmitter from '../GlobalEmitter'
3
3
  import TerminalInterface from '../interfaces/TerminalInterface'
4
4
  import ServiceFactory from '../services/ServiceFactory'
5
5
  import StoreFactory from '../stores/StoreFactory'
6
+ import * as demoNumbersByName from '../tests/constants'
6
7
  import MercuryFixture from './fixtures/MercuryFixture'
7
8
  import OrganizationFixture from './fixtures/OrganizationFixture'
8
9
  import PersonFixture from './fixtures/PersonFixture'
9
10
  import SkillFixture from './fixtures/SkillFixture'
10
11
 
11
- require('dotenv').config()
12
-
13
- const DEMO_NUMBER = process.env.DEMO_NUMBER
14
- const DEMO_NUMBER_LOGIN_AS_SKILL = process.env.DEMO_NUMBER_LOGIN_AS_SKILL
15
- const DEMO_NUMBER_INSTALL_SKILL = process.env.DEMO_NUMBER_INSTALL_SKILL
16
- const SANDBOX_DEMO_NUMBER = process.env.SANDBOX_DEMO_NUMBER
17
- const DEMO_NUMBER_GLOBAL_EVENTS = process.env.DEMO_NUMBER_GLOBAL_EVENTS
18
- const DEMO_NUMBER_EVENTS_ON_BOOT = process.env.DEMO_NUMBER_EVENTS_ON_BOOT
19
- const DEMO_NUMBER_VIEWS_ON_BOOT = process.env.DEMO_NUMBER_VIEWS_ON_BOOT
20
-
21
- const demoNumbers = [
22
- DEMO_NUMBER,
23
- DEMO_NUMBER_LOGIN_AS_SKILL,
24
- DEMO_NUMBER_INSTALL_SKILL,
25
- DEMO_NUMBER_GLOBAL_EVENTS,
26
- SANDBOX_DEMO_NUMBER,
27
- DEMO_NUMBER_EVENTS_ON_BOOT,
28
- DEMO_NUMBER_VIEWS_ON_BOOT,
29
- ]
12
+ const demoNumbers = Object.values(demoNumbersByName)
30
13
 
31
14
  const cwd = process.cwd()
32
15
  const term = new TerminalInterface(cwd, true)
@@ -0,0 +1,17 @@
1
+ require('dotenv').config()
2
+
3
+ export const DEMO_NUMBER = process.env.DEMO_NUMBER ?? '***missing***'
4
+ export const DEMO_NUMBER_LOGIN_AS_SKILL =
5
+ process.env.DEMO_NUMBER_LOGIN_AS_SKILL ?? '***missing***'
6
+ export const DEMO_NUMBER_INSTALL_SKILL =
7
+ process.env.DEMO_NUMBER_INSTALL_SKILL ?? '***missing***'
8
+ export const DEMO_NUMBER_GLOBAL_EVENTS =
9
+ process.env.DEMO_NUMBER_GLOBAL_EVENTS ?? '***missing***'
10
+ export const DEMO_NUMBER_EVENTS_ON_BOOT =
11
+ process.env.DEMO_NUMBER_EVENTS_ON_BOOT ?? '***missing***'
12
+ export const DEMO_NUMBER_VIEWS_ON_BOOT =
13
+ process.env.DEMO_NUMBER_VIEWS_ON_BOOT ?? '***missing***'
14
+ export const DEMO_NUMBER_CREATING_AN_EVENT =
15
+ process.env.DEMO_NUMBER_CREATING_AN_EVENT ?? '***missing***'
16
+ export const DEMO_NUMBER_EVENT_STORE =
17
+ process.env.DEMO_NUMBER_EVENT_STORE ?? '***missing***'
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/UpdatingDependencies.test.ts"],"names":["UpdatingDependenciesTest","action","Action","assert","isFunction","execute","files","file","diskUtil","writeFile","resolvePath","promise","wait","isFalse","doesFileExist","path","dir","isTrue","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;sGAjCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2GAKA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKH,MAAL,CAAYI,OAA9B;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oJAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,KAFP,GAEe,CAAC,mBAAD,EAAsB,WAAtB,CAFf;;AAGC,sCAAmBA,KAAnB,4BAA0B;AAAfC,kBAAAA,IAAe;;AACzBC,6CAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBH,IAAjB,CAAnB,EAA2C,WAA3C;AACA;;AAEKI,gBAAAA,OAPP,GAOiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CAPjB;AAAA;AAAA,uBASO,KAAKO,IAAL,CAAU,EAAV,CATP;;AAAA;AAWC,wCAAmBN,KAAnB,+BAA0B;AAAfC,kBAAAA,KAAe;;AACzBJ,+BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuB,KAAKJ,WAAL,CAAiBH,KAAjB,CAAvB,CAAf;AACA;;AAbF;AAAA,uBAeOI,OAfP;;AAAA;AAiBC,wCAAmBL,KAAnB,+BAA0B;AAAfC,kBAAAA,MAAe;AACnBQ,kBAAAA,IADmB,GACZ,KAAKL,WAAL,CAAiBH,MAAjB,CADY;;AAEzBJ,+BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBC,IAAvB,CAAf,6BAAiEA,IAAjE;AACA;;AApBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,GAFP,GAEa,KAAKN,WAAL,CAAiB,cAAjB,CAFb;;AAICP,6BAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;AAEML,gBAAAA,OANP,GAMiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CANjB;AAAA;AAAA,uBAQO,KAAKO,IAAL,CAAU,GAAV,CARP;;AAAA;AAUCT,6BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBE,GAAvB,CAAf;;AAVD;AAAA,uBAYOL,OAZP;;AAAA;AAcCR,6BAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAtCqDE,8B,8DACpB,M","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"],"file":"UpdatingDependencies.test.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/UpdatingDependencies2.test.ts"],"names":["UpdateDependencies2Test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","getFeatureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","setMockResponse","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"],"mappings":"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","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.setMockResponse(/(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.setMockResponse(/(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"],"file":"UpdatingDependencies2.test.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/UpgradingANodeModule.test.ts"],"names":["UpgradingANodeModuleTest","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","setMockResponse","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"],"mappings":"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","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.setMockResponse(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.setMockResponse(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.setMockResponse(/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.setMockResponse(/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"],"file":"UpgradingANodeModule.test.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.ts"],"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"],"mappings":"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","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 usesTodaysVersionEvenWithCoreListene() {\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"],"file":"UpgradingWithSandboxFeatureInstalled.test.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingASkill.test.ts"],"names":["BROKEN_SKILL_INDEX_CONTENTS","UpgradingASkillTest","CommandService","setMockResponse","RegExp","code","installAndBreakSkill","cli","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","options","description","failedHealthCheck","contents","readFile","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAKA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,2BAA2B,GAAG,8BAApC;IACqBC,mB,WAQnB,iB,UAqFA,iB,UA6BA,iB,UAeA,iB,UAuBA,iB;;;;;;;;;;;;;sGA/JD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,gBAAX,CAA/B,EAA8D;AAC7DC,kBAAAA,IAAI,EAAE;AADuD,iBAA9D;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0IAOA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKC,oBAAL,CAA0B,QAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;;AAICL,2CAAeC,eAAf,CAA+B,kBAA/B,EAAmD;AAClDE,kBAAAA,IAAI,EAAE;AAD4C,iBAAnD;;AAIAH,2CAAeC,eAAf,CAA+B,gBAA/B,EAAiD;AAChDE,kBAAAA,IAAI,EAAE;AAD0C,iBAAjD;;AAIMG,gBAAAA,KAZP,GAiBO,CACL;AACCC,kBAAAA,IAAI,EAAE,UADP;AAECC,kBAAAA,IAAI,EAAE,cAFP;AAGCC,kBAAAA,qBAAqB,EAAE,SAHxB;AAICC,kBAAAA,2BAA2B,EAAE;AAJ9B,iBADK,EAOL;AACCH,kBAAAA,IAAI,EAAE,cADP;AAECC,kBAAAA,IAAI,EAAE,cAFP;AAGCC,kBAAAA,qBAAqB,EAAE,SAHxB;AAICC,kBAAAA,2BAA2B,EAAE;AAJ9B,iBAPK,EAaL;AACCH,kBAAAA,IAAI,EAAE,gBADP;AAECC,kBAAAA,IAAI,EAAE,2BAFP;AAGCC,kBAAAA,qBAAqB,EAAE,SAHxB;AAICC,kBAAAA,2BAA2B,EAAE;AAJ9B,iBAbK,EAmBL;AACCH,kBAAAA,IAAI,EAAE,kBADP;AAECC,kBAAAA,IAAI,EAAE,qCAFP;AAGCC,kBAAAA,qBAAqB,EAAE,SAHxB;AAICC,kBAAAA,2BAA2B,EAAE;AAJ9B,iBAnBK,CAjBP;AAAA,+BA4C2B,CAAC,uBAAD,EAA0B,iBAA1B,CA5C3B;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA4CYC,gBAAAA,WA5CZ;AAAA,uDA6CqBL,KA7CrB;;AAAA;AA6CE,sEAA0B;AAAfM,oBAAAA,IAAe;AACzB,yBAAKC,2BAAL,CAAiCD,IAAjC,EAAuCD,WAAvC;AACA;AA/CH;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAiDwB,KAAKG,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC;AAC5DJ,kBAAAA,WAAW,EAAXA;AAD4D,iBAAvC,CAjDxB;;AAAA;AAiDQK,gBAAAA,OAjDR;;AAAA,sBAqDML,WAAW,KAAK,uBArDtB;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAsDmCN,GAAG,CAACY,WAAJ,EAtDnC;;AAAA;AAsDSC,gBAAAA,kBAtDT;;AAuDGC,6BAAOC,WAAP,CAAmBF,kBAAnB,EAAsC;AAAEG,kBAAAA,KAAK,EAAE;AAAEC,oBAAAA,MAAM,EAAE;AAAV;AAAT,iBAAtC;;AAvDH;AAAA,wDA0DqBhB,KA1DrB;;AAAA;AA0DE,yEAA0B;AAAfM,oBAAAA,KAAe;AACzB;AACMW,oBAAAA,MAFmB,GAEVX,KAAI,WAAID,WAAJ,YAFM;;AAGzBQ,iCAAOK,WAAP,CACCR,OAAO,CAACV,KADT,EAEC;AACCC,sBAAAA,IAAI,EAAEK,KAAI,CAACL,IADZ;AAECgB,sBAAAA,MAAM,EAANA;AAFD,qBAFD,YAOEX,KAAI,CAACL,IAPP,sBAQagB,MARb,mBAQ4BZ,WAR5B,sBAQmDc,IAAI,CAACC,SAAL,mBACjDV,OAAO,CAACV,KADyC,2DAChC,EADgC,EAEjD,IAFiD,EAGjD,CAHiD,CARnD;AAcA;AA3EH;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBA8EiCD,GAAG,CAACY,WAAJ,EA9EjC;;AAAA;AA8EOC,gBAAAA,iBA9EP;;AAgFCC,6BAAOK,WAAP,CAAmBN,iBAAnB,EAAsC;AACrC,kCAAgB;AADqB,iBAAtC;;AAhFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mIAqFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKd,oBAAL,CAA0B,QAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAIOsB,gBAAAA,OAJP,GAIiB,KAAKb,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC;AACtDJ,kBAAAA,WAAW,EAAE;AADyC,iBAAvC,CAJjB;AAAA;AAAA,uBAQO,KAAKiB,YAAL,EARP;;AAAA;AAAA;AAAA,uBAUO,KAAKC,uBAAL,CAA6BxB,GAA7B,CAVP;;AAAA;AAYOyB,gBAAAA,IAZP,GAYc,KAAKC,EAAL,CAAQC,iBAAR,EAZd;;AAcCb,6BAAOK,WAAP,CAAmBM,IAAnB,EAAyB;AACxB,qDAAmCG;AADX,iBAAzB;;AAdD;AAAA,uBAkBO,KAAKF,EAAL,CAAQG,SAAR,CAAkBD,gCAAlB,CAlBP;;AAAA;AAAA;AAAA,uBAoBuBN,OApBvB;;AAAA;AAoBOX,gBAAAA,OApBP;;AAsBCG,6BAAOgB,OAAP,CAAenB,OAAO,CAACoB,MAAvB;;AAtBD;AAAA,uBAwBsB/B,GAAG,CAACY,WAAJ,EAxBtB;;AAAA;AAwBOoB,gBAAAA,MAxBP;;AA0BClB,6BAAOmB,OAAP,CAAeD,MAAM,CAAChB,KAAP,CAAaC,MAA5B,EAAoC,QAApC;;AA1BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uGA6BA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEiC,KAAKiB,2BAAL,EAFjC;;AAAA;AAAA;AAEST,gBAAAA,IAFT,yBAESA,IAFT;AAEeH,gBAAAA,OAFf,yBAEeA,OAFf;;AAICR,6BAAOK,WAAP,CAAmBM,IAAnB,EAAyB;AACxB,qDAAmCU;AADX,iBAAzB;;AAJD;AAAA,uBAQO,KAAKT,EAAL,CAAQG,SAAR,CAAkBM,2BAAlB,CARP;;AAAA;AAAA;AAAA,uBAUOb,OAVP;;AAAA;AAYC,qBAAKc,mBAAL;;AAZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAeA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEiC,KAAKF,2BAAL,EAFjC;;AAAA;AAAA;AAEST,gBAAAA,IAFT,0BAESA,IAFT;AAEeH,gBAAAA,OAFf,0BAEeA,OAFf;;AAICR,6BAAOK,WAAP,CAAmBM,IAAnB,EAAyB;AACxB,qDAAmCY;AADX,iBAAzB;;AAJD;AAAA,uBAQO,KAAKX,EAAL,CAAQG,SAAR,CAAkBQ,kCAAlB,CARP;;AAAA;AAAA;AAAA,uBAUOf,OAVP;;AAAA;AAYC,qBAAKc,mBAAL;AAZD;AAAA,uBAcuB,KAAK3B,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC;AAC5DJ,kBAAAA,WAAW,EAAE;AAD+C,iBAAvC,CAdvB;;AAAA;AAcOK,gBAAAA,OAdP;;AAkBCG,6BAAOgB,OAAP,CAAenB,OAAO,CAACoB,MAAvB;;AAEA,qBAAKK,mBAAL;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yHAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKE,YAAL,CAAkB,SAAlB,CAFnB;;AAAA;AAEOtC,gBAAAA,GAFP;AAIOuC,gBAAAA,UAJP,GAIoB,KAAKC,OAAL,CAAa,KAAb,CAJpB;AAKCD,gBAAAA,UAAU,CAACE,GAAX,CAAe;AAAEtC,kBAAAA,IAAI,EAAE,SAAR;AAAmBuC,kBAAAA,KAAK,EAAE;AAA1B,iBAAf;AALD;AAAA,uBAO4B1C,GAAG,CAACY,WAAJ,EAP5B;;AAAA;AAOO+B,gBAAAA,YAPP;;AASC7B,6BAAOK,WAAP,CAAmBwB,YAAnB,EAAiC;AAChC,4CAA0B;AADM,iBAAjC;;AATD;AAAA,uBAaO,KAAKlC,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAbP;;AAAA;AAAA;AAAA,uBAe4BV,GAAG,CAACY,WAAJ,EAf5B;;AAAA;AAeOgC,gBAAAA,YAfP;;AAgBC9B,6BAAOmB,OAAP,CAAeW,YAAY,CAAC5B,KAAb,CAAmBC,MAAlC,EAA0C,QAA1C;;AAhBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAmBA,qCACCV,IADD,EAOCD,WAPD,EAQE;AACD;AACA,UAAIC,IAAI,WAAID,WAAJ,YAAJ,KAAiC,SAArC,EAAgD;AAC/CuC,mCAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBxC,IAAI,CAACJ,IAAtB,CAAnB,EAAgD,EAAhD;AACA;AACD;;;;gHAED,kBAA0C6C,QAA1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACmB,KAAKV,YAAL,CAAkBU,QAAlB,CADnB;;AAAA;AACOhD,gBAAAA,GADP;AAEOiD,gBAAAA,SAFP,GAEmB,KAAKF,WAAL,CAAiB,cAAjB,CAFnB;;AAGCF,2CAASC,SAAT,CAAmBG,SAAnB,EAA8BxD,2BAA9B;;AAHD;AAAA,uBAIO,KAAK+B,uBAAL,CAA6BxB,GAA7B,CAJP;;AAAA;AAAA,kDAMQA,GANR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wGASA,kBAAkCgD,QAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AACOE,gBAAAA,OADP,GACiB,KAAKC,cAAL,EADjB;AAAA;AAAA,uBAEmBD,OAAO,CAACE,eAAR,CACjB,CACC;AACCtD,kBAAAA,IAAI,EAAE,OADP;AAECuD,kBAAAA,OAAO,EAAE;AACRnD,oBAAAA,IAAI,EAAE,gBADE;AAERoD,oBAAAA,WAAW,EAAE;AAFL;AAFV,iBADD,CADiB,EAUjBN,QAViB,CAFnB;;AAAA;AAEOhD,gBAAAA,GAFP;AAAA,kDAcQA,GAdR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAiBA,kBAA6CA,GAA7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACiCA,GAAG,CAACY,WAAJ,EADjC;;AAAA;AACO2C,gBAAAA,iBADP;;AAGCzC,6BAAOK,WAAP,CAAmBoC,iBAAnB,EAAsC;AACrC,4CAA0B;AADW,iBAAtC;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uHAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAKxD,oBAAL,CAA0B,QAA1B,CADP;;AAAA;AAGOuB,gBAAAA,OAHP,GAGiB,KAAKb,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC;AACtDJ,kBAAAA,WAAW,EAAE;AADyC,iBAAvC,CAHjB;AAAA;AAAA,uBAOO,KAAKiB,YAAL,EAPP;;AAAA;AASOE,gBAAAA,IATP,GASc,KAAKC,EAAL,CAAQC,iBAAR,EATd;AAAA,mDAUQ;AAAEF,kBAAAA,IAAI,EAAJA,IAAF;AAAQH,kBAAAA,OAAO,EAAPA;AAAR,iBAVR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAaA,+BAAqC;AACpC,UAAM2B,SAAS,GAAG,KAAKF,WAAL,CAAiB,cAAjB,CAAlB;;AACA,UAAMS,QAAQ,GAAGX,2BAASY,QAAT,CAAkBR,SAAlB,CAAjB;;AACAnC,mBAAOmB,OAAP,CAAeuB,QAAf,EAAyB/D,2BAAzB;AACA;;;EArP+CiE,4B","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 CommandService from '../../../services/CommandService'\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\tCommandService.setMockResponse(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async forceEverythingUpgradeOverwritesWhatHasChanged() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tCommandService.setMockResponse('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.setMockResponse('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst files: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t}[] = [\n\t\t\t{\n\t\t\t\tname: 'index.ts',\n\t\t\t\tpath: 'src/index.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: '.eslintrc.js',\n\t\t\t\tpath: '.eslintrc.js',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'updated',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'SpruceError.ts',\n\t\t\t\tpath: 'src/errors/SpruceError.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'options.types.ts',\n\t\t\t\tpath: 'src/.spruce/errors/options.types.ts',\n\t\t\t\tforceEverythingAction: 'updated',\n\t\t\t\tforceRequiredSkipRestAction: 'skipped',\n\t\t\t},\n\t\t]\n\n\t\tfor (const upgradeMode of ['forceRequiredSkipRest', 'forceEverything']) {\n\t\t\tfor (const file of files) {\n\t\t\t\tthis.clearFileIfAboutToBeUpdated(file, upgradeMode)\n\t\t\t}\n\n\t\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\t\tupgradeMode,\n\t\t\t})\n\n\t\t\tif (upgradeMode === 'forceRequiredSkipRest') {\n\t\t\t\tconst passedHealthCheck = await cli.checkHealth()\n\t\t\t\tassert.isEqualDeep(passedHealthCheck, { skill: { status: 'passed' } })\n\t\t\t}\n\n\t\t\tfor (const file of files) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tconst action = file[`${upgradeMode}Action`]\n\t\t\t\tassert.doesInclude(\n\t\t\t\t\tresults.files,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: file.name,\n\t\t\t\t\t\taction,\n\t\t\t\t\t},\n\t\t\t\t\t`${\n\t\t\t\t\t\tfile.name\n\t\t\t\t\t} was not ${action} when ${upgradeMode} in \\n\\n ${JSON.stringify(\n\t\t\t\t\t\tresults.files ?? [],\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t2\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tconst passedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(passedHealthCheck, {\n\t\t\t'skill.status': 'passed',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async upgradeWillAskIfYouWantToOverwriteFiles() {\n\t\tconst cli = await this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_OVERWRITE,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_OVERWRITE)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isEqual(health.skill.status, 'passed')\n\t}\n\n\t@test()\n\tprotected static async canSkipFile() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async canAlwaysSkipFiles() {\n\t\tconst { last, promise } = await this.installBreakAndUpgradeSkill()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\n\t\tawait this.ui.sendInput(FILE_ACTION_ALWAYS_SKIP)\n\n\t\tawait promise\n\n\t\tthis.assertSkillIsBroken()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.assertSkillIsBroken()\n\t}\n\n\t@test()\n\tprotected static async upgradesUpdatesPackageScripts() {\n\t\tconst cli = await this.installSkill('schemas')\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tpkgService.set({ path: 'scripts', value: {} })\n\n\t\tconst failedHealth = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealth, {\n\t\t\t'skill.errors[].message': '\"health.local\" not found',\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst passedHealth = await cli.checkHealth()\n\t\tassert.isEqual(passedHealth.skill.status, 'passed')\n\t}\n\n\tprivate static clearFileIfAboutToBeUpdated(\n\t\tfile: {\n\t\t\tname: string\n\t\t\tpath: string\n\t\t\tforceEverythingAction: GeneratedFile['action']\n\t\t\tforceRequiredSkipRestAction: GeneratedFile['action']\n\t\t},\n\t\tupgradeMode: string\n\t) {\n\t\t//@ts-ignore\n\t\tif (file[`${upgradeMode}Action`] === 'updated') {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file.path), '')\n\t\t}\n\t}\n\n\tprivate static async installAndBreakSkill(cacheKey: string) {\n\t\tconst cli = await this.installSkill(cacheKey)\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tdiskUtil.writeFile(indexFile, BROKEN_SKILL_INDEX_CONTENTS)\n\t\tawait this.assertFailedHealthCheck(cli)\n\n\t\treturn cli\n\t}\n\n\tprivate static async installSkill(cacheKey: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\t\treturn cli\n\t}\n\n\tprivate static async assertFailedHealthCheck(cli: CliInterface) {\n\t\tconst failedHealthCheck = await cli.checkHealth()\n\n\t\tassert.doesInclude(failedHealthCheck, {\n\t\t\t'skill.errors[].message': 'cheese',\n\t\t})\n\t}\n\n\tprivate static async installBreakAndUpgradeSkill() {\n\t\tawait this.installAndBreakSkill('skills')\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\treturn { last, promise }\n\t}\n\n\tprivate static assertSkillIsBroken() {\n\t\tconst indexFile = this.resolvePath('src/index.ts')\n\t\tconst contents = diskUtil.readFile(indexFile)\n\t\tassert.isEqual(contents, BROKEN_SKILL_INDEX_CONTENTS)\n\t}\n}\n"],"file":"UpgradingASkill.test.js"}