@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.
- package/CHANGELOG.md +35 -0
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +9 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +316 -26
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +5 -0
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +331 -160
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/features/test/actions/CreateAction.d.ts +2 -0
- package/build/features/test/actions/CreateAction.js +147 -46
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.d.ts +4 -3
- package/build/tests/utilities/uiAssert.utility.js +13 -3
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/package.json +26 -26
- package/src/__tests__/behavioral/AddingADependency.test.ts +2 -2
- package/src/__tests__/behavioral/UpgradingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -2
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +125 -11
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +62 -23
- package/src/features/test/actions/CreateAction.ts +83 -28
- 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","
|
|
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","
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAUnB,iB,UAiBA,iB,UAcA,iB;;;;;;;;;;;;;sGAxCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,uBAGO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,kBAA5C,CAHP;;AAAA;AAKOC,gBAAAA,gBALP,GAK0B,KAAKC,mBAAL,EAL1B;AAMCD,gBAAAA,gBAAgB,CAACE,wBAAjB,CAA0C,OAA1C;;AAND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;gIASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECC,2CAAeC,eAAf,CAA+B,sBAA/B,EAAwD;AAAEC,kBAAAA,IAAI,EAAE;AAAR,iBAAxD;;AACAF,2CAAeC,eAAf,CAA+B,yBAA/B,EAAsD;AAAEC,kBAAAA,IAAI,EAAE;AAAR,iBAAtD;;AACAF,2CAAeC,eAAf,CAA+B,uBAA/B,EAAoD;AAAEC,kBAAAA,IAAI,EAAE;AAAR,iBAApD;;AAJD;AAAA,uBAMO,KAAKC,UAAL,GAAkBC,EAAlB,CAAqB,qBAArB,EAA4C,YAAM;AACvD,yBAAO;AACNC,oBAAAA,MAAM,EAAEC;AADF,mBAAP;AAGA,iBAJK,CANP;;AAAA;AAAA;AAAA,uBAYuB,KAAKC,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAZvB;;AAAA;AAYOC,gBAAAA,OAZP;;AAcCC,6BAAOC,QAAP,CAAgBF,OAAO,CAACJ,MAAxB;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wHAiBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEOO,gBAAAA,gBAFP,GAE0B,CAAC,sBAAD,EAAyB,sBAAzB,CAF1B;AAAA;AAAA,uBAIuB,KAAKL,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAMCC,6BAAOG,OAAP,CAAeJ,OAAO,CAACJ,MAAvB;;AAEA,iDAAqBO,gBAArB,uCAAuC;AAA5BE,kBAAAA,MAA4B;AAChCC,kBAAAA,SADgC,GACpBC,2BAASC,aAAT,CAAuB,KAAKC,WAAL,CAAiBJ,MAAjB,CAAvB,CADoB;;AAEtCJ,+BAAOS,OAAP,CAAeJ,SAAf,kCAAmDD,MAAnD;AACA;;AAXF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4HAcA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAEC,qCAAmB,CAAC,eAAD,EAAkB,cAAlB,CAAnB,4BAAsD;AAA3CM,kBAAAA,IAA2C;AAC/CC,kBAAAA,QAD+C,GACpC,KAAKH,WAAL,CAAiBE,IAAjB,CADoC;;AAErDJ,6CAASM,SAAT,CAAmBD,QAAnB,EAA6B,aAA7B;AACA;;AAEDrB,2CAAeC,eAAf,CAA+B,QAA/B,EAAyC;AACxCC,kBAAAA,IAAI,EAAE;AADkC,iBAAzC;;AAIMqB,gBAAAA,OAXP,GAWiB,KAAKhB,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+BC,OAA/B,CAAuC,EAAvC,CAXjB;AAAA;AAAA,uBAaOgB,qBAASC,6BAAT,CAAuC,KAAKC,EAA5C,CAbP;;AAAA;AAeChB,6BAAOiB,OAAP,CACCX,2BAASY,QAAT,CAAkB,KAAKV,WAAL,CAAiB,cAAjB,CAAlB,CADD,EAEC,aAFD;;AAfD;AAAA,uBAoBOK,OApBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAzCqDM,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 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":"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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 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
|
|
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
|
|
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
|
|
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: "
|
|
79
|
+
key: "requiresInstallIfFeatureNotInstalled",
|
|
76
80
|
value: function () {
|
|
77
|
-
var
|
|
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
|
|
108
|
-
return
|
|
111
|
+
function requiresInstallIfFeatureNotInstalled() {
|
|
112
|
+
return _requiresInstallIfFeatureNotInstalled.apply(this, arguments);
|
|
109
113
|
}
|
|
110
114
|
|
|
111
|
-
return
|
|
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.
|
|
132
|
+
return this.installAndStartTestActionAndWaitForInput();
|
|
128
133
|
|
|
129
134
|
case 3:
|
|
130
|
-
|
|
131
|
-
|
|
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 =
|
|
138
|
+
_context3.next = 8;
|
|
142
139
|
return promise;
|
|
143
140
|
|
|
144
|
-
case
|
|
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 =
|
|
147
|
+
_context3.next = 13;
|
|
151
148
|
return this.Service('build').build();
|
|
152
149
|
|
|
153
|
-
case
|
|
154
|
-
_context3.next =
|
|
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
|
|
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, "
|
|
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
|