@sprucelabs/spruce-cli 19.1.23 → 19.1.25

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 (562) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/build/__tests__/behavioral/AddingADependency.test.js +29 -57
  3. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  4. package/build/__tests__/behavioral/BlockingCommands.test.js +9 -17
  5. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  6. package/build/__tests__/behavioral/BootingTheCli.test.js +9 -17
  7. package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
  8. package/build/__tests__/behavioral/BootingWithBadFiles.test.js +13 -25
  9. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  10. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js +13 -25
  11. package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
  12. package/build/__tests__/behavioral/DeployingASkill.test.js +73 -145
  13. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  14. package/build/__tests__/behavioral/DeployingToSandbox.test.js +61 -121
  15. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  16. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +33 -65
  17. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  18. package/build/__tests__/behavioral/GettingCliVersion.test.js +13 -25
  19. package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
  20. package/build/__tests__/behavioral/ManagingDependencies.test.js +21 -41
  21. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  22. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +9 -17
  23. package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
  24. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js +10 -18
  25. package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
  26. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +17 -33
  27. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  28. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +29 -57
  29. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  30. package/build/__tests__/behavioral/SettingRemote.test.js +21 -41
  31. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  32. package/build/__tests__/behavioral/SettingUpVscode.test.js +9 -17
  33. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  34. package/build/__tests__/behavioral/TestingAConversation.test.js +25 -49
  35. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  36. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +21 -41
  37. package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
  38. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js +9 -17
  39. package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
  40. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js +21 -41
  41. package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
  42. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +9 -17
  43. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  44. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +45 -89
  45. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  46. package/build/__tests__/behavioral/events/CreatingAListener.test.js +73 -145
  47. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  48. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +53 -105
  49. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  50. package/build/__tests__/behavioral/events/EventWriter.test.js +5 -9
  51. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
  52. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +61 -121
  53. package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
  54. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +41 -81
  55. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  56. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +13 -25
  57. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
  58. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js +9 -17
  59. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
  60. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js +9 -17
  61. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -1
  62. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js +14 -26
  63. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -1
  64. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js +26 -50
  65. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -1
  66. package/build/__tests__/behavioral/events/SettingUpEvents.test.js +5 -9
  67. package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
  68. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +13 -25
  69. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  70. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js +13 -25
  71. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  72. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +13 -25
  73. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  74. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +13 -25
  75. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  76. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +9 -17
  77. package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
  78. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +13 -25
  79. package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
  80. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +9 -17
  81. package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -1
  82. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +49 -97
  83. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  84. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +9 -17
  85. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -1
  86. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +59 -113
  87. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  88. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js +13 -25
  89. package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -1
  90. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +37 -73
  91. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  92. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js +13 -25
  93. package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
  94. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js +29 -57
  95. package/build/__tests__/behavioral/polish/SettingUpPolish.test.js.map +1 -1
  96. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +41 -81
  97. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  98. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js +5 -9
  99. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -1
  100. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js +9 -17
  101. package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
  102. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +17 -33
  103. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  104. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js +21 -41
  105. package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
  106. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js +5 -9
  107. package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
  108. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +81 -161
  109. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  110. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +13 -25
  111. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  112. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +49 -97
  113. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  114. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +5 -9
  115. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  116. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +5 -9
  117. package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
  118. package/build/__tests__/behavioral/skill/BootingASkill.test.js +13 -25
  119. package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
  120. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +9 -17
  121. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  122. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js +33 -65
  123. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -1
  124. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js +37 -73
  125. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -1
  126. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js +13 -25
  127. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
  128. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +17 -33
  129. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  130. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js +29 -57
  131. package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
  132. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +45 -89
  133. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  134. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +41 -81
  135. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  136. package/build/__tests__/behavioral/tests/CreatingATest.test.js +41 -81
  137. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  138. package/build/__tests__/behavioral/tests/RunningTests.test.js +17 -33
  139. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  140. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +45 -89
  141. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  142. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js +21 -41
  143. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -1
  144. package/build/__tests__/behavioral/tests/SettingUpTests.test.js +9 -17
  145. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  146. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js +9 -17
  147. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -1
  148. package/build/__tests__/behavioral/tests/TestingDataStores.test.js +9 -17
  149. package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -1
  150. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js +17 -33
  151. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
  152. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +21 -41
  153. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  154. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +17 -33
  155. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  156. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js +41 -81
  157. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
  158. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js +29 -57
  159. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
  160. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +41 -81
  161. package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
  162. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +17 -33
  163. package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
  164. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +29 -57
  165. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  166. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +18 -32
  167. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  168. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js +29 -57
  169. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
  170. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +53 -105
  171. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  172. package/build/__tests__/behavioral/views/CreatingATheme.test.js +30 -56
  173. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  174. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js +25 -49
  175. package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
  176. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js +25 -49
  177. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -1
  178. package/build/__tests__/behavioral/views/SettingUpViews.test.js +9 -17
  179. package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
  180. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +21 -41
  181. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  182. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +13 -25
  183. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  184. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +53 -105
  185. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  186. package/build/__tests__/implementation/ActionExecuter.test.js +9 -17
  187. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  188. package/build/__tests__/implementation/ActionExecuter2.test.js +33 -65
  189. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  190. package/build/__tests__/implementation/ActionExecuter3.test.js +17 -33
  191. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  192. package/build/__tests__/implementation/ActionExecuter4.test.js +13 -25
  193. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  194. package/build/__tests__/implementation/ArgParser.test.js +9 -17
  195. package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
  196. package/build/__tests__/implementation/BuildService.test.js +9 -17
  197. package/build/__tests__/implementation/BuildService.test.js.map +1 -1
  198. package/build/__tests__/implementation/BulkImporting.test.js +41 -81
  199. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  200. package/build/__tests__/implementation/CachingImports.test.js +21 -41
  201. package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
  202. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +37 -73
  203. package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
  204. package/build/__tests__/implementation/DataStoreStore.test.js +41 -81
  205. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  206. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js +13 -25
  207. package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
  208. package/build/__tests__/implementation/EventContractCleanerUtil.test.js +17 -33
  209. package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
  210. package/build/__tests__/implementation/EventStore.test.js +58 -113
  211. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  212. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +13 -25
  213. package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
  214. package/build/__tests__/implementation/FeatureCommandAttacher.test.js +37 -73
  215. package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
  216. package/build/__tests__/implementation/FeatureFixture.test.js +17 -33
  217. package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
  218. package/build/__tests__/implementation/FeatureInstaller.test.js +17 -33
  219. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  220. package/build/__tests__/implementation/FeaturesUtil.test.js +5 -9
  221. package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
  222. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js +5 -9
  223. package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
  224. package/build/__tests__/implementation/GlobalEmitter.test.js +9 -17
  225. package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
  226. package/build/__tests__/implementation/JestJsonParser.test.js +5 -9
  227. package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
  228. package/build/__tests__/implementation/LintService.test.js +9 -17
  229. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  230. package/build/__tests__/implementation/OnboardingScriptLoader.test.js +19 -34
  231. package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
  232. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +58 -103
  233. package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
  234. package/build/__tests__/implementation/OnboardingStore.test.js +9 -17
  235. package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
  236. package/build/__tests__/implementation/OrganizationStore.test.js +21 -41
  237. package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
  238. package/build/__tests__/implementation/ParentTestFinder.test.js +13 -25
  239. package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
  240. package/build/__tests__/implementation/PkgService.test.js +25 -49
  241. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  242. package/build/__tests__/implementation/SchemaStore.test.js +65 -129
  243. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  244. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +5 -9
  245. package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
  246. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js +29 -57
  247. package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
  248. package/build/__tests__/implementation/ServiceFactory.test.js +5 -9
  249. package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
  250. package/build/__tests__/implementation/SettingUpANodeModule.test.js +13 -25
  251. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  252. package/build/__tests__/implementation/SkillStore.test.js +33 -65
  253. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  254. package/build/__tests__/implementation/StoreFeature.test.js +10 -16
  255. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  256. package/build/__tests__/implementation/TestReporter.test.js +17 -33
  257. package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
  258. package/build/__tests__/implementation/TestRunner.test.js +37 -73
  259. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  260. package/build/__tests__/implementation/ValueTypeMapping.test.js +9 -17
  261. package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
  262. package/build/__tests__/implementation/Widgets.test.js +17 -33
  263. package/build/__tests__/implementation/Widgets.test.js.map +1 -1
  264. package/build/__tests__/support/EventFaker.js +5 -9
  265. package/build/__tests__/support/EventFaker.js.map +1 -1
  266. package/build/__tests__/support/scripts/first.script.js +5 -7
  267. package/build/__tests__/support/scripts/first.script.js.map +1 -1
  268. package/build/boot.js +5 -12
  269. package/build/boot.js.map +1 -1
  270. package/build/cli/Cli.js +42 -80
  271. package/build/cli/Cli.js.map +1 -1
  272. package/build/components/FormComponent.js +9 -17
  273. package/build/components/FormComponent.js.map +1 -1
  274. package/build/components/QuizComponent.js +9 -17
  275. package/build/components/QuizComponent.js.map +1 -1
  276. package/build/features/AbstractAction.js +13 -25
  277. package/build/features/AbstractAction.js.map +1 -1
  278. package/build/features/AbstractFeature.js +17 -33
  279. package/build/features/AbstractFeature.js.map +1 -1
  280. package/build/features/ActionExecuter.js +11 -17
  281. package/build/features/ActionExecuter.js.map +1 -1
  282. package/build/features/ActionQuestionAsker.js +35 -65
  283. package/build/features/ActionQuestionAsker.js.map +1 -1
  284. package/build/features/FeatureCommandAttacher.js +5 -9
  285. package/build/features/FeatureCommandAttacher.js.map +1 -1
  286. package/build/features/FeatureInstaller.js +43 -81
  287. package/build/features/FeatureInstaller.js.map +1 -1
  288. package/build/features/OverrideActionDecorator.js +6 -8
  289. package/build/features/OverrideActionDecorator.js.map +1 -1
  290. package/build/features/cache/CacheFeature.js +5 -9
  291. package/build/features/cache/CacheFeature.js.map +1 -1
  292. package/build/features/cache/actions/DisableAction.js +5 -9
  293. package/build/features/cache/actions/DisableAction.js.map +1 -1
  294. package/build/features/cache/actions/EnableAction.js +5 -9
  295. package/build/features/cache/actions/EnableAction.js.map +1 -1
  296. package/build/features/conversation/ConversationFeature.js +13 -25
  297. package/build/features/conversation/ConversationFeature.js.map +1 -1
  298. package/build/features/conversation/actions/CreateAction.js +5 -9
  299. package/build/features/conversation/actions/CreateAction.js.map +1 -1
  300. package/build/features/conversation/actions/TestAction.js +14 -24
  301. package/build/features/conversation/actions/TestAction.js.map +1 -1
  302. package/build/features/conversation/stores/ConversationStore.js +5 -9
  303. package/build/features/conversation/stores/ConversationStore.js.map +1 -1
  304. package/build/features/conversation/writers/ConversationWriter.js +5 -9
  305. package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
  306. package/build/features/dependencies/DependencyFeature.js +5 -9
  307. package/build/features/dependencies/DependencyFeature.js.map +1 -1
  308. package/build/features/dependencies/actions/AddAction.js +5 -9
  309. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  310. package/build/features/dependencies/actions/ManageAction.js +5 -9
  311. package/build/features/dependencies/actions/ManageAction.js.map +1 -1
  312. package/build/features/deploy/DeployFeature.js +5 -9
  313. package/build/features/deploy/DeployFeature.js.map +1 -1
  314. package/build/features/deploy/actions/HerokuAction.js +41 -81
  315. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  316. package/build/features/error/ErrorFeature.js +13 -25
  317. package/build/features/error/ErrorFeature.js.map +1 -1
  318. package/build/features/error/ParentTestFinder.js +5 -9
  319. package/build/features/error/ParentTestFinder.js.map +1 -1
  320. package/build/features/error/actions/CreateAction.js +5 -9
  321. package/build/features/error/actions/CreateAction.js.map +1 -1
  322. package/build/features/error/actions/SyncAction.js +13 -25
  323. package/build/features/error/actions/SyncAction.js.map +1 -1
  324. package/build/features/error/writers/ErrorWriter.js +21 -41
  325. package/build/features/error/writers/ErrorWriter.js.map +1 -1
  326. package/build/features/event/EventFeature.js +29 -57
  327. package/build/features/event/EventFeature.js.map +1 -1
  328. package/build/features/event/actions/CreateAction.js +5 -9
  329. package/build/features/event/actions/CreateAction.js.map +1 -1
  330. package/build/features/event/actions/ListenAction.js +29 -57
  331. package/build/features/event/actions/ListenAction.js.map +1 -1
  332. package/build/features/event/actions/SetRemoteAction.js +5 -9
  333. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  334. package/build/features/event/actions/SyncAction.js +5 -9
  335. package/build/features/event/actions/SyncAction.js.map +1 -1
  336. package/build/features/event/actions/SyncListenersAction.js +5 -9
  337. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  338. package/build/features/event/builders/EventContractBuilder.js +17 -33
  339. package/build/features/event/builders/EventContractBuilder.js.map +1 -1
  340. package/build/features/event/stores/EventStore.js +26 -48
  341. package/build/features/event/stores/EventStore.js.map +1 -1
  342. package/build/features/event/stores/ListenerStore.js +5 -9
  343. package/build/features/event/stores/ListenerStore.js.map +1 -1
  344. package/build/features/event/writers/EventWriter.js +25 -49
  345. package/build/features/event/writers/EventWriter.js.map +1 -1
  346. package/build/features/eventContract/actions/PullAction.js +9 -17
  347. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  348. package/build/features/log/actions/CreateTransportAction.js +5 -9
  349. package/build/features/log/actions/CreateTransportAction.js.map +1 -1
  350. package/build/features/log/writers/LogWriter.js +5 -9
  351. package/build/features/log/writers/LogWriter.js.map +1 -1
  352. package/build/features/node/NodeFeature.js +22 -40
  353. package/build/features/node/NodeFeature.js.map +1 -1
  354. package/build/features/node/actions/CreateAction.js +5 -9
  355. package/build/features/node/actions/CreateAction.js.map +1 -1
  356. package/build/features/node/actions/UpdateDependenciesAction.js +9 -17
  357. package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
  358. package/build/features/node/actions/UpgradeAction.js +13 -25
  359. package/build/features/node/actions/UpgradeAction.js.map +1 -1
  360. package/build/features/node/writers/NodeWriter.js +5 -9
  361. package/build/features/node/writers/NodeWriter.js.map +1 -1
  362. package/build/features/onboard/OnboardFeature.js +18 -33
  363. package/build/features/onboard/OnboardFeature.js.map +1 -1
  364. package/build/features/onboard/ScriptLoader.js +5 -9
  365. package/build/features/onboard/ScriptLoader.js.map +1 -1
  366. package/build/features/onboard/ScriptPlayer.js +13 -25
  367. package/build/features/onboard/ScriptPlayer.js.map +1 -1
  368. package/build/features/onboard/actions/OnboardAction.js +5 -9
  369. package/build/features/onboard/actions/OnboardAction.js.map +1 -1
  370. package/build/features/onboard/scripts/onboarding.first.script.js +18 -37
  371. package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
  372. package/build/features/onboard/scripts/onboarding.immersive.script.js +8 -13
  373. package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
  374. package/build/features/onboard/scripts/onboarding.returning.script.js +5 -7
  375. package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
  376. package/build/features/onboard/scripts/onboarding.short.script.js +17 -31
  377. package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
  378. package/build/features/onboard/scripts/todo/todo.create.skill.script.js +5 -7
  379. package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
  380. package/build/features/onboard/scripts/todo/todo.test.script.js +5 -7
  381. package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
  382. package/build/features/onboard/scripts/wrongCommand.script.js +5 -7
  383. package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
  384. package/build/features/organization/actions/CreateAction.js +5 -9
  385. package/build/features/organization/actions/CreateAction.js.map +1 -1
  386. package/build/features/organization/actions/InstallAction.js +5 -9
  387. package/build/features/organization/actions/InstallAction.js.map +1 -1
  388. package/build/features/organization/stores/OrganizationStore.js +21 -41
  389. package/build/features/organization/stores/OrganizationStore.js.map +1 -1
  390. package/build/features/permission/PermissionFeature.js +17 -33
  391. package/build/features/permission/PermissionFeature.js.map +1 -1
  392. package/build/features/permission/actions/CreateAction.js +5 -9
  393. package/build/features/permission/actions/CreateAction.js.map +1 -1
  394. package/build/features/permission/actions/SyncAction.js +8 -15
  395. package/build/features/permission/actions/SyncAction.js.map +1 -1
  396. package/build/features/permission/stores/PermissionStore.js +9 -17
  397. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  398. package/build/features/permission/writers/PermissionWriter.js +13 -25
  399. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  400. package/build/features/person/actions/LoginAction.js +5 -9
  401. package/build/features/person/actions/LoginAction.js.map +1 -1
  402. package/build/features/person/actions/LogoutAction.js +5 -9
  403. package/build/features/person/actions/LogoutAction.js.map +1 -1
  404. package/build/features/person/actions/WhoamiAction.js +5 -9
  405. package/build/features/person/actions/WhoamiAction.js.map +1 -1
  406. package/build/features/polish/actions/SetupAction.js +5 -9
  407. package/build/features/polish/actions/SetupAction.js.map +1 -1
  408. package/build/features/polish/writers/PolishWriter.js +5 -9
  409. package/build/features/polish/writers/PolishWriter.js.map +1 -1
  410. package/build/features/sandbox/SandboxFeature.js +5 -7
  411. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  412. package/build/features/sandbox/actions/SetupAction.js +5 -9
  413. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  414. package/build/features/sandbox/writers/SandboxWriter.js +5 -9
  415. package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
  416. package/build/features/schema/SchemaFeature.js +17 -33
  417. package/build/features/schema/SchemaFeature.js.map +1 -1
  418. package/build/features/schema/ValueTypeBuilder.js +5 -9
  419. package/build/features/schema/ValueTypeBuilder.js.map +1 -1
  420. package/build/features/schema/actions/CreateAction.js +5 -9
  421. package/build/features/schema/actions/CreateAction.js.map +1 -1
  422. package/build/features/schema/actions/SyncAction.js +21 -41
  423. package/build/features/schema/actions/SyncAction.js.map +1 -1
  424. package/build/features/schema/actions/SyncFieldsAction.js +5 -9
  425. package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
  426. package/build/features/schema/services/SchemaService.js +5 -9
  427. package/build/features/schema/services/SchemaService.js.map +1 -1
  428. package/build/features/schema/stores/SchemaStore.js +31 -57
  429. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  430. package/build/features/schema/writers/SchemaWriter.js +25 -49
  431. package/build/features/schema/writers/SchemaWriter.js.map +1 -1
  432. package/build/features/skill/SkillFeature.js +25 -49
  433. package/build/features/skill/SkillFeature.js.map +1 -1
  434. package/build/features/skill/actions/BootAction.js +9 -17
  435. package/build/features/skill/actions/BootAction.js.map +1 -1
  436. package/build/features/skill/actions/CreateAction.js +5 -9
  437. package/build/features/skill/actions/CreateAction.js.map +1 -1
  438. package/build/features/skill/actions/DashboardAction.js +5 -9
  439. package/build/features/skill/actions/DashboardAction.js.map +1 -1
  440. package/build/features/skill/actions/LoginAction.js +5 -9
  441. package/build/features/skill/actions/LoginAction.js.map +1 -1
  442. package/build/features/skill/actions/RebuildAction.js +5 -9
  443. package/build/features/skill/actions/RebuildAction.js.map +1 -1
  444. package/build/features/skill/actions/RegisterAction.js +5 -9
  445. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  446. package/build/features/skill/stores/SkillStore.js +37 -73
  447. package/build/features/skill/stores/SkillStore.js.map +1 -1
  448. package/build/features/skill/updaters/Updater.js +5 -9
  449. package/build/features/skill/updaters/Updater.js.map +1 -1
  450. package/build/features/skill/writers/SkillWriter.js +5 -9
  451. package/build/features/skill/writers/SkillWriter.js.map +1 -1
  452. package/build/features/store/StoreFeature.js +13 -25
  453. package/build/features/store/StoreFeature.js.map +1 -1
  454. package/build/features/store/actions/CreateAction.js +5 -9
  455. package/build/features/store/actions/CreateAction.js.map +1 -1
  456. package/build/features/store/actions/SyncAction.js +5 -9
  457. package/build/features/store/actions/SyncAction.js.map +1 -1
  458. package/build/features/store/stores/StoreStore.js +5 -9
  459. package/build/features/store/stores/StoreStore.js.map +1 -1
  460. package/build/features/store/writers/StoreWriter.js +17 -33
  461. package/build/features/store/writers/StoreWriter.js.map +1 -1
  462. package/build/features/test/TestFeature.js +9 -17
  463. package/build/features/test/TestFeature.js.map +1 -1
  464. package/build/features/test/TestReporter.js +17 -33
  465. package/build/features/test/TestReporter.js.map +1 -1
  466. package/build/features/test/TestRunner.js +14 -26
  467. package/build/features/test/TestRunner.js.map +1 -1
  468. package/build/features/test/actions/CreateAction.js +17 -33
  469. package/build/features/test/actions/CreateAction.js.map +1 -1
  470. package/build/features/test/actions/SetupAction.js +5 -9
  471. package/build/features/test/actions/SetupAction.js.map +1 -1
  472. package/build/features/test/actions/TestAction.js +21 -41
  473. package/build/features/test/actions/TestAction.js.map +1 -1
  474. package/build/features/test/writers/TestWriter.js +5 -9
  475. package/build/features/test/writers/TestWriter.js.map +1 -1
  476. package/build/features/view/ViewFeature.js +10 -16
  477. package/build/features/view/ViewFeature.js.map +1 -1
  478. package/build/features/view/actions/CreateAction.js +5 -9
  479. package/build/features/view/actions/CreateAction.js.map +1 -1
  480. package/build/features/view/actions/CreateThemeAction.js +5 -9
  481. package/build/features/view/actions/CreateThemeAction.js.map +1 -1
  482. package/build/features/view/actions/SyncAction.js +5 -9
  483. package/build/features/view/actions/SyncAction.js.map +1 -1
  484. package/build/features/view/actions/WatchAction.js +5 -9
  485. package/build/features/view/actions/WatchAction.js.map +1 -1
  486. package/build/features/view/stores/ViewStore.js +5 -9
  487. package/build/features/view/stores/ViewStore.js.map +1 -1
  488. package/build/features/view/writers/ViewWriter.js +9 -17
  489. package/build/features/view/writers/ViewWriter.js.map +1 -1
  490. package/build/features/vscode/actions/SetupAction.js +21 -41
  491. package/build/features/vscode/actions/SetupAction.js.map +1 -1
  492. package/build/features/vscode/services/VsCodeService.js +13 -25
  493. package/build/features/vscode/services/VsCodeService.js.map +1 -1
  494. package/build/features/vscode/writers/VsCodeWriter.js +5 -9
  495. package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
  496. package/build/features/watch/WatchFeature.js +23 -41
  497. package/build/features/watch/WatchFeature.js.map +1 -1
  498. package/build/interfaces/SpyInterface.js +25 -49
  499. package/build/interfaces/SpyInterface.js.map +1 -1
  500. package/build/interfaces/TerminalInterface.js +33 -65
  501. package/build/interfaces/TerminalInterface.js.map +1 -1
  502. package/build/services/BuildService.js +5 -9
  503. package/build/services/BuildService.js.map +1 -1
  504. package/build/services/CommandService.js +5 -9
  505. package/build/services/CommandService.js.map +1 -1
  506. package/build/services/GameService.js +5 -9
  507. package/build/services/GameService.js.map +1 -1
  508. package/build/services/ImportService.js +21 -31
  509. package/build/services/ImportService.js.map +1 -1
  510. package/build/services/LintService.js +6 -8
  511. package/build/services/LintService.js.map +1 -1
  512. package/build/services/PkgService.js +9 -17
  513. package/build/services/PkgService.js.map +1 -1
  514. package/build/services/TypeCheckerService.js +6 -8
  515. package/build/services/TypeCheckerService.js.map +1 -1
  516. package/build/stores/AbstractStore.js +5 -9
  517. package/build/stores/AbstractStore.js.map +1 -1
  518. package/build/tests/AbstractCliTest.js +61 -121
  519. package/build/tests/AbstractCliTest.js.map +1 -1
  520. package/build/tests/AbstractErrorTest.js +5 -9
  521. package/build/tests/AbstractErrorTest.js.map +1 -1
  522. package/build/tests/AbstractEventTest.js +17 -33
  523. package/build/tests/AbstractEventTest.js.map +1 -1
  524. package/build/tests/AbstractSchemaTest.js +13 -25
  525. package/build/tests/AbstractSchemaTest.js.map +1 -1
  526. package/build/tests/AbstractSkillTest.js +13 -25
  527. package/build/tests/AbstractSkillTest.js.map +1 -1
  528. package/build/tests/AbstractTestTest.js +5 -9
  529. package/build/tests/AbstractTestTest.js.map +1 -1
  530. package/build/tests/MockProgramFactory.js +10 -15
  531. package/build/tests/MockProgramFactory.js.map +1 -1
  532. package/build/tests/buildTestCache.js +32 -49
  533. package/build/tests/buildTestCache.js.map +1 -1
  534. package/build/tests/cleanTestData.js +27 -45
  535. package/build/tests/cleanTestData.js.map +1 -1
  536. package/build/tests/fixtures/FeatureFixture.js +25 -49
  537. package/build/tests/fixtures/FeatureFixture.js.map +1 -1
  538. package/build/tests/fixtures/MercuryFixture.js +5 -9
  539. package/build/tests/fixtures/MercuryFixture.js.map +1 -1
  540. package/build/tests/fixtures/OrganizationFixture.js +13 -25
  541. package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
  542. package/build/tests/fixtures/PersonFixture.js +9 -17
  543. package/build/tests/fixtures/PersonFixture.js.map +1 -1
  544. package/build/tests/fixtures/SkillFixture.js +31 -57
  545. package/build/tests/fixtures/SkillFixture.js.map +1 -1
  546. package/build/tests/fixtures/ViewFixture.js +5 -9
  547. package/build/tests/fixtures/ViewFixture.js.map +1 -1
  548. package/build/updaters/ScriptUpdater.js +5 -9
  549. package/build/updaters/ScriptUpdater.js.map +1 -1
  550. package/build/widgets/terminalKit/TkBaseWidget.js +5 -9
  551. package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
  552. package/build/widgets/terminalKit/TkInputWidget.js +9 -17
  553. package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
  554. package/build/widgets/terminalKit/TkLayoutWidget.js +5 -9
  555. package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
  556. package/build/widgets/terminalKit/TkTextWidget.js +5 -9
  557. package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
  558. package/build/widgets/terminalKit/TkWindowWidget.js +9 -17
  559. package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
  560. package/build/writers/AbstractWriter.js +13 -25
  561. package/build/writers/AbstractWriter.js.map +1 -1
  562. package/package.json +29 -29
@@ -1 +1 @@
1
- {"version":3,"file":"TestFeature.js","names":["_spruceEventUtils","require","_spruceSkillUtils","_SpruceError","_interopRequireDefault","_tsConfig","_AbstractFeature2","_ParentTestFinder","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","TestFeature","_AbstractFeature","_inherits2","_super","_this","_classCallCheck2","_len","args","_key","concat","_assertThisInitialized2","code","isRequired","isDev","diskUtil","resolvePath","__dirname","_createClass2","key","_afterPackageInstall","_asyncToGenerator2","_regenerator","mark","_callee","service","wrap","_callee$","_context","prev","Service","configureJest","configureScripts","configureTsConfig","abrupt","stop","afterPackageInstall","tsConfig","tsConfigUtil","readConfig","cwd","compilerOptions","experimentalDecorators","setCompilerOption","scripts","get","set","path","jestConfig","testRunner","maxWorkers","testTimeout","testEnvironment","testPathIgnorePatterns","testMatch","moduleNameMapper","existingJest","_buildParentClassCandidates","_callee2","parentFinder","candidates","results","_eventResponseUtil$ge","payloads","_iterator","_step","payload","abstractClasses","_iterator2","_step2","ac","a","isInstalled","_callee2$","_context2","ParentTestFinder","findAbstractTests","sent","map","label","emitter","emit","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","isDefaultExport","featureCode","features","t0","finish","t1","sort","b","buildParentClassCandidates","AbstractFeature","exports"],"sources":["../../../src/features/test/TestFeature.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../errors/SpruceError'\nimport PkgService from '../../services/PkgService'\nimport { NpmPackage } from '../../types/cli.types'\nimport tsConfigUtil from '../../utilities/tsConfig.utility'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport ParentTestFinder from '../error/ParentTestFinder'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\ttest: TestFeature\n\t}\n}\n\nexport interface ParentClassCandidate {\n\tname: string\n\tlabel: string\n\tpath?: string\n\timport?: string\n\tisDefaultExport: boolean\n\tfeatureCode?: FeatureCode\n}\n\nexport default class TestFeature extends AbstractFeature {\n\tpublic nameReadable = 'Testing'\n\tpublic description = 'Test first. Test everything! 💪'\n\tpublic code: FeatureCode = 'test'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: false },\n\t\t{ code: 'node', isRequired: true },\n\t]\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/test@latest', isDev: true },\n\t\t{ name: '@sprucelabs/test-utils@latest', isDev: true },\n\t\t{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },\n\t\t{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },\n\t\t{ name: 'jest-circus', isDev: true },\n\t\t{ name: 'jest', isDev: true },\n\t]\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic async afterPackageInstall() {\n\t\tconst service = this.Service('pkg')\n\n\t\tthis.configureJest(service)\n\t\tthis.configureScripts(service)\n\t\tthis.configureTsConfig()\n\n\t\treturn {}\n\t}\n\n\tprivate configureTsConfig() {\n\t\ttry {\n\t\t\tconst tsConfig = tsConfigUtil.readConfig(this.cwd)\n\t\t\tif (!tsConfig.compilerOptions.experimentalDecorators) {\n\t\t\t\ttsConfig.compilerOptions.experimentalDecorators = true\n\t\t\t\ttsConfigUtil.setCompilerOption(this.cwd, 'experimentalDecorators', true)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t//@ts-ignore\n\t\t}\n\t}\n\n\tprivate configureScripts(service: PkgService) {\n\t\tlet scripts = service.get('scripts') as Record<string, any> | undefined\n\n\t\tif (!scripts) {\n\t\t\tscripts = {}\n\t\t}\n\n\t\tif (!scripts.test) {\n\t\t\tscripts.test = 'jest'\n\t\t\tscripts['watch.tests'] = 'jest --watch'\n\t\t\tservice.set({ path: 'scripts', value: scripts })\n\t\t}\n\t}\n\n\tprivate configureJest(service: PkgService) {\n\t\tconst jestConfig = {\n\t\t\ttestRunner: 'jest-circus/runner',\n\t\t\tmaxWorkers: 4,\n\t\t\ttestTimeout: 120000,\n\t\t\ttestEnvironment: 'node',\n\t\t\ttestPathIgnorePatterns: [\n\t\t\t\t'<rootDir>/tmp/',\n\t\t\t\t'<rootDir>/src/',\n\t\t\t\t'<rootDir>/node_modules/',\n\t\t\t\t'<rootDir>/build/__tests__/testDirsAndFiles/',\n\t\t\t],\n\t\t\ttestMatch: ['**/__tests__/**/*.test.js?(x)'],\n\t\t\tmoduleNameMapper: {\n\t\t\t\t'^#spruce/(.*)$': '<rootDir>/build/.spruce/$1',\n\t\t\t},\n\t\t}\n\n\t\tconst existingJest = service.get('jest') as Record<string, any>\n\t\tif (!existingJest) {\n\t\t\tservice.set({ path: 'jest', value: jestConfig })\n\t\t}\n\t}\n\n\tpublic async buildParentClassCandidates(): Promise<ParentClassCandidate[]> {\n\t\tconst parentFinder = new ParentTestFinder(this.cwd)\n\t\tconst candidates: ParentClassCandidate[] = (\n\t\t\tawait parentFinder.findAbstractTests()\n\t\t).map((a) => ({ ...a, label: a.name }))\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'test.register-abstract-test-classes'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tfor (const payload of payloads) {\n\t\t\tconst { abstractClasses } = payload\n\n\t\t\tfor (const ac of abstractClasses) {\n\t\t\t\tconst a = { ...ac, isDefaultExport: false }\n\n\t\t\t\tif (ac.featureCode) {\n\t\t\t\t\tconst isInstalled = await this.features.isInstalled(\n\t\t\t\t\t\tac.featureCode as any\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!isInstalled) {\n\t\t\t\t\t\ta.label = `${a.label} (requires install)`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcandidates.push(a as any)\n\t\t\t}\n\t\t}\n\n\t\tcandidates.sort((a, b) => {\n\t\t\tif (a.label > b.label) {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t})\n\n\t\treturn candidates\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TestFeature.js","names":["_spruceEventUtils","require","_spruceSkillUtils","_SpruceError","_interopRequireDefault","_tsConfig","_AbstractFeature2","_ParentTestFinder","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","TestFeature","_AbstractFeature","_afterPackageInstall","_buildParentClassCandidates","_inherits2","_super","_this","_classCallCheck2","_len","args","_key","concat","_assertThisInitialized2","code","isRequired","isDev","diskUtil","resolvePath","__dirname","_createClass2","key","afterPackageInstall","_asyncToGenerator2","_regenerator","mark","_callee","service","wrap","_callee$","_context","prev","Service","configureJest","configureScripts","configureTsConfig","abrupt","stop","tsConfig","tsConfigUtil","readConfig","cwd","compilerOptions","experimentalDecorators","setCompilerOption","scripts","get","set","path","jestConfig","testRunner","maxWorkers","testTimeout","testEnvironment","testPathIgnorePatterns","testMatch","moduleNameMapper","existingJest","buildParentClassCandidates","_callee2","parentFinder","candidates","results","_eventResponseUtil$ge","payloads","_iterator","_step","payload","abstractClasses","_iterator2","_step2","ac","a","isInstalled","_callee2$","_context2","ParentTestFinder","findAbstractTests","sent","map","label","emitter","emit","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","isDefaultExport","featureCode","features","t0","finish","t1","sort","b","AbstractFeature","exports"],"sources":["../../../src/features/test/TestFeature.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../errors/SpruceError'\nimport PkgService from '../../services/PkgService'\nimport { NpmPackage } from '../../types/cli.types'\nimport tsConfigUtil from '../../utilities/tsConfig.utility'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport ParentTestFinder from '../error/ParentTestFinder'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\ttest: TestFeature\n\t}\n}\n\nexport interface ParentClassCandidate {\n\tname: string\n\tlabel: string\n\tpath?: string\n\timport?: string\n\tisDefaultExport: boolean\n\tfeatureCode?: FeatureCode\n}\n\nexport default class TestFeature extends AbstractFeature {\n\tpublic nameReadable = 'Testing'\n\tpublic description = 'Test first. Test everything! 💪'\n\tpublic code: FeatureCode = 'test'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: false },\n\t\t{ code: 'node', isRequired: true },\n\t]\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/test@latest', isDev: true },\n\t\t{ name: '@sprucelabs/test-utils@latest', isDev: true },\n\t\t{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },\n\t\t{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },\n\t\t{ name: 'jest-circus', isDev: true },\n\t\t{ name: 'jest', isDev: true },\n\t]\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic async afterPackageInstall() {\n\t\tconst service = this.Service('pkg')\n\n\t\tthis.configureJest(service)\n\t\tthis.configureScripts(service)\n\t\tthis.configureTsConfig()\n\n\t\treturn {}\n\t}\n\n\tprivate configureTsConfig() {\n\t\ttry {\n\t\t\tconst tsConfig = tsConfigUtil.readConfig(this.cwd)\n\t\t\tif (!tsConfig.compilerOptions.experimentalDecorators) {\n\t\t\t\ttsConfig.compilerOptions.experimentalDecorators = true\n\t\t\t\ttsConfigUtil.setCompilerOption(this.cwd, 'experimentalDecorators', true)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t//@ts-ignore\n\t\t}\n\t}\n\n\tprivate configureScripts(service: PkgService) {\n\t\tlet scripts = service.get('scripts') as Record<string, any> | undefined\n\n\t\tif (!scripts) {\n\t\t\tscripts = {}\n\t\t}\n\n\t\tif (!scripts.test) {\n\t\t\tscripts.test = 'jest'\n\t\t\tscripts['watch.tests'] = 'jest --watch'\n\t\t\tservice.set({ path: 'scripts', value: scripts })\n\t\t}\n\t}\n\n\tprivate configureJest(service: PkgService) {\n\t\tconst jestConfig = {\n\t\t\ttestRunner: 'jest-circus/runner',\n\t\t\tmaxWorkers: 4,\n\t\t\ttestTimeout: 120000,\n\t\t\ttestEnvironment: 'node',\n\t\t\ttestPathIgnorePatterns: [\n\t\t\t\t'<rootDir>/tmp/',\n\t\t\t\t'<rootDir>/src/',\n\t\t\t\t'<rootDir>/node_modules/',\n\t\t\t\t'<rootDir>/build/__tests__/testDirsAndFiles/',\n\t\t\t],\n\t\t\ttestMatch: ['**/__tests__/**/*.test.js?(x)'],\n\t\t\tmoduleNameMapper: {\n\t\t\t\t'^#spruce/(.*)$': '<rootDir>/build/.spruce/$1',\n\t\t\t},\n\t\t}\n\n\t\tconst existingJest = service.get('jest') as Record<string, any>\n\t\tif (!existingJest) {\n\t\t\tservice.set({ path: 'jest', value: jestConfig })\n\t\t}\n\t}\n\n\tpublic async buildParentClassCandidates(): Promise<ParentClassCandidate[]> {\n\t\tconst parentFinder = new ParentTestFinder(this.cwd)\n\t\tconst candidates: ParentClassCandidate[] = (\n\t\t\tawait parentFinder.findAbstractTests()\n\t\t).map((a) => ({ ...a, label: a.name }))\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'test.register-abstract-test-classes'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tfor (const payload of payloads) {\n\t\t\tconst { abstractClasses } = payload\n\n\t\t\tfor (const ac of abstractClasses) {\n\t\t\t\tconst a = { ...ac, isDefaultExport: false }\n\n\t\t\t\tif (ac.featureCode) {\n\t\t\t\t\tconst isInstalled = await this.features.isInstalled(\n\t\t\t\t\t\tac.featureCode as any\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!isInstalled) {\n\t\t\t\t\t\ta.label = `${a.label} (requires install)`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcandidates.push(a as any)\n\t\t\t}\n\t\t}\n\n\t\tcandidates.sort((a, b) => {\n\t\t\tif (a.label > b.label) {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t})\n\n\t\treturn candidates\n\t}\n}\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
19
19
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
20
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
21
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
22
- var TestReporter = /*#__PURE__*/function () {
22
+ var TestReporter = /*#__PURE__*/function (_start, _handleGlobalKeypress, _handleClickTestLog, _destroy) {
23
23
  function TestReporter(options) {
24
24
  var _options$status, _options$isDebugging, _options$watchMode;
25
25
  (0, _classCallCheck2["default"])(this, TestReporter);
@@ -140,8 +140,8 @@ var TestReporter = /*#__PURE__*/function () {
140
140
  }
141
141
  }, {
142
142
  key: "start",
143
- value: function () {
144
- var _start = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
143
+ value: function start() {
144
+ return (_start = _start || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
145
145
  var _this$window$getFrame, width;
146
146
  return _regenerator["default"].wrap(function _callee$(_context) {
147
147
  while (1) switch (_context.prev = _context.next) {
@@ -176,12 +176,8 @@ var TestReporter = /*#__PURE__*/function () {
176
176
  return _context.stop();
177
177
  }
178
178
  }, _callee, this);
179
- }));
180
- function start() {
181
- return _start.apply(this, arguments);
182
- }
183
- return start;
184
- }()
179
+ }))).apply(this, arguments);
180
+ }
185
181
  }, {
186
182
  key: "handleWindowResize",
187
183
  value: function handleWindowResize() {
@@ -299,8 +295,8 @@ var TestReporter = /*#__PURE__*/function () {
299
295
  }
300
296
  }, {
301
297
  key: "handleGlobalKeypress",
302
- value: function () {
303
- var _handleGlobalKeypress = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(payload) {
298
+ value: function handleGlobalKeypress(_x) {
299
+ return (_handleGlobalKeypress = _handleGlobalKeypress || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(payload) {
304
300
  var _this$handleRestart, _this$handleQuit2;
305
301
  return _regenerator["default"].wrap(function _callee2$(_context2) {
306
302
  while (1) switch (_context2.prev = _context2.next) {
@@ -326,12 +322,8 @@ var TestReporter = /*#__PURE__*/function () {
326
322
  return _context2.stop();
327
323
  }
328
324
  }, _callee2, this);
329
- }));
330
- function handleGlobalKeypress(_x) {
331
- return _handleGlobalKeypress.apply(this, arguments);
332
- }
333
- return handleGlobalKeypress;
334
- }()
325
+ }))).apply(this, arguments);
326
+ }
335
327
  }, {
336
328
  key: "dropInTestLog",
337
329
  value: function dropInTestLog() {
@@ -352,8 +344,8 @@ var TestReporter = /*#__PURE__*/function () {
352
344
  }
353
345
  }, {
354
346
  key: "handleClickTestLog",
355
- value: function () {
356
- var _handleClickTestLog = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(payload) {
347
+ value: function handleClickTestLog(_x2) {
348
+ return (_handleClickTestLog = _handleClickTestLog || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(payload) {
357
349
  var testFile, row, column;
358
350
  return _regenerator["default"].wrap(function _callee3$(_context3) {
359
351
  while (1) switch (_context3.prev = _context3.next) {
@@ -373,12 +365,8 @@ var TestReporter = /*#__PURE__*/function () {
373
365
  return _context3.stop();
374
366
  }
375
367
  }, _callee3, this);
376
- }));
377
- function handleClickTestLog(_x2) {
378
- return _handleClickTestLog.apply(this, arguments);
379
- }
380
- return handleClickTestLog;
381
- }()
368
+ }))).apply(this, arguments);
369
+ }
382
370
  }, {
383
371
  key: "closeSelectTestPopup",
384
372
  value: function closeSelectTestPopup() {
@@ -787,8 +775,8 @@ var TestReporter = /*#__PURE__*/function () {
787
775
  }
788
776
  }, {
789
777
  key: "destroy",
790
- value: function () {
791
- var _destroy = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
778
+ value: function destroy() {
779
+ return (_destroy = _destroy || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
792
780
  return _regenerator["default"].wrap(function _callee4$(_context4) {
793
781
  while (1) switch (_context4.prev = _context4.next) {
794
782
  case 0:
@@ -800,12 +788,8 @@ var TestReporter = /*#__PURE__*/function () {
800
788
  return _context4.stop();
801
789
  }
802
790
  }, _callee4, this);
803
- }));
804
- function destroy() {
805
- return _destroy.apply(this, arguments);
806
- }
807
- return destroy;
808
- }()
791
+ }))).apply(this, arguments);
792
+ }
809
793
  }, {
810
794
  key: "reset",
811
795
  value: function reset() {
@@ -1 +1 @@
1
- {"version":3,"file":"TestReporter.js","names":["_chalk","_interopRequireDefault","require","_duration","_WidgetFactory","_TestLogItemGenerator","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","TestReporter","options","_options$status","_options$isDebugging","_options$watchMode","_classCallCheck2","totalTestFiles","customErrors","cwd","filterPattern","handleRestart","handleStartStop","handleQuit","handleRerunTestFile","handleOpenTestFile","handleFilterChange","handleFilterPatternChange","status","handleToggleDebug","handletoggleStandardWatch","isDebugging","watchMode","handleToggleSmartWatch","errorLogItemGenerator","TestLogItemGenerator","widgetFactory","WidgetFactory","_createClass2","key","setFilterPattern","pattern","filterInput","setValue","clearFilterPatternButton","setText","buildPatternButtonText","setIsDebugging","menu","setTextForItem","concat","startCountdownTimer","durationSec","_this","clearInterval","countDownTimeInterval","undefined","remaining","renderCountdownTime","time","setWatchLabel","setInterval","stopCountdownTimer","setWatchMode","label","isWatching","_start","_asyncToGenerator2","_regenerator","mark","_callee","_this$window$getFrame","width","wrap","_callee$","_context","prev","started","window","Widget","hideCursor","getFrame","minWidth","Error","on","handleGlobalKeypress","bind","destroy","handleWindowResize","dropInTopLayout","dropInProgressBar","dropInMenu","dropInBottomLayout","dropInStatusBar","dropInTestLog","dropInFilterControls","updateOrientation","setStatus","updateInterval","handleUpdateInterval","stop","start","frame","height","orientation","parent","left","top","shouldLockWidthWithParent","items","handleMenuSelect","updateMenuLabels","closeSelectTestPopup","bottomLayout","updateLayout","setStatusLabel","refreshResults","restartLabel","payload","_this$handleQuit","_this$handleStartStop","_this$handleToggleDeb","_this$handletoggleSta","_this$handleToggleSma","lastResults","updateLogs","_handleGlobalKeypress","_callee2","_this$handleRestart","_this$handleQuit2","_callee2$","_context2","getFocusedWidget","abrupt","t0","process","exit","_x","getChildById","testLog","isScrollEnabled","shouldLockHeightWithParent","handleClickTestLog","_handleClickTestLog","_callee3","testFile","row","column","_callee3$","_context3","getFileForLine","dropInSelectTestPopup","_x2","selectTestPopup","_this2","Math","max","text","open","rerun","cancel","_this2$handleRerunTes","openTestFile","_this$handleOpenTestF","_this$lastResults$tes","line","getScrollY","_iterator","testFiles","_step","file","path","c","_file$tests","tests","_this$topLayout$getCh","topLayout","bar","progress","_this$topLayout$getCh2","_this3","buttonWidth","_this3$filterPattern","_this3$handleFilterCh","_payload$value","shouldLockRightWithParent","_this3$filterPattern2","_this3$handleFilterCh2","rows","columns","id","statusBar","shouldLockBottomWithParent","backgroundColor","foregroundColor","updateResults","results","updateProgressBar","percentPassing","generatePercentPassing","percentComplete","generatePercentComplete","setTitle","_this$resultsToLogCon","resultsToLogContents","logContent","errorContent","errorLog","destroyErrorLog","_this$errorLog","dropInErrorLog","cleanedLog","replace","RegExp","_results$testFiles","_this4","generateLogItemForFile","generateErrorLogItemForFile","map","chalk","red","join","orientationWhenErrorLogWasShown","getRows","addRow","setRowHeight","addColumn","setColumnWidth","rowIdx","columnIdx","cell","shouldAutoScrollWhenAppendingContent","padding","_this$errorLog2","removeColumn","removeRow","_results$totalTestFil","totalTestFilesComplete","_results$totalTestFil2","testsRemaining","_this$generateProgres","generateProgressStats","percent","totalTests","totalPassedTests","totalTime","setLabel","durationUtil","msToFriendly","setProgress","_results$testFiles2","_file$tests2","duration","floor","_results$totalTestFil3","isNaN","round","_results$totalPassed","totalPassed","getTotalTestFilesRun","_results$totalTests","_results$totalSkipped","_results$totalTodo","totalSkipped","totalTodo","render","_this$table","_this$table2","table","computeCells","draw","_destroy","_callee4","_callee4$","_context4","reset","resetStartTimes","appendError","message","exports"],"sources":["../../../src/features/test/TestReporter.ts"],"sourcesContent":["import chalk from 'chalk'\nimport durationUtil from '../../utilities/duration.utility'\nimport { ButtonWidget } from '../../widgets/types/button.types'\nimport { InputWidget } from '../../widgets/types/input.types'\nimport { LayoutWidget } from '../../widgets/types/layout.types'\nimport { MenuBarWidget } from '../../widgets/types/menuBar.types'\nimport { PopupWidget } from '../../widgets/types/popup.types'\nimport { ProgressBarWidget } from '../../widgets/types/progressBar.types'\nimport { TextWidget } from '../../widgets/types/text.types'\nimport { WindowWidget } from '../../widgets/types/window.types'\nimport WidgetFactory from '../../widgets/WidgetFactory'\nimport { SpruceTestResults, TestRunnerStatus } from './test.types'\nimport TestLogItemGenerator from './TestLogItemGenerator'\n\nexport default class TestReporter {\n\tprivate started = false\n\tprivate table?: any\n\tprivate bar!: ProgressBarWidget\n\tprivate bottomLayout!: LayoutWidget\n\tprivate testLog!: TextWidget\n\tprivate errorLog?: TextWidget\n\tprivate errorLogItemGenerator: TestLogItemGenerator\n\tprivate lastResults: TestReporterResults = {\n\t\ttotalTestFiles: 0,\n\t\tcustomErrors: [],\n\t}\n\tprivate updateInterval?: any\n\tprivate menu!: MenuBarWidget\n\tprivate statusBar!: TextWidget\n\tprivate window!: WindowWidget\n\tprivate widgetFactory: WidgetFactory\n\tprivate selectTestPopup?: PopupWidget\n\tprivate topLayout!: LayoutWidget\n\tprivate filterInput!: InputWidget\n\tprivate filterPattern?: string\n\tprivate clearFilterPatternButton!: ButtonWidget\n\tprivate isDebugging = false\n\tprivate watchMode: WatchMode = 'off'\n\tprivate status: TestRunnerStatus = 'ready'\n\tprivate countDownTimeInterval?: any\n\tprivate cwd: string | undefined\n\tprivate orientation: TestReporterOrientation = 'landscape'\n\n\tprivate handleStartStop?: () => void\n\tprivate handleRestart?: () => void\n\tprivate handleQuit?: () => void\n\tprivate handleRerunTestFile?: (fileName: string) => void\n\tprivate handleFilterChange?: (pattern?: string) => void\n\tprivate handleOpenTestFile?: (testFile: string) => void\n\tprivate handleToggleDebug?: () => void\n\tprivate handletoggleStandardWatch?: () => void\n\tprivate handleToggleSmartWatch?: () => any\n\tprivate minWidth = 50\n\tprivate orientationWhenErrorLogWasShown: TestReporterOrientation = 'landscape'\n\n\tpublic constructor(options?: TestReporterOptions) {\n\t\tthis.cwd = options?.cwd\n\t\tthis.filterPattern = options?.filterPattern\n\t\tthis.handleRestart = options?.handleRestart\n\t\tthis.handleStartStop = options?.handleStartStop\n\t\tthis.handleQuit = options?.handleQuit\n\t\tthis.handleRerunTestFile = options?.handleRerunTestFile\n\t\tthis.handleOpenTestFile = options?.handleOpenTestFile\n\t\tthis.handleFilterChange = options?.handleFilterPatternChange\n\t\tthis.status = options?.status ?? 'ready'\n\t\tthis.handleToggleDebug = options?.handleToggleDebug\n\t\tthis.handletoggleStandardWatch = options?.handletoggleStandardWatch\n\t\tthis.isDebugging = options?.isDebugging ?? false\n\t\tthis.watchMode = options?.watchMode ?? 'off'\n\t\tthis.handleToggleSmartWatch = options?.handleToggleSmartWatch\n\n\t\tthis.errorLogItemGenerator = new TestLogItemGenerator()\n\t\tthis.widgetFactory = new WidgetFactory()\n\t}\n\n\tpublic setFilterPattern(pattern: string | undefined) {\n\t\tthis.filterPattern = pattern\n\t\tthis.filterInput.setValue(pattern ?? '')\n\t\tthis.clearFilterPatternButton.setText(buildPatternButtonText(pattern))\n\t}\n\n\tpublic setIsDebugging(isDebugging: boolean) {\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleDebug',\n\t\t\t`Debug ^${isDebugging ? 'k' : 'w'}^#^${isDebugging ? 'g' : 'r'}${\n\t\t\t\tisDebugging ? ' • ' : ' • '\n\t\t\t}^`\n\t\t)\n\t\tthis.isDebugging = isDebugging\n\t}\n\n\tpublic startCountdownTimer(durationSec: number) {\n\t\tclearInterval(this.countDownTimeInterval)\n\t\tthis.countDownTimeInterval = undefined\n\n\t\tlet remaining = durationSec\n\n\t\tfunction renderCountdownTime(time: number) {\n\t\t\treturn `Starting ${time} `\n\t\t}\n\n\t\tthis.setWatchLabel(renderCountdownTime(remaining))\n\n\t\tthis.countDownTimeInterval = setInterval(() => {\n\t\t\tremaining--\n\n\t\t\tif (remaining < 0) {\n\t\t\t\tthis.stopCountdownTimer()\n\t\t\t} else {\n\t\t\t\tthis.setWatchLabel(renderCountdownTime(remaining))\n\t\t\t}\n\t\t}, 1000) as any\n\t}\n\n\tpublic stopCountdownTimer() {\n\t\tclearInterval(this.countDownTimeInterval)\n\t\tthis.countDownTimeInterval = undefined\n\t\tthis.setWatchMode(this.watchMode)\n\t}\n\n\tpublic setWatchMode(watchMode: WatchMode) {\n\t\tthis.watchMode = watchMode\n\t\tif (!this.countDownTimeInterval) {\n\t\t\tlet label = watchMode === 'smart' ? 'Smart Watch' : 'Standard Watch'\n\t\t\tif (watchMode === 'off') {\n\t\t\t\tlabel = 'Not Watching'\n\t\t\t}\n\t\t\tthis.setWatchLabel(label)\n\t\t}\n\t}\n\n\tprivate setWatchLabel(label: string) {\n\t\tconst isWatching = this.watchMode !== 'off'\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'watchDropdown',\n\t\t\t`${label} ^${isWatching ? 'k' : 'w'}^#^${isWatching ? 'g' : 'r'}${\n\t\t\t\tisWatching ? ' • ' : ' • '\n\t\t\t}^`\n\t\t)\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleStandardWatch',\n\t\t\tthis.watchMode === 'standard' ? '√ Standard' : 'Standard'\n\t\t)\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleSmartWatch',\n\t\t\tthis.watchMode === 'smart' ? '√ Smart' : 'Smart'\n\t\t)\n\t}\n\n\tpublic async start() {\n\t\tthis.started = true\n\n\t\tthis.window = this.widgetFactory.Widget('window', {})\n\t\tthis.window.hideCursor()\n\n\t\tconst { width } = this.window.getFrame()\n\t\tif (width < this.minWidth) {\n\t\t\tthrow new Error(\n\t\t\t\t`Your screen must be at least ${this.minWidth} characters wide.`\n\t\t\t)\n\t\t}\n\n\t\tvoid this.window.on('key', this.handleGlobalKeypress.bind(this))\n\t\tvoid this.window.on('kill', this.destroy.bind(this))\n\t\tvoid this.window.on('resize', this.handleWindowResize.bind(this))\n\n\t\tthis.dropInTopLayout()\n\t\tthis.dropInProgressBar()\n\t\tthis.dropInMenu()\n\t\tthis.dropInBottomLayout()\n\t\tthis.dropInStatusBar()\n\t\tthis.dropInTestLog()\n\t\tthis.dropInFilterControls()\n\n\t\tthis.updateOrientation()\n\n\t\tthis.setIsDebugging(this.isDebugging)\n\t\tthis.setWatchMode(this.watchMode)\n\t\tthis.setStatus(this.status)\n\n\t\tthis.updateInterval = setInterval(\n\t\t\tthis.handleUpdateInterval.bind(this),\n\t\t\t1000\n\t\t)\n\t}\n\n\tprivate handleWindowResize() {\n\t\tthis.updateOrientation()\n\t}\n\n\tprivate updateOrientation() {\n\t\tconst frame = this.window.getFrame()\n\n\t\tif (frame.width * 0.5 > frame.height) {\n\t\t\tthis.orientation = 'landscape'\n\t\t} else {\n\t\t\tthis.orientation = 'portrait'\n\t\t}\n\t}\n\n\tprivate dropInMenu() {\n\t\tthis.menu = this.widgetFactory.Widget('menuBar', {\n\t\t\tparent: this.window,\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\titems: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Restart ',\n\t\t\t\t\tvalue: 'restart',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Debug ',\n\t\t\t\t\tvalue: 'toggleDebug',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Not Watching ',\n\t\t\t\t\tvalue: 'watchDropdown',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Watch all',\n\t\t\t\t\t\t\tvalue: 'toggleStandardWatch',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Smart watch',\n\t\t\t\t\t\t\tvalue: 'toggleSmartWatch',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\tvalue: 'quit',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tvoid this.menu.on('select', this.handleMenuSelect.bind(this))\n\t}\n\n\tpublic setStatus(status: TestRunnerStatus) {\n\t\tthis.status = status\n\n\t\tthis.updateMenuLabels()\n\t\tthis.closeSelectTestPopup()\n\t\tthis.bottomLayout.updateLayout()\n\n\t\tif (status === 'ready') {\n\t\t\tthis.setStatusLabel('Starting...')\n\t\t} else if (this.status === 'stopped') {\n\t\t\tthis.refreshResults()\n\t\t\tthis.setStatusLabel('')\n\t\t} else if (this.status === 'running') {\n\t\t\tthis.setStatusLabel('Running tests...')\n\t\t}\n\t}\n\n\tprivate updateMenuLabels() {\n\t\tlet restartLabel = 'Start ^#^r › ^'\n\t\tswitch (this.status) {\n\t\t\tcase 'running':\n\t\t\t\trestartLabel = 'Stop ^k^#^g › ^'\n\t\t\t\tbreak\n\t\t\tcase 'stopped':\n\t\t\t\trestartLabel = `Start ^w^#^r › ^`\n\t\t\t\tbreak\n\t\t\tcase 'ready':\n\t\t\t\trestartLabel = 'Booting ^#^K › ^'\n\t\t\t\tbreak\n\t\t}\n\n\t\tthis.menu.setTextForItem('restart', restartLabel)\n\t}\n\n\tprivate handleMenuSelect(payload: { value: string }) {\n\t\tswitch (payload.value) {\n\t\t\tcase 'quit':\n\t\t\t\tthis.handleQuit?.()\n\t\t\t\tbreak\n\t\t\tcase 'restart':\n\t\t\t\tthis.handleStartStop?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleDebug':\n\t\t\t\tthis.handleToggleDebug?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleStandardWatch':\n\t\t\t\tthis.handletoggleStandardWatch?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleSmartWatch':\n\t\t\t\tthis.handleToggleSmartWatch?.()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate handleUpdateInterval() {\n\t\tif (this.status !== 'stopped') {\n\t\t\tthis.refreshResults()\n\t\t}\n\t}\n\n\tprivate refreshResults() {\n\t\tif (this.lastResults) {\n\t\t\tthis.updateLogs()\n\t\t}\n\t}\n\n\tprivate async handleGlobalKeypress(payload: { key: string }) {\n\t\tif (this.window.getFocusedWidget() === this.filterInput) {\n\t\t\treturn\n\t\t}\n\n\t\tswitch (payload.key) {\n\t\t\tcase 'ENTER':\n\t\t\t\tthis.handleRestart?.()\n\t\t\t\tbreak\n\t\t\tcase 'CTRL_C':\n\t\t\t\tthis.handleQuit?.()\n\t\t\t\tprocess.exit()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate dropInTestLog() {\n\t\tconst parent = this.bottomLayout.getChildById('results')\n\n\t\tif (parent) {\n\t\t\tthis.testLog = this.widgetFactory.Widget('text', {\n\t\t\t\tparent,\n\t\t\t\tisScrollEnabled: true,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\theight: '100%',\n\t\t\t\twidth: '100%',\n\t\t\t\tshouldLockHeightWithParent: true,\n\t\t\t\tshouldLockWidthWithParent: true,\n\t\t\t})\n\n\t\t\tvoid this.testLog.on('click', this.handleClickTestLog.bind(this))\n\t\t}\n\t}\n\n\tprivate async handleClickTestLog(payload: { row: number; column: number }) {\n\t\tconst testFile = this.getFileForLine(payload.row)\n\t\tconst { row, column } = payload\n\n\t\tthis.closeSelectTestPopup()\n\n\t\tif (testFile) {\n\t\t\tthis.dropInSelectTestPopup({ testFile, column, row })\n\t\t}\n\t}\n\n\tprivate closeSelectTestPopup() {\n\t\tif (this.selectTestPopup) {\n\t\t\tvoid this.selectTestPopup.destroy()\n\t\t\tthis.selectTestPopup = undefined\n\t\t}\n\t}\n\n\tprivate dropInSelectTestPopup(options: {\n\t\ttestFile: string\n\t\tcolumn: number\n\t\trow: number\n\t}) {\n\t\tconst { testFile, row, column } = options\n\n\t\tthis.selectTestPopup = this.widgetFactory.Widget('popup', {\n\t\t\tparent: this.window,\n\t\t\tleft: Math.max(1, column - 25),\n\t\t\ttop: Math.max(4, row - 2),\n\t\t\twidth: 50,\n\t\t\theight: 10,\n\t\t})\n\n\t\tthis.widgetFactory.Widget('text', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 1,\n\t\t\ttop: 1,\n\t\t\theight: 4,\n\t\t\twidth: this.selectTestPopup.getFrame().width - 2,\n\t\t\ttext: `What do you wanna do with:\\n\\n${testFile}`,\n\t\t})\n\n\t\tconst open = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 1,\n\t\t\ttop: 6,\n\t\t\ttext: 'Open',\n\t\t})\n\n\t\tconst rerun = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 20,\n\t\t\ttop: 6,\n\t\t\ttext: 'Test',\n\t\t})\n\n\t\tconst cancel = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 37,\n\t\t\ttop: 6,\n\t\t\ttext: 'Nevermind',\n\t\t})\n\n\t\tvoid rerun.on('click', () => {\n\t\t\tthis.handleRerunTestFile?.(testFile)\n\t\t\tthis.closeSelectTestPopup()\n\t\t})\n\t\tvoid cancel.on('click', this.closeSelectTestPopup.bind(this))\n\t\tvoid open.on('click', () => {\n\t\t\tthis.openTestFile(testFile)\n\t\t})\n\t}\n\n\tprivate openTestFile(testFile: string) {\n\t\tthis.handleOpenTestFile?.(testFile)\n\t\tthis.closeSelectTestPopup()\n\t}\n\n\tpublic getFileForLine(row: number): string | undefined {\n\t\tlet line = this.testLog.getScrollY()\n\n\t\tfor (let file of this.lastResults.testFiles ?? []) {\n\t\t\tif (line === row) {\n\t\t\t\treturn file.path\n\t\t\t}\n\n\t\t\tline++\n\n\t\t\tfor (let c = 0; c < (file.tests ?? []).length; c++) {\n\t\t\t\tif (line === row) {\n\t\t\t\t\treturn file.path\n\t\t\t\t}\n\n\t\t\t\tline++\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate dropInProgressBar() {\n\t\tconst parent = this.topLayout.getChildById('progress') ?? this.window\n\t\tthis.bar = this.widgetFactory.Widget('progressBar', {\n\t\t\tparent,\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\twidth: parent.getFrame().width,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tlabel: 'Ready and waiting...',\n\t\t\tprogress: 0,\n\t\t})\n\t}\n\n\tprivate dropInFilterControls() {\n\t\tconst parent = this.topLayout.getChildById('filter') ?? this.window\n\n\t\tconst buttonWidth = 3\n\t\tthis.filterInput = this.widgetFactory.Widget('input', {\n\t\t\tparent,\n\t\t\tleft: 0,\n\t\t\tlabel: 'Pattern',\n\t\t\twidth: parent.getFrame().width - buttonWidth,\n\t\t\theight: 1,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tvalue: this.filterPattern,\n\t\t})\n\n\t\tvoid this.filterInput.on('cancel', () => {\n\t\t\tthis.filterInput.setValue(this.filterPattern ?? '')\n\t\t})\n\n\t\tvoid this.filterInput.on('submit', (payload) => {\n\t\t\tthis.handleFilterChange?.(payload.value ?? undefined)\n\t\t})\n\n\t\tthis.clearFilterPatternButton = this.widgetFactory.Widget('button', {\n\t\t\tparent,\n\t\t\tleft: this.filterInput.getFrame().width,\n\t\t\twidth: buttonWidth,\n\t\t\ttop: 0,\n\t\t\ttext: buildPatternButtonText(this.filterPattern),\n\t\t\tshouldLockRightWithParent: true,\n\t\t})\n\n\t\tvoid this.clearFilterPatternButton.on('click', () => {\n\t\t\tif (this.filterPattern || this.filterPattern?.length === 0) {\n\t\t\t\tthis.handleFilterChange?.(undefined)\n\t\t\t} else {\n\t\t\t\tthis.filterInput.setValue('')\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate dropInBottomLayout() {\n\t\tthis.bottomLayout = this.widgetFactory.Widget('layout', {\n\t\t\tparent: this.window,\n\t\t\twidth: '100%',\n\t\t\ttop: 4,\n\t\t\theight: this.window.getFrame().height - 5,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockHeightWithParent: true,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'results',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate dropInStatusBar() {\n\t\tthis.statusBar = this.widgetFactory.Widget('text', {\n\t\t\tparent: this.window,\n\t\t\ttop: this.window.getFrame().height - 1,\n\t\t\twidth: '100%',\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockBottomWithParent: true,\n\t\t\tbackgroundColor: 'yellow',\n\t\t\tforegroundColor: 'black',\n\t\t\ttext: '...',\n\t\t})\n\t}\n\n\tprivate dropInTopLayout() {\n\t\tthis.topLayout = this.widgetFactory.Widget('layout', {\n\t\t\tparent: this.window,\n\t\t\twidth: '100%',\n\t\t\ttop: 1,\n\t\t\theight: 3,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockHeightWithParent: false,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'progress',\n\t\t\t\t\t\t\twidth: 50,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'filter',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\tpublic updateResults(results: SpruceTestResults) {\n\t\tif (!this.started) {\n\t\t\tthrow new Error('You must call start() before anything else.')\n\t\t}\n\n\t\tthis.lastResults = {\n\t\t\t...this.lastResults,\n\t\t\t...results,\n\t\t}\n\n\t\tthis.updateProgressBar(results)\n\n\t\tconst percentPassing = this.generatePercentPassing(results)\n\t\tconst percentComplete = this.generatePercentComplete(results)\n\n\t\tthis.window.setTitle(\n\t\t\t`Testing: ${percentComplete}% complete.${\n\t\t\t\tpercentComplete > 0 ? ` ${percentPassing}% passing.` : ''\n\t\t\t}`\n\t\t)\n\n\t\tthis.updateLogs()\n\t}\n\n\tprivate updateLogs() {\n\t\tif (this.selectTestPopup) {\n\t\t\treturn\n\t\t}\n\n\t\tlet { logContent, errorContent } = this.resultsToLogContents(\n\t\t\tthis.lastResults\n\t\t)\n\n\t\tthis.testLog.setText(logContent)\n\n\t\tif (!errorContent) {\n\t\t\tthis.errorLog && this.destroyErrorLog()\n\t\t} else {\n\t\t\t!this.errorLog && this.dropInErrorLog()\n\t\t\tconst cleanedLog = this.cwd\n\t\t\t\t? errorContent.replace(new RegExp(this.cwd + '/', 'gim'), '')\n\t\t\t\t: errorContent\n\n\t\t\tthis.errorLog?.setText(cleanedLog)\n\t\t}\n\t}\n\n\tprivate resultsToLogContents(results: SpruceTestResults) {\n\t\tlet logContent = ''\n\t\tlet errorContent = ''\n\n\t\tresults.testFiles?.forEach((file) => {\n\t\t\tlogContent += this.errorLogItemGenerator.generateLogItemForFile(\n\t\t\t\tfile,\n\t\t\t\tthis.status\n\t\t\t)\n\t\t\terrorContent +=\n\t\t\t\tthis.errorLogItemGenerator.generateErrorLogItemForFile(file)\n\t\t})\n\n\t\tif (this.lastResults.customErrors.length > 0) {\n\t\t\terrorContent =\n\t\t\t\tthis.lastResults.customErrors.map((err) => chalk.red(err)).join(`\\n`) +\n\t\t\t\t`\\n${errorContent}`\n\t\t}\n\n\t\treturn { logContent, errorContent }\n\t}\n\n\tprivate dropInErrorLog() {\n\t\tthis.orientationWhenErrorLogWasShown = this.orientation\n\n\t\tif (this.bottomLayout.getRows().length === 1) {\n\t\t\tif (this.orientation === 'portrait') {\n\t\t\t\tthis.bottomLayout.addRow({\n\t\t\t\t\tid: 'row_2',\n\t\t\t\t\tcolumns: [{ id: 'errors', width: '100%' }],\n\t\t\t\t})\n\n\t\t\t\tthis.bottomLayout.setRowHeight(0, '50%')\n\t\t\t\tthis.bottomLayout.setRowHeight(1, '50%')\n\t\t\t} else {\n\t\t\t\tthis.bottomLayout.addColumn(0, { id: 'errors', width: '50%' })\n\t\t\t\tthis.bottomLayout.setColumnWidth({\n\t\t\t\t\trowIdx: 0,\n\t\t\t\t\tcolumnIdx: 0,\n\t\t\t\t\twidth: '50%',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.bottomLayout.updateLayout()\n\n\t\t\tconst cell = this.bottomLayout.getChildById('errors')\n\n\t\t\tif (!cell) {\n\t\t\t\tthrow new Error('Pulling child error')\n\t\t\t}\n\n\t\t\tthis.errorLog = this.widgetFactory.Widget('text', {\n\t\t\t\tparent: cell,\n\t\t\t\twidth: '100%',\n\t\t\t\theight: '100%',\n\t\t\t\tisScrollEnabled: true,\n\t\t\t\tshouldAutoScrollWhenAppendingContent: false,\n\t\t\t\tshouldLockHeightWithParent: true,\n\t\t\t\tshouldLockWidthWithParent: true,\n\t\t\t\tpadding: { left: 1 },\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate destroyErrorLog() {\n\t\tif (this.errorLog) {\n\t\t\tvoid this.errorLog?.destroy()\n\t\t\tthis.errorLog = undefined\n\n\t\t\tif (this.orientationWhenErrorLogWasShown === 'landscape') {\n\t\t\t\tthis.bottomLayout.removeColumn(0, 1)\n\t\t\t\tthis.bottomLayout.setColumnWidth({\n\t\t\t\t\trowIdx: 0,\n\t\t\t\t\tcolumnIdx: 0,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.bottomLayout.removeRow(1)\n\t\t\t\tthis.bottomLayout.setRowHeight(0, '100%')\n\t\t\t}\n\t\t\tthis.bottomLayout.updateLayout()\n\t\t}\n\t}\n\n\tprivate updateProgressBar(results: SpruceTestResults) {\n\t\tif (results.totalTestFilesComplete ?? 0 > 0) {\n\t\t\tconst testsRemaining =\n\t\t\t\tresults.totalTestFiles - (results.totalTestFilesComplete ?? 0)\n\n\t\t\tif (testsRemaining === 0) {\n\t\t\t\tconst { percent, totalTests, totalPassedTests, totalTime } =\n\t\t\t\t\tthis.generateProgressStats(results)\n\n\t\t\t\tthis.bar.setLabel(\n\t\t\t\t\t`Finished! ${totalPassedTests} of ${totalTests} (${percent}%) passed in ${durationUtil.msToFriendly(\n\t\t\t\t\t\ttotalTime\n\t\t\t\t\t)}.${percent < 100 ? ` Don't give up! 💪` : ''}`\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tthis.bar.setLabel(\n\t\t\t\t\t`${results.totalTestFilesComplete} of ${\n\t\t\t\t\t\tresults.totalTestFiles\n\t\t\t\t\t} (${this.generatePercentComplete(\n\t\t\t\t\t\tresults\n\t\t\t\t\t)}%) complete. ${testsRemaining} remaining...`\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.bar.setLabel('0%')\n\t\t}\n\n\t\tthis.bar.setProgress(this.generatePercentComplete(results) / 100)\n\t}\n\n\tprivate generateProgressStats(results: SpruceTestResults): {\n\t\tpercent: number\n\t\ttotalTests: number\n\t\ttotalPassedTests: number\n\t\ttotalTime: number\n\t} {\n\t\tlet totalTests = 0\n\t\tlet totalPassedTests = 0\n\t\tlet totalTime = 0\n\n\t\tresults.testFiles?.forEach((file) => {\n\t\t\tfile.tests?.forEach((test) => {\n\t\t\t\ttotalTime += test.duration\n\t\t\t\tif (test.status === 'passed') {\n\t\t\t\t\ttotalPassedTests++\n\t\t\t\t}\n\n\t\t\t\tif (test.status === 'passed' || test.status === 'failed') {\n\t\t\t\t\ttotalTests++\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\tconst percent = Math.floor((totalPassedTests / totalTests) * 100)\n\t\treturn {\n\t\t\tpercent: percent > 0 ? percent : 0,\n\t\t\ttotalTests,\n\t\t\ttotalPassedTests,\n\t\t\ttotalTime,\n\t\t}\n\t}\n\n\tprivate generatePercentComplete(results: SpruceTestResults): number {\n\t\tconst percent =\n\t\t\t(results.totalTestFilesComplete ?? 0) / results.totalTestFiles\n\t\tif (isNaN(percent)) {\n\t\t\treturn 0\n\t\t}\n\t\treturn Math.round(percent * 100)\n\t}\n\n\tprivate generatePercentPassing(results: SpruceTestResults): number {\n\t\tconst percent =\n\t\t\t(results.totalPassed ?? 0) / this.getTotalTestFilesRun(results)\n\n\t\tif (isNaN(percent)) {\n\t\t\treturn 0\n\t\t}\n\n\t\treturn Math.floor(percent * 100)\n\t}\n\n\tprivate getTotalTestFilesRun(results: SpruceTestResults) {\n\t\treturn (\n\t\t\t(results.totalTests ?? 0) -\n\t\t\t(results.totalSkipped ?? 0) -\n\t\t\t(results.totalTodo ?? 0)\n\t\t)\n\t}\n\n\tpublic render() {\n\t\tthis.table?.computeCells()\n\t\tthis.table?.draw()\n\t}\n\n\tpublic async destroy() {\n\t\tclearInterval(this.updateInterval)\n\t\tawait this.window.destroy()\n\t}\n\n\tpublic reset() {\n\t\tthis.testLog.setText('')\n\t\tthis.lastResults = {\n\t\t\ttotalTestFiles: 0,\n\t\t\tcustomErrors: [],\n\t\t}\n\t\tthis.destroyErrorLog()\n\t\tthis.errorLogItemGenerator.resetStartTimes()\n\t}\n\n\tpublic setStatusLabel(text: string) {\n\t\tthis.statusBar.setText(text)\n\t}\n\n\tpublic appendError(message: string) {\n\t\tthis.lastResults.customErrors.push(message)\n\t}\n}\nfunction buildPatternButtonText(pattern: string | undefined): string {\n\treturn pattern ? ' x ' : ' - '\n}\n\ninterface TestReporterOptions {\n\thandleStartStop?: () => void\n\thandleRestart?: () => void\n\thandleQuit?: () => void\n\tonRequestOpenTestFile?: () => void\n\thandleRerunTestFile?: (fileName: string) => void\n\thandleOpenTestFile?: (fileName: string) => void\n\thandleFilterPatternChange?: (pattern?: string) => void\n\thandleToggleDebug?: () => void\n\thandletoggleStandardWatch?: () => void\n\thandleToggleSmartWatch?: () => void\n\tfilterPattern?: string\n\tisDebugging?: boolean\n\twatchMode?: WatchMode\n\tstatus?: TestRunnerStatus\n\tcwd?: string\n}\n\ntype TestReporterResults = SpruceTestResults & {\n\tcustomErrors: string[]\n}\n\nexport type TestReporterOrientation = 'landscape' | 'portrait'\nexport type WatchMode = 'off' | 'standard' | 'smart'\n"],"mappings":"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"}
1
+ {"version":3,"file":"TestReporter.js","names":["_chalk","_interopRequireDefault","require","_duration","_WidgetFactory","_TestLogItemGenerator","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","TestReporter","_start","_handleGlobalKeypress","_handleClickTestLog","_destroy","options","_options$status","_options$isDebugging","_options$watchMode","_classCallCheck2","totalTestFiles","customErrors","cwd","filterPattern","handleRestart","handleStartStop","handleQuit","handleRerunTestFile","handleOpenTestFile","handleFilterChange","handleFilterPatternChange","status","handleToggleDebug","handletoggleStandardWatch","isDebugging","watchMode","handleToggleSmartWatch","errorLogItemGenerator","TestLogItemGenerator","widgetFactory","WidgetFactory","_createClass2","key","setFilterPattern","pattern","filterInput","setValue","clearFilterPatternButton","setText","buildPatternButtonText","setIsDebugging","menu","setTextForItem","concat","startCountdownTimer","durationSec","_this","clearInterval","countDownTimeInterval","undefined","remaining","renderCountdownTime","time","setWatchLabel","setInterval","stopCountdownTimer","setWatchMode","label","isWatching","start","_asyncToGenerator2","_regenerator","mark","_callee","_this$window$getFrame","width","wrap","_callee$","_context","prev","started","window","Widget","hideCursor","getFrame","minWidth","Error","on","handleGlobalKeypress","bind","destroy","handleWindowResize","dropInTopLayout","dropInProgressBar","dropInMenu","dropInBottomLayout","dropInStatusBar","dropInTestLog","dropInFilterControls","updateOrientation","setStatus","updateInterval","handleUpdateInterval","stop","frame","height","orientation","parent","left","top","shouldLockWidthWithParent","items","handleMenuSelect","updateMenuLabels","closeSelectTestPopup","bottomLayout","updateLayout","setStatusLabel","refreshResults","restartLabel","payload","_this$handleQuit","_this$handleStartStop","_this$handleToggleDeb","_this$handletoggleSta","_this$handleToggleSma","lastResults","updateLogs","_x","_callee2","_this$handleRestart","_this$handleQuit2","_callee2$","_context2","getFocusedWidget","abrupt","t0","process","exit","getChildById","testLog","isScrollEnabled","shouldLockHeightWithParent","handleClickTestLog","_x2","_callee3","testFile","row","column","_callee3$","_context3","getFileForLine","dropInSelectTestPopup","selectTestPopup","_this2","Math","max","text","open","rerun","cancel","_this2$handleRerunTes","openTestFile","_this$handleOpenTestF","_this$lastResults$tes","line","getScrollY","_iterator","testFiles","_step","file","path","c","_file$tests","tests","_this$topLayout$getCh","topLayout","bar","progress","_this$topLayout$getCh2","_this3","buttonWidth","_this3$filterPattern","_this3$handleFilterCh","_payload$value","shouldLockRightWithParent","_this3$filterPattern2","_this3$handleFilterCh2","rows","columns","id","statusBar","shouldLockBottomWithParent","backgroundColor","foregroundColor","updateResults","results","updateProgressBar","percentPassing","generatePercentPassing","percentComplete","generatePercentComplete","setTitle","_this$resultsToLogCon","resultsToLogContents","logContent","errorContent","errorLog","destroyErrorLog","_this$errorLog","dropInErrorLog","cleanedLog","replace","RegExp","_results$testFiles","_this4","generateLogItemForFile","generateErrorLogItemForFile","map","chalk","red","join","orientationWhenErrorLogWasShown","getRows","addRow","setRowHeight","addColumn","setColumnWidth","rowIdx","columnIdx","cell","shouldAutoScrollWhenAppendingContent","padding","_this$errorLog2","removeColumn","removeRow","_results$totalTestFil","totalTestFilesComplete","_results$totalTestFil2","testsRemaining","_this$generateProgres","generateProgressStats","percent","totalTests","totalPassedTests","totalTime","setLabel","durationUtil","msToFriendly","setProgress","_results$testFiles2","_file$tests2","duration","floor","_results$totalTestFil3","isNaN","round","_results$totalPassed","totalPassed","getTotalTestFilesRun","_results$totalTests","_results$totalSkipped","_results$totalTodo","totalSkipped","totalTodo","render","_this$table","_this$table2","table","computeCells","draw","_callee4","_callee4$","_context4","reset","resetStartTimes","appendError","message","exports"],"sources":["../../../src/features/test/TestReporter.ts"],"sourcesContent":["import chalk from 'chalk'\nimport durationUtil from '../../utilities/duration.utility'\nimport { ButtonWidget } from '../../widgets/types/button.types'\nimport { InputWidget } from '../../widgets/types/input.types'\nimport { LayoutWidget } from '../../widgets/types/layout.types'\nimport { MenuBarWidget } from '../../widgets/types/menuBar.types'\nimport { PopupWidget } from '../../widgets/types/popup.types'\nimport { ProgressBarWidget } from '../../widgets/types/progressBar.types'\nimport { TextWidget } from '../../widgets/types/text.types'\nimport { WindowWidget } from '../../widgets/types/window.types'\nimport WidgetFactory from '../../widgets/WidgetFactory'\nimport { SpruceTestResults, TestRunnerStatus } from './test.types'\nimport TestLogItemGenerator from './TestLogItemGenerator'\n\nexport default class TestReporter {\n\tprivate started = false\n\tprivate table?: any\n\tprivate bar!: ProgressBarWidget\n\tprivate bottomLayout!: LayoutWidget\n\tprivate testLog!: TextWidget\n\tprivate errorLog?: TextWidget\n\tprivate errorLogItemGenerator: TestLogItemGenerator\n\tprivate lastResults: TestReporterResults = {\n\t\ttotalTestFiles: 0,\n\t\tcustomErrors: [],\n\t}\n\tprivate updateInterval?: any\n\tprivate menu!: MenuBarWidget\n\tprivate statusBar!: TextWidget\n\tprivate window!: WindowWidget\n\tprivate widgetFactory: WidgetFactory\n\tprivate selectTestPopup?: PopupWidget\n\tprivate topLayout!: LayoutWidget\n\tprivate filterInput!: InputWidget\n\tprivate filterPattern?: string\n\tprivate clearFilterPatternButton!: ButtonWidget\n\tprivate isDebugging = false\n\tprivate watchMode: WatchMode = 'off'\n\tprivate status: TestRunnerStatus = 'ready'\n\tprivate countDownTimeInterval?: any\n\tprivate cwd: string | undefined\n\tprivate orientation: TestReporterOrientation = 'landscape'\n\n\tprivate handleStartStop?: () => void\n\tprivate handleRestart?: () => void\n\tprivate handleQuit?: () => void\n\tprivate handleRerunTestFile?: (fileName: string) => void\n\tprivate handleFilterChange?: (pattern?: string) => void\n\tprivate handleOpenTestFile?: (testFile: string) => void\n\tprivate handleToggleDebug?: () => void\n\tprivate handletoggleStandardWatch?: () => void\n\tprivate handleToggleSmartWatch?: () => any\n\tprivate minWidth = 50\n\tprivate orientationWhenErrorLogWasShown: TestReporterOrientation = 'landscape'\n\n\tpublic constructor(options?: TestReporterOptions) {\n\t\tthis.cwd = options?.cwd\n\t\tthis.filterPattern = options?.filterPattern\n\t\tthis.handleRestart = options?.handleRestart\n\t\tthis.handleStartStop = options?.handleStartStop\n\t\tthis.handleQuit = options?.handleQuit\n\t\tthis.handleRerunTestFile = options?.handleRerunTestFile\n\t\tthis.handleOpenTestFile = options?.handleOpenTestFile\n\t\tthis.handleFilterChange = options?.handleFilterPatternChange\n\t\tthis.status = options?.status ?? 'ready'\n\t\tthis.handleToggleDebug = options?.handleToggleDebug\n\t\tthis.handletoggleStandardWatch = options?.handletoggleStandardWatch\n\t\tthis.isDebugging = options?.isDebugging ?? false\n\t\tthis.watchMode = options?.watchMode ?? 'off'\n\t\tthis.handleToggleSmartWatch = options?.handleToggleSmartWatch\n\n\t\tthis.errorLogItemGenerator = new TestLogItemGenerator()\n\t\tthis.widgetFactory = new WidgetFactory()\n\t}\n\n\tpublic setFilterPattern(pattern: string | undefined) {\n\t\tthis.filterPattern = pattern\n\t\tthis.filterInput.setValue(pattern ?? '')\n\t\tthis.clearFilterPatternButton.setText(buildPatternButtonText(pattern))\n\t}\n\n\tpublic setIsDebugging(isDebugging: boolean) {\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleDebug',\n\t\t\t`Debug ^${isDebugging ? 'k' : 'w'}^#^${isDebugging ? 'g' : 'r'}${\n\t\t\t\tisDebugging ? ' • ' : ' • '\n\t\t\t}^`\n\t\t)\n\t\tthis.isDebugging = isDebugging\n\t}\n\n\tpublic startCountdownTimer(durationSec: number) {\n\t\tclearInterval(this.countDownTimeInterval)\n\t\tthis.countDownTimeInterval = undefined\n\n\t\tlet remaining = durationSec\n\n\t\tfunction renderCountdownTime(time: number) {\n\t\t\treturn `Starting ${time} `\n\t\t}\n\n\t\tthis.setWatchLabel(renderCountdownTime(remaining))\n\n\t\tthis.countDownTimeInterval = setInterval(() => {\n\t\t\tremaining--\n\n\t\t\tif (remaining < 0) {\n\t\t\t\tthis.stopCountdownTimer()\n\t\t\t} else {\n\t\t\t\tthis.setWatchLabel(renderCountdownTime(remaining))\n\t\t\t}\n\t\t}, 1000) as any\n\t}\n\n\tpublic stopCountdownTimer() {\n\t\tclearInterval(this.countDownTimeInterval)\n\t\tthis.countDownTimeInterval = undefined\n\t\tthis.setWatchMode(this.watchMode)\n\t}\n\n\tpublic setWatchMode(watchMode: WatchMode) {\n\t\tthis.watchMode = watchMode\n\t\tif (!this.countDownTimeInterval) {\n\t\t\tlet label = watchMode === 'smart' ? 'Smart Watch' : 'Standard Watch'\n\t\t\tif (watchMode === 'off') {\n\t\t\t\tlabel = 'Not Watching'\n\t\t\t}\n\t\t\tthis.setWatchLabel(label)\n\t\t}\n\t}\n\n\tprivate setWatchLabel(label: string) {\n\t\tconst isWatching = this.watchMode !== 'off'\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'watchDropdown',\n\t\t\t`${label} ^${isWatching ? 'k' : 'w'}^#^${isWatching ? 'g' : 'r'}${\n\t\t\t\tisWatching ? ' • ' : ' • '\n\t\t\t}^`\n\t\t)\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleStandardWatch',\n\t\t\tthis.watchMode === 'standard' ? '√ Standard' : 'Standard'\n\t\t)\n\n\t\tthis.menu.setTextForItem(\n\t\t\t'toggleSmartWatch',\n\t\t\tthis.watchMode === 'smart' ? '√ Smart' : 'Smart'\n\t\t)\n\t}\n\n\tpublic async start() {\n\t\tthis.started = true\n\n\t\tthis.window = this.widgetFactory.Widget('window', {})\n\t\tthis.window.hideCursor()\n\n\t\tconst { width } = this.window.getFrame()\n\t\tif (width < this.minWidth) {\n\t\t\tthrow new Error(\n\t\t\t\t`Your screen must be at least ${this.minWidth} characters wide.`\n\t\t\t)\n\t\t}\n\n\t\tvoid this.window.on('key', this.handleGlobalKeypress.bind(this))\n\t\tvoid this.window.on('kill', this.destroy.bind(this))\n\t\tvoid this.window.on('resize', this.handleWindowResize.bind(this))\n\n\t\tthis.dropInTopLayout()\n\t\tthis.dropInProgressBar()\n\t\tthis.dropInMenu()\n\t\tthis.dropInBottomLayout()\n\t\tthis.dropInStatusBar()\n\t\tthis.dropInTestLog()\n\t\tthis.dropInFilterControls()\n\n\t\tthis.updateOrientation()\n\n\t\tthis.setIsDebugging(this.isDebugging)\n\t\tthis.setWatchMode(this.watchMode)\n\t\tthis.setStatus(this.status)\n\n\t\tthis.updateInterval = setInterval(\n\t\t\tthis.handleUpdateInterval.bind(this),\n\t\t\t1000\n\t\t)\n\t}\n\n\tprivate handleWindowResize() {\n\t\tthis.updateOrientation()\n\t}\n\n\tprivate updateOrientation() {\n\t\tconst frame = this.window.getFrame()\n\n\t\tif (frame.width * 0.5 > frame.height) {\n\t\t\tthis.orientation = 'landscape'\n\t\t} else {\n\t\t\tthis.orientation = 'portrait'\n\t\t}\n\t}\n\n\tprivate dropInMenu() {\n\t\tthis.menu = this.widgetFactory.Widget('menuBar', {\n\t\t\tparent: this.window,\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\titems: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Restart ',\n\t\t\t\t\tvalue: 'restart',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Debug ',\n\t\t\t\t\tvalue: 'toggleDebug',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Not Watching ',\n\t\t\t\t\tvalue: 'watchDropdown',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Watch all',\n\t\t\t\t\t\t\tvalue: 'toggleStandardWatch',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Smart watch',\n\t\t\t\t\t\t\tvalue: 'toggleSmartWatch',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\tvalue: 'quit',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tvoid this.menu.on('select', this.handleMenuSelect.bind(this))\n\t}\n\n\tpublic setStatus(status: TestRunnerStatus) {\n\t\tthis.status = status\n\n\t\tthis.updateMenuLabels()\n\t\tthis.closeSelectTestPopup()\n\t\tthis.bottomLayout.updateLayout()\n\n\t\tif (status === 'ready') {\n\t\t\tthis.setStatusLabel('Starting...')\n\t\t} else if (this.status === 'stopped') {\n\t\t\tthis.refreshResults()\n\t\t\tthis.setStatusLabel('')\n\t\t} else if (this.status === 'running') {\n\t\t\tthis.setStatusLabel('Running tests...')\n\t\t}\n\t}\n\n\tprivate updateMenuLabels() {\n\t\tlet restartLabel = 'Start ^#^r › ^'\n\t\tswitch (this.status) {\n\t\t\tcase 'running':\n\t\t\t\trestartLabel = 'Stop ^k^#^g › ^'\n\t\t\t\tbreak\n\t\t\tcase 'stopped':\n\t\t\t\trestartLabel = `Start ^w^#^r › ^`\n\t\t\t\tbreak\n\t\t\tcase 'ready':\n\t\t\t\trestartLabel = 'Booting ^#^K › ^'\n\t\t\t\tbreak\n\t\t}\n\n\t\tthis.menu.setTextForItem('restart', restartLabel)\n\t}\n\n\tprivate handleMenuSelect(payload: { value: string }) {\n\t\tswitch (payload.value) {\n\t\t\tcase 'quit':\n\t\t\t\tthis.handleQuit?.()\n\t\t\t\tbreak\n\t\t\tcase 'restart':\n\t\t\t\tthis.handleStartStop?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleDebug':\n\t\t\t\tthis.handleToggleDebug?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleStandardWatch':\n\t\t\t\tthis.handletoggleStandardWatch?.()\n\t\t\t\tbreak\n\t\t\tcase 'toggleSmartWatch':\n\t\t\t\tthis.handleToggleSmartWatch?.()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate handleUpdateInterval() {\n\t\tif (this.status !== 'stopped') {\n\t\t\tthis.refreshResults()\n\t\t}\n\t}\n\n\tprivate refreshResults() {\n\t\tif (this.lastResults) {\n\t\t\tthis.updateLogs()\n\t\t}\n\t}\n\n\tprivate async handleGlobalKeypress(payload: { key: string }) {\n\t\tif (this.window.getFocusedWidget() === this.filterInput) {\n\t\t\treturn\n\t\t}\n\n\t\tswitch (payload.key) {\n\t\t\tcase 'ENTER':\n\t\t\t\tthis.handleRestart?.()\n\t\t\t\tbreak\n\t\t\tcase 'CTRL_C':\n\t\t\t\tthis.handleQuit?.()\n\t\t\t\tprocess.exit()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate dropInTestLog() {\n\t\tconst parent = this.bottomLayout.getChildById('results')\n\n\t\tif (parent) {\n\t\t\tthis.testLog = this.widgetFactory.Widget('text', {\n\t\t\t\tparent,\n\t\t\t\tisScrollEnabled: true,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\theight: '100%',\n\t\t\t\twidth: '100%',\n\t\t\t\tshouldLockHeightWithParent: true,\n\t\t\t\tshouldLockWidthWithParent: true,\n\t\t\t})\n\n\t\t\tvoid this.testLog.on('click', this.handleClickTestLog.bind(this))\n\t\t}\n\t}\n\n\tprivate async handleClickTestLog(payload: { row: number; column: number }) {\n\t\tconst testFile = this.getFileForLine(payload.row)\n\t\tconst { row, column } = payload\n\n\t\tthis.closeSelectTestPopup()\n\n\t\tif (testFile) {\n\t\t\tthis.dropInSelectTestPopup({ testFile, column, row })\n\t\t}\n\t}\n\n\tprivate closeSelectTestPopup() {\n\t\tif (this.selectTestPopup) {\n\t\t\tvoid this.selectTestPopup.destroy()\n\t\t\tthis.selectTestPopup = undefined\n\t\t}\n\t}\n\n\tprivate dropInSelectTestPopup(options: {\n\t\ttestFile: string\n\t\tcolumn: number\n\t\trow: number\n\t}) {\n\t\tconst { testFile, row, column } = options\n\n\t\tthis.selectTestPopup = this.widgetFactory.Widget('popup', {\n\t\t\tparent: this.window,\n\t\t\tleft: Math.max(1, column - 25),\n\t\t\ttop: Math.max(4, row - 2),\n\t\t\twidth: 50,\n\t\t\theight: 10,\n\t\t})\n\n\t\tthis.widgetFactory.Widget('text', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 1,\n\t\t\ttop: 1,\n\t\t\theight: 4,\n\t\t\twidth: this.selectTestPopup.getFrame().width - 2,\n\t\t\ttext: `What do you wanna do with:\\n\\n${testFile}`,\n\t\t})\n\n\t\tconst open = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 1,\n\t\t\ttop: 6,\n\t\t\ttext: 'Open',\n\t\t})\n\n\t\tconst rerun = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 20,\n\t\t\ttop: 6,\n\t\t\ttext: 'Test',\n\t\t})\n\n\t\tconst cancel = this.widgetFactory.Widget('button', {\n\t\t\tparent: this.selectTestPopup,\n\t\t\tleft: 37,\n\t\t\ttop: 6,\n\t\t\ttext: 'Nevermind',\n\t\t})\n\n\t\tvoid rerun.on('click', () => {\n\t\t\tthis.handleRerunTestFile?.(testFile)\n\t\t\tthis.closeSelectTestPopup()\n\t\t})\n\t\tvoid cancel.on('click', this.closeSelectTestPopup.bind(this))\n\t\tvoid open.on('click', () => {\n\t\t\tthis.openTestFile(testFile)\n\t\t})\n\t}\n\n\tprivate openTestFile(testFile: string) {\n\t\tthis.handleOpenTestFile?.(testFile)\n\t\tthis.closeSelectTestPopup()\n\t}\n\n\tpublic getFileForLine(row: number): string | undefined {\n\t\tlet line = this.testLog.getScrollY()\n\n\t\tfor (let file of this.lastResults.testFiles ?? []) {\n\t\t\tif (line === row) {\n\t\t\t\treturn file.path\n\t\t\t}\n\n\t\t\tline++\n\n\t\t\tfor (let c = 0; c < (file.tests ?? []).length; c++) {\n\t\t\t\tif (line === row) {\n\t\t\t\t\treturn file.path\n\t\t\t\t}\n\n\t\t\t\tline++\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate dropInProgressBar() {\n\t\tconst parent = this.topLayout.getChildById('progress') ?? this.window\n\t\tthis.bar = this.widgetFactory.Widget('progressBar', {\n\t\t\tparent,\n\t\t\tleft: 0,\n\t\t\ttop: 0,\n\t\t\twidth: parent.getFrame().width,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tlabel: 'Ready and waiting...',\n\t\t\tprogress: 0,\n\t\t})\n\t}\n\n\tprivate dropInFilterControls() {\n\t\tconst parent = this.topLayout.getChildById('filter') ?? this.window\n\n\t\tconst buttonWidth = 3\n\t\tthis.filterInput = this.widgetFactory.Widget('input', {\n\t\t\tparent,\n\t\t\tleft: 0,\n\t\t\tlabel: 'Pattern',\n\t\t\twidth: parent.getFrame().width - buttonWidth,\n\t\t\theight: 1,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tvalue: this.filterPattern,\n\t\t})\n\n\t\tvoid this.filterInput.on('cancel', () => {\n\t\t\tthis.filterInput.setValue(this.filterPattern ?? '')\n\t\t})\n\n\t\tvoid this.filterInput.on('submit', (payload) => {\n\t\t\tthis.handleFilterChange?.(payload.value ?? undefined)\n\t\t})\n\n\t\tthis.clearFilterPatternButton = this.widgetFactory.Widget('button', {\n\t\t\tparent,\n\t\t\tleft: this.filterInput.getFrame().width,\n\t\t\twidth: buttonWidth,\n\t\t\ttop: 0,\n\t\t\ttext: buildPatternButtonText(this.filterPattern),\n\t\t\tshouldLockRightWithParent: true,\n\t\t})\n\n\t\tvoid this.clearFilterPatternButton.on('click', () => {\n\t\t\tif (this.filterPattern || this.filterPattern?.length === 0) {\n\t\t\t\tthis.handleFilterChange?.(undefined)\n\t\t\t} else {\n\t\t\t\tthis.filterInput.setValue('')\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate dropInBottomLayout() {\n\t\tthis.bottomLayout = this.widgetFactory.Widget('layout', {\n\t\t\tparent: this.window,\n\t\t\twidth: '100%',\n\t\t\ttop: 4,\n\t\t\theight: this.window.getFrame().height - 5,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockHeightWithParent: true,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'results',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate dropInStatusBar() {\n\t\tthis.statusBar = this.widgetFactory.Widget('text', {\n\t\t\tparent: this.window,\n\t\t\ttop: this.window.getFrame().height - 1,\n\t\t\twidth: '100%',\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockBottomWithParent: true,\n\t\t\tbackgroundColor: 'yellow',\n\t\t\tforegroundColor: 'black',\n\t\t\ttext: '...',\n\t\t})\n\t}\n\n\tprivate dropInTopLayout() {\n\t\tthis.topLayout = this.widgetFactory.Widget('layout', {\n\t\t\tparent: this.window,\n\t\t\twidth: '100%',\n\t\t\ttop: 1,\n\t\t\theight: 3,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\tshouldLockHeightWithParent: false,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tcolumns: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'progress',\n\t\t\t\t\t\t\twidth: 50,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'filter',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\tpublic updateResults(results: SpruceTestResults) {\n\t\tif (!this.started) {\n\t\t\tthrow new Error('You must call start() before anything else.')\n\t\t}\n\n\t\tthis.lastResults = {\n\t\t\t...this.lastResults,\n\t\t\t...results,\n\t\t}\n\n\t\tthis.updateProgressBar(results)\n\n\t\tconst percentPassing = this.generatePercentPassing(results)\n\t\tconst percentComplete = this.generatePercentComplete(results)\n\n\t\tthis.window.setTitle(\n\t\t\t`Testing: ${percentComplete}% complete.${\n\t\t\t\tpercentComplete > 0 ? ` ${percentPassing}% passing.` : ''\n\t\t\t}`\n\t\t)\n\n\t\tthis.updateLogs()\n\t}\n\n\tprivate updateLogs() {\n\t\tif (this.selectTestPopup) {\n\t\t\treturn\n\t\t}\n\n\t\tlet { logContent, errorContent } = this.resultsToLogContents(\n\t\t\tthis.lastResults\n\t\t)\n\n\t\tthis.testLog.setText(logContent)\n\n\t\tif (!errorContent) {\n\t\t\tthis.errorLog && this.destroyErrorLog()\n\t\t} else {\n\t\t\t!this.errorLog && this.dropInErrorLog()\n\t\t\tconst cleanedLog = this.cwd\n\t\t\t\t? errorContent.replace(new RegExp(this.cwd + '/', 'gim'), '')\n\t\t\t\t: errorContent\n\n\t\t\tthis.errorLog?.setText(cleanedLog)\n\t\t}\n\t}\n\n\tprivate resultsToLogContents(results: SpruceTestResults) {\n\t\tlet logContent = ''\n\t\tlet errorContent = ''\n\n\t\tresults.testFiles?.forEach((file) => {\n\t\t\tlogContent += this.errorLogItemGenerator.generateLogItemForFile(\n\t\t\t\tfile,\n\t\t\t\tthis.status\n\t\t\t)\n\t\t\terrorContent +=\n\t\t\t\tthis.errorLogItemGenerator.generateErrorLogItemForFile(file)\n\t\t})\n\n\t\tif (this.lastResults.customErrors.length > 0) {\n\t\t\terrorContent =\n\t\t\t\tthis.lastResults.customErrors.map((err) => chalk.red(err)).join(`\\n`) +\n\t\t\t\t`\\n${errorContent}`\n\t\t}\n\n\t\treturn { logContent, errorContent }\n\t}\n\n\tprivate dropInErrorLog() {\n\t\tthis.orientationWhenErrorLogWasShown = this.orientation\n\n\t\tif (this.bottomLayout.getRows().length === 1) {\n\t\t\tif (this.orientation === 'portrait') {\n\t\t\t\tthis.bottomLayout.addRow({\n\t\t\t\t\tid: 'row_2',\n\t\t\t\t\tcolumns: [{ id: 'errors', width: '100%' }],\n\t\t\t\t})\n\n\t\t\t\tthis.bottomLayout.setRowHeight(0, '50%')\n\t\t\t\tthis.bottomLayout.setRowHeight(1, '50%')\n\t\t\t} else {\n\t\t\t\tthis.bottomLayout.addColumn(0, { id: 'errors', width: '50%' })\n\t\t\t\tthis.bottomLayout.setColumnWidth({\n\t\t\t\t\trowIdx: 0,\n\t\t\t\t\tcolumnIdx: 0,\n\t\t\t\t\twidth: '50%',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.bottomLayout.updateLayout()\n\n\t\t\tconst cell = this.bottomLayout.getChildById('errors')\n\n\t\t\tif (!cell) {\n\t\t\t\tthrow new Error('Pulling child error')\n\t\t\t}\n\n\t\t\tthis.errorLog = this.widgetFactory.Widget('text', {\n\t\t\t\tparent: cell,\n\t\t\t\twidth: '100%',\n\t\t\t\theight: '100%',\n\t\t\t\tisScrollEnabled: true,\n\t\t\t\tshouldAutoScrollWhenAppendingContent: false,\n\t\t\t\tshouldLockHeightWithParent: true,\n\t\t\t\tshouldLockWidthWithParent: true,\n\t\t\t\tpadding: { left: 1 },\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate destroyErrorLog() {\n\t\tif (this.errorLog) {\n\t\t\tvoid this.errorLog?.destroy()\n\t\t\tthis.errorLog = undefined\n\n\t\t\tif (this.orientationWhenErrorLogWasShown === 'landscape') {\n\t\t\t\tthis.bottomLayout.removeColumn(0, 1)\n\t\t\t\tthis.bottomLayout.setColumnWidth({\n\t\t\t\t\trowIdx: 0,\n\t\t\t\t\tcolumnIdx: 0,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.bottomLayout.removeRow(1)\n\t\t\t\tthis.bottomLayout.setRowHeight(0, '100%')\n\t\t\t}\n\t\t\tthis.bottomLayout.updateLayout()\n\t\t}\n\t}\n\n\tprivate updateProgressBar(results: SpruceTestResults) {\n\t\tif (results.totalTestFilesComplete ?? 0 > 0) {\n\t\t\tconst testsRemaining =\n\t\t\t\tresults.totalTestFiles - (results.totalTestFilesComplete ?? 0)\n\n\t\t\tif (testsRemaining === 0) {\n\t\t\t\tconst { percent, totalTests, totalPassedTests, totalTime } =\n\t\t\t\t\tthis.generateProgressStats(results)\n\n\t\t\t\tthis.bar.setLabel(\n\t\t\t\t\t`Finished! ${totalPassedTests} of ${totalTests} (${percent}%) passed in ${durationUtil.msToFriendly(\n\t\t\t\t\t\ttotalTime\n\t\t\t\t\t)}.${percent < 100 ? ` Don't give up! 💪` : ''}`\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tthis.bar.setLabel(\n\t\t\t\t\t`${results.totalTestFilesComplete} of ${\n\t\t\t\t\t\tresults.totalTestFiles\n\t\t\t\t\t} (${this.generatePercentComplete(\n\t\t\t\t\t\tresults\n\t\t\t\t\t)}%) complete. ${testsRemaining} remaining...`\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.bar.setLabel('0%')\n\t\t}\n\n\t\tthis.bar.setProgress(this.generatePercentComplete(results) / 100)\n\t}\n\n\tprivate generateProgressStats(results: SpruceTestResults): {\n\t\tpercent: number\n\t\ttotalTests: number\n\t\ttotalPassedTests: number\n\t\ttotalTime: number\n\t} {\n\t\tlet totalTests = 0\n\t\tlet totalPassedTests = 0\n\t\tlet totalTime = 0\n\n\t\tresults.testFiles?.forEach((file) => {\n\t\t\tfile.tests?.forEach((test) => {\n\t\t\t\ttotalTime += test.duration\n\t\t\t\tif (test.status === 'passed') {\n\t\t\t\t\ttotalPassedTests++\n\t\t\t\t}\n\n\t\t\t\tif (test.status === 'passed' || test.status === 'failed') {\n\t\t\t\t\ttotalTests++\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\tconst percent = Math.floor((totalPassedTests / totalTests) * 100)\n\t\treturn {\n\t\t\tpercent: percent > 0 ? percent : 0,\n\t\t\ttotalTests,\n\t\t\ttotalPassedTests,\n\t\t\ttotalTime,\n\t\t}\n\t}\n\n\tprivate generatePercentComplete(results: SpruceTestResults): number {\n\t\tconst percent =\n\t\t\t(results.totalTestFilesComplete ?? 0) / results.totalTestFiles\n\t\tif (isNaN(percent)) {\n\t\t\treturn 0\n\t\t}\n\t\treturn Math.round(percent * 100)\n\t}\n\n\tprivate generatePercentPassing(results: SpruceTestResults): number {\n\t\tconst percent =\n\t\t\t(results.totalPassed ?? 0) / this.getTotalTestFilesRun(results)\n\n\t\tif (isNaN(percent)) {\n\t\t\treturn 0\n\t\t}\n\n\t\treturn Math.floor(percent * 100)\n\t}\n\n\tprivate getTotalTestFilesRun(results: SpruceTestResults) {\n\t\treturn (\n\t\t\t(results.totalTests ?? 0) -\n\t\t\t(results.totalSkipped ?? 0) -\n\t\t\t(results.totalTodo ?? 0)\n\t\t)\n\t}\n\n\tpublic render() {\n\t\tthis.table?.computeCells()\n\t\tthis.table?.draw()\n\t}\n\n\tpublic async destroy() {\n\t\tclearInterval(this.updateInterval)\n\t\tawait this.window.destroy()\n\t}\n\n\tpublic reset() {\n\t\tthis.testLog.setText('')\n\t\tthis.lastResults = {\n\t\t\ttotalTestFiles: 0,\n\t\t\tcustomErrors: [],\n\t\t}\n\t\tthis.destroyErrorLog()\n\t\tthis.errorLogItemGenerator.resetStartTimes()\n\t}\n\n\tpublic setStatusLabel(text: string) {\n\t\tthis.statusBar.setText(text)\n\t}\n\n\tpublic appendError(message: string) {\n\t\tthis.lastResults.customErrors.push(message)\n\t}\n}\nfunction buildPatternButtonText(pattern: string | undefined): string {\n\treturn pattern ? ' x ' : ' - '\n}\n\ninterface TestReporterOptions {\n\thandleStartStop?: () => void\n\thandleRestart?: () => void\n\thandleQuit?: () => void\n\tonRequestOpenTestFile?: () => void\n\thandleRerunTestFile?: (fileName: string) => void\n\thandleOpenTestFile?: (fileName: string) => void\n\thandleFilterPatternChange?: (pattern?: string) => void\n\thandleToggleDebug?: () => void\n\thandletoggleStandardWatch?: () => void\n\thandleToggleSmartWatch?: () => void\n\tfilterPattern?: string\n\tisDebugging?: boolean\n\twatchMode?: WatchMode\n\tstatus?: TestRunnerStatus\n\tcwd?: string\n}\n\ntype TestReporterResults = SpruceTestResults & {\n\tcustomErrors: string[]\n}\n\nexport type TestReporterOrientation = 'landscape' | 'portrait'\nexport type WatchMode = 'off' | 'standard' | 'smart'\n"],"mappings":"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"}
@@ -55,7 +55,7 @@ var testRunnerContract = (0, _mercuryTypes.buildEventContract)({
55
55
  }
56
56
  }
57
57
  });
58
- var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
58
+ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter, _run) {
59
59
  (0, _inherits2["default"])(TestRunner, _AbstractEventEmitter);
60
60
  var _super = _createSuper(TestRunner);
61
61
  function TestRunner(options) {
@@ -74,12 +74,12 @@ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
74
74
  }
75
75
  (0, _createClass2["default"])(TestRunner, [{
76
76
  key: "run",
77
- value: function () {
78
- var _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(options) {
77
+ value: function run(_x) {
78
+ return (_run = _run || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(options) {
79
79
  var _options$debugPort,
80
80
  _options$pattern,
81
81
  _this2 = this;
82
- var jestPath, debugArgs, pattern, escapeShell, command, parser;
82
+ var jestPath, debugArgs, pattern, escapeShell, command, parser, _onError, _onData;
83
83
  return _regenerator["default"].wrap(function _callee3$(_context3) {
84
84
  while (1) switch (_context3.prev = _context3.next) {
85
85
  case 0:
@@ -99,8 +99,8 @@ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
99
99
  _context3.next = 11;
100
100
  return this.commandService.execute(command, {
101
101
  forceColor: true,
102
- onError: function () {
103
- var _onError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
102
+ onError: function onError(_x2) {
103
+ return (_onError = _onError || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
104
104
  var isDebugMessaging;
105
105
  return _regenerator["default"].wrap(function _callee$(_context) {
106
106
  while (1) switch (_context.prev = _context.next) {
@@ -119,14 +119,10 @@ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
119
119
  return _context.stop();
120
120
  }
121
121
  }, _callee);
122
- }));
123
- function onError(_x2) {
124
- return _onError.apply(this, arguments);
125
- }
126
- return onError;
127
- }(),
128
- onData: function () {
129
- var _onData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(data) {
122
+ }))).apply(this, arguments);
123
+ },
124
+ onData: function onData(_x3) {
125
+ return (_onData = _onData || (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(data) {
130
126
  return _regenerator["default"].wrap(function _callee2$(_context2) {
131
127
  while (1) switch (_context2.prev = _context2.next) {
132
128
  case 0:
@@ -141,12 +137,8 @@ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
141
137
  return _context2.stop();
142
138
  }
143
139
  }, _callee2);
144
- }));
145
- function onData(_x3) {
146
- return _onData.apply(this, arguments);
147
- }
148
- return onData;
149
- }()
140
+ }))).apply(this, arguments);
141
+ }
150
142
  });
151
143
  case 11:
152
144
  _context3.next = 17;
@@ -168,12 +160,8 @@ var TestRunner = /*#__PURE__*/function (_AbstractEventEmitter) {
168
160
  return _context3.stop();
169
161
  }
170
162
  }, _callee3, this, [[8, 13]]);
171
- }));
172
- function run(_x) {
173
- return _run.apply(this, arguments);
174
- }
175
- return run;
176
- }()
163
+ }))).apply(this, arguments);
164
+ }
177
165
  }, {
178
166
  key: "isDebugMessage",
179
167
  value: function isDebugMessage(data) {