@sprucelabs/spruce-cli 15.1.8 → 15.2.3

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 (24) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  3. package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +1 -1
  4. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  5. package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +9 -1
  6. package/build/__tests__/behavioral/tests/CreatingATest.test.js +316 -26
  7. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  8. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +5 -0
  9. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +331 -160
  10. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  11. package/build/features/test/actions/CreateAction.d.ts +2 -0
  12. package/build/features/test/actions/CreateAction.js +147 -46
  13. package/build/features/test/actions/CreateAction.js.map +1 -1
  14. package/build/tests/utilities/uiAssert.utility.d.ts +4 -3
  15. package/build/tests/utilities/uiAssert.utility.js +13 -3
  16. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  17. package/package.json +26 -26
  18. package/src/__tests__/behavioral/AddingADependency.test.ts +2 -2
  19. package/src/__tests__/behavioral/UpgradingANodeModule.test.ts +2 -2
  20. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -2
  21. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +125 -11
  22. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +62 -23
  23. package/src/features/test/actions/CreateAction.ts +83 -28
  24. package/src/tests/utilities/uiAssert.utility.ts +13 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [15.2.3](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.2...v15.2.3) (2022-02-15)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ ## [15.2.2](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.1...v15.2.2) (2022-02-14)
15
+
16
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
17
+
18
+
19
+
20
+
21
+
22
+ ## [15.2.1](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.0...v15.2.1) (2022-02-14)
23
+
24
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
25
+
26
+
27
+
28
+
29
+
30
+ # [15.2.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.1.8...v15.2.0) (2022-02-13)
31
+
32
+
33
+ ### Features
34
+
35
+ * devs can now select sub dirs when creating tests ([9524ed7](https://github.com/sprucelabsai/spruce-cli-workspace/commit/9524ed7))
36
+
37
+
38
+
39
+
40
+
6
41
  ## [15.1.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.1.7...v15.1.8) (2022-02-13)
7
42
 
8
43
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/AddingADependency.test.ts"],"names":["ConfiguringDependenciesTest","assert","isFunction","Action","execute","getSkillFixture","registerCurrentSkill","name","namespace","results","isTruthy","errors","errorAssertUtil","assertError","seedDemoSkill","parentSkill","slug","isFalsy","settings","Service","dependencies","get","isEqualDeep","id","err","doesThrow","add","otherSkill","promise","waitForInput","last","ui","getLastInvocation","doesInclude","options","choices","value","label","sendInput","people","loginAsDemoPerson","uiAssertUtil","assertSelectDidNotRenderChoice","reset","skill","process","env","DEMO_NUMBER_GLOBAL_EVENTS","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport uiAssertUtil from '../../tests/utilities/uiAssert.utility'\n\nexport default class ConfiguringDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static parentSkill: {\n\t\tid: string\n\t\tslug: string\n\t\tname: string\n\t}\n\n\t@test()\n\tprotected static async hasAddDependencyAction() {\n\t\tassert.isFunction(this.Action('dependency', 'add').execute)\n\t}\n\n\t@test()\n\tprotected static async errorsWhenPassedBadNamespace() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in adding deps',\n\t\t})\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: 'waka-waka',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'SKILL_NOT_FOUND')\n\t}\n\n\t@test()\n\tprotected static async succeedsWhenPassedGoodNamespace() {\n\t\tconst parentSkill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependent skill',\n\t\t})\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: parentSkill.slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.parentSkill = parentSkill\n\n\t\tconst settings = this.Service('settings')\n\t\tconst dependencies = settings.get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies, [\n\t\t\t{\n\t\t\t\tid: parentSkill.id,\n\t\t\t\tnamespace: parentSkill.slug,\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async cantAddDependencyTwice() {\n\t\tconst err = assert.doesThrow(() =>\n\t\t\tthis.Service('dependency').add({\n\t\t\t\tid: this.parentSkill.id,\n\t\t\t\tnamespace: this.parentSkill.slug,\n\t\t\t})\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'DEPENDENCY_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async asksToSelectSkillWhenNoNamespacePassed() {\n\t\tconst otherSkill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependent skill',\n\t\t})\n\n\t\tconst promise = this.Action('dependency', 'add').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: otherSkill.slug,\n\t\t\tlabel: otherSkill.name,\n\t\t})\n\n\t\tawait this.ui.sendInput(otherSkill.slug)\n\n\t\tconst results = await promise\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst settings = this.Service('settings')\n\t\tconst dependencies = settings.get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies[1], {\n\t\t\tid: otherSkill.id,\n\t\t\tnamespace: otherSkill.slug,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotShowSkillsThatAreAlreadySetAsADependency() {\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tvoid this.Action('dependency', 'add').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tuiAssertUtil.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\tthis.parentSkill.slug,\n\t\t\tthis.parentSkill.name\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canAddSkillThatWasCreatedBySomeoneElse() {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'global dependency skill',\n\t\t})\n\n\t\tawait this.people.loginAsDemoPerson(process.env.DEMO_NUMBER_GLOBAL_EVENTS)\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"file":"AddingADependency.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/AddingADependency.test.ts"],"names":["ConfiguringDependenciesTest","assert","isFunction","Action","execute","getSkillFixture","registerCurrentSkill","name","namespace","results","isTruthy","errors","errorAssertUtil","assertError","seedDemoSkill","parentSkill","slug","isFalsy","settings","Service","dependencies","get","isEqualDeep","id","err","doesThrow","add","otherSkill","promise","waitForInput","last","ui","getLastInvocation","doesInclude","options","choices","value","label","sendInput","people","loginAsDemoPerson","uiAssert","assertSelectDidNotRenderChoice","reset","skill","process","env","DEMO_NUMBER_GLOBAL_EVENTS","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport uiAssert from '../../tests/utilities/uiAssert.utility'\n\nexport default class ConfiguringDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static parentSkill: {\n\t\tid: string\n\t\tslug: string\n\t\tname: string\n\t}\n\n\t@test()\n\tprotected static async hasAddDependencyAction() {\n\t\tassert.isFunction(this.Action('dependency', 'add').execute)\n\t}\n\n\t@test()\n\tprotected static async errorsWhenPassedBadNamespace() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in adding deps',\n\t\t})\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: 'waka-waka',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'SKILL_NOT_FOUND')\n\t}\n\n\t@test()\n\tprotected static async succeedsWhenPassedGoodNamespace() {\n\t\tconst parentSkill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependent skill',\n\t\t})\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: parentSkill.slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.parentSkill = parentSkill\n\n\t\tconst settings = this.Service('settings')\n\t\tconst dependencies = settings.get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies, [\n\t\t\t{\n\t\t\t\tid: parentSkill.id,\n\t\t\t\tnamespace: parentSkill.slug,\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async cantAddDependencyTwice() {\n\t\tconst err = assert.doesThrow(() =>\n\t\t\tthis.Service('dependency').add({\n\t\t\t\tid: this.parentSkill.id,\n\t\t\t\tnamespace: this.parentSkill.slug,\n\t\t\t})\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'DEPENDENCY_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async asksToSelectSkillWhenNoNamespacePassed() {\n\t\tconst otherSkill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependent skill',\n\t\t})\n\n\t\tconst promise = this.Action('dependency', 'add').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: otherSkill.slug,\n\t\t\tlabel: otherSkill.name,\n\t\t})\n\n\t\tawait this.ui.sendInput(otherSkill.slug)\n\n\t\tconst results = await promise\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst settings = this.Service('settings')\n\t\tconst dependencies = settings.get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies[1], {\n\t\t\tid: otherSkill.id,\n\t\t\tnamespace: otherSkill.slug,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotShowSkillsThatAreAlreadySetAsADependency() {\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tvoid this.Action('dependency', 'add').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tuiAssert.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\tthis.parentSkill.slug,\n\t\t\tthis.parentSkill.name\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canAddSkillThatWasCreatedBySomeoneElse() {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'global dependency skill',\n\t\t})\n\n\t\tawait this.people.loginAsDemoPerson(process.env.DEMO_NUMBER_GLOBAL_EVENTS)\n\n\t\tconst results = await this.Action('dependency', 'add').execute({\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"file":"AddingADependency.test.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/UpgradingANodeModule.test.ts"],"names":["UpgradingANodeModuleTest","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","setMockResponse","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssertUtil","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport uiAssertUtil from '../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.setMockResponse(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.setMockResponse(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.setMockResponse(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.setMockResponse(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssertUtil.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"file":"UpgradingANodeModule.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/UpgradingANodeModule.test.ts"],"names":["UpgradingANodeModuleTest","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","setMockResponse","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport uiAssert from '../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.setMockResponse(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.setMockResponse(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.setMockResponse(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.setMockResponse(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"file":"UpgradingANodeModule.test.js"}
@@ -1 +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","errorAssertUtil","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","uiAssertUtil","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 { errorAssertUtil } 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 uiAssertUtil 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\terrorAssertUtil.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 uiAssertUtil.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","errorAssertUtil","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAKA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;;;;;;;;;;;AAEA,IAAMA,mBAAmB,GAAG,gCAA5B;AACA,IAAMC,UAAU,GAAG,gCAAnB;AACA,IAAMC,WAAW,GAAG,6BAApB;IAEqBC,mB,WAInB,iB,UAKA,iB,UAeA,iB,UAsCA,iB,UAmBA,iB,UAkBA,iB,UA8BA,iB;;;;;;;;;;;;;2GA7HD;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;;;;;;;;;;;iIAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAAA;AAAA,uBAIuB,KAAKH,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DG,kBAAAA,YAAY,EAAEV,mBAD8C;AAE5DW,kBAAAA,SAAS,EAAEV,UAFiD;AAG5DW,kBAAAA,SAAS,EAAEV,WAHiD;AAI5DW,kBAAAA,OAAO,EAAE,KAAKC;AAJ8C,iBAAvC,CAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAWCX,6BAAOY,OAAP,CAAeD,OAAO,CAACE,MAAvB;;AACAC,2CAAgBC,WAAhB,CAA4BJ,OAAO,CAACE,MAAR,CAAe,CAAf,CAA5B,EAA+C,sBAA/C;;AAZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4HAeA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEkC,KAAKG,WAAL,EAFlC;;AAAA;AAAA;AAESL,gBAAAA,OAFT,yBAESA,OAFT;AAEkBM,gBAAAA,KAFlB,yBAEkBA,KAFlB;AAIOC,gBAAAA,oBAJP,GAI8B,CAC5B,IAAIC,MAAJ,WACIC,4BAAUC,OAAV,CAAkBJ,KAAK,CAACK,IAAxB,CADJ,gBAEE,KAAKZ,eAFP,oDAIC,KAJD,CAD4B,EAO5B,IAAIS,MAAJ,WACIC,4BAAUC,OAAV,CAAkBJ,KAAK,CAACK,IAAxB,CADJ,gBAEE,KAAKZ,eAFP,yDAIC,KAJD,CAP4B,EAa5B,IAAIS,MAAJ,WACIC,4BAAUC,OAAV,CAAkBJ,KAAK,CAACK,IAAxB,CADJ,gBAEE,KAAKZ,eAFP,gDAIC,KAJD,CAb4B,EAmB5B,wBAnB4B,EAoB5B,uBApB4B,CAJ9B;AA2BOa,gBAAAA,OA3BP,GA2BiB,KAAKC,OAAL,CAAa,aAAb,CA3BjB;AAAA,gDA6BoBN,oBA7BpB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA6BYO,gBAAAA,IA7BZ;AA8BQC,gBAAAA,KA9BR,GA8BgBC,kBAASC,gCAAT,CACbH,IADa,EAEbd,OAAO,CAACkB,KAFK,CA9BhB;AAAA;AAAA,uBAkCQN,OAAO,CAACO,KAAR,CAAcJ,KAAd,CAlCR;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yIAsCA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuC,KAAKV,WAAL,EAFvC;;AAAA;AAAA;AAESL,gBAAAA,OAFT,0BAESA,OAFT;AAEkBoB,gBAAAA,GAFlB,0BAEkBA,GAFlB;AAEuBd,gBAAAA,KAFvB,0BAEuBA,KAFvB;;AAGCjB,6BAAOgC,OAAP,CAAerB,OAAO,CAACE,MAAvB;;AAHD;AAAA,uBAKO,KAAKoB,+BAAL,CAAqCpC,UAArC,CALP;;AAAA;AAAA;AAAA,uBAO2B,KAAKK,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAP3B;;AAAA;AAOO+B,gBAAAA,WAPP;;AAQClC,6BAAOgC,OAAP,CAAeE,WAAW,CAACrB,MAA3B;;AAEMsB,gBAAAA,YAVP,GAUsBC,mBAAWC,kBAAX,CAA8B1B,OAA9B,EAAuCuB,WAAvC,CAVtB;AAAA;AAAA,uBAYO,KAAKI,8BAAL,CAAoCH,YAApC,EAAkDlB,KAAlD,CAZP;;AAAA;AAAA;AAAA,uBAaO,KAAKsB,4BAAL,CAAkCJ,YAAlC,CAbP;;AAAA;AAAA;AAAA,uBAcO,KAAKK,iCAAL,CAAuCT,GAAvC,EAA4Cd,KAA5C,CAdP;;AAAA;AAAA;AAAA,uBAeO,KAAKwB,iCAAL,CAAuCN,YAAvC,CAfP;;AAAA;AAAA;AAAA,uBAgBO,KAAKO,wBAAL,CAA8BP,YAA9B,CAhBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAmBA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKnB,WAAL,EAF3B;;AAAA;AAAA;AAESL,gBAAAA,OAFT,0BAESA,OAFT;;AAICX,6BAAOgC,OAAP,CAAerB,OAAO,CAACE,MAAvB;;AAJD,wCAMkBF,OAAO,CAACgC,IAN1B,yDAMkC,EANlC,EAMSC,IANT,QAMSA,IANT;AAQOC,gBAAAA,gBARP,GAQ0BC,2BACvBC,QADuB,CACd,KAAKC,eAAL,CAAqB,oBAArB,CADc,EAEvBC,OAFuB,CAEf,UAFe,EAEHL,IAFG,CAR1B;AAYOM,gBAAAA,QAZP,GAYkB,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,gBAAxB,CAZlB;;AAaCL,2CAASM,SAAT,CAAmBF,QAAnB,EAA6BL,gBAA7B;;AAbD;AAAA,uBAeO,KAAKrB,OAAL,CAAa,aAAb,EAA4BM,KAA5B,CAAkCoB,QAAlC,CAfP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAkBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKlC,WAAL,EAF3B;;AAAA;AAAA;AAESL,gBAAAA,OAFT,0BAESA,OAFT;AAAA;AAAA,uBAGO,KAAKa,OAAL,CAAa,KAAb,EAAoB6B,OAApB,CAA4B,wCAA5B,CAHP;;AAAA;AAKOC,gBAAAA,eALP,GAKyB3B,kBAAS4B,gCAAT,CACvB,wBADuB,EAEvB5C,OAAO,CAACkB,KAFe,CALzB;AAUO2B,gBAAAA,WAVP;;AAuBCV,2CAASM,SAAT,CAAmBE,eAAnB,EAAoCE,WAApC;;AAvBD;AAAA,uBAyB2B,KAAKtD,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAzB3B;;AAAA;AAyBO+B,gBAAAA,WAzBP;;AA2BClC,6BAAOgC,OAAP,CAAeE,WAAW,CAACrB,MAA3B;;AA3BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+IA8BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKG,WAAL,CAAiB;AACtBP,kBAAAA,OAAO,EAAEgD,8BAAYC,eAAZ,CAA4B,YAA5B,EAA0CC;AAD7B,iBAAjB,CAFP;;AAAA;AAMC,qBAAK,KAAKzD,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC3CG,kBAAAA,YAAY,EAAEV,mBAD6B;AAE3CW,kBAAAA,SAAS,EAAEV,UAFgC;AAG3CW,kBAAAA,SAAS,EAAEV;AAHgC,iBAAvC,CAAL;AAND;AAAA,uBAYO8D,qBAASC,mBAAT,CAA6B,KAAKC,EAAlC,CAZP;;AAAA;AAcC,qBAAKA,EAAL,CAAQC,KAAR;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uGAiBA,kBAAiCC,OAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACmB,KAAK5D,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CADnB;;AAAA;AACO0B,gBAAAA,GADP;AAAA;AAAA,uBAGqB,KAAKkC,oBAAL,EAHrB;;AAAA;AAGOhD,gBAAAA,KAHP;AAAA;AAAA,uBAKuB,KAAKf,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B;AACrBG,kBAAAA,YAAY,EAAEV,mBADO;AAErBW,kBAAAA,SAAS,EAAEV,UAFU;AAGrBW,kBAAAA,SAAS,EAAEV,WAHU;AAIrBW,kBAAAA,OAAO,EAAE,KAAKC;AAJO,mBAKlBsD,OALkB,EALvB;;AAAA;AAKOrD,gBAAAA,OALP;AAAA,kDAaQ;AAAEA,kBAAAA,OAAO,EAAPA,OAAF;AAAWoB,kBAAAA,GAAG,EAAHA,GAAX;AAAgBd,kBAAAA,KAAK,EAALA;AAAhB,iBAbR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;gHAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACc,KAAKiD,eAAL,GAAuBD,oBAAvB,CACZ;AACCxC,kBAAAA,IAAI,EAAE;AADP,iBADY,EAIZ;AACC0C,kBAAAA,KAAK,EAAEC,OAAO,CAACC,GAAR,CAAYC;AADpB,iBAJY,CADd;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oHAWA,mBACC3D,OADD;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO4D,gBAAAA,WAHP,GAGqB5C,kBAAS4B,gCAAT,CACnB,kBADmB,EAEnB5C,OAAO,CAACkB,KAFW,CAHrB;AAAA;AAAA,uBAQwB,KAAKL,OAAL,CAAa,QAAb,EAAuBgD,aAAvB,CAAqCD,WAArC,CARxB;;AAAA;AAQOE,gBAAAA,QARP;;AAUCzE,6BAAO0E,WAAP,CAAmBD,QAAnB,EAA6B;AAAEE,kBAAAA,QAAQ,EAAE;AAAZ,iBAA7B;;AAVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAaA,mBACChE,OADD,EAECM,KAFD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIOS,gBAAAA,KAJP,GAIeC,kBAASC,gCAAT,CACb,IAAIT,MAAJ,WACIC,4BAAUC,OAAV,CAAkBJ,KAAK,CAACK,IAAxB,CADJ,gBAEE,KAAKZ,eAFP,yDAIC,KAJD,CADa,EAObC,OAAO,CAACkB,KAPK,CAJf;AAAA;AAAA,uBAcsB,KAAKL,OAAL,CAAa,QAAb,EAAuBoD,YAAvB,CAAoClD,KAApC,CAdtB;;AAAA;AAcOmD,gBAAAA,MAdP;;AAgBC7E,6BAAO8E,OAAP,CAAeD,MAAM,CAACE,EAAtB,EAA0B,iDAA1B;;AACA/E,6BAAOgF,QAAP,mBAAgBH,MAAM,CAACI,MAAvB,mDAAgB,eAAeC,OAA/B;;AACAlF,6BAAOgF,QAAP,oBAAgBH,MAAM,CAACI,MAAvB,oDAAgB,gBAAeE,MAA/B;;AAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAqBA,mBAAyDxE,OAAzD;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOyE,gBAAAA,QADP,GACkB,CAChB;AAAEC,kBAAAA,QAAQ,EAAE;AAAZ,iBADgB,EAEhB;AAAEA,kBAAAA,QAAQ,EAAE;AAAZ,iBAFgB,CADlB;;AAMC,0CAAsBD,QAAtB,iCAAgC;AAArBE,kBAAAA,OAAqB;AACvBD,kBAAAA,QADuB,GACVC,OADU,CACvBD,QADuB;AAGzB3D,kBAAAA,KAHyB,GAGjBC,kBAAS4B,gCAAT,CACb8B,QADa,EAEb1E,OAAO,CAACkB,KAFK,CAHiB;AAQzB0D,kBAAAA,IARyB,GAQlB9B,8BAAYN,WAAZ,CACZ,KAAKqC,GADO,EAEZ,aAFY,EAGZ3F,UAHY,EAIZ,aAJY,EAKZwF,QALY,CARkB;;AAgB/BrF,+BAAO8E,OAAP,CAAepD,KAAf,EAAsB6D,IAAtB;;AACAvF,+BAAOyF,MAAP,CAAc3C,2BAAS4C,aAAT,CAAuBH,IAAvB,CAAd;AACA;;AAxBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HA2BA,mBACCxD,GADD,EAECd,KAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAIsBc,GAAG,CAAC4D,WAAJ,EAJtB;;AAAA;AAIOC,gBAAAA,MAJP;;AAMC5F,6BAAOgF,QAAP,CAAgBY,MAAM,CAACC,KAAvB;;AACA7F,6BAAO8F,QAAP,CAAgBF,MAAM,CAACC,KAAP,CAAaE,MAA7B,EAAqC,CAArC;;AAEMC,gBAAAA,SATP,GASmBnG,UATnB;AAUOoG,gBAAAA,cAVP,GAUwB7E,4BAAU8E,OAAV,CAAkBjF,KAAK,CAACK,IAAxB,CAVxB;;AAYCtB,6BAAOmG,WAAP,CAAmBP,MAAM,CAACC,KAAP,CAAaE,MAAhC,EAAwC;AACvCC,kBAAAA,SAAS,EAATA,SADuC;AAEvCC,kBAAAA,cAAc,EAAdA,cAFuC;AAGvCxF,kBAAAA,OAAO,EAAE,KAAKC;AAHyB,iBAAxC;;AAMAV,6BAAOmG,WAAP,CAAmBP,MAAM,CAACC,KAAP,CAAaO,SAAhC,EAA2C;AAC1CC,kBAAAA,uBAAuB,EAAEC,gCAAcC,IAAd,CAAmB;AAC3CP,oBAAAA,SAAS,EAATA,SAD2C;AAE3CC,oBAAAA,cAAc,EAAdA,cAF2C;AAG3CxF,oBAAAA,OAAO,EAAE,KAAKC;AAH6B,mBAAnB;AADiB,iBAA3C;;AAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wHA2BA,mBACCC,OADD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGO6F,gBAAAA,cAHP,GAGwB,CACtB;AACCC,kBAAAA,QAAQ,EAAE,wBADX;AAECC,kBAAAA,UAAU,EAAE;AAFb,iBADsB,EAKtB;AACCD,kBAAAA,QAAQ,EAAE,uBADX;AAECC,kBAAAA,UAAU,EAAE;AAFb,iBALsB,EAStB;AACCD,kBAAAA,QAAQ,EAAE,4BADX;AAECC,kBAAAA,UAAU,EAAE;AAFb,iBATsB,CAHxB;AAkBOC,gBAAAA,OAlBP,GAkBiB,KAAKnF,OAAL,CAAa,QAAb,CAlBjB;AAAA,2CAoBuBgF,cApBvB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAoBYtB,gBAAAA,OApBZ;AAqBQxD,gBAAAA,KArBR,GAqBgBC,kBAAS4B,gCAAT,CACb2B,OAAO,CAACuB,QADK,EAEb9F,OAAO,CAACkB,KAFK,CArBhB;;AA0BE7B,6BAAO8E,OAAP,CACCpD,KADD,EAECkF,gCAAcC,gBAAd,CAA+B,KAAKrB,GAAL,GAAW,aAA1C,EAAyD;AACxDiB,kBAAAA,QAAQ,EAAEvB,OAAO,CAACuB,QADsC;AAExDT,kBAAAA,SAAS,EAAEnG,UAF6C;AAGxDY,kBAAAA,OAAO,EAAE,KAAKC;AAH0C,iBAAzD,CAFD;;AA1BF;AAAA,uBAmCyBiG,OAAO,CAAC/B,YAAR,CAAqBlD,KAArB,CAnCzB;;AAAA;AAmCQ+C,gBAAAA,QAnCR;;AAoCEzE,6BAAO8E,OAAP,CAAeL,QAAQ,CAACM,EAAxB,EAA4BG,OAAO,CAACwB,UAApC;;AApCF;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EArQgDI,8B,gEAE/CrD,8BAAYC,eAAZ,GAA8BC,U","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 { errorAssertUtil } 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\terrorAssertUtil.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,6 +1,14 @@
1
1
  import AbstractTestTest from '../../../tests/AbstractTestTest';
2
2
  export default class CreatingBehavioralTestsTest extends AbstractTestTest {
3
3
  protected static hasCreateAction(): Promise<void>;
4
- protected static requiresInstallIfSkilLNotInstalled(): Promise<void>;
4
+ protected static requiresInstallIfFeatureNotInstalled(): Promise<void>;
5
5
  protected static canCreateBehavioralTest(testName: string): Promise<void>;
6
+ protected static promptsToSelectFolderIfInsideTestDir(testType: string): Promise<void>;
7
+ protected static listsManyDirsIfExistInsideTestDir(): Promise<void>;
8
+ protected static selectingAnOptionRendersToSubDir(dirName: string): Promise<void>;
9
+ protected static doesNotListFiles(): Promise<void>;
10
+ private static createTestSubDir;
11
+ private static resolveTestDir;
12
+ private static installAndStartTestActionAndWaitForInput;
13
+ private static waitAndSelectSubClass;
6
14
  }
@@ -23,6 +23,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
25
 
26
+ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
27
+
26
28
  var _test = require("@sprucelabs/test");
27
29
 
28
30
  var _LintService = _interopRequireDefault(require("../../../services/LintService"));
@@ -31,13 +33,15 @@ var _AbstractTestTest2 = _interopRequireDefault(require("../../../tests/Abstract
31
33
 
32
34
  var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
33
35
 
34
- var _dec, _dec2, _dec3, _dec4, _class;
36
+ var _uiAssert = _interopRequireDefault(require("../../../tests/utilities/uiAssert.utility"));
37
+
38
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _class;
35
39
 
36
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
41
 
38
42
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
43
 
40
- var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)('can create behavioral test with AbstractSpruceFixtureTest', 'AbstractSpruceFixtureTest'), _dec4 = (0, _test.test)('can create behavioral test with AbstractSpruceFixtureTest', 'AbstractStoreTest (requires install)'), (_class = /*#__PURE__*/function (_AbstractTestTest) {
44
+ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)('can create behavioral test with AbstractSpruceFixtureTest', 'AbstractSpruceFixtureTest'), _dec4 = (0, _test.test)('can create behavioral test with AbstractStoreTest', 'AbstractStoreTest (requires install)'), _dec5 = (0, _test.test)('finds folders inside behavioral', 'behavioral'), _dec6 = (0, _test.test)('finds folders inside implementation', 'implementation'), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)('can select subdir 1', 'test'), _dec9 = (0, _test.test)('can select subdir 2', 'test-2'), _dec10 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractTestTest) {
41
45
  (0, _inherits2["default"])(CreatingBehavioralTestsTest, _AbstractTestTest);
42
46
 
43
47
  var _super = _createSuper(CreatingBehavioralTestsTest);
@@ -72,9 +76,9 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
72
76
  return hasCreateAction;
73
77
  }()
74
78
  }, {
75
- key: "requiresInstallIfSkilLNotInstalled",
79
+ key: "requiresInstallIfFeatureNotInstalled",
76
80
  value: function () {
77
- var _requiresInstallIfSkilLNotInstalled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
81
+ var _requiresInstallIfFeatureNotInstalled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
78
82
  var testFeature, candidates;
79
83
  return _regenerator["default"].wrap(function _callee2$(_context2) {
80
84
  while (1) {
@@ -104,11 +108,11 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
104
108
  }, _callee2, this);
105
109
  }));
106
110
 
107
- function requiresInstallIfSkilLNotInstalled() {
108
- return _requiresInstallIfSkilLNotInstalled.apply(this, arguments);
111
+ function requiresInstallIfFeatureNotInstalled() {
112
+ return _requiresInstallIfFeatureNotInstalled.apply(this, arguments);
109
113
  }
110
114
 
111
- return requiresInstallIfSkilLNotInstalled;
115
+ return requiresInstallIfFeatureNotInstalled;
112
116
  }()
113
117
  }, {
114
118
  key: "canCreateBehavioralTest",
@@ -116,7 +120,8 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
116
120
  var _canCreateBehavioralTest = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(testName) {
117
121
  var _this = this;
118
122
 
119
- var promise, response, match;
123
+ var _yield$this$installAn, promise, response, match;
124
+
120
125
  return _regenerator["default"].wrap(function _callee3$(_context3) {
121
126
  while (1) {
122
127
  switch (_context3.prev = _context3.next) {
@@ -124,39 +129,31 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
124
129
  _LintService["default"].enableLinting();
125
130
 
126
131
  _context3.next = 3;
127
- return this.installTests();
132
+ return this.installAndStartTestActionAndWaitForInput();
128
133
 
129
134
  case 3:
130
- promise = this.Action('test', 'create').execute({
131
- type: 'behavioral',
132
- nameReadable: 'Can book appointment',
133
- nameCamel: 'canBookAppointment',
134
- namePascal: 'CanBookAppointment'
135
- });
136
- _context3.next = 6;
137
- return this.waitForInput();
138
-
139
- case 6:
135
+ _yield$this$installAn = _context3.sent;
136
+ promise = _yield$this$installAn.promise;
140
137
  this.selectOptionBasedOnLabel(testName);
141
- _context3.next = 9;
138
+ _context3.next = 8;
142
139
  return promise;
143
140
 
144
- case 9:
141
+ case 8:
145
142
  response = _context3.sent;
146
143
  match = _test2["default"].assertFileByNameInGeneratedFiles('CanBookAppointment.test.ts', response.files);
147
144
 
148
145
  _test.assert.doesInclude(match, 'behavioral');
149
146
 
150
- _context3.next = 14;
147
+ _context3.next = 13;
151
148
  return this.Service('build').build();
152
149
 
153
- case 14:
154
- _context3.next = 16;
150
+ case 13:
151
+ _context3.next = 15;
155
152
  return _test.assert.doesThrowAsync(function () {
156
153
  return _this.Service('command').execute('yarn test');
157
154
  }, /false[\s\S]*?does not equal[\s\S]*?true/gi);
158
155
 
159
- case 16:
156
+ case 15:
160
157
  case "end":
161
158
  return _context3.stop();
162
159
  }
@@ -170,8 +167,301 @@ var CreatingBehavioralTestsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.t
170
167
 
171
168
  return canCreateBehavioralTest;
172
169
  }()
170
+ }, {
171
+ key: "promptsToSelectFolderIfInsideTestDir",
172
+ value: function () {
173
+ var _promptsToSelectFolderIfInsideTestDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(testType) {
174
+ var _yield$this$installAn2, promise;
175
+
176
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
177
+ while (1) {
178
+ switch (_context4.prev = _context4.next) {
179
+ case 0:
180
+ _context4.next = 2;
181
+ return this.installTests();
182
+
183
+ case 2:
184
+ this.createTestSubDir(testType, 'dummy1');
185
+ _context4.next = 5;
186
+ return this.installAndStartTestActionAndWaitForInput(testType);
187
+
188
+ case 5:
189
+ _yield$this$installAn2 = _context4.sent;
190
+ promise = _yield$this$installAn2.promise;
191
+
192
+ _uiAssert["default"].assertSelectRenderChoice(this.ui, '.', testType);
193
+
194
+ _uiAssert["default"].assertSelectRenderChoice(this.ui, "dummy1", "".concat(testType, "/dummy1"));
195
+
196
+ _context4.next = 11;
197
+ return this.ui.sendInput('.');
198
+
199
+ case 11:
200
+ _context4.next = 13;
201
+ return this.waitAndSelectSubClass();
202
+
203
+ case 13:
204
+ _context4.next = 15;
205
+ return promise;
206
+
207
+ case 15:
208
+ case "end":
209
+ return _context4.stop();
210
+ }
211
+ }
212
+ }, _callee4, this);
213
+ }));
214
+
215
+ function promptsToSelectFolderIfInsideTestDir(_x2) {
216
+ return _promptsToSelectFolderIfInsideTestDir.apply(this, arguments);
217
+ }
218
+
219
+ return promptsToSelectFolderIfInsideTestDir;
220
+ }()
221
+ }, {
222
+ key: "listsManyDirsIfExistInsideTestDir",
223
+ value: function () {
224
+ var _listsManyDirsIfExistInsideTestDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
225
+ var dirs, _i, _dirs, dir, _yield$this$installAn3, promise, _i2, _dirs2, _dir;
226
+
227
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
228
+ while (1) {
229
+ switch (_context5.prev = _context5.next) {
230
+ case 0:
231
+ _context5.next = 2;
232
+ return this.installTests();
233
+
234
+ case 2:
235
+ dirs = ['dir1', 'dir2', 'dir3'];
236
+
237
+ for (_i = 0, _dirs = dirs; _i < _dirs.length; _i++) {
238
+ dir = _dirs[_i];
239
+ this.createTestSubDir('behavioral', dir);
240
+ }
241
+
242
+ _context5.next = 6;
243
+ return this.installAndStartTestActionAndWaitForInput();
244
+
245
+ case 6:
246
+ _yield$this$installAn3 = _context5.sent;
247
+ promise = _yield$this$installAn3.promise;
248
+
249
+ for (_i2 = 0, _dirs2 = dirs; _i2 < _dirs2.length; _i2++) {
250
+ _dir = _dirs2[_i2];
251
+
252
+ _uiAssert["default"].assertSelectRenderChoice(this.ui, "".concat(_dir), "behavioral/".concat(_dir));
253
+ }
254
+
255
+ _context5.next = 11;
256
+ return this.ui.sendInput('.');
257
+
258
+ case 11:
259
+ _context5.next = 13;
260
+ return this.waitAndSelectSubClass();
261
+
262
+ case 13:
263
+ _context5.next = 15;
264
+ return promise;
265
+
266
+ case 15:
267
+ case "end":
268
+ return _context5.stop();
269
+ }
270
+ }
271
+ }, _callee5, this);
272
+ }));
273
+
274
+ function listsManyDirsIfExistInsideTestDir() {
275
+ return _listsManyDirsIfExistInsideTestDir.apply(this, arguments);
276
+ }
277
+
278
+ return listsManyDirsIfExistInsideTestDir;
279
+ }()
280
+ }, {
281
+ key: "selectingAnOptionRendersToSubDir",
282
+ value: function () {
283
+ var _selectingAnOptionRendersToSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(dirName) {
284
+ var _results$files, _results$files$;
285
+
286
+ var _yield$this$installAn4, promise, results, expectedPath;
287
+
288
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
289
+ while (1) {
290
+ switch (_context6.prev = _context6.next) {
291
+ case 0:
292
+ _context6.next = 2;
293
+ return this.installTests();
294
+
295
+ case 2:
296
+ this.createTestSubDir('behavioral', dirName);
297
+ _context6.next = 5;
298
+ return this.installAndStartTestActionAndWaitForInput('behavioral');
299
+
300
+ case 5:
301
+ _yield$this$installAn4 = _context6.sent;
302
+ promise = _yield$this$installAn4.promise;
303
+ _context6.next = 9;
304
+ return this.ui.sendInput("".concat(dirName));
305
+
306
+ case 9:
307
+ _context6.next = 11;
308
+ return this.waitAndSelectSubClass();
309
+
310
+ case 11:
311
+ _context6.next = 13;
312
+ return promise;
313
+
314
+ case 13:
315
+ results = _context6.sent;
316
+ expectedPath = this.resolvePath('src', '__tests__', 'behavioral', dirName, 'CanBookAppointment.test.ts');
317
+
318
+ _test.assert.isEqual(expectedPath, (_results$files = results.files) === null || _results$files === void 0 ? void 0 : (_results$files$ = _results$files[0]) === null || _results$files$ === void 0 ? void 0 : _results$files$.path);
319
+
320
+ case 16:
321
+ case "end":
322
+ return _context6.stop();
323
+ }
324
+ }
325
+ }, _callee6, this);
326
+ }));
327
+
328
+ function selectingAnOptionRendersToSubDir(_x3) {
329
+ return _selectingAnOptionRendersToSubDir.apply(this, arguments);
330
+ }
331
+
332
+ return selectingAnOptionRendersToSubDir;
333
+ }()
334
+ }, {
335
+ key: "doesNotListFiles",
336
+ value: function () {
337
+ var _doesNotListFiles = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
338
+ var file;
339
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
340
+ while (1) {
341
+ switch (_context7.prev = _context7.next) {
342
+ case 0:
343
+ _context7.next = 2;
344
+ return this.installTests();
345
+
346
+ case 2:
347
+ this.createTestSubDir('behavioral', 'subdir');
348
+ file = this.resolveTestDir('behavioral', 'test.ts');
349
+
350
+ _spruceSkillUtils.diskUtil.writeFile(file, 'what the!?');
351
+
352
+ _context7.next = 7;
353
+ return this.installAndStartTestActionAndWaitForInput();
354
+
355
+ case 7:
356
+ _uiAssert["default"].assertSelectDidNotRenderChoice(this.ui, 'test', "behavioral/test/test.ts");
357
+
358
+ this.ui.reset();
359
+
360
+ case 9:
361
+ case "end":
362
+ return _context7.stop();
363
+ }
364
+ }
365
+ }, _callee7, this);
366
+ }));
367
+
368
+ function doesNotListFiles() {
369
+ return _doesNotListFiles.apply(this, arguments);
370
+ }
371
+
372
+ return doesNotListFiles;
373
+ }()
374
+ }, {
375
+ key: "createTestSubDir",
376
+ value: function createTestSubDir() {
377
+ var newDir = this.resolveTestDir.apply(this, arguments);
378
+
379
+ _spruceSkillUtils.diskUtil.createDir(newDir);
380
+ }
381
+ }, {
382
+ key: "resolveTestDir",
383
+ value: function resolveTestDir() {
384
+ for (var _len = arguments.length, testDirs = new Array(_len), _key = 0; _key < _len; _key++) {
385
+ testDirs[_key] = arguments[_key];
386
+ }
387
+
388
+ return this.resolvePath.apply(this, ['src', '__tests__'].concat(testDirs));
389
+ }
390
+ }, {
391
+ key: "installAndStartTestActionAndWaitForInput",
392
+ value: function () {
393
+ var _installAndStartTestActionAndWaitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
394
+ var testType,
395
+ promise,
396
+ _args8 = arguments;
397
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
398
+ while (1) {
399
+ switch (_context8.prev = _context8.next) {
400
+ case 0:
401
+ testType = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : 'behavioral';
402
+ _context8.next = 3;
403
+ return this.installTests();
404
+
405
+ case 3:
406
+ promise = this.Action('test', 'create').execute({
407
+ type: testType,
408
+ nameReadable: 'Can book appointment',
409
+ nameCamel: 'canBookAppointment',
410
+ namePascal: 'CanBookAppointment'
411
+ });
412
+ _context8.next = 6;
413
+ return this.waitForInput();
414
+
415
+ case 6:
416
+ return _context8.abrupt("return", {
417
+ promise: promise
418
+ });
419
+
420
+ case 7:
421
+ case "end":
422
+ return _context8.stop();
423
+ }
424
+ }
425
+ }, _callee8, this);
426
+ }));
427
+
428
+ function installAndStartTestActionAndWaitForInput() {
429
+ return _installAndStartTestActionAndWaitForInput.apply(this, arguments);
430
+ }
431
+
432
+ return installAndStartTestActionAndWaitForInput;
433
+ }()
434
+ }, {
435
+ key: "waitAndSelectSubClass",
436
+ value: function () {
437
+ var _waitAndSelectSubClass = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(selectedSubClass) {
438
+ return _regenerator["default"].wrap(function _callee9$(_context9) {
439
+ while (1) {
440
+ switch (_context9.prev = _context9.next) {
441
+ case 0:
442
+ _context9.next = 2;
443
+ return this.waitForInput();
444
+
445
+ case 2:
446
+ _context9.next = 4;
447
+ return this.ui.sendInput(selectedSubClass !== null && selectedSubClass !== void 0 ? selectedSubClass : '');
448
+
449
+ case 4:
450
+ case "end":
451
+ return _context9.stop();
452
+ }
453
+ }
454
+ }, _callee9, this);
455
+ }));
456
+
457
+ function waitAndSelectSubClass(_x4) {
458
+ return _waitAndSelectSubClass.apply(this, arguments);
459
+ }
460
+
461
+ return waitAndSelectSubClass;
462
+ }()
173
463
  }]);
174
464
  return CreatingBehavioralTestsTest;
175
- }(_AbstractTestTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasCreateAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasCreateAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "requiresInstallIfSkilLNotInstalled", [_dec2], Object.getOwnPropertyDescriptor(_class, "requiresInstallIfSkilLNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canCreateBehavioralTest", [_dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "canCreateBehavioralTest"), _class)), _class));
465
+ }(_AbstractTestTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasCreateAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasCreateAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "requiresInstallIfFeatureNotInstalled", [_dec2], Object.getOwnPropertyDescriptor(_class, "requiresInstallIfFeatureNotInstalled"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canCreateBehavioralTest", [_dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "canCreateBehavioralTest"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "promptsToSelectFolderIfInsideTestDir", [_dec5, _dec6], Object.getOwnPropertyDescriptor(_class, "promptsToSelectFolderIfInsideTestDir"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "listsManyDirsIfExistInsideTestDir", [_dec7], Object.getOwnPropertyDescriptor(_class, "listsManyDirsIfExistInsideTestDir"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "selectingAnOptionRendersToSubDir", [_dec8, _dec9], Object.getOwnPropertyDescriptor(_class, "selectingAnOptionRendersToSubDir"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotListFiles", [_dec10], Object.getOwnPropertyDescriptor(_class, "doesNotListFiles"), _class)), _class));
176
466
  exports["default"] = CreatingBehavioralTestsTest;
177
467
  //# sourceMappingURL=CreatingATest.test.js.map