@sprucelabs/spruce-cli 18.0.0 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
  3. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  4. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
  5. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  6. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
  7. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  8. package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
  9. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  10. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
  11. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
  14. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  15. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
  16. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
  17. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
  18. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
  19. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  20. package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
  21. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  22. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
  23. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  24. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
  25. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  26. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
  27. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  28. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
  29. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  30. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
  31. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  32. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  33. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  34. package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
  35. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  36. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
  37. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
  38. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  39. package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
  40. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  41. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  42. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  43. package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
  44. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  45. package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
  46. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  47. package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
  48. package/build/__tests__/implementation/GlobalEmitter.js +9 -10
  49. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  50. package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
  51. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  52. package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
  53. package/build/__tests__/implementation/SkillStore.test.js +67 -50
  54. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  55. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  56. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  57. package/build/cli.js +3 -3
  58. package/build/cli.js.map +1 -1
  59. package/build/features/AbstractAction.d.ts +2 -2
  60. package/build/features/AbstractAction.js.map +1 -1
  61. package/build/features/AbstractFeature.d.ts +22 -22
  62. package/build/features/AbstractFeature.js.map +1 -1
  63. package/build/features/ActionExecuter.d.ts +8 -8
  64. package/build/features/ActionExecuter.js.map +1 -1
  65. package/build/features/FeatureInstaller.d.ts +15 -2
  66. package/build/features/FeatureInstaller.js +36 -36
  67. package/build/features/FeatureInstaller.js.map +1 -1
  68. package/build/features/FeatureInstallerFactory.d.ts +12 -10
  69. package/build/features/FeatureInstallerFactory.js +2 -2
  70. package/build/features/FeatureInstallerFactory.js.map +1 -1
  71. package/build/features/OverrideActionDecorator.js +4 -5
  72. package/build/features/OverrideActionDecorator.js.map +1 -1
  73. package/build/features/event/actions/ListenAction.js.map +1 -1
  74. package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
  75. package/build/features/event/actions/SetRemoteAction.js +2 -1
  76. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  77. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  78. package/build/features/node/NodeFeature.js.map +1 -1
  79. package/build/features/skill/SkillFeature.js.map +1 -1
  80. package/build/features/skill/stores/SkillStore.d.ts +4 -1
  81. package/build/features/skill/stores/SkillStore.js +127 -100
  82. package/build/features/skill/stores/SkillStore.js.map +1 -1
  83. package/build/features/watch/WatchFeature.js +1 -1
  84. package/build/features/watch/WatchFeature.js.map +1 -1
  85. package/build/interfaces/SpyInterface.d.ts +2 -0
  86. package/build/interfaces/SpyInterface.js +16 -4
  87. package/build/interfaces/SpyInterface.js.map +1 -1
  88. package/build/stores/AbstractStore.d.ts +9 -7
  89. package/build/stores/AbstractStore.js.map +1 -1
  90. package/build/stores/StoreFactory.d.ts +19 -13
  91. package/build/stores/StoreFactory.js +15 -13
  92. package/build/stores/StoreFactory.js.map +1 -1
  93. package/build/tests/AbstractCliTest.d.ts +9 -6
  94. package/build/tests/AbstractCliTest.js +53 -45
  95. package/build/tests/AbstractCliTest.js.map +1 -1
  96. package/build/tests/AbstractSchemaTest.js +18 -20
  97. package/build/tests/AbstractSchemaTest.js.map +1 -1
  98. package/build/utilities/action.utility.js +3 -1
  99. package/build/utilities/action.utility.js.map +1 -1
  100. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  101. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  102. package/node_modules/@typescript-eslint/types/package.json +2 -2
  103. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  104. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  105. package/package.json +28 -86
  106. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
  107. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
  108. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
  109. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
  110. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
  111. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
  112. package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
  113. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
  114. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
  115. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
  116. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
  117. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
  118. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
  119. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
  120. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
  121. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
  122. package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
  123. package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
  124. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  125. package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
  126. package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
  127. package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
  128. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
  129. package/src/__tests__/implementation/SkillStore.test.ts +23 -24
  130. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  131. package/src/cli.ts +7 -3
  132. package/src/features/AbstractAction.ts +3 -3
  133. package/src/features/AbstractFeature.ts +26 -26
  134. package/src/features/ActionExecuter.ts +9 -9
  135. package/src/features/FeatureInstaller.ts +32 -12
  136. package/src/features/FeatureInstallerFactory.ts +17 -13
  137. package/src/features/OverrideActionDecorator.ts +2 -5
  138. package/src/features/event/actions/ListenAction.ts +1 -0
  139. package/src/features/event/actions/SetRemoteAction.ts +2 -1
  140. package/src/features/event/actions/SyncListenersAction.ts +0 -1
  141. package/src/features/node/NodeFeature.ts +3 -1
  142. package/src/features/skill/SkillFeature.ts +3 -3
  143. package/src/features/skill/stores/SkillStore.ts +18 -11
  144. package/src/features/watch/WatchFeature.ts +1 -1
  145. package/src/interfaces/SpyInterface.ts +10 -0
  146. package/src/stores/AbstractStore.ts +14 -8
  147. package/src/stores/StoreFactory.ts +56 -44
  148. package/src/tests/AbstractCliTest.ts +53 -45
  149. package/src/tests/AbstractSchemaTest.ts +1 -3
  150. package/src/utilities/action.utility.ts +3 -1
  151. package/.DS_Store +0 -0
  152. package/.env +0 -25
  153. package/.eslintcache +0 -1
  154. package/build/.spruce/tmp/cached-skills.json +0 -3
  155. package/junit.xml +0 -7
  156. package/src/.DS_Store +0 -0
  157. package/src/.spruce/tmp/cached-skills.json +0 -3
  158. package/yarn-error.log +0 -12174
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [18.1.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.0.0...v18.1.0) (2022-10-19)
7
+
8
+ ### Features
9
+
10
+ - listeners can now export isGlobal from their listener ([628165c](https://github.com/sprucelabsai/spruce-cli-workspace/commit/628165c))
11
+
6
12
  # [18.0.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v17.1.55...v18.0.0) (2022-10-13)
7
13
 
8
14
  ### Breaking Changes
@@ -37,7 +37,7 @@ var EnablingAndDisablingCacheTest = (_dec = (0, _testUtils.test)(), _dec2 = (0,
37
37
  switch (_context.prev = _context.next) {
38
38
  case 0:
39
39
  _context.next = 2;
40
- return this.getFeatureInstaller().isInstalled('cache');
40
+ return this.featureInstaller.isInstalled('cache');
41
41
  case 2:
42
42
  isInstalled = _context.sent;
43
43
  _testUtils.assert.isTrue(isInstalled);
@@ -1 +1 @@
1
- {"version":3,"file":"EnablingAndDisablingCache.test.js","names":["EnablingAndDisablingCacheTest","test","getFeatureInstaller","isInstalled","assert","isTrue","isFunction","Action","execute","CommandService","fakeCommand","code","results","isTruthy","errors","errorAssert","assertError","dependencies","name","ENABLE_NPM_CACHE_COMMAND","DISABLE_NPM_CACHE_COMMAND","isFalsy","stderr","AbstractCliTest"],"sources":["../../../src/__tests__/behavioral/EnablingAndDisablingCache.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport {\n\tDISABLE_NPM_CACHE_COMMAND,\n\tENABLE_NPM_CACHE_COMMAND,\n} from '../../features/cache/constants'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class EnablingAndDisablingCacheTest extends AbstractCliTest {\n\t@test()\n\tprotected static async cacheFeatureIsAlwaysOn() {\n\t\tconst isInstalled = await this.getFeatureInstaller().isInstalled('cache')\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\t@test()\n\tprotected static hasEnableFeature() {\n\t\tassert.isFunction(this.Action('cache', 'enable').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenEnablingIfDockerIsNotInstalled() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDockerNotEnabled() {\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'DOCKER_NOT_STARTED')\n\t}\n\n\t@test()\n\tprotected static async canEnableCache() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isFalsy(results.errors)\n\t}\n\n\t@test()\n\tprotected static hasDisableFeature() {\n\t\tassert.isFunction(this.Action('cache', 'disable').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDisablingIfDockerIsNotInstalled() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDisablingIfDockerIsNotStarted() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorIfCacheIsNotInstalled() {\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t\tstderr: 'tsanoehusnatohu snatoh No such container staoheu saotnhu ',\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'CACHE_NOT_ENABLED')\n\t}\n\n\t@test()\n\tprotected static async canEnableCacheMultipleTimes() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.Action('cache', 'enable').execute({})\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EnablingAndDisablingCache.test.js","names":["EnablingAndDisablingCacheTest","test","featureInstaller","isInstalled","assert","isTrue","isFunction","Action","execute","CommandService","fakeCommand","code","results","isTruthy","errors","errorAssert","assertError","dependencies","name","ENABLE_NPM_CACHE_COMMAND","DISABLE_NPM_CACHE_COMMAND","isFalsy","stderr","AbstractCliTest"],"sources":["../../../src/__tests__/behavioral/EnablingAndDisablingCache.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport {\n\tDISABLE_NPM_CACHE_COMMAND,\n\tENABLE_NPM_CACHE_COMMAND,\n} from '../../features/cache/constants'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class EnablingAndDisablingCacheTest extends AbstractCliTest {\n\t@test()\n\tprotected static async cacheFeatureIsAlwaysOn() {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('cache')\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\t@test()\n\tprotected static hasEnableFeature() {\n\t\tassert.isFunction(this.Action('cache', 'enable').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenEnablingIfDockerIsNotInstalled() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDockerNotEnabled() {\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'DOCKER_NOT_STARTED')\n\t}\n\n\t@test()\n\tprotected static async canEnableCache() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\t\tassert.isFalsy(results.errors)\n\t}\n\n\t@test()\n\tprotected static hasDisableFeature() {\n\t\tassert.isFunction(this.Action('cache', 'disable').execute)\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDisablingIfDockerIsNotInstalled() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorWhenDisablingIfDockerIsNotStarted() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'MISSING_DEPENDENCIES', {\n\t\t\tdependencies: [\n\t\t\t\t{\n\t\t\t\t\tname: 'Docker',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async returnsErrorIfCacheIsNotInstalled() {\n\t\tCommandService.fakeCommand(/npm config/gis, {\n\t\t\tcode: 1,\n\t\t\tstderr: 'tsanoehusnatohu snatoh No such container staoheu saotnhu ',\n\t\t})\n\n\t\tconst results = await this.Action('cache', 'disable').execute({})\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'CACHE_NOT_ENABLED')\n\t}\n\n\t@test()\n\tprotected static async canEnableCacheMultipleTimes() {\n\t\tCommandService.fakeCommand(/which docker/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(DISABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\t\tCommandService.fakeCommand(ENABLE_NPM_CACHE_COMMAND, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.Action('cache', 'enable').execute({})\n\t\tconst results = await this.Action('cache', 'enable').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"mappings":"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"}
@@ -67,7 +67,7 @@ var RememberingUpgradeSelectionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (
67
67
  key: "getExpectedBuildCi",
68
68
  value: function getExpectedBuildCi() {
69
69
  //@ts-ignore
70
- return this.getFeatureInstaller().getFeature('skill').scripts['build.ci'];
70
+ return this.featureInstaller.getFeature('skill').scripts['build.ci'];
71
71
  }
72
72
  }, {
73
73
  key: "shouldNotAskASecondTime",
@@ -1 +1 @@
1
- {"version":3,"file":"RememberingUpgradeSelections.test.js","names":["RememberingUpgradeSelectionsTest","test","expected","getExpectedBuildCi","updater","ScriptUpdater","assertShowsAlwaysSkipOption","ui","sendInput","wait","pkg","Service","ci","get","assert","isEqual","getFeatureInstaller","getFeature","scripts","update","key","value","latestScripts","settings","waitForInput","last","getLastInvocation","doesInclude","FILE_ACTION_ALWAYS_SKIP","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/RememberingUpgradeSelections.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { FILE_ACTION_ALWAYS_SKIP } from '../../constants'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\n\nexport default class RememberingUpgradeSelectionsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\n\t@test()\n\tprotected static async changedScriptsHasAlwaysSkipOptions() {\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco')\n\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\n\t\tawait this.wait(100)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\tprivate static getExpectedBuildCi() {\n\t\t//@ts-ignore\n\t\treturn this.getFeatureInstaller().getFeature('skill').scripts['build.ci']\n\t}\n\n\t@test()\n\tprotected static async shouldNotAskASecondTime() {\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco2')\n\t\tawait updater.update()\n\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\t@test()\n\tprotected static async stillAsksAboutDifferentScript() {\n\t\tconst updater = this.ScriptUpdater('build.dev', 'taco')\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\t}\n\n\tprivate static ScriptUpdater(key: string, value: string) {\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: this.Service('pkg'),\n\t\t\tlatestScripts: {\n\t\t\t\t[key]: value,\n\t\t\t},\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t\treturn updater\n\t}\n\n\tprivate static async assertShowsAlwaysSkipOption(updater: ScriptUpdater) {\n\t\tvoid updater.update()\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RememberingUpgradeSelections.test.js","names":["RememberingUpgradeSelectionsTest","test","expected","getExpectedBuildCi","updater","ScriptUpdater","assertShowsAlwaysSkipOption","ui","sendInput","wait","pkg","Service","ci","get","assert","isEqual","featureInstaller","getFeature","scripts","update","key","value","latestScripts","settings","waitForInput","last","getLastInvocation","doesInclude","FILE_ACTION_ALWAYS_SKIP","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/RememberingUpgradeSelections.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { FILE_ACTION_ALWAYS_SKIP } from '../../constants'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\n\nexport default class RememberingUpgradeSelectionsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\n\t@test()\n\tprotected static async changedScriptsHasAlwaysSkipOptions() {\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco')\n\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\n\t\tawait this.wait(100)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\tprivate static getExpectedBuildCi() {\n\t\t//@ts-ignore\n\t\treturn this.featureInstaller.getFeature('skill').scripts['build.ci']\n\t}\n\n\t@test()\n\tprotected static async shouldNotAskASecondTime() {\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco2')\n\t\tawait updater.update()\n\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\t@test()\n\tprotected static async stillAsksAboutDifferentScript() {\n\t\tconst updater = this.ScriptUpdater('build.dev', 'taco')\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\t}\n\n\tprivate static ScriptUpdater(key: string, value: string) {\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: this.Service('pkg'),\n\t\t\tlatestScripts: {\n\t\t\t\t[key]: value,\n\t\t\t},\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t\treturn updater\n\t}\n\n\tprivate static async assertShowsAlwaysSkipOption(updater: ScriptUpdater) {\n\t\tvoid updater.update()\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
@@ -192,7 +192,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _testUtils.test)('ca
192
192
  return _this[name];
193
193
  });
194
194
  _context5.next = 7;
195
- return this.getEmitter().on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
195
+ return this.emitter.on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
196
196
  return _regenerator["default"].wrap(function _callee4$(_context4) {
197
197
  while (1) {
198
198
  switch (_context4.prev = _context4.next) {
@@ -290,7 +290,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _testUtils.test)('ca
290
290
  _iterator5.f();
291
291
  }
292
292
  _context7.next = 9;
293
- return this.getEmitter().on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
293
+ return this.emitter.on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
294
294
  return _regenerator["default"].wrap(function _callee6$(_context6) {
295
295
  while (1) {
296
296
  switch (_context6.prev = _context6.next) {
@@ -361,7 +361,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _testUtils.test)('ca
361
361
  }
362
362
  };
363
363
  _context9.next = 7;
364
- return this.getEmitter().on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
364
+ return this.emitter.on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
365
365
  return _regenerator["default"].wrap(function _callee8$(_context8) {
366
366
  while (1) {
367
367
  switch (_context8.prev = _context8.next) {
@@ -582,7 +582,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _testUtils.test)('ca
582
582
  }
583
583
  };
584
584
  _context13.next = 6;
585
- return this.getEmitter().on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
585
+ return this.emitter.on('schema.did-fetch-schemas', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
586
586
  return _regenerator["default"].wrap(function _callee12$(_context12) {
587
587
  while (1) {
588
588
  switch (_context12.prev = _context12.next) {
@@ -1 +1 @@
1
- {"version":3,"file":"SettingUpSchemasForModuleDistribution.test.js","names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","test","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","getEmitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssert","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssert.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SettingUpSchemasForModuleDistribution.test.js","names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","test","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","emitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssert","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.emitter.on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssert.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.emitter.on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.emitter.on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.emitter.on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"mappings":"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"}
@@ -66,7 +66,7 @@ var WatchingSkillViewsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
66
66
  _context3.next = 2;
67
67
  return (0, _get2["default"])((0, _getPrototypeOf2["default"])(WatchingSkillViewsTest), "beforeEach", this).call(this);
68
68
  case 2:
69
- this.getFeatureInstaller().isInstalled = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
69
+ this.featureInstaller.isInstalled = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
70
70
  return _regenerator["default"].wrap(function _callee2$(_context2) {
71
71
  while (1) {
72
72
  switch (_context2.prev = _context2.next) {
@@ -343,7 +343,7 @@ var WatchingSkillViewsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
343
343
  _CommandService["default"].fakeCommand(/yarn boot/gi, {
344
344
  code: 0
345
345
  });
346
- watchFeature = this.getFeatureInstaller().getFeature('watch');
346
+ watchFeature = this.featureInstaller.getFeature('watch');
347
347
  wasStarted = false;
348
348
  wasStopped = false;
349
349
  watchFeature.startWatching = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
@@ -519,7 +519,7 @@ var WatchingSkillViewsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
519
519
  while (1) {
520
520
  switch (_context16.prev = _context16.next) {
521
521
  case 0:
522
- emitter = this.getEmitter();
522
+ emitter = this.emitter;
523
523
  _context16.next = 3;
524
524
  return emitter.emit('watcher.did-detect-change', {
525
525
  changes: [{
@@ -1 +1 @@
1
- {"version":3,"file":"WatchingSkillViews.test.js","names":["WatchingSkillViewsTest","test","oldBootExecute","BootAction","prototype","execute","getFeatureInstaller","isInstalled","SettingsService","isMarkedAsInstalled","assert","isFunction","Action","wasHit","CommandService","fakeCommand","code","callback","watchAction","wait","isTrue","kill","hitCount","isEqual","emitFileChangeEvent","passedOptions","options","shouldReturnImmediately","actionPromise","didWait","waitPromise","Promise","resolve","setTimeout","isFalse","watchFeature","getFeature","wasStarted","wasStopped","startWatching","stopWatching","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","name","getViewFixture","createViewController","nameKebab","namePascal","Service","build","results","isFalsy","errors","pid","getPid","meta","bootPromise","assertProcessRunning","doesThrowAsync","reject","ps","lookup","err","length","emitter","getEmitter","emit","changes","schemaId","version","values","action","path","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/WatchingSkillViews.test.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport ps from 'ps-node'\nimport BootAction from '../../features/skill/actions/BootAction'\nimport WatchAction from '../../features/view/actions/WatchAction'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class WatchingSkillViewsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprotected static oldBootExecute: any\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.oldBootExecute = BootAction.prototype.execute\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.getFeatureInstaller().isInstalled = async () => true\n\t\tSettingsService.prototype.isMarkedAsInstalled = () => true\n\t\tBootAction.prototype.execute = this.oldBootExecute\n\t}\n\n\t@test()\n\tprotected static async hasWatchSkillViewsEvent() {\n\t\tassert.isFunction(this.Action('view', 'watch').execute)\n\t}\n\n\t@test()\n\tprotected static async shouldCallBoot() {\n\t\tlet wasHit = false\n\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasHit = true\n\t\t\t},\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tvoid watchAction.execute({})\n\t\tawait this.wait(10)\n\t\tassert.isTrue(wasHit)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async shouldCallBootAgainOnFileChange() {\n\t\tlet hitCount = 0\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\thitCount++\n\t\t\t},\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\n\t\tvoid watchAction.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tassert.isEqual(hitCount, 1)\n\n\t\tawait this.emitFileChangeEvent()\n\n\t\tassert.isEqual(hitCount, 2)\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async changesDuringBootOfSkillKillSkill() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\n\t\tlet passedOptions: any = null\n\n\t\t//@ts-ignore\n\t\tBootAction.prototype.execute = (options: any) => {\n\t\t\tpassedOptions = options\n\t\t}\n\n\t\tvoid watchAction.execute()\n\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(passedOptions.shouldReturnImmediately)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async holdsOnAction() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst actionPromise = watchAction.execute()\n\t\tlet didWait = false\n\t\tconst waitPromise = new Promise((resolve) => {\n\t\t\tsetTimeout(async () => {\n\t\t\t\tdidWait = true\n\t\t\t\tawait watchAction.kill()\n\t\t\t\tresolve(null)\n\t\t\t}, 1000)\n\t\t})\n\n\t\tawait actionPromise\n\t\tawait waitPromise\n\n\t\tassert.isTrue(didWait)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async canKillAction() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst actionPromise = watchAction.execute()\n\n\t\tlet didWait = false\n\t\tconst waitPromise = new Promise((resolve) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tdidWait = true\n\t\t\t\tresolve(null)\n\t\t\t}, 1000)\n\t\t})\n\n\t\tawait this.wait(100)\n\n\t\tawait watchAction.kill()\n\n\t\tawait actionPromise\n\n\t\tassert.isFalse(didWait)\n\n\t\tawait waitPromise\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async makeSureWatcherIsStartedAndStopped() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchFeature = this.getFeatureInstaller().getFeature('watch')\n\t\tlet wasStarted = false\n\t\tlet wasStopped = false\n\n\t\twatchFeature.startWatching = async () => {\n\t\t\twasStarted = true\n\t\t}\n\n\t\twatchFeature.stopWatching = async () => {\n\t\t\twasStopped = true\n\t\t}\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tvoid watchAction.execute()\n\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(wasStarted)\n\t\tassert.isFalse(wasStopped)\n\n\t\tawait watchAction.kill()\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(wasStarted)\n\t\tassert.isTrue(wasStopped)\n\t}\n\n\t@test()\n\tprotected static async killingActionKillsProcess() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: `Watching skill views`,\n\t\t})\n\n\t\tawait this.getViewFixture().createViewController({\n\t\t\tnameKebab: 'root',\n\t\t\tnamePascal: 'Root',\n\t\t})\n\n\t\tawait this.Action('view', 'sync').execute({})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst results = await watchAction.execute({ shouldReturnImmediately: true })\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tlet pid = watchAction.getPid()\n\n\t\twhile (!pid) {\n\t\t\tawait this.wait(100)\n\t\t\tpid = watchAction.getPid()\n\t\t}\n\n\t\tawait results.meta?.bootPromise\n\n\t\tawait this.assertProcessRunning(pid)\n\n\t\tawait watchAction.kill()\n\n\t\tawait this.wait(500)\n\n\t\tawait assert.doesThrowAsync(() => this.assertProcessRunning(pid as number))\n\t}\n\n\tprivate static async assertProcessRunning(pid: number) {\n\t\tawait new Promise((resolve, reject) => {\n\t\t\tps.lookup({ pid }, (err: any, results: any) => {\n\t\t\t\tif (err || results.length !== 1) {\n\t\t\t\t\treject('boot process not running')\n\t\t\t\t}\n\n\t\t\t\tresolve(results)\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate static async emitFileChangeEvent() {\n\t\tconst emitter = this.getEmitter()\n\n\t\tawait emitter.emit('watcher.did-detect-change', {\n\t\t\tchanges: [\n\t\t\t\t{\n\t\t\t\t\tschemaId: 'generatedFile',\n\t\t\t\t\tversion: 'v2020_07_22',\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\taction: 'updated',\n\t\t\t\t\t\tname: 'Cool name!',\n\t\t\t\t\t\tpath: '/',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"WatchingSkillViews.test.js","names":["WatchingSkillViewsTest","test","oldBootExecute","BootAction","prototype","execute","featureInstaller","isInstalled","SettingsService","isMarkedAsInstalled","assert","isFunction","Action","wasHit","CommandService","fakeCommand","code","callback","watchAction","wait","isTrue","kill","hitCount","isEqual","emitFileChangeEvent","passedOptions","options","shouldReturnImmediately","actionPromise","didWait","waitPromise","Promise","resolve","setTimeout","isFalse","watchFeature","getFeature","wasStarted","wasStopped","startWatching","stopWatching","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","name","getViewFixture","createViewController","nameKebab","namePascal","Service","build","results","isFalsy","errors","pid","getPid","meta","bootPromise","assertProcessRunning","doesThrowAsync","reject","ps","lookup","err","length","emitter","emit","changes","schemaId","version","values","action","path","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/WatchingSkillViews.test.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport ps from 'ps-node'\nimport BootAction from '../../features/skill/actions/BootAction'\nimport WatchAction from '../../features/view/actions/WatchAction'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class WatchingSkillViewsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprotected static oldBootExecute: any\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.oldBootExecute = BootAction.prototype.execute\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.featureInstaller.isInstalled = async () => true\n\t\tSettingsService.prototype.isMarkedAsInstalled = () => true\n\t\tBootAction.prototype.execute = this.oldBootExecute\n\t}\n\n\t@test()\n\tprotected static async hasWatchSkillViewsEvent() {\n\t\tassert.isFunction(this.Action('view', 'watch').execute)\n\t}\n\n\t@test()\n\tprotected static async shouldCallBoot() {\n\t\tlet wasHit = false\n\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasHit = true\n\t\t\t},\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tvoid watchAction.execute({})\n\t\tawait this.wait(10)\n\t\tassert.isTrue(wasHit)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async shouldCallBootAgainOnFileChange() {\n\t\tlet hitCount = 0\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\thitCount++\n\t\t\t},\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\n\t\tvoid watchAction.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tassert.isEqual(hitCount, 1)\n\n\t\tawait this.emitFileChangeEvent()\n\n\t\tassert.isEqual(hitCount, 2)\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async changesDuringBootOfSkillKillSkill() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\n\t\tlet passedOptions: any = null\n\n\t\t//@ts-ignore\n\t\tBootAction.prototype.execute = (options: any) => {\n\t\t\tpassedOptions = options\n\t\t}\n\n\t\tvoid watchAction.execute()\n\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(passedOptions.shouldReturnImmediately)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async holdsOnAction() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst actionPromise = watchAction.execute()\n\t\tlet didWait = false\n\t\tconst waitPromise = new Promise((resolve) => {\n\t\t\tsetTimeout(async () => {\n\t\t\t\tdidWait = true\n\t\t\t\tawait watchAction.kill()\n\t\t\t\tresolve(null)\n\t\t\t}, 1000)\n\t\t})\n\n\t\tawait actionPromise\n\t\tawait waitPromise\n\n\t\tassert.isTrue(didWait)\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async canKillAction() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst actionPromise = watchAction.execute()\n\n\t\tlet didWait = false\n\t\tconst waitPromise = new Promise((resolve) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tdidWait = true\n\t\t\t\tresolve(null)\n\t\t\t}, 1000)\n\t\t})\n\n\t\tawait this.wait(100)\n\n\t\tawait watchAction.kill()\n\n\t\tawait actionPromise\n\n\t\tassert.isFalse(didWait)\n\n\t\tawait waitPromise\n\n\t\tawait watchAction.kill()\n\t}\n\n\t@test()\n\tprotected static async makeSureWatcherIsStartedAndStopped() {\n\t\tCommandService.fakeCommand(/yarn boot/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst watchFeature = this.featureInstaller.getFeature('watch')\n\t\tlet wasStarted = false\n\t\tlet wasStopped = false\n\n\t\twatchFeature.startWatching = async () => {\n\t\t\twasStarted = true\n\t\t}\n\n\t\twatchFeature.stopWatching = async () => {\n\t\t\twasStopped = true\n\t\t}\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tvoid watchAction.execute()\n\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(wasStarted)\n\t\tassert.isFalse(wasStopped)\n\n\t\tawait watchAction.kill()\n\t\tawait this.wait(100)\n\n\t\tassert.isTrue(wasStarted)\n\t\tassert.isTrue(wasStopped)\n\t}\n\n\t@test()\n\tprotected static async killingActionKillsProcess() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: `Watching skill views`,\n\t\t})\n\n\t\tawait this.getViewFixture().createViewController({\n\t\t\tnameKebab: 'root',\n\t\t\tnamePascal: 'Root',\n\t\t})\n\n\t\tawait this.Action('view', 'sync').execute({})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst watchAction = this.Action('view', 'watch') as WatchAction\n\t\tconst results = await watchAction.execute({ shouldReturnImmediately: true })\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tlet pid = watchAction.getPid()\n\n\t\twhile (!pid) {\n\t\t\tawait this.wait(100)\n\t\t\tpid = watchAction.getPid()\n\t\t}\n\n\t\tawait results.meta?.bootPromise\n\n\t\tawait this.assertProcessRunning(pid)\n\n\t\tawait watchAction.kill()\n\n\t\tawait this.wait(500)\n\n\t\tawait assert.doesThrowAsync(() => this.assertProcessRunning(pid as number))\n\t}\n\n\tprivate static async assertProcessRunning(pid: number) {\n\t\tawait new Promise((resolve, reject) => {\n\t\t\tps.lookup({ pid }, (err: any, results: any) => {\n\t\t\t\tif (err || results.length !== 1) {\n\t\t\t\t\treject('boot process not running')\n\t\t\t\t}\n\n\t\t\t\tresolve(results)\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate static async emitFileChangeEvent() {\n\t\tconst emitter = this.emitter\n\n\t\tawait emitter.emit('watcher.did-detect-change', {\n\t\t\tchanges: [\n\t\t\t\t{\n\t\t\t\t\tschemaId: 'generatedFile',\n\t\t\t\t\tversion: 'v2020_07_22',\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\taction: 'updated',\n\t\t\t\t\t\tname: 'Cool name!',\n\t\t\t\t\t\tpath: '/',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n}\n"],"mappings":"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"}
@@ -68,7 +68,7 @@ var SettingUpErrorTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.
68
68
  _context2.next = 2;
69
69
  return this.installErrorFeature('errors');
70
70
  case 2:
71
- installer = this.getFeatureInstaller();
71
+ installer = this.featureInstaller;
72
72
  _context2.next = 5;
73
73
  return installer.isInstalled('schema');
74
74
  case 5:
@@ -1 +1 @@
1
- {"version":3,"file":"SettingUpErrors.test.js","names":["SettingUpErrorTest","test","fixture","FeatureFixture","assert","doesThrowAsync","installFeatures","code","err","errorAssert","assertError","installErrorFeature","installer","getFeatureInstaller","isInstalled","isSchemaInstalled","isTrue","isErrorInstalled","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/SettingUpErrors.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\n\nexport default class SettingUpErrorTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async failsIfSkillIsNotInstalled() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tfixture.installFeatures([\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async installsSchemasIfNotInstalled() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tconst isSchemaInstalled = await installer.isInstalled('schema')\n\t\tassert.isTrue(isSchemaInstalled)\n\n\t\tconst isErrorInstalled = await installer.isInstalled('error')\n\t\tassert.isTrue(isErrorInstalled)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAEA;AAAgE;AAAA;AAAA;AAAA,IAE3CA,kBAAkB,WACrC,IAAAC,eAAI,GAAE,UAcN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,gHAdP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,OAAO,GAAG,IAAI,CAACC,cAAc,EAAE;gBAAA;gBAAA,OACnBC,iBAAM,CAACC,cAAc,CAAC;kBAAA,OACvCH,OAAO,CAACI,eAAe,CAAC,CACvB;oBACCC,IAAI,EAAE;kBACP,CAAC,CACD,CAAC;gBAAA,EACF;cAAA;gBANKC,GAAG;gBAQTC,sBAAW,CAACC,WAAW,CAACF,GAAG,EAAE,mBAAmB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACG,mBAAmB,CAAC,QAAQ,CAAC;cAAA;gBAElCC,SAAS,GAAG,IAAI,CAACC,mBAAmB,EAAE;gBAAA;gBAAA,OAEZD,SAAS,CAACE,WAAW,CAAC,QAAQ,CAAC;cAAA;gBAAzDC,iBAAiB;gBACvBX,iBAAM,CAACY,MAAM,CAACD,iBAAiB,CAAC;gBAAA;gBAAA,OAEDH,SAAS,CAACE,WAAW,CAAC,OAAO,CAAC;cAAA;gBAAvDG,gBAAgB;gBACtBb,iBAAM,CAACY,MAAM,CAACC,gBAAgB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC/B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA1B8CC,8BAAiB;AAAA"}
1
+ {"version":3,"file":"SettingUpErrors.test.js","names":["SettingUpErrorTest","test","fixture","FeatureFixture","assert","doesThrowAsync","installFeatures","code","err","errorAssert","assertError","installErrorFeature","installer","featureInstaller","isInstalled","isSchemaInstalled","isTrue","isErrorInstalled","AbstractErrorTest"],"sources":["../../../../src/__tests__/behavioral/errors/SettingUpErrors.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractErrorTest from '../../../tests/AbstractErrorTest'\n\nexport default class SettingUpErrorTest extends AbstractErrorTest {\n\t@test()\n\tprotected static async failsIfSkillIsNotInstalled() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tfixture.installFeatures([\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async installsSchemasIfNotInstalled() {\n\t\tawait this.installErrorFeature('errors')\n\n\t\tconst installer = this.featureInstaller\n\n\t\tconst isSchemaInstalled = await installer.isInstalled('schema')\n\t\tassert.isTrue(isSchemaInstalled)\n\n\t\tconst isErrorInstalled = await installer.isInstalled('error')\n\t\tassert.isTrue(isErrorInstalled)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAEA;AAAgE;AAAA;AAAA;AAAA,IAE3CA,kBAAkB,WACrC,IAAAC,eAAI,GAAE,UAcN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,gHAdP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,OAAO,GAAG,IAAI,CAACC,cAAc,EAAE;gBAAA;gBAAA,OACnBC,iBAAM,CAACC,cAAc,CAAC;kBAAA,OACvCH,OAAO,CAACI,eAAe,CAAC,CACvB;oBACCC,IAAI,EAAE;kBACP,CAAC,CACD,CAAC;gBAAA,EACF;cAAA;gBANKC,GAAG;gBAQTC,sBAAW,CAACC,WAAW,CAACF,GAAG,EAAE,mBAAmB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACG,mBAAmB,CAAC,QAAQ,CAAC;cAAA;gBAElCC,SAAS,GAAG,IAAI,CAACC,gBAAgB;gBAAA;gBAAA,OAEPD,SAAS,CAACE,WAAW,CAAC,QAAQ,CAAC;cAAA;gBAAzDC,iBAAiB;gBACvBX,iBAAM,CAACY,MAAM,CAACD,iBAAiB,CAAC;gBAAA;gBAAA,OAEDH,SAAS,CAACE,WAAW,CAAC,OAAO,CAAC;cAAA;gBAAvDG,gBAAgB;gBACtBb,iBAAM,CAACY,MAAM,CAACC,gBAAgB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC/B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA1B8CC,8BAAiB;AAAA"}
@@ -14,9 +14,11 @@ export default class CreatingAListenerTest extends AbstractEventTest {
14
14
  protected static generatesTypedListenerWithEmitPayload(): Promise<void>;
15
15
  protected static emittingEventTriggersListenerAndCrashesWithListenerNotImplemented(): Promise<void>;
16
16
  protected static listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener(): Promise<void>;
17
+ protected static hasIsGlobalCheck(): Promise<void>;
17
18
  private static installAddDependencyExecuteAndWaitForInput;
18
19
  private static executeAndWaitForInput;
19
20
  private static addDependency;
20
21
  private static installEventsAndCreateListener;
21
22
  private static setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener;
23
+ private static installEventsCreateListenerAndGetListenerMap;
22
24
  }