@sprucelabs/spruce-cli 15.2.23 → 15.2.24

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 +8 -0
  2. package/build/__tests__/behavioral/AddingADependency.test.js +3 -1
  3. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  4. package/build/__tests__/behavioral/DeployingASkill.test.js +20 -20
  5. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  6. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +12 -12
  7. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  8. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +3 -1
  9. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  10. package/build/__tests__/behavioral/LoggingInAsASkill.test.js +4 -2
  11. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  12. package/build/__tests__/behavioral/RebuildingASkill.test.js +2 -2
  13. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  14. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +6 -4
  15. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
  16. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js +3 -1
  17. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
  18. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js +3 -1
  19. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
  20. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js +5 -3
  21. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
  22. package/build/__tests__/behavioral/WatchingSkillViews.test.js +6 -6
  23. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  24. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +5 -0
  25. package/build/__tests__/behavioral/events/CreatingAListener.test.js +242 -119
  26. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  27. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +3 -1
  28. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  29. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +1 -1
  30. package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
  31. package/build/__tests__/behavioral/skill/CreatingASkill.test.js +1 -1
  32. package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
  33. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +2 -2
  34. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  35. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -1
  36. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +8 -8
  37. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  38. package/build/__tests__/behavioral/{UpdatingDependencies.test.d.ts → upgrading/UpdatingDependencies.test.d.ts} +1 -1
  39. package/build/__tests__/behavioral/{UpdatingDependencies.test.js → upgrading/UpdatingDependencies.test.js} +1 -1
  40. package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -0
  41. package/build/__tests__/behavioral/{UpdatingDependencies2.test.d.ts → upgrading/UpdatingDependencies2.test.d.ts} +1 -1
  42. package/build/__tests__/behavioral/{UpdatingDependencies2.test.js → upgrading/UpdatingDependencies2.test.js} +4 -4
  43. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -0
  44. package/build/__tests__/behavioral/{UpgradingANodeModule.test.d.ts → upgrading/UpgradingANodeModule.test.d.ts} +1 -1
  45. package/build/__tests__/behavioral/{UpgradingANodeModule.test.js → upgrading/UpgradingANodeModule.test.js} +7 -7
  46. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -0
  47. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.d.ts +0 -0
  48. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.js +3 -14
  49. package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -0
  50. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.d.ts +0 -0
  51. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.js +4 -13
  52. package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -0
  53. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.d.ts +0 -0
  54. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.js +6 -6
  55. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.js.map +1 -1
  56. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.d.ts +0 -0
  57. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.js +3 -3
  58. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.js.map +1 -1
  59. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.d.ts +0 -0
  60. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.js +2 -2
  61. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.js.map +1 -1
  62. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.d.ts +0 -0
  63. package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.js +4 -8
  64. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -0
  65. package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.d.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.d.ts} +3 -3
  66. package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.js → upgrading/UpgradingWithSandboxFeatureInstalled.test.js} +14 -14
  67. package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
  68. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  69. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  70. package/build/__tests__/implementation/ActionExecuter4.test.js +2 -2
  71. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  72. package/build/__tests__/implementation/EventStore.test.js +7 -2
  73. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  74. package/build/__tests__/implementation/LintService.test.js +2 -2
  75. package/build/__tests__/implementation/LintService.test.js.map +1 -1
  76. package/build/__tests__/implementation/PkgService.test.js +2 -2
  77. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  78. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  79. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  80. package/build/cli.js +1 -1
  81. package/build/cli.js.map +1 -1
  82. package/build/features/event/EventFeature.d.ts +1 -0
  83. package/build/features/event/EventFeature.js +89 -56
  84. package/build/features/event/EventFeature.js.map +1 -1
  85. package/build/features/event/actions/ListenAction.d.ts +1 -0
  86. package/build/features/event/actions/ListenAction.js +23 -31
  87. package/build/features/event/actions/ListenAction.js.map +1 -1
  88. package/build/features/event/stores/EventStore.d.ts +6 -5
  89. package/build/features/event/stores/EventStore.js +10 -7
  90. package/build/features/event/stores/EventStore.js.map +1 -1
  91. package/build/features/store/StoreFeature.d.ts +1 -1
  92. package/build/features/store/StoreFeature.js +15 -14
  93. package/build/features/store/StoreFeature.js.map +1 -1
  94. package/build/services/CommandService.d.ts +1 -1
  95. package/build/services/CommandService.js +2 -2
  96. package/build/services/CommandService.js.map +1 -1
  97. package/build/tests/AbstractCliTest.d.ts +2 -0
  98. package/build/tests/AbstractCliTest.js +9 -2
  99. package/build/tests/AbstractCliTest.js.map +1 -1
  100. package/build/tests/CommandFaker.d.ts +8 -0
  101. package/build/tests/CommandFaker.js +54 -0
  102. package/build/tests/CommandFaker.js.map +1 -0
  103. package/build/tests/cleanTestData.js +9 -10
  104. package/build/tests/cleanTestData.js.map +1 -1
  105. package/build/tests/constants.d.ts +8 -0
  106. package/build/tests/constants.js +28 -0
  107. package/build/tests/constants.js.map +1 -0
  108. package/package.json +69 -69
  109. package/src/__tests__/behavioral/AddingADependency.test.ts +2 -1
  110. package/src/__tests__/behavioral/DeployingASkill.test.ts +20 -20
  111. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +12 -12
  112. package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +2 -1
  113. package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -2
  114. package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
  115. package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +3 -5
  116. package/src/__tests__/behavioral/RegisteringGlobalEvents.test.ts +2 -1
  117. package/src/__tests__/behavioral/RegisteringSkillViewOnBoot.test.ts +2 -1
  118. package/src/__tests__/behavioral/SettingUpASkillForTesting.test.ts +4 -3
  119. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +6 -6
  120. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +54 -7
  121. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -1
  122. package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +1 -1
  123. package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +1 -1
  124. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
  125. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +3 -3
  126. package/src/__tests__/behavioral/{UpdatingDependencies.test.ts → upgrading/UpdatingDependencies.test.ts} +2 -2
  127. package/src/__tests__/behavioral/{UpdatingDependencies2.test.ts → upgrading/UpdatingDependencies2.test.ts} +6 -6
  128. package/src/__tests__/behavioral/{UpgradingANodeModule.test.ts → upgrading/UpgradingANodeModule.test.ts} +7 -7
  129. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.ts +3 -11
  130. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.ts +4 -7
  131. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.ts +6 -6
  132. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.ts +3 -3
  133. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.ts +2 -2
  134. package/src/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.ts +3 -5
  135. package/src/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.ts} +5 -5
  136. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  137. package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
  138. package/src/__tests__/implementation/EventStore.test.ts +3 -1
  139. package/src/__tests__/implementation/LintService.test.ts +2 -2
  140. package/src/__tests__/implementation/PkgService.test.ts +4 -7
  141. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  142. package/src/cli.ts +1 -1
  143. package/src/features/event/EventFeature.ts +14 -11
  144. package/src/features/event/actions/ListenAction.ts +22 -12
  145. package/src/features/event/stores/EventStore.ts +17 -12
  146. package/src/features/store/StoreFeature.ts +6 -5
  147. package/src/services/CommandService.ts +1 -4
  148. package/src/tests/AbstractCliTest.ts +6 -1
  149. package/src/tests/CommandFaker.ts +24 -0
  150. package/src/tests/cleanTestData.ts +2 -19
  151. package/src/tests/constants.ts +17 -0
  152. package/build/__tests__/behavioral/UpdatingDependencies.test.js.map +0 -1
  153. package/build/__tests__/behavioral/UpdatingDependencies2.test.js.map +0 -1
  154. package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +0 -1
  155. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +0 -1
  156. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +0 -1
  157. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +0 -1
  158. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","waitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","add","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\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\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\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\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\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\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\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\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","listen","Action","installEventFeature","execute","namespace","results","assert","isTruthy","errors","err","errorAssert","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","executeAndWaitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","waitForInput","reset","MercuryClientFactory","setIsTestMode","eventFaker","on","target","passedTarget","contracts","coreEventContracts","addDependency","isEqualDeep","dependencies","add","id","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { eventFaker } from '@sprucelabs/spruce-test-fixtures'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ListenAction from '../../../features/event/actions/ListenAction'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\tprivate static listen: ListenAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.listen = this.Action('event', 'listen')\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssert.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async executeAndWaitForInput() {\n\t\tvoid this.listen.execute({})\n\t\tawait this.waitForInput()\n\t}\n\n\t@test()\n\tprotected static async loadsContractsFilteringByDependencies() {\n\t\tawait this.installEventFeature('events')\n\t\tMercuryClientFactory.setIsTestMode(true)\n\n\t\tlet passedTarget: any\n\t\tawait eventFaker.on('get-event-contracts::v2020_12_25', ({ target }) => {\n\t\t\tpassedTarget = target\n\t\t\treturn {\n\t\t\t\tcontracts: [...(coreEventContracts as any)],\n\t\t\t}\n\t\t})\n\n\t\tconst namespace = 'waka'\n\t\tthis.addDependency(namespace)\n\n\t\tawait this.executeAndWaitForInput()\n\n\t\tassert.isEqualDeep(passedTarget, {\n\t\t\tnamespaces: [namespace],\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static addDependency(namespace: string) {\n\t\tconst dependencies = this.Service('dependency')\n\t\tdependencies.add({\n\t\t\tid: namespace,\n\t\t\tnamespace: 'waka',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\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\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\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\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\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\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\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\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.listen.execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
@@ -35,6 +35,8 @@ var _testUtils = require("@sprucelabs/test-utils");
35
35
 
36
36
  var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
37
37
 
38
+ var _constants = require("../../../tests/constants");
39
+
38
40
  var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
39
41
 
40
42
  var _uiAssert = _interopRequireDefault(require("../../../tests/utilities/uiAssert.utility"));
@@ -439,7 +441,7 @@ var CreatingAnEventTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
439
441
  return this.getSkillFixture().registerCurrentSkill({
440
442
  name: 'my new skill'
441
443
  }, {
442
- phone: process.env.DEMO_NUMBER_CREATING_AN_EVENT
444
+ phone: _constants.DEMO_NUMBER_CREATING_AN_EVENT
443
445
  });
444
446
 
445
447
  case 2:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssert","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","process","env","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: process.env.DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"file":"CreatingAnEvent.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssert","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport { DEMO_NUMBER_CREATING_AN_EVENT } from '../../../tests/constants'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"file":"CreatingAnEvent.test.js"}
@@ -82,7 +82,7 @@ var CreatingANodeModuleTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
82
82
  while (1) {
83
83
  switch (_context2.prev = _context2.next) {
84
84
  case 0:
85
- _CommandService["default"].setMockResponse(new RegExp(/yarn add/gi), {
85
+ _CommandService["default"].fakeCommand(new RegExp(/yarn add/gi), {
86
86
  code: 0
87
87
  });
88
88
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/node/CreatingANodeModule.test.ts"],"names":["CreatingANodeModuleTest","assert","isFunction","Action","execute","CommandService","setMockResponse","RegExp","code","promise","shouldAutoHandleDependencies","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","isFalse","diskUtil","doesFileExist","resolvePath","name","description","Service","build","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;2GA5BD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,YAAX,CAA/B,EAA0D;AACzDC,kBAAAA,IAAI,EAAE;AADmD,iBAA1D;;AAGMC,gBAAAA,OALP,GAKiB,KAAKN,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AAC7CO,kBAAAA,4BAA4B,EAAE;AADe,iBAA9B,EAEbN,OAFa,CAEL;AAAEO,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CALjB;AAAA;AAAA,uBASO,KAAKC,YAAL,EATP;;AAAA;AAAA;AAAA,uBAUO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAVP;;AAAA;AAAA;AAAA,uBAWO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,0BAAlB,CAXP;;AAAA;AAAA;AAAA,uBAauBL,OAbvB;;AAAA;AAaOM,gBAAAA,OAbP;;AAeCC,kCAASC,gCAAT,CACC,gCADD,EAECF,OAAO,CAACG,KAFT;;AAKAjB,6BAAOkB,OAAP,CAAeC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiB,cAAjB,CAAvB,CAAf;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AACnCO,kBAAAA,4BAA4B,EAAE;AADK,iBAA9B,EAEHN,OAFG,CAEK;AACVmB,kBAAAA,IAAI,EAAE,YADI;AAEVC,kBAAAA,WAAW,EAAE;AAFH,iBAFL,CAFP;;AAAA;AAAA;AAAA,uBASO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA7BoDC,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('node', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async canCreateAtDestination() {\n\t\tCommandService.setMockResponse(new RegExp(/yarn add/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t\tconst promise = this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'new-module' })\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('new module')\n\t\tawait this.ui.sendInput('such a good description!')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/new-module\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t}\n\n\t@test()\n\tprotected static async canBuildNodeModule() {\n\t\tawait this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({\n\t\t\tname: 'build test',\n\t\t\tdescription: 'yes!',\n\t\t})\n\n\t\tawait this.Service('build').build()\n\t}\n}\n"],"file":"CreatingANodeModule.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/node/CreatingANodeModule.test.ts"],"names":["CreatingANodeModuleTest","assert","isFunction","Action","execute","CommandService","fakeCommand","RegExp","code","promise","shouldAutoHandleDependencies","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","isFalse","diskUtil","doesFileExist","resolvePath","name","description","Service","build","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;2GA5BD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAAhD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,2CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,YAAX,CAA3B,EAAsD;AACrDC,kBAAAA,IAAI,EAAE;AAD+C,iBAAtD;;AAGMC,gBAAAA,OALP,GAKiB,KAAKN,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AAC7CO,kBAAAA,4BAA4B,EAAE;AADe,iBAA9B,EAEbN,OAFa,CAEL;AAAEO,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CALjB;AAAA;AAAA,uBASO,KAAKC,YAAL,EATP;;AAAA;AAAA;AAAA,uBAUO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAVP;;AAAA;AAAA;AAAA,uBAWO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,0BAAlB,CAXP;;AAAA;AAAA;AAAA,uBAauBL,OAbvB;;AAAA;AAaOM,gBAAAA,OAbP;;AAeCC,kCAASC,gCAAT,CACC,gCADD,EAECF,OAAO,CAACG,KAFT;;AAKAjB,6BAAOkB,OAAP,CAAeC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiB,cAAjB,CAAvB,CAAf;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKnB,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8B;AACnCO,kBAAAA,4BAA4B,EAAE;AADK,iBAA9B,EAEHN,OAFG,CAEK;AACVmB,kBAAAA,IAAI,EAAE,YADI;AAEVC,kBAAAA,WAAW,EAAE;AAFH,iBAFL,CAFP;;AAAA;AAAA;AAAA,uBASO,KAAKC,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA7BoDC,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('node', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async canCreateAtDestination() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn add/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t\tconst promise = this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'new-module' })\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('new module')\n\t\tawait this.ui.sendInput('such a good description!')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/new-module\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath('package.json')))\n\t}\n\n\t@test()\n\tprotected static async canBuildNodeModule() {\n\t\tawait this.Action('node', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({\n\t\t\tname: 'build test',\n\t\t\tdescription: 'yes!',\n\t\t})\n\n\t\tawait this.Service('build').build()\n\t}\n}\n"],"file":"CreatingANodeModule.test.js"}
@@ -61,7 +61,7 @@ var CreatingASkillTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/funct
61
61
  return (0, _get2["default"])((0, _getPrototypeOf2["default"])(CreatingASkillTest), "beforeEach", this).call(this);
62
62
 
63
63
  case 2:
64
- _CommandService["default"].setMockResponse(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
64
+ _CommandService["default"].fakeCommand(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
65
65
  code: 0
66
66
  });
67
67
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/CreatingASkill.test.ts"],"names":["CreatingASkillTest","CommandService","setMockResponse","RegExp","code","promise","Action","shouldAutoHandleDependencies","execute","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","hints","assert","doesInclude","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,iB;;;;;;;;;;;;;sGAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,+BAAX,CAA/B,EAAmE;AAClEC,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yIAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;AAC9CC,kBAAAA,4BAA4B,EAAE;AADgB,iBAA/B,EAEbC,OAFa,CAEL;AAAEC,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CAFjB;AAAA;AAAA,uBAMO,KAAKC,YAAL,EANP;;AAAA;AAAA;AAAA,uBAQO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,WAAlB,CARP;;AAAA;AAAA;AAAA,uBASO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,aAAlB,CATP;;AAAA;AAAA;AAAA,uBAWuBP,OAXvB;;AAAA;AAWOQ,gBAAAA,OAXP;;AAaCC,kCAASC,gCAAT,CACC,uBADD,EAECF,OAAO,CAACG,KAFT;;AAKQC,gBAAAA,KAlBT,GAkBmBJ,OAlBnB,CAkBSI,KAlBT;;AAoBCC,6BAAOC,WAAP,CAAmBF,KAAnB,EAA0B,SAA1B;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAR+CG,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.setMockResponse(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingAtADestinationAsksForSkillDetailsOnce() {\n\t\tconst promise = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'taco' })\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('adventure')\n\t\tawait this.ui.sendInput('i would not')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/taco\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst { hints } = results\n\n\t\tassert.doesInclude(hints, 'cd taco')\n\t}\n}\n"],"file":"CreatingASkill.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/CreatingASkill.test.ts"],"names":["CreatingASkillTest","CommandService","fakeCommand","RegExp","code","promise","Action","shouldAutoHandleDependencies","execute","destination","waitForInput","ui","sendInput","results","testUtil","assertFileByPathInGeneratedFiles","files","hints","assert","doesInclude","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAQnB,iB;;;;;;;;;;;;;sGAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAAeC,WAAf,CAA2B,IAAIC,MAAJ,CAAW,+BAAX,CAA3B,EAA+D;AAC9DC,kBAAAA,IAAI,EAAE;AADwD,iBAA/D;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yIAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+B;AAC9CC,kBAAAA,4BAA4B,EAAE;AADgB,iBAA/B,EAEbC,OAFa,CAEL;AAAEC,kBAAAA,WAAW,EAAE;AAAf,iBAFK,CAFjB;AAAA;AAAA,uBAMO,KAAKC,YAAL,EANP;;AAAA;AAAA;AAAA,uBAQO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,WAAlB,CARP;;AAAA;AAAA;AAAA,uBASO,KAAKD,EAAL,CAAQC,SAAR,CAAkB,aAAlB,CATP;;AAAA;AAAA;AAAA,uBAWuBP,OAXvB;;AAAA;AAWOQ,gBAAAA,OAXP;;AAaCC,kCAASC,gCAAT,CACC,uBADD,EAECF,OAAO,CAACG,KAFT;;AAKQC,gBAAAA,KAlBT,GAkBmBJ,OAlBnB,CAkBSI,KAlBT;;AAoBCC,6BAAOC,WAAP,CAAmBF,KAAnB,EAA0B,SAA1B;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAR+CG,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingAtADestinationAsksForSkillDetailsOnce() {\n\t\tconst promise = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({ destination: 'taco' })\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('adventure')\n\t\tawait this.ui.sendInput('i would not')\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByPathInGeneratedFiles(\n\t\t\t/taco\\/package\\.json/gis,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst { hints } = results\n\n\t\tassert.doesInclude(hints, 'cd taco')\n\t}\n}\n"],"file":"CreatingASkill.test.js"}
@@ -437,11 +437,11 @@ var CreatingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(
437
437
  while (1) {
438
438
  switch (_context11.prev = _context11.next) {
439
439
  case 0:
440
- _CommandService["default"].setMockResponse('yarn rebuild', {
440
+ _CommandService["default"].fakeCommand('yarn rebuild', {
441
441
  code: 0
442
442
  });
443
443
 
444
- _CommandService["default"].setMockResponse(/yarn add/gi, {
444
+ _CommandService["default"].fakeCommand(/yarn add/gi, {
445
445
  code: 0
446
446
  });
447
447
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/stores/CreatingADataStore.test.ts"],"names":["CreatingDataStoresTest","assert","isFunction","Action","execute","cli","checkHealth","shouldRunOnSourceFiles","health","isFalsy","skill","errors","isTruthy","store","isArray","stores","isLength","nameReadable","nameReadablePlural","namePascal","results","path","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","file","resolveHashSprucePath","isTrue","diskUtil","doesFileExist","isEqual","name","errorAssert","assertError","storeContents","readFile","replace","writeFile","testFile","resolveTestPath","testContents","dest","resolvePath","isFalse","getAbstractTestPath","CommandService","setMockResponse","code","storesFile","deleteFile","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,sB,WAGnB,iB,UAKA,iB,UAeA,iB,UAkBA,iB,UAOA,iB,UAaA,iB,UAkBA,iB,UAgBA,iB,UAYA,iB,WA+BA,iB,WAOA,iB;;;;;;;;;;;;;gHA9ID;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAAjD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2HAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEsB,KAAKC,GAAL,CAASC,WAAT,CAAqB;AAAEC,kBAAAA,sBAAsB,EAAE;AAA1B,iBAArB,CAFtB;;AAAA;AAEOC,gBAAAA,MAFP;;AAICP,6BAAOQ,OAAP,CAAeD,MAAM,CAACE,KAAP,CAAaC,MAA5B,EAJD,CAKC;;;AACAV,6BAAOW,QAAP,CAAgBJ,MAAM,CAACK,KAAvB,EAND,CAOC;;;AACAZ,6BAAOQ,OAAP,CAAeD,MAAM,CAACK,KAAP,CAAaF,MAA5B,EARD,CASC;;;AACAV,6BAAOa,OAAP,CAAeN,MAAM,CAACK,KAAP,CAAaE,MAA5B,EAVD,CAWC;;;AACAd,6BAAOe,QAAP,CAAgBR,MAAM,CAACK,KAAP,CAAaE,MAA7B,EAAqC,CAArC;;AAZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKZ,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5Da,kBAAAA,YAAY,EAAE,QAD8C;AAE5DC,kBAAAA,kBAAkB,EAAE,QAFwC;AAG5DC,kBAAAA,UAAU,EAAE;AAHgD,iBAAvC,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAQCnB,6BAAOQ,OAAP,CAAeW,OAAO,CAACT,MAAvB;;AAEMU,gBAAAA,IAVP,GAUcC,kBAASC,gCAAT,CACZ,iBADY,EAEZH,OAAO,CAACI,KAFI,CAVd;AAAA;AAAA,uBAeO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,IAAlC,CAfP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6GAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOM,gBAAAA,IAFP,GAEc,KAAKC,qBAAL,CAA2B,QAA3B,EAAqC,WAArC,CAFd;;AAGC3B,6BAAO4B,MAAP,CAAcC,2BAASC,aAAT,CAAuBJ,IAAvB,CAAd;;AAHD;AAAA,uBAIO,KAAKF,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCC,IAAlC,CAJP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4HAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEsB,KAAKtB,GAAL,CAASC,WAAT,CAAqB;AAAEC,kBAAAA,sBAAsB,EAAE;AAA1B,iBAArB,CAFtB;;AAAA;AAEOC,gBAAAA,MAFP;;AAGC;AACAP,6BAAOW,QAAP,CAAgBJ,MAAM,CAACK,KAAvB,EAJD,CAKC;;;AACAZ,6BAAOQ,OAAP,CAAeD,MAAM,CAACK,KAAP,CAAaF,MAA5B,EAND,CAOC;;;AACAV,6BAAOe,QAAP,CAAgBR,MAAM,CAACK,KAAP,CAAaE,MAA7B,EAAqC,CAArC,EARD,CASC;;;AACAd,6BAAO+B,OAAP,CAAexB,MAAM,CAACK,KAAP,CAAaE,MAAb,CAAoB,CAApB,EAAuBkB,IAAtC,EAA4C,QAA5C;;AAVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uHAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAK9B,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5Da,kBAAAA,YAAY,EAAE,KAD8C;AAE5DC,kBAAAA,kBAAkB,EAAE,MAFwC;AAG5DC,kBAAAA,UAAU,EAAE;AAHgD,iBAAvC,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAQCnB,6BAAOQ,OAAP,CAAeW,OAAO,CAACT,MAAvB;;AAEMU,gBAAAA,IAVP,GAUcC,kBAASC,gCAAT,CACZ,eADY,EAEZH,OAAO,CAACI,KAFI,CAVd;AAAA;AAAA,uBAeO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,IAAlC,CAfP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+HAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEsB,KAAKhB,GAAL,CAASC,WAAT,CAAqB;AAAEC,kBAAAA,sBAAsB,EAAE;AAA1B,iBAArB,CAFtB;;AAAA;AAEOC,gBAAAA,MAFP;;AAIC;AACAP,6BAAOW,QAAP,CAAgBJ,MAAM,CAACK,KAAvB,EALD,CAMC;;;AACAZ,6BAAOQ,OAAP,CAAeD,MAAM,CAACK,KAAP,CAAaF,MAA5B,EAPD,CAQC;;;AACAV,6BAAOe,QAAP,CAAgBR,MAAM,CAACK,KAAP,CAAaE,MAA7B,EAAqC,CAArC,EATD,CAUC;;;AACAd,6BAAO+B,OAAP,CAAexB,MAAM,CAACK,KAAP,CAAaE,MAAb,CAAoB,CAApB,EAAuBkB,IAAtC,EAA4C,MAA5C,EAXD,CAYC;;;AACAhC,6BAAO+B,OAAP,CAAexB,MAAM,CAACK,KAAP,CAAaE,MAAb,CAAoB,CAApB,EAAuBkB,IAAtC,EAA4C,QAA5C;;AAbD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAK9B,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5Da,kBAAAA,YAAY,EAAE,KAD8C;AAE5DC,kBAAAA,kBAAkB,EAAE,MAFwC;AAG5DC,kBAAAA,UAAU,EAAE;AAHgD,iBAAvC,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAQCnB,6BAAOW,QAAP,CAAgBQ,OAAO,CAACT,MAAxB;;AACAuB,uCAAYC,WAAZ,CAAwBf,OAAO,CAACT,MAAR,CAAe,CAAf,CAAxB,EAA2C,cAA3C;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yHAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKR,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5Da,kBAAAA,YAAY,EAAE,SAD8C;AAE5DC,kBAAAA,kBAAkB,EAAE,UAFwC;AAG5DC,kBAAAA,UAAU,EAAE;AAHgD,iBAAvC,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;AAQOC,gBAAAA,IARP,GAQcC,kBAASC,gCAAT,CACZ,mBADY,EAEZH,OAAO,CAACI,KAFI,CARd;AAaOY,gBAAAA,aAbP,GAauBN,2BACpBO,QADoB,CACXhB,IADW,EAEpBiB,OAFoB,CAGpB,mDAHoB,EAIpB,qEAJoB,CAbvB;;AAoBCR,2CAASS,SAAT,CAAmBlB,IAAnB,EAAyBe,aAAzB;;AAEMI,gBAAAA,QAtBP,GAsBkB,KAAKC,eAAL,CAAqB,mBAArB,CAtBlB;AAuBOC,gBAAAA,YAvBP,GAuBsBZ,2BAASO,QAAT,CAAkBG,QAAlB,CAvBtB;AAyBOG,gBAAAA,IAzBP,GAyBc,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,CAzBd;;AA0BCd,2CAASS,SAAT,CAAmBI,IAAnB,EAAyBD,YAAzB;;AA1BD;AAAA,uBA4BO,KAAKjB,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCiB,IAAlC,CA5BP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kJA+BA;AAAA;AAAA;AAAA;AAAA;AAEC1C,6BAAO4C,OAAP,CACCf,2BAASC,aAAT,CAAuB/B,sBAAsB,CAAC8C,mBAAvB,EAAvB,CADD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yHAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,2CAAeC,eAAf,CAA+B,cAA/B,EAA+C;AAC9CC,kBAAAA,IAAI,EAAE;AADwC,iBAA/C;;AAIAF,2CAAeC,eAAf,CAA+B,YAA/B,EAA8C;AAC7CC,kBAAAA,IAAI,EAAE;AADuC,iBAA9C;;AAIMC,gBAAAA,UAVP,GAUoB,KAAKtB,qBAAL,CAA2B,wBAA3B,CAVpB;;AAWCE,2CAASqB,UAAT,CAAoBD,UAApB;;AAXD;AAAA,uBAYO,KAAK/C,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAZP;;AAAA;AAaCH,6BAAO4B,MAAP,CAAcC,2BAASC,aAAT,CAAuBmB,UAAvB,CAAd;;AAbD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAgBA,+BAA6C;AAC5C,aAAO,KAAKN,WAAL,CAAiB,KAAjB,EAAwB,OAAxB,EAAiC,0BAAjC,CAAP;AACA;;;EAnKkDQ,8B,8DAClB,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport '@sprucelabs/spruce-store-plugin'\nimport CommandService from '../../../services/CommandService'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\n\t@test()\n\tprotected static async hasCreateStoreAction() {\n\t\tassert.isFunction(this.Action('store', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async getsNoStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\tassert.isFalsy(health.skill.errors)\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isArray(health.store.stores)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 0)\n\t}\n\n\t@test()\n\tprotected static async generatesValidStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'People.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async generatesAMapFile() {\n\t\tconst file = this.resolveHashSprucePath('stores', 'stores.ts')\n\t\tassert.isTrue(diskUtil.doesFileExist(file))\n\t\tawait this.Service('typeChecker').check(file)\n\t}\n\n\t@test()\n\tprotected static async getsOneStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 1)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async canGenerateASecondStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Bids.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsSecondStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 2)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'Bids')\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[1].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async errorsWhenGeneratingAStoreWithTheSameName() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'STORE_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async storeFactoryAndStoresAreTyped() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Product',\n\t\t\tnameReadablePlural: 'Products',\n\t\t\tnamePascal: 'Product',\n\t\t})\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Products.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst storeContents = diskUtil\n\t\t\t.readFile(path)\n\t\t\t.replace(\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions',\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions & {hello: string}'\n\t\t\t)\n\n\t\tdiskUtil.writeFile(path, storeContents)\n\n\t\tconst testFile = this.resolveTestPath('store-test.ts.hbs')\n\t\tconst testContents = diskUtil.readFile(testFile)\n\n\t\tconst dest = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(dest, testContents)\n\n\t\tawait this.Service('typeChecker').check(dest)\n\t}\n\n\t@test()\n\tprotected static async doesNotCreateAbstractTestFileBecauseTestIsNotInstalled() {\n\t\tassert.isFalse(\n\t\t\tdiskUtil.doesFileExist(CreatingDataStoresTest.getAbstractTestPath())\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeRestoresDataStoreTypes() {\n\t\tCommandService.setMockResponse('yarn rebuild', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.setMockResponse(/yarn add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst storesFile = this.resolveHashSprucePath('stores/stores.types.ts')\n\t\tdiskUtil.deleteFile(storesFile)\n\t\tawait this.Action('node', 'upgrade').execute({})\n\t\tassert.isTrue(diskUtil.doesFileExist(storesFile))\n\t}\n\n\tprivate static getAbstractTestPath(): string {\n\t\treturn this.resolvePath('src', 'tests', 'AbstractDataStoreTest.ts')\n\t}\n}\n"],"file":"CreatingADataStore.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/stores/CreatingADataStore.test.ts"],"names":["CreatingDataStoresTest","assert","isFunction","Action","execute","cli","checkHealth","shouldRunOnSourceFiles","health","isFalsy","skill","errors","isTruthy","store","isArray","stores","isLength","nameReadable","nameReadablePlural","namePascal","results","path","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","file","resolveHashSprucePath","isTrue","diskUtil","doesFileExist","isEqual","name","errorAssert","assertError","storeContents","readFile","replace","writeFile","testFile","resolveTestPath","testContents","dest","resolvePath","isFalse","getAbstractTestPath","CommandService","fakeCommand","code","storesFile","deleteFile","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport '@sprucelabs/spruce-store-plugin'\nimport CommandService from '../../../services/CommandService'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\n\t@test()\n\tprotected static async hasCreateStoreAction() {\n\t\tassert.isFunction(this.Action('store', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async getsNoStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\tassert.isFalsy(health.skill.errors)\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isArray(health.store.stores)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 0)\n\t}\n\n\t@test()\n\tprotected static async generatesValidStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'People.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async generatesAMapFile() {\n\t\tconst file = this.resolveHashSprucePath('stores', 'stores.ts')\n\t\tassert.isTrue(diskUtil.doesFileExist(file))\n\t\tawait this.Service('typeChecker').check(file)\n\t}\n\n\t@test()\n\tprotected static async getsOneStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 1)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async canGenerateASecondStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Bids.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsSecondStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ shouldRunOnSourceFiles: true })\n\n\t\t//@ts-ignore\n\t\tassert.isTruthy(health.store)\n\t\t//@ts-ignore\n\t\tassert.isFalsy(health.store.errors)\n\t\t//@ts-ignore\n\t\tassert.isLength(health.store.stores, 2)\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[0].name, 'Bids')\n\t\t//@ts-ignore\n\t\tassert.isEqual(health.store.stores[1].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async errorsWhenGeneratingAStoreWithTheSameName() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'STORE_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async storeFactoryAndStoresAreTyped() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Product',\n\t\t\tnameReadablePlural: 'Products',\n\t\t\tnamePascal: 'Product',\n\t\t})\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Products.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst storeContents = diskUtil\n\t\t\t.readFile(path)\n\t\t\t.replace(\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions',\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions & {hello: string}'\n\t\t\t)\n\n\t\tdiskUtil.writeFile(path, storeContents)\n\n\t\tconst testFile = this.resolveTestPath('store-test.ts.hbs')\n\t\tconst testContents = diskUtil.readFile(testFile)\n\n\t\tconst dest = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(dest, testContents)\n\n\t\tawait this.Service('typeChecker').check(dest)\n\t}\n\n\t@test()\n\tprotected static async doesNotCreateAbstractTestFileBecauseTestIsNotInstalled() {\n\t\tassert.isFalse(\n\t\t\tdiskUtil.doesFileExist(CreatingDataStoresTest.getAbstractTestPath())\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeRestoresDataStoreTypes() {\n\t\tCommandService.fakeCommand('yarn rebuild', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.fakeCommand(/yarn add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst storesFile = this.resolveHashSprucePath('stores/stores.types.ts')\n\t\tdiskUtil.deleteFile(storesFile)\n\t\tawait this.Action('node', 'upgrade').execute({})\n\t\tassert.isTrue(diskUtil.doesFileExist(storesFile))\n\t}\n\n\tprivate static getAbstractTestPath(): string {\n\t\treturn this.resolvePath('src', 'tests', 'AbstractDataStoreTest.ts')\n\t}\n}\n"],"file":"CreatingADataStore.test.js"}
@@ -4,7 +4,7 @@ export default class SelectingAnAbstractTestClassTest extends AbstractTestTest {
4
4
  protected static canSelectAbstractClassWhileSelectingSubDir(): Promise<void>;
5
5
  protected static canSelectAbstractTestBasedOnEventEmitter(): Promise<void>;
6
6
  protected static installingAFeatureRemovesLabelFromName(): Promise<void>;
7
- protected static selectingUninistalledTestInstallsTheFeature(): Promise<void>;
7
+ protected static selectingUninstalledTestInstallsTheFeature(): Promise<void>;
8
8
  private static buildAndAssertTestFailsAsExpected;
9
9
  private static installCopyTestFilesSelectLocalAbstractTest;
10
10
  private static installAndCopyTestFiles;
@@ -255,7 +255,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
255
255
  while (1) {
256
256
  switch (_context6.prev = _context6.next) {
257
257
  case 0:
258
- _CommandService["default"].setMockResponse(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
258
+ _CommandService["default"].fakeCommand(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
259
259
  code: 0
260
260
  });
261
261
 
@@ -347,9 +347,9 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
347
347
  return installingAFeatureRemovesLabelFromName;
348
348
  }()
349
349
  }, {
350
- key: "selectingUninistalledTestInstallsTheFeature",
350
+ key: "selectingUninstalledTestInstallsTheFeature",
351
351
  value: function () {
352
- var _selectingUninistalledTestInstallsTheFeature = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
352
+ var _selectingUninstalledTestInstallsTheFeature = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
353
353
  var _this2 = this;
354
354
 
355
355
  var _iterator2, _step2, _loop2;
@@ -358,7 +358,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
358
358
  while (1) {
359
359
  switch (_context8.prev = _context8.next) {
360
360
  case 0:
361
- _CommandService["default"].setMockResponse(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
361
+ _CommandService["default"].fakeCommand(new RegExp(/npm[\s\S]*?install [\s\S]*?/gi), {
362
362
  code: 0
363
363
  });
364
364
 
@@ -461,11 +461,11 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
461
461
  }, _callee6, null, [[2, 11, 14, 17]]);
462
462
  }));
463
463
 
464
- function selectingUninistalledTestInstallsTheFeature() {
465
- return _selectingUninistalledTestInstallsTheFeature.apply(this, arguments);
464
+ function selectingUninstalledTestInstallsTheFeature() {
465
+ return _selectingUninstalledTestInstallsTheFeature.apply(this, arguments);
466
466
  }
467
467
 
468
- return selectingUninistalledTestInstallsTheFeature;
468
+ return selectingUninstalledTestInstallsTheFeature;
469
469
  }()
470
470
  }, {
471
471
  key: "buildAndAssertTestFailsAsExpected",
@@ -690,6 +690,6 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
690
690
  }()
691
691
  }]);
692
692
  return SelectingAnAbstractTestClassTest;
693
- }(_AbstractTestTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "asksForYouToSelectABaseClass", [_dec], Object.getOwnPropertyDescriptor(_class, "asksForYouToSelectABaseClass"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSelectAbstractClassWhileSelectingSubDir", [_dec2], Object.getOwnPropertyDescriptor(_class, "canSelectAbstractClassWhileSelectingSubDir"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSelectAbstractTestBasedOnEventEmitter", [_dec3], Object.getOwnPropertyDescriptor(_class, "canSelectAbstractTestBasedOnEventEmitter"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "installingAFeatureRemovesLabelFromName", [_dec4], Object.getOwnPropertyDescriptor(_class, "installingAFeatureRemovesLabelFromName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "selectingUninistalledTestInstallsTheFeature", [_dec5], Object.getOwnPropertyDescriptor(_class, "selectingUninistalledTestInstallsTheFeature"), _class)), _class));
693
+ }(_AbstractTestTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "asksForYouToSelectABaseClass", [_dec], Object.getOwnPropertyDescriptor(_class, "asksForYouToSelectABaseClass"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSelectAbstractClassWhileSelectingSubDir", [_dec2], Object.getOwnPropertyDescriptor(_class, "canSelectAbstractClassWhileSelectingSubDir"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canSelectAbstractTestBasedOnEventEmitter", [_dec3], Object.getOwnPropertyDescriptor(_class, "canSelectAbstractTestBasedOnEventEmitter"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "installingAFeatureRemovesLabelFromName", [_dec4], Object.getOwnPropertyDescriptor(_class, "installingAFeatureRemovesLabelFromName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "selectingUninstalledTestInstallsTheFeature", [_dec5], Object.getOwnPropertyDescriptor(_class, "selectingUninstalledTestInstallsTheFeature"), _class)), _class));
694
694
  exports["default"] = SelectingAnAbstractTestClassTest;
695
695
  //# sourceMappingURL=SelectingAnAbstractTestClass.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","CommandService","setMockResponse","RegExp","code","testFeature","getFeatureInstaller","getFeature","feat","install","features","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","Action","type","nameReadable","nameCamel","AbstractTestTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,qBAAqB,GAAG,CAC7B,8BAD6B,EAE7B,sCAF6B,EAG7B,+CAH6B,EAI7B,2BAJ6B,EAK7B,cAL6B,EAM7B,eAN6B,EAO7B,yCAP6B,CAA9B;AAUA,IAAMC,2BAGH,GAAG,CACL;AAAEC,EAAAA,WAAW,EAAE,OAAf;AAAwBC,EAAAA,SAAS,EAAE;AAAnC,CADK,EAEL;AAAED,EAAAA,WAAW,EAAE,MAAf;AAAuBC,EAAAA,SAAS,EAAE;AAAlC,CAFK,CAHN;IAQqBC,gC,WACnB,iB,UAcA,iB,UAoBA,iB,UAoDA,iB,UA8BA,iB;;;;;;;;;;;;;wHApHD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKC,2CAAL,EAF3B;;AAAA;AAAA;AAESC,gBAAAA,OAFT,yBAESA,OAFT;AAAA;AAAA,uBAIuBA,OAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAMCC,kCAASC,gCAAT,CACC,4BADD,EAECF,OAAO,CAACG,KAFT;;AAND;AAAA,uBAWO,KAAKC,iCAAL,EAXP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sIAcA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,WAAxB,EAAqC,YAArC,EAAmD,MAAnD,CAFjB;;AAGCC,2CAASC,SAAT,CAAmBH,OAAnB;;AAHD;AAAA,uBAKO,KAAKI,uBAAL,EALP;;AAAA;AAAA;AAAA,uBAO2B,KAAKC,iCAAL,EAP3B;;AAAA;AAAA;AAOSX,gBAAAA,OAPT,yBAOSA,OAPT;AAAA;AAAA,uBASO,KAAKY,EAAL,CAAQC,SAAR,CAAkB,MAAlB,CATP;;AAAA;AAAA;AAAA,uBAWO,KAAKC,YAAL,EAXP;;AAAA;AAaC,qBAAKC,wBAAL,CAA8B,yCAA9B;AAbD;AAAA,uBAeOf,OAfP;;AAAA;AAAA;AAAA,uBAiBO,KAAKK,iCAAL,EAjBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAoBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKW,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAGC,qBAAKA,GAAG,CAACC,EAAJ,CAAO,qCAAP,6FAA8C;AAAA;AAAA;AAAA;AAAA;AAAA,4DAC3C;AACNC,4BAAAA,eAAe,EAAE,CAChB;AACCC,8BAAAA,IAAI,EAAE,WADP;AAECC,8BAAAA,KAAK,EAAE,WAFR;AAGC,wCAAQ;AAHT,6BADgB,EAMhB;AACCD,8BAAAA,IAAI,EAAE,YADP;AAECC,8BAAAA,KAAK,EAAE,YAFR;AAGC,wCAAQ;AAHT,6BANgB;AADX,2BAD2C;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA9C,GAAL;AAHD;AAAA,uBAqBQ,KAAKC,wCAAL,EArBR;;AAAA;AAAA;AAoBSC,gBAAAA,OApBT,yBAoBSA,OApBT;AAoBkBvB,gBAAAA,OApBlB,yBAoBkBA,OApBlB;;AAuBCwB,6BAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAC3BF,kBAAAA,KAAK,EAAE;AADoB,iBAA5B;;AAIAG,6BAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAC3BF,kBAAAA,KAAK,EAAE;AADoB,iBAA5B;;AAIA,qBAAKN,wBAAL,CAA8B,YAA9B;AA/BD;AAAA,uBAiCuBf,OAjCvB;;AAAA;AAiCOC,gBAAAA,OAjCP;;AAmCCuB,6BAAOE,OAAP,CAAezB,OAAO,CAAC0B,MAAvB;;AAEMC,gBAAAA,KArCP,GAqCe1B,kBAASC,gCAAT,CACb,4BADa,EAEbF,OAAO,CAACG,KAFK,CArCf;AA0COyB,gBAAAA,QA1CP,GA0CkBrB,2BAASsB,QAAT,CAAkBF,KAAlB,CA1ClB;;AA4CCJ,6BAAOC,WAAP,CACCI,QADD,EAEC,sDAFD;;AAKAL,6BAAOC,WAAP,CAAmBI,QAAnB,EAA6B,oBAA7B;;AAjDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kIAoDA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECE,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,+BAAX,CAA/B,EAAmE;AAClEC,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AAFD;AAAA,uBAMO,KAAKlB,YAAL,EANP;;AAAA;AAQOmB,gBAAAA,WARP,GAQqB,KAAKC,mBAAL,GAA2BC,UAA3B,CAAsC,MAAtC,CARrB;AAAA,uDAUoB1C,2BAVpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUY2C,0BAAAA,IAVZ;AAAA;AAAA,iCAWQ,KAAI,CAACF,mBAAL,GAA2BG,OAA3B,CAAmC;AACxCC,4BAAAA,QAAQ,EAAE,CACT;AACC;AACAN,8BAAAA,IAAI,EAAEI,IAAI,CAAC1C;AAFZ,6BADS;AAD8B,2BAAnC,CAXR;;AAAA;AAAA;AAAA,iCAoB2BuC,WAAW,CAACM,0BAAZ,EApB3B;;AAAA;AAoBQC,0BAAAA,UApBR;;AAsBElB,uCAAOmB,QAAP,CACCD,UAAU,CAACE,IAAX,CAAgB,iBAAc;AAAA,gCAAXxB,IAAW,SAAXA,IAAW;AAC7B,mCAAOA,IAAI,KAAKkB,IAAI,CAACzC,SAArB;AACA,2BAFD,CADD;;AAtBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uIA8BA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECkC,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,+BAAX,CAA/B,EAAmE;AAClEC,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AAFD,wDAMoBvC,2BANpB;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAMY2C,0BAAAA,IANZ;AAOE,0BAAA,MAAI,CAACO,GAAL,GAAWrC,2BAASsC,mBAAT,EAAX;AAPF;AAAA,iCAQQ,MAAI,CAAC9B,YAAL,EARR;;AAAA;AAAA;AAAA,iCAWS,MAAI,CAACM,wCAAL,EAXT;;AAAA;AAAA;AAUUC,0BAAAA,OAVV,yBAUUA,OAVV;AAUmBvB,0BAAAA,OAVnB,yBAUmBA,OAVnB;AAaQ4B,0BAAAA,KAbR,GAagBL,OAAO,CAACqB,IAAR,CAAa,UAACG,CAAD;AAAA,mCAAYA,CAAC,CAAC1B,KAAF,CAAQ2B,QAAR,CAAiBV,IAAI,CAACzC,SAAtB,CAAZ;AAAA,2BAAb,CAbhB;;AAeE2B,uCAAOmB,QAAP,CAAgBf,KAAhB;;AAfF;AAAA,iCAiB0B,MAAI,CAACQ,mBAAL,GAA2Ba,WAA3B,CACvBX,IAAI,CAAC1C,WADkB,CAjB1B;;AAAA;AAiBMqD,0BAAAA,WAjBN;;AAoBEzB,uCAAO0B,OAAP,CAAeD,WAAf;;AApBF;AAAA,iCAsBQ,MAAI,CAACrC,EAAL,CAAQC,SAAR,CAAkBe,KAAlB,aAAkBA,KAAlB,uBAAkBA,KAAK,CAAEuB,KAAzB,CAtBR;;AAAA;AAAA;AAAA,iCAwBQnD,OAxBR;;AAAA;AAAA;AAAA,iCA0BsB,MAAI,CAACoC,mBAAL,GAA2Ba,WAA3B,CACnBX,IAAI,CAAC1C,WADc,CA1BtB;;AAAA;AA0BEqD,0BAAAA,WA1BF;;AA6BEzB,uCAAO4B,MAAP,CAAcH,WAAd;;AA7BF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAiCA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAKI,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EADP;;AAAA;AAAA;AAAA,uBAGO9B,aAAO+B,cAAP,CACL;AAAA,yBAAM,MAAI,CAACF,OAAL,CAAa,SAAb,EAAwBG,OAAxB,CAAgC,WAAhC,CAAN;AAAA,iBADK,EAEL,2CAFK,CAHP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uIASA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAK9C,uBAAL,EADP;;AAAA;AAAA;AAAA,uBAIQ,KAAKY,wCAAL,EAJR;;AAAA;AAAA;AAGSC,gBAAAA,OAHT,0BAGSA,OAHT;AAGkBvB,gBAAAA,OAHlB,0BAGkBA,OAHlB;AAAA,wDAMwBN,qBANxB;;AAAA;AAMC,yEAA8C;AAAnC+D,oBAAAA,QAAmC;;AAC7CjC,iCAAOC,WAAP,CAAmBF,OAAnB,EAA4B;AAAEF,sBAAAA,KAAK,EAAEoC;AAAT,qBAA5B;AACA;AARF;AAAA;AAAA;AAAA;AAAA;;AAUC,qBAAK1C,wBAAL,CAA8B,yCAA9B;AAVD,mDAYQ;AAAEf,kBAAAA,OAAO,EAAPA;AAAF,iBAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mHAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACO,KAAKgB,YAAL,EADP;;AAAA;AAAA;AAAA,uBAEO,KAAK0C,aAAL,EAFP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AACOC,gBAAAA,MADP,GACgB,KAAKC,eAAL,CAAqB,gBAArB,CADhB;AAEOC,gBAAAA,WAFP,GAEqB,KAAKtD,WAAL,CAAiB,KAAjB,CAFrB;AAAA;AAAA,uBAIOC,2BAASsD,OAAT,CAAiBH,MAAjB,EAAyBE,WAAzB,CAJP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAOA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAC2B,KAAKlD,iCAAL,EAD3B;;AAAA;AAAA;AACSX,gBAAAA,OADT,0BACSA,OADT;AAGO+D,gBAAAA,IAHP,GAGc,KAAKnD,EAAL,CAAQoD,iBAAR,EAHd;AAAA,iDAIqBD,IAAI,CAACE,OAAL,CAAaA,OAJlC,yEAI6C,EAJ7C,EAIS1C,OAJT,SAISA,OAJT;AAAA,mDAMQ;AAAEvB,kBAAAA,OAAO,EAAPA,OAAF;AAAWuB,kBAAAA,OAAO,EAAPA;AAAX,iBANR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AACOvB,gBAAAA,OADP,GACiB,KAAKkE,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BV,OAA9B,CAAsC;AACrDW,kBAAAA,IAAI,EAAE,YAD+C;AAErDC,kBAAAA,YAAY,EAAE,sBAFuC;AAGrDC,kBAAAA,SAAS,EAAE;AAH0C,iBAAtC,CADjB;AAAA;AAAA,uBAOO,KAAKvD,YAAL,EAPP;;AAAA;AAAA,mDAQQ;AAAEd,kBAAAA,OAAO,EAAPA;AAAF,iBARR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAtM6DsE,6B","sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CommandService from '../../../services/CommandService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tCommandService.setMockResponse(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninistalledTestInstallsTheFeature() {\n\t\tCommandService.setMockResponse(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"file":"SelectingAnAbstractTestClass.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","CommandService","fakeCommand","RegExp","code","testFeature","getFeatureInstaller","getFeature","feat","install","features","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","Action","type","nameReadable","nameCamel","AbstractTestTest"],"mappings":"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","sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../../features/features.types'\nimport CommandService from '../../../services/CommandService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tCommandService.fakeCommand(new RegExp(/npm.*?install .*?/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"file":"SelectingAnAbstractTestClass.test.js"}
@@ -1,4 +1,4 @@
1
- import AbstractSkillTest from '../../tests/AbstractSkillTest';
1
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest';
2
2
  export default class UpdatingDependenciesTest extends AbstractSkillTest {
3
3
  protected static skillCacheKey: string;
4
4
  private static action;
@@ -31,7 +31,7 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
31
31
 
32
32
  var _test = require("@sprucelabs/test");
33
33
 
34
- var _AbstractSkillTest2 = _interopRequireDefault(require("../../tests/AbstractSkillTest"));
34
+ var _AbstractSkillTest2 = _interopRequireDefault(require("../../../tests/AbstractSkillTest"));
35
35
 
36
36
  var _dec, _dec2, _dec3, _class, _class2;
37
37
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies.test.ts"],"names":["UpdatingDependenciesTest","action","Action","assert","isFunction","execute","files","file","diskUtil","writeFile","resolvePath","promise","wait","isFalse","doesFileExist","path","dir","isTrue","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAKA,iB,UAuBA,iB;;;;;;;;;;;;;sGAjCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,MAAL,GAAc,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,CAAd;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2GAKA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKH,MAAL,CAAYI,OAA9B;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oJAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,KAFP,GAEe,CAAC,mBAAD,EAAsB,WAAtB,CAFf;;AAGC,sCAAmBA,KAAnB,4BAA0B;AAAfC,kBAAAA,IAAe;;AACzBC,6CAASC,SAAT,CAAmB,KAAKC,WAAL,CAAiBH,IAAjB,CAAnB,EAA2C,WAA3C;AACA;;AAEKI,gBAAAA,OAPP,GAOiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CAPjB;AAAA;AAAA,uBASO,KAAKO,IAAL,CAAU,EAAV,CATP;;AAAA;AAWC,wCAAmBN,KAAnB,+BAA0B;AAAfC,kBAAAA,KAAe;;AACzBJ,+BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuB,KAAKJ,WAAL,CAAiBH,KAAjB,CAAvB,CAAf;AACA;;AAbF;AAAA,uBAeOI,OAfP;;AAAA;AAiBC,wCAAmBL,KAAnB,+BAA0B;AAAfC,kBAAAA,MAAe;AACnBQ,kBAAAA,IADmB,GACZ,KAAKL,WAAL,CAAiBH,MAAjB,CADY;;AAEzBJ,+BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBC,IAAvB,CAAf,6BAAiEA,IAAjE;AACA;;AApBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,GAFP,GAEa,KAAKN,WAAL,CAAiB,cAAjB,CAFb;;AAICP,6BAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;AAEML,gBAAAA,OANP,GAMiB,KAAKV,MAAL,CAAYI,OAAZ,CAAoB,EAApB,CANjB;AAAA;AAAA,uBAQO,KAAKO,IAAL,CAAU,GAAV,CARP;;AAAA;AAUCT,6BAAOU,OAAP,CAAeL,2BAASM,aAAT,CAAuBE,GAAvB,CAAf;;AAVD;AAAA,uBAYOL,OAZP;;AAAA;AAcCR,6BAAOc,MAAP,CAAcT,2BAASM,aAAT,CAAuBE,GAAvB,CAAd;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAtCqDE,8B,8DACpB,M","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class UpdatingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'node'\n\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async hasUpdateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async removesLockFilesBeforeInstallAndAlsoCleansUpAfterInstall() {\n\t\tconst files = ['package-lock.json', 'yarn.lock']\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.writeFile(this.resolvePath(file), 'not empty')\n\t\t}\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(10)\n\n\t\tfor (const file of files) {\n\t\t\tassert.isFalse(diskUtil.doesFileExist(this.resolvePath(file)))\n\t\t}\n\n\t\tawait promise\n\n\t\tfor (const file of files) {\n\t\t\tconst path = this.resolvePath(file)\n\t\t\tassert.isFalse(diskUtil.doesFileExist(path), `Expectedly found ${path}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async removesAndReAddsNodeModulesFolder() {\n\t\tconst dir = this.resolvePath('node_modules')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\n\t\tconst promise = this.action.execute({})\n\n\t\tawait this.wait(100)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(dir))\n\n\t\tawait promise\n\n\t\tassert.isTrue(diskUtil.doesFileExist(dir))\n\t}\n}\n"],"file":"UpdatingDependencies.test.js"}
@@ -1,4 +1,4 @@
1
- import AbstractCliTest from '../../tests/AbstractCliTest';
1
+ import AbstractCliTest from '../../../tests/AbstractCliTest';
2
2
  export default class UpdateDependencies2Test extends AbstractCliTest {
3
3
  private static action;
4
4
  protected static beforeEach(): Promise<void>;
@@ -33,9 +33,9 @@ var _test = require("@sprucelabs/test");
33
33
 
34
34
  var _lodash = require("lodash");
35
35
 
36
- var _CommandService = _interopRequireDefault(require("../../services/CommandService"));
36
+ var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
37
37
 
38
- var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
38
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
39
39
 
40
40
  var _dec, _dec2, _class, _class2;
41
41
 
@@ -111,7 +111,7 @@ var UpdateDependencies2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
111
111
  });
112
112
  passedArgs = [];
113
113
 
114
- _CommandService["default"].setMockResponse(/(npm|yarn).*?(install|add)/, {
114
+ _CommandService["default"].fakeCommand(/(npm|yarn).*?(install|add)/, {
115
115
  code: 0,
116
116
  callback: function callback(_, args) {
117
117
  passedArgs.push.apply(passedArgs, (0, _toConsumableArray2["default"])(args));
@@ -166,7 +166,7 @@ var UpdateDependencies2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
166
166
  _this$loadAllDependen = this.loadAllDependencies(name, devName), allDeps = _this$loadAllDependen.allDeps, allDevDeps = _this$loadAllDependen.allDevDeps;
167
167
  passedArgs = [];
168
168
 
169
- _CommandService["default"].setMockResponse(/(npm|yarn).*?(install|add)/, {
169
+ _CommandService["default"].fakeCommand(/(npm|yarn).*?(install|add)/, {
170
170
  code: 0,
171
171
  callback: function callback(_, args) {
172
172
  passedArgs.push(args);