@sprucelabs/spruce-cli 17.1.55 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js +9 -10
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
- package/build/__tests__/implementation/SkillStore.test.js +67 -50
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/cli.js +3 -3
- package/build/cli.js.map +1 -1
- package/build/features/AbstractAction.d.ts +2 -2
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +22 -22
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +8 -8
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +15 -2
- package/build/features/FeatureInstaller.js +36 -36
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.d.ts +12 -10
- package/build/features/FeatureInstallerFactory.js +2 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +4 -5
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
- package/build/features/event/actions/SetRemoteAction.js +2 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -1
- package/build/features/skill/stores/SkillStore.js +127 -100
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/watch/WatchFeature.js +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -0
- package/build/interfaces/SpyInterface.js +16 -4
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/stores/AbstractStore.d.ts +9 -7
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +19 -13
- package/build/stores/StoreFactory.js +15 -13
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +9 -6
- package/build/tests/AbstractCliTest.js +53 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js +18 -20
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/utilities/action.utility.js +3 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +28 -86
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
- package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
- package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
- package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
- package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
- package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
- package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
- package/src/__tests__/implementation/SkillStore.test.ts +23 -24
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/cli.ts +7 -3
- package/src/features/AbstractAction.ts +3 -3
- package/src/features/AbstractFeature.ts +26 -26
- package/src/features/ActionExecuter.ts +9 -9
- package/src/features/FeatureInstaller.ts +32 -12
- package/src/features/FeatureInstallerFactory.ts +17 -13
- package/src/features/OverrideActionDecorator.ts +2 -5
- package/src/features/event/actions/ListenAction.ts +1 -0
- package/src/features/event/actions/SetRemoteAction.ts +2 -1
- package/src/features/event/actions/SyncListenersAction.ts +0 -1
- package/src/features/node/NodeFeature.ts +3 -1
- package/src/features/skill/SkillFeature.ts +3 -3
- package/src/features/skill/stores/SkillStore.ts +18 -11
- package/src/features/watch/WatchFeature.ts +1 -1
- package/src/interfaces/SpyInterface.ts +10 -0
- package/src/stores/AbstractStore.ts +14 -8
- package/src/stores/StoreFactory.ts +56 -44
- package/src/tests/AbstractCliTest.ts +53 -45
- package/src/tests/AbstractSchemaTest.ts +1 -3
- package/src/utilities/action.utility.ts +3 -1
|
@@ -48,7 +48,7 @@ var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners
|
|
|
48
48
|
this.commandFaker.fakeCommand(new RegExp(/yarn/));
|
|
49
49
|
wasHit = false;
|
|
50
50
|
_context2.next = 7;
|
|
51
|
-
return this.
|
|
51
|
+
return this.emitter.on('feature.will-execute', /*#__PURE__*/function () {
|
|
52
52
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
53
53
|
var featureCode, actionCode;
|
|
54
54
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
@@ -72,7 +72,7 @@ var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners
|
|
|
72
72
|
}());
|
|
73
73
|
case 7:
|
|
74
74
|
_context2.next = 9;
|
|
75
|
-
return this.
|
|
75
|
+
return this.emitter.emit('feature.did-execute', {
|
|
76
76
|
featureCode: 'node',
|
|
77
77
|
actionCode: actionCode,
|
|
78
78
|
results: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","test","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","commandFaker","fakeCommand","RegExp","wasHit","
|
|
1
|
+
{"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","test","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","commandFaker","fakeCommand","RegExp","wasHit","emitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\n\t\tthis.commandFaker.fakeCommand(new RegExp(/yarn/))\n\n\t\tlet wasHit = false\n\n\t\tawait this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t\tresults: {},\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AAA4D;AAAA;AAAA;AAAA,IAEvCA,sBAAsB,WACzC,IAAAC,eAAI,EAAC,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAC5D,IAAAA,eAAI,EAAC,8CAA8C,EAAE,QAAQ,EAAE,KAAK,CAAC,UACrE,IAAAA,eAAI,EACJ,iEAAiE,EACjE,mBAAmB,EACnB,KAAK,EACL,QAAQ,CACR,UACA,IAAAA,eAAI,EACJ,6DAA6D,EAC7D,QAAQ,EACR,KAAK,EACL,QAAQ,CACR;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6GAbD,kBAeCC,WAAwB,EACxBC,SAAkB;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAClBC,UAAU,8DAAG,SAAS;gBAAA;gBAAA,OAEhB,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAACJ,WAAW,CAAC;cAAA;gBAE9D,IAAI,CAACK,YAAY,CAACC,WAAW,CAAC,IAAIC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7CC,MAAM,GAAG,KAAK;gBAAA;gBAAA,OAEZ,IAAI,CAACC,OAAO,CAACC,EAAE,CACpB,sBAAsB;kBAAA,0FACtB;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASV,WAAW,QAAXA,WAAW,EAAEE,UAAU,QAAVA,UAAU;4BAC/B,IAAIF,WAAW,KAAK,OAAO,IAAIE,UAAU,KAAK,gBAAgB,EAAE;8BAC/DM,MAAM,GAAG,IAAI;4BACd;0BAAC;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CACD;kBAAA;oBAAA;kBAAA;gBAAA,IACD;cAAA;gBAAA;gBAAA,OAEqB,IAAI,CAACC,OAAO,CAACE,IAAI,CAAC,qBAAqB,EAAE;kBAC9DX,WAAW,EAAE,MAAM;kBACnBE,UAAU,EAAVA,UAAU;kBACVU,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC;cAAA;gBAJIA,OAAO;gBAAA,wBAMMC,mCAAiB,CAACC,+BAA+B,CACnEF,OAAO,EACPG,uBAAW,CACX,EAHOC,MAAM,yBAANA,MAAM;gBAKdC,iBAAM,CAACC,OAAO,CAACF,MAAM,CAAC;gBAEtBC,iBAAM,CAACE,OAAO,CAACX,MAAM,EAAEP,SAAS,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAjDkDmB,4BAAe;AAAA"}
|
|
@@ -68,7 +68,7 @@ var CreatingASkillViewTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
68
68
|
switch (_context2.prev = _context2.next) {
|
|
69
69
|
case 0:
|
|
70
70
|
_context2.next = 2;
|
|
71
|
-
return this.
|
|
71
|
+
return this.featureInstaller;
|
|
72
72
|
case 2:
|
|
73
73
|
features = _context2.sent;
|
|
74
74
|
view = features.getFeature('view');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatingASkillView.test.js","names":["CreatingASkillViewTest","test","action","Action","assert","isFunction","execute","getFeatureInstaller","features","view","getFeature","isEqualDeep","dependencies","code","isRequired","viewType","waitForInput","last","ui","getLastInvocation","isEqual","command","reset","isRoot","results","isFalsy","errors","rootSvc","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","contents","diskUtil","readFile","isTruthy","errorAssert","assertError","name","promise","sendInput","dashboardVc","nameReadable","options","choices","value","appointmentsCard","buildTestfile","idInterfaceName","testFile","resolvePath","writeFile","importAll","imported","svcModel","svcId","vcModel","vcId","viewsFile","resolveHashSprucePath","viewContents","trim","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/views/CreatingASkillView.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport CreateAction from '../../../features/view/actions/CreateAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillViewTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprivate static action: CreateAction\n\tprivate static rootSvc: string\n\tpublic static appointmentsCard: string\n\tprivate static dashboardVc: string\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('view', 'create') as CreateAction\n\t}\n\n\t@test()\n\tprotected static hasCreateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async viewFieatureHasExpectedDependencies() {\n\t\tconst features = await this.getFeatureInstaller()\n\t\tconst view = features.getFeature('view')\n\t\tassert.isEqualDeep(view.dependencies, [\n\t\t\t{\n\t\t\t\tcode: 'node',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'event',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async asksIfRootSkillViewIfNotYetCreated() {\n\t\tvoid this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'confirm')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canCreateRootSkillView() {\n\t\tconst results = await this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t\tisRoot: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.rootSvc = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Root.svc.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(this.rootSvc, 'skillViewControllers')\n\t}\n\n\t@test()\n\tprotected static async generatesValidRootSkillView() {\n\t\tawait this.Service('typeChecker').check(this.rootSvc)\n\t}\n\n\t@test()\n\tprotected static async rootSkillViewExtendsAbstractSkillViewController() {\n\t\tconst contents = diskUtil.readFile(this.rootSvc)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default class RootSkillViewController extends AbstractSkillViewController'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async cantCreateTwoRootSvcs() {\n\t\tconst results = await this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t\tisRoot: true,\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors?.[0], 'SKILL_VIEW_EXISTS', {\n\t\t\tname: 'Root',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async asksForNamesIfCreatingSkillViewNotRoot() {\n\t\tconst promise = this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\n\t\tawait this.ui.sendInput('Dashboard')\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.dashboardVc = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Dashboard.svc.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(this.dashboardVc, 'skillViewControllers')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async asksForViewModelWhenCreatingSkillView() {\n\t\tconst promise = this.action.execute({\n\t\t\tviewType: 'view',\n\t\t\tnameReadable: 'Appointments card',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: 'Card',\n\t\t})\n\n\t\tawait this.ui.sendInput('Card')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.appointmentsCard = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'AppointmentsCard.vc.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static skillViewExtendsAbstractViewControllerWithProperView() {\n\t\tconst contents = diskUtil.readFile(this.appointmentsCard)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default class AppointmentsCardViewController extends AbstractViewController<Card>'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async nicelyTypesRootSkillViewController() {\n\t\tconst contents = this.buildTestfile({\n\t\t\tidInterfaceName: 'SkillViewControllerId',\n\t\t\tcode: `\nconst root = vcFactory.Controller('testing-views.root', {})\nexport const svcModel = root.render()\nexport const svcId: SkillViewControllerId = 'testing-views.root'`,\n\t\t})\n\n\t\tconst testFile = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(testFile, contents)\n\n\t\tconst imported = await this.Service('import').importAll(testFile)\n\n\t\tassert.isTruthy(imported.svcModel)\n\t\tassert.isTruthy(imported.svcId)\n\t}\n\n\t@test()\n\tprotected static async nicelyTypesViewController() {\n\t\tconst contents = this.buildTestfile({\n\t\t\tidInterfaceName: 'ViewControllerId',\n\t\t\tcode: `\n\t\tconst apptCard = vcFactory.Controller('testing-views.appointments-card', {})\n\t\texport const vcModel = apptCard.render()\n\t\texport const vcId: ViewControllerId = 'testing-views.appointments-card'`,\n\t\t})\n\n\t\tconst testFile = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(testFile, contents)\n\n\t\tconst imported = await this.Service('import').importAll(testFile)\n\n\t\tassert.isTruthy(imported.vcModel)\n\t\tassert.isTruthy(imported.vcId)\n\t}\n\n\t@test()\n\tprotected static async typesViewControllerOptions() {\n\t\tconst viewsFile = this.resolveHashSprucePath('views', 'views.ts')\n\t\tconst viewContents = diskUtil.readFile(viewsFile)\n\n\t\tassert.doesInclude(viewContents, `interface ViewControllerOptionsMap`)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`'testing-views.appointments-card': ConstructorParameters<typeof AppointmentsCardViewController>[0]`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async typesSkillViewControllerLoadOptionsOptions() {\n\t\tconst viewsFile = this.resolveHashSprucePath('views', 'views.ts')\n\t\tconst viewContents = diskUtil.readFile(viewsFile)\n\n\t\tassert.doesInclude(viewContents, `interface SkillViewControllerArgsMap`)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`type LoadOptions<Args extends Record<string,any>[]> = Args[0]['args'] extends Record<string, any> ? Args[0]['args'] : Record<never, any>`\n\t\t)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`'testing-views.root': LoadOptions<Parameters<RootSkillViewController['load']>>`\n\t\t)\n\t}\n\n\tprivate static buildTestfile(options: {\n\t\tcode: string\n\t\tidInterfaceName: 'SkillViewControllerId' | 'ViewControllerId'\n\t}) {\n\t\tconst { code, idInterfaceName } = options\n\n\t\treturn (\n\t\t\t`\nimport ` +\n\t\t\t`'#spruce/views/views'\nimport {\n\tViewControllerFactory,\n\tAuthenticatorImpl,\n\tStubStorage,\n\t${idInterfaceName},\n} from '@sprucelabs/heartwood-view-controllers'\nimport { vcDiskUtil } from '@sprucelabs/spruce-test-fixtures'\n\nAuthenticatorImpl.setStorage(new StubStorage())\n\nconst vcFactory = ViewControllerFactory.Factory({\n\tcontrollerMap: vcDiskUtil.loadViewControllersAndBuildMap('testing-views', __dirname),\n\tdevice: {} as any,\n\tconnectToApi: async () => {\n\t\treturn 'yes' as any\n\t},\n})\n${code}\n\t\t`.trim()\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreatingASkillView.test.js","names":["CreatingASkillViewTest","test","action","Action","assert","isFunction","execute","featureInstaller","features","view","getFeature","isEqualDeep","dependencies","code","isRequired","viewType","waitForInput","last","ui","getLastInvocation","isEqual","command","reset","isRoot","results","isFalsy","errors","rootSvc","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","contents","diskUtil","readFile","isTruthy","errorAssert","assertError","name","promise","sendInput","dashboardVc","nameReadable","options","choices","value","appointmentsCard","buildTestfile","idInterfaceName","testFile","resolvePath","writeFile","importAll","imported","svcModel","svcId","vcModel","vcId","viewsFile","resolveHashSprucePath","viewContents","trim","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/views/CreatingASkillView.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport CreateAction from '../../../features/view/actions/CreateAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingASkillViewTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprivate static action: CreateAction\n\tprivate static rootSvc: string\n\tpublic static appointmentsCard: string\n\tprivate static dashboardVc: string\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('view', 'create') as CreateAction\n\t}\n\n\t@test()\n\tprotected static hasCreateAction() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async viewFieatureHasExpectedDependencies() {\n\t\tconst features = await this.featureInstaller\n\t\tconst view = features.getFeature('view')\n\t\tassert.isEqualDeep(view.dependencies, [\n\t\t\t{\n\t\t\t\tcode: 'node',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'schema',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'event',\n\t\t\t\tisRequired: true,\n\t\t\t},\n\t\t])\n\t}\n\n\t@test()\n\tprotected static async asksIfRootSkillViewIfNotYetCreated() {\n\t\tvoid this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'confirm')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canCreateRootSkillView() {\n\t\tconst results = await this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t\tisRoot: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.rootSvc = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Root.svc.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(this.rootSvc, 'skillViewControllers')\n\t}\n\n\t@test()\n\tprotected static async generatesValidRootSkillView() {\n\t\tawait this.Service('typeChecker').check(this.rootSvc)\n\t}\n\n\t@test()\n\tprotected static async rootSkillViewExtendsAbstractSkillViewController() {\n\t\tconst contents = diskUtil.readFile(this.rootSvc)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default class RootSkillViewController extends AbstractSkillViewController'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async cantCreateTwoRootSvcs() {\n\t\tconst results = await this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t\tisRoot: true,\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors?.[0], 'SKILL_VIEW_EXISTS', {\n\t\t\tname: 'Root',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async asksForNamesIfCreatingSkillViewNotRoot() {\n\t\tconst promise = this.action.execute({\n\t\t\tviewType: 'skillView',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\n\t\tawait this.ui.sendInput('Dashboard')\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.dashboardVc = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Dashboard.svc.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(this.dashboardVc, 'skillViewControllers')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async asksForViewModelWhenCreatingSkillView() {\n\t\tconst promise = this.action.execute({\n\t\t\tviewType: 'view',\n\t\t\tnameReadable: 'Appointments card',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: 'Card',\n\t\t})\n\n\t\tawait this.ui.sendInput('Card')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tthis.appointmentsCard = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'AppointmentsCard.vc.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static skillViewExtendsAbstractViewControllerWithProperView() {\n\t\tconst contents = diskUtil.readFile(this.appointmentsCard)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default class AppointmentsCardViewController extends AbstractViewController<Card>'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async nicelyTypesRootSkillViewController() {\n\t\tconst contents = this.buildTestfile({\n\t\t\tidInterfaceName: 'SkillViewControllerId',\n\t\t\tcode: `\nconst root = vcFactory.Controller('testing-views.root', {})\nexport const svcModel = root.render()\nexport const svcId: SkillViewControllerId = 'testing-views.root'`,\n\t\t})\n\n\t\tconst testFile = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(testFile, contents)\n\n\t\tconst imported = await this.Service('import').importAll(testFile)\n\n\t\tassert.isTruthy(imported.svcModel)\n\t\tassert.isTruthy(imported.svcId)\n\t}\n\n\t@test()\n\tprotected static async nicelyTypesViewController() {\n\t\tconst contents = this.buildTestfile({\n\t\t\tidInterfaceName: 'ViewControllerId',\n\t\t\tcode: `\n\t\tconst apptCard = vcFactory.Controller('testing-views.appointments-card', {})\n\t\texport const vcModel = apptCard.render()\n\t\texport const vcId: ViewControllerId = 'testing-views.appointments-card'`,\n\t\t})\n\n\t\tconst testFile = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(testFile, contents)\n\n\t\tconst imported = await this.Service('import').importAll(testFile)\n\n\t\tassert.isTruthy(imported.vcModel)\n\t\tassert.isTruthy(imported.vcId)\n\t}\n\n\t@test()\n\tprotected static async typesViewControllerOptions() {\n\t\tconst viewsFile = this.resolveHashSprucePath('views', 'views.ts')\n\t\tconst viewContents = diskUtil.readFile(viewsFile)\n\n\t\tassert.doesInclude(viewContents, `interface ViewControllerOptionsMap`)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`'testing-views.appointments-card': ConstructorParameters<typeof AppointmentsCardViewController>[0]`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async typesSkillViewControllerLoadOptionsOptions() {\n\t\tconst viewsFile = this.resolveHashSprucePath('views', 'views.ts')\n\t\tconst viewContents = diskUtil.readFile(viewsFile)\n\n\t\tassert.doesInclude(viewContents, `interface SkillViewControllerArgsMap`)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`type LoadOptions<Args extends Record<string,any>[]> = Args[0]['args'] extends Record<string, any> ? Args[0]['args'] : Record<never, any>`\n\t\t)\n\t\tassert.doesInclude(\n\t\t\tviewContents,\n\t\t\t`'testing-views.root': LoadOptions<Parameters<RootSkillViewController['load']>>`\n\t\t)\n\t}\n\n\tprivate static buildTestfile(options: {\n\t\tcode: string\n\t\tidInterfaceName: 'SkillViewControllerId' | 'ViewControllerId'\n\t}) {\n\t\tconst { code, idInterfaceName } = options\n\n\t\treturn (\n\t\t\t`\nimport ` +\n\t\t\t`'#spruce/views/views'\nimport {\n\tViewControllerFactory,\n\tAuthenticatorImpl,\n\tStubStorage,\n\t${idInterfaceName},\n} from '@sprucelabs/heartwood-view-controllers'\nimport { vcDiskUtil } from '@sprucelabs/spruce-test-fixtures'\n\nAuthenticatorImpl.setStorage(new StubStorage())\n\nconst vcFactory = ViewControllerFactory.Factory({\n\tcontrollerMap: vcDiskUtil.loadViewControllersAndBuildMap('testing-views', __dirname),\n\tdevice: {} as any,\n\tconnectToApi: async () => {\n\t\treturn 'yes' as any\n\t},\n})\n${code}\n\t\t`.trim()\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -164,7 +164,7 @@ var CreatingAThemeTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.
|
|
|
164
164
|
while (1) {
|
|
165
165
|
switch (_context7.prev = _context7.next) {
|
|
166
166
|
case 0:
|
|
167
|
-
emitter = this.
|
|
167
|
+
emitter = this.emitter;
|
|
168
168
|
hitCount = 0;
|
|
169
169
|
_spruceSkillUtils.diskUtil.deleteFile(this.getThemePath());
|
|
170
170
|
_context7.next = 5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatingATheme.test.js","names":["CreatingAThemeTest","test","assert","isFunction","Action","execute","getSkillFixture","registerCurrentSkill","name","results","isFalsy","errors","isTrue","diskUtil","doesFileExist","resolveHashSprucePath","getThemePath","Service","importDefault","imported","isTruthy","errorAssert","assertError","emitter","
|
|
1
|
+
{"version":3,"file":"CreatingATheme.test.js","names":["CreatingAThemeTest","test","assert","isFunction","Action","execute","getSkillFixture","registerCurrentSkill","name","results","isFalsy","errors","isTrue","diskUtil","doesFileExist","resolveHashSprucePath","getThemePath","Service","importDefault","imported","isTruthy","errorAssert","assertError","emitter","hitCount","deleteFile","on","payload","featureCode","actionCode","isEqual","resolvePath","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/views/CreatingATheme.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class CreatingAThemeTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\n\t@test()\n\tprotected static async hasCreateThemeAction() {\n\t\tassert.isFunction(this.Action('view', 'createTheme').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFirst() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in creating a theme',\n\t\t})\n\n\t\tconst results = await this.Action('view', 'createTheme').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(\n\t\t\t\tthis.resolveHashSprucePath('events/events.contract.ts')\n\t\t\t)\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async makesThemeFile() {\n\t\tassert.isTrue(diskUtil.doesFileExist(this.getThemePath()))\n\t}\n\n\t@test()\n\tprotected static async makesValidThemeFile() {\n\t\tconst imported = await this.Service('import').importDefault(\n\t\t\tthis.getThemePath()\n\t\t)\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isTrue('color1' in imported)\n\t}\n\n\t@test()\n\tprotected static async cantRunTwice() {\n\t\tconst results = await this.Action('view', 'createTheme').execute({})\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'THEME_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async doesNotSyncEventsIfAlreadySynced() {\n\t\tconst emitter = this.emitter\n\t\tlet hitCount = 0\n\n\t\tdiskUtil.deleteFile(this.getThemePath())\n\n\t\tawait emitter.on('feature.will-execute', async (payload) => {\n\t\t\tconst { featureCode, actionCode } = payload\n\n\t\t\tif (featureCode === 'event' && actionCode === 'sync') {\n\t\t\t\thitCount++\n\t\t\t}\n\t\t})\n\n\t\tawait this.Action('view', 'createTheme').execute({})\n\n\t\tassert.isEqual(hitCount, 0)\n\t}\n\n\tprivate static getThemePath(): string {\n\t\treturn this.resolvePath('src', 'themes', 'skill.theme.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAEA;AAAgE;AAAA;AAAA;AAAA,IAE3CA,kBAAkB,WAGrC,IAAAC,eAAI,GAAE,UAKN,IAAAA,eAAI,GAAE,UAgBN,IAAAA,eAAI,GAAE,UAKN,IAAAA,eAAI,GAAE,UAUN,IAAAA,eAAI,GAAE,UAON,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,0GA3CP;QAAA;UAAA;YAAA;cAAA;gBAECC,iBAAM,CAACC,UAAU,CAAC,IAAI,CAACC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAACC,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC7D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,eAAe,EAAE,CAACC,oBAAoB,CAAC;kBACjDC,IAAI,EAAE;gBACP,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAEoB,IAAI,CAACJ,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA9DI,OAAO;gBACbP,iBAAM,CAACQ,OAAO,CAACD,OAAO,CAACE,MAAM,CAAC;gBAE9BT,iBAAM,CAACU,MAAM,CACZC,0BAAQ,CAACC,aAAa,CACrB,IAAI,CAACC,qBAAqB,CAAC,2BAA2B,CAAC,CACvD,CACD;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAECb,iBAAM,CAACU,MAAM,CAACC,0BAAQ,CAACC,aAAa,CAAC,IAAI,CAACE,YAAY,EAAE,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEwB,IAAI,CAACC,OAAO,CAAC,QAAQ,CAAC,CAACC,aAAa,CAC1D,IAAI,CAACF,YAAY,EAAE,CACnB;cAAA;gBAFKG,QAAQ;gBAIdjB,iBAAM,CAACkB,QAAQ,CAACD,QAAQ,CAAC;gBACzBjB,iBAAM,CAACU,MAAM,CAAC,QAAQ,IAAIO,QAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,IAAI,CAACf,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA9DI,OAAO;gBACbP,iBAAM,CAACkB,QAAQ,CAACX,OAAO,CAACE,MAAM,CAAC;gBAC/BU,sBAAW,CAACC,WAAW,CAACb,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOY,OAAO,GAAG,IAAI,CAACA,OAAO;gBACxBC,QAAQ,GAAG,CAAC;gBAEhBX,0BAAQ,CAACY,UAAU,CAAC,IAAI,CAACT,YAAY,EAAE,CAAC;gBAAA;gBAAA,OAElCO,OAAO,CAACG,EAAE,CAAC,sBAAsB;kBAAA,yFAAE,kBAAOC,OAAO;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAC9CC,WAAW,GAAiBD,OAAO,CAAnCC,WAAW,EAAEC,UAAU,GAAKF,OAAO,CAAtBE,UAAU;4BAE/B,IAAID,WAAW,KAAK,OAAO,IAAIC,UAAU,KAAK,MAAM,EAAE;8BACrDL,QAAQ,EAAE;4BACX;0BAAC;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CACD;kBAAA;oBAAA;kBAAA;gBAAA,IAAC;cAAA;gBAAA;gBAAA,OAEI,IAAI,CAACpB,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAEpDH,iBAAM,CAAC4B,OAAO,CAACN,QAAQ,EAAE,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,wBAAsC;MACrC,OAAO,IAAI,CAACO,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAC3D;EAAC;EAAA;AAAA,EApE8CC,8BAAiB,8DAC/B,OAAO;AAAA"}
|
|
@@ -6,12 +6,12 @@ export default class WatchingForChangesTest extends AbstractCliTest {
|
|
|
6
6
|
protected static canStartAndStopWatch(): Promise<void>;
|
|
7
7
|
protected static watchesInCorrectDir(path: string, shouldFire: boolean): Promise<void>;
|
|
8
8
|
protected static watcherFiresEventWhenASrcFileChanges(changeCount: number): Promise<void>;
|
|
9
|
-
private static stopWatching;
|
|
10
|
-
private static startWatching;
|
|
11
|
-
protected static watchRunStop(runner: () => Promise<GeneratedFileOrDir[]>): Promise<void>;
|
|
12
9
|
protected static canTrackAddingDir(): Promise<void>;
|
|
13
10
|
protected static canTrackDeletingDir(): Promise<void>;
|
|
14
11
|
protected static canTrackDeletingFile(): Promise<void>;
|
|
15
12
|
protected static canTrackDeletingFileInDirectory(): Promise<void>;
|
|
13
|
+
private static stopWatching;
|
|
14
|
+
private static startWatching;
|
|
15
|
+
protected static watchRunStop(runner: () => Promise<GeneratedFileOrDir[]>): Promise<void>;
|
|
16
16
|
private static installWatch;
|
|
17
17
|
}
|
|
@@ -138,13 +138,13 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
138
138
|
case 2:
|
|
139
139
|
cli = _context4.sent;
|
|
140
140
|
feature = cli.getFeature('watch');
|
|
141
|
-
_context4.next = 6;
|
|
142
|
-
return this.startWatching(feature);
|
|
143
|
-
case 6:
|
|
144
141
|
fireCount = 0;
|
|
145
142
|
void cli.on('watcher.did-detect-change', function () {
|
|
146
143
|
fireCount++;
|
|
147
144
|
});
|
|
145
|
+
_context4.next = 8;
|
|
146
|
+
return this.startWatching(feature);
|
|
147
|
+
case 8:
|
|
148
148
|
_spruceSkillUtils.diskUtil.writeFile(this.resolvePath(path, 'test.ts'), 'console.log("hello world")');
|
|
149
149
|
_context4.next = 11;
|
|
150
150
|
return this.stopWatching(feature);
|
|
@@ -221,126 +221,21 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
221
221
|
}
|
|
222
222
|
return watcherFiresEventWhenASrcFileChanges;
|
|
223
223
|
}()
|
|
224
|
-
}, {
|
|
225
|
-
key: "stopWatching",
|
|
226
|
-
value: function () {
|
|
227
|
-
var _stopWatching = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(feature) {
|
|
228
|
-
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
229
|
-
while (1) {
|
|
230
|
-
switch (_context6.prev = _context6.next) {
|
|
231
|
-
case 0:
|
|
232
|
-
_context6.next = 2;
|
|
233
|
-
return this.wait(3000);
|
|
234
|
-
case 2:
|
|
235
|
-
_context6.next = 4;
|
|
236
|
-
return feature.stopWatching();
|
|
237
|
-
case 4:
|
|
238
|
-
_context6.next = 6;
|
|
239
|
-
return this.wait(500);
|
|
240
|
-
case 6:
|
|
241
|
-
case "end":
|
|
242
|
-
return _context6.stop();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}, _callee6, this);
|
|
246
|
-
}));
|
|
247
|
-
function stopWatching(_x4) {
|
|
248
|
-
return _stopWatching.apply(this, arguments);
|
|
249
|
-
}
|
|
250
|
-
return stopWatching;
|
|
251
|
-
}()
|
|
252
|
-
}, {
|
|
253
|
-
key: "startWatching",
|
|
254
|
-
value: function () {
|
|
255
|
-
var _startWatching = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(feature) {
|
|
256
|
-
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
257
|
-
while (1) {
|
|
258
|
-
switch (_context7.prev = _context7.next) {
|
|
259
|
-
case 0:
|
|
260
|
-
void feature.startWatching({
|
|
261
|
-
delay: 2000,
|
|
262
|
-
sourceDir: '.'
|
|
263
|
-
});
|
|
264
|
-
_context7.next = 3;
|
|
265
|
-
return this.wait(500);
|
|
266
|
-
case 3:
|
|
267
|
-
case "end":
|
|
268
|
-
return _context7.stop();
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}, _callee7, this);
|
|
272
|
-
}));
|
|
273
|
-
function startWatching(_x5) {
|
|
274
|
-
return _startWatching.apply(this, arguments);
|
|
275
|
-
}
|
|
276
|
-
return startWatching;
|
|
277
|
-
}()
|
|
278
|
-
}, {
|
|
279
|
-
key: "watchRunStop",
|
|
280
|
-
value: function () {
|
|
281
|
-
var _watchRunStop = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(runner) {
|
|
282
|
-
var cli, feature, payloadChanges, expected, _iterator, _step, e;
|
|
283
|
-
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
284
|
-
while (1) {
|
|
285
|
-
switch (_context8.prev = _context8.next) {
|
|
286
|
-
case 0:
|
|
287
|
-
_context8.next = 2;
|
|
288
|
-
return this.installWatch();
|
|
289
|
-
case 2:
|
|
290
|
-
cli = _context8.sent;
|
|
291
|
-
feature = cli.getFeature('watch');
|
|
292
|
-
payloadChanges = {};
|
|
293
|
-
void cli.on('watcher.did-detect-change', function (payload) {
|
|
294
|
-
payloadChanges = payload.changes;
|
|
295
|
-
});
|
|
296
|
-
_context8.next = 8;
|
|
297
|
-
return this.startWatching(feature);
|
|
298
|
-
case 8:
|
|
299
|
-
_context8.next = 10;
|
|
300
|
-
return runner();
|
|
301
|
-
case 10:
|
|
302
|
-
expected = _context8.sent;
|
|
303
|
-
_context8.next = 13;
|
|
304
|
-
return this.stopWatching(feature);
|
|
305
|
-
case 13:
|
|
306
|
-
_iterator = _createForOfIteratorHelper(expected);
|
|
307
|
-
try {
|
|
308
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
309
|
-
e = _step.value;
|
|
310
|
-
_testUtils.assert.doesInclude(payloadChanges, e);
|
|
311
|
-
}
|
|
312
|
-
} catch (err) {
|
|
313
|
-
_iterator.e(err);
|
|
314
|
-
} finally {
|
|
315
|
-
_iterator.f();
|
|
316
|
-
}
|
|
317
|
-
case 15:
|
|
318
|
-
case "end":
|
|
319
|
-
return _context8.stop();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}, _callee8, this);
|
|
323
|
-
}));
|
|
324
|
-
function watchRunStop(_x6) {
|
|
325
|
-
return _watchRunStop.apply(this, arguments);
|
|
326
|
-
}
|
|
327
|
-
return watchRunStop;
|
|
328
|
-
}()
|
|
329
224
|
}, {
|
|
330
225
|
key: "canTrackAddingDir",
|
|
331
226
|
value: function () {
|
|
332
|
-
var _canTrackAddingDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
227
|
+
var _canTrackAddingDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
333
228
|
var _this = this;
|
|
334
|
-
return _regenerator["default"].wrap(function
|
|
229
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
335
230
|
while (1) {
|
|
336
|
-
switch (
|
|
231
|
+
switch (_context7.prev = _context7.next) {
|
|
337
232
|
case 0:
|
|
338
|
-
|
|
339
|
-
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
233
|
+
_context7.next = 2;
|
|
234
|
+
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
340
235
|
var newDirDest, expected;
|
|
341
|
-
return _regenerator["default"].wrap(function
|
|
236
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
342
237
|
while (1) {
|
|
343
|
-
switch (
|
|
238
|
+
switch (_context6.prev = _context6.next) {
|
|
344
239
|
case 0:
|
|
345
240
|
newDirDest = _this.resolvePath('build', 'new_dir');
|
|
346
241
|
_spruceSkillUtils.diskUtil.createDir(newDirDest);
|
|
@@ -353,20 +248,20 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
353
248
|
path: _this.resolvePath('build', 'new_dir')
|
|
354
249
|
}
|
|
355
250
|
}];
|
|
356
|
-
return
|
|
251
|
+
return _context6.abrupt("return", expected);
|
|
357
252
|
case 4:
|
|
358
253
|
case "end":
|
|
359
|
-
return
|
|
254
|
+
return _context6.stop();
|
|
360
255
|
}
|
|
361
256
|
}
|
|
362
|
-
},
|
|
257
|
+
}, _callee6);
|
|
363
258
|
})));
|
|
364
259
|
case 2:
|
|
365
260
|
case "end":
|
|
366
|
-
return
|
|
261
|
+
return _context7.stop();
|
|
367
262
|
}
|
|
368
263
|
}
|
|
369
|
-
},
|
|
264
|
+
}, _callee7, this);
|
|
370
265
|
}));
|
|
371
266
|
function canTrackAddingDir() {
|
|
372
267
|
return _canTrackAddingDir.apply(this, arguments);
|
|
@@ -376,21 +271,21 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
376
271
|
}, {
|
|
377
272
|
key: "canTrackDeletingDir",
|
|
378
273
|
value: function () {
|
|
379
|
-
var _canTrackDeletingDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
274
|
+
var _canTrackDeletingDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
380
275
|
var _this2 = this;
|
|
381
276
|
var newDirDest;
|
|
382
|
-
return _regenerator["default"].wrap(function
|
|
277
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
383
278
|
while (1) {
|
|
384
|
-
switch (
|
|
279
|
+
switch (_context9.prev = _context9.next) {
|
|
385
280
|
case 0:
|
|
386
281
|
newDirDest = this.resolvePath('build', 'new_dir');
|
|
387
282
|
_spruceSkillUtils.diskUtil.createDir(newDirDest);
|
|
388
|
-
|
|
389
|
-
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
283
|
+
_context9.next = 4;
|
|
284
|
+
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
390
285
|
var expected;
|
|
391
|
-
return _regenerator["default"].wrap(function
|
|
286
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
392
287
|
while (1) {
|
|
393
|
-
switch (
|
|
288
|
+
switch (_context8.prev = _context8.next) {
|
|
394
289
|
case 0:
|
|
395
290
|
_spruceSkillUtils.diskUtil.deleteDir(newDirDest);
|
|
396
291
|
expected = [{
|
|
@@ -402,20 +297,20 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
402
297
|
path: _this2.resolvePath('build', 'new_dir')
|
|
403
298
|
}
|
|
404
299
|
}];
|
|
405
|
-
return
|
|
300
|
+
return _context8.abrupt("return", expected);
|
|
406
301
|
case 3:
|
|
407
302
|
case "end":
|
|
408
|
-
return
|
|
303
|
+
return _context8.stop();
|
|
409
304
|
}
|
|
410
305
|
}
|
|
411
|
-
},
|
|
306
|
+
}, _callee8);
|
|
412
307
|
})));
|
|
413
308
|
case 4:
|
|
414
309
|
case "end":
|
|
415
|
-
return
|
|
310
|
+
return _context9.stop();
|
|
416
311
|
}
|
|
417
312
|
}
|
|
418
|
-
},
|
|
313
|
+
}, _callee9, this);
|
|
419
314
|
}));
|
|
420
315
|
function canTrackDeletingDir() {
|
|
421
316
|
return _canTrackDeletingDir.apply(this, arguments);
|
|
@@ -425,21 +320,21 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
425
320
|
}, {
|
|
426
321
|
key: "canTrackDeletingFile",
|
|
427
322
|
value: function () {
|
|
428
|
-
var _canTrackDeletingFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
323
|
+
var _canTrackDeletingFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
|
|
429
324
|
var _this3 = this;
|
|
430
325
|
var newFile;
|
|
431
|
-
return _regenerator["default"].wrap(function
|
|
326
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
432
327
|
while (1) {
|
|
433
|
-
switch (
|
|
328
|
+
switch (_context11.prev = _context11.next) {
|
|
434
329
|
case 0:
|
|
435
330
|
newFile = this.resolvePath('build', 'test.js');
|
|
436
331
|
_spruceSkillUtils.diskUtil.writeFile(newFile, 'test');
|
|
437
|
-
|
|
438
|
-
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
332
|
+
_context11.next = 4;
|
|
333
|
+
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
439
334
|
var expected;
|
|
440
|
-
return _regenerator["default"].wrap(function
|
|
335
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
441
336
|
while (1) {
|
|
442
|
-
switch (
|
|
337
|
+
switch (_context10.prev = _context10.next) {
|
|
443
338
|
case 0:
|
|
444
339
|
_spruceSkillUtils.diskUtil.deleteFile(newFile);
|
|
445
340
|
expected = [{
|
|
@@ -451,20 +346,20 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
451
346
|
path: _this3.resolvePath('build', 'test.js')
|
|
452
347
|
}
|
|
453
348
|
}];
|
|
454
|
-
return
|
|
349
|
+
return _context10.abrupt("return", expected);
|
|
455
350
|
case 3:
|
|
456
351
|
case "end":
|
|
457
|
-
return
|
|
352
|
+
return _context10.stop();
|
|
458
353
|
}
|
|
459
354
|
}
|
|
460
|
-
},
|
|
355
|
+
}, _callee10);
|
|
461
356
|
})));
|
|
462
357
|
case 4:
|
|
463
358
|
case "end":
|
|
464
|
-
return
|
|
359
|
+
return _context11.stop();
|
|
465
360
|
}
|
|
466
361
|
}
|
|
467
|
-
},
|
|
362
|
+
}, _callee11, this);
|
|
468
363
|
}));
|
|
469
364
|
function canTrackDeletingFile() {
|
|
470
365
|
return _canTrackDeletingFile.apply(this, arguments);
|
|
@@ -474,23 +369,23 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
474
369
|
}, {
|
|
475
370
|
key: "canTrackDeletingFileInDirectory",
|
|
476
371
|
value: function () {
|
|
477
|
-
var _canTrackDeletingFileInDirectory = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
372
|
+
var _canTrackDeletingFileInDirectory = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
|
478
373
|
var _this4 = this;
|
|
479
374
|
var newDirDest, newFile;
|
|
480
|
-
return _regenerator["default"].wrap(function
|
|
375
|
+
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
481
376
|
while (1) {
|
|
482
|
-
switch (
|
|
377
|
+
switch (_context13.prev = _context13.next) {
|
|
483
378
|
case 0:
|
|
484
379
|
newDirDest = this.resolvePath('build', 'new_dir');
|
|
485
380
|
_spruceSkillUtils.diskUtil.createDir(newDirDest);
|
|
486
381
|
newFile = this.resolvePath('build', 'new_dir', 'test.js');
|
|
487
382
|
_spruceSkillUtils.diskUtil.writeFile(newFile, 'test');
|
|
488
|
-
|
|
489
|
-
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
383
|
+
_context13.next = 6;
|
|
384
|
+
return this.watchRunStop( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
490
385
|
var expected;
|
|
491
|
-
return _regenerator["default"].wrap(function
|
|
386
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
492
387
|
while (1) {
|
|
493
|
-
switch (
|
|
388
|
+
switch (_context12.prev = _context12.next) {
|
|
494
389
|
case 0:
|
|
495
390
|
_spruceSkillUtils.diskUtil.deleteFile(newFile);
|
|
496
391
|
expected = [{
|
|
@@ -502,26 +397,128 @@ var WatchingForChangesTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
502
397
|
path: _this4.resolvePath('build', 'new_dir', 'test.js')
|
|
503
398
|
}
|
|
504
399
|
}];
|
|
505
|
-
return
|
|
400
|
+
return _context12.abrupt("return", expected);
|
|
506
401
|
case 3:
|
|
507
402
|
case "end":
|
|
508
|
-
return
|
|
403
|
+
return _context12.stop();
|
|
509
404
|
}
|
|
510
405
|
}
|
|
511
|
-
},
|
|
406
|
+
}, _callee12);
|
|
512
407
|
})));
|
|
513
408
|
case 6:
|
|
514
409
|
case "end":
|
|
515
|
-
return
|
|
410
|
+
return _context13.stop();
|
|
516
411
|
}
|
|
517
412
|
}
|
|
518
|
-
},
|
|
413
|
+
}, _callee13, this);
|
|
519
414
|
}));
|
|
520
415
|
function canTrackDeletingFileInDirectory() {
|
|
521
416
|
return _canTrackDeletingFileInDirectory.apply(this, arguments);
|
|
522
417
|
}
|
|
523
418
|
return canTrackDeletingFileInDirectory;
|
|
524
419
|
}()
|
|
420
|
+
}, {
|
|
421
|
+
key: "stopWatching",
|
|
422
|
+
value: function () {
|
|
423
|
+
var _stopWatching = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee14(feature) {
|
|
424
|
+
return _regenerator["default"].wrap(function _callee14$(_context14) {
|
|
425
|
+
while (1) {
|
|
426
|
+
switch (_context14.prev = _context14.next) {
|
|
427
|
+
case 0:
|
|
428
|
+
_context14.next = 2;
|
|
429
|
+
return this.wait(3000);
|
|
430
|
+
case 2:
|
|
431
|
+
_context14.next = 4;
|
|
432
|
+
return feature.stopWatching();
|
|
433
|
+
case 4:
|
|
434
|
+
case "end":
|
|
435
|
+
return _context14.stop();
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}, _callee14, this);
|
|
439
|
+
}));
|
|
440
|
+
function stopWatching(_x4) {
|
|
441
|
+
return _stopWatching.apply(this, arguments);
|
|
442
|
+
}
|
|
443
|
+
return stopWatching;
|
|
444
|
+
}()
|
|
445
|
+
}, {
|
|
446
|
+
key: "startWatching",
|
|
447
|
+
value: function () {
|
|
448
|
+
var _startWatching = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee15(feature) {
|
|
449
|
+
return _regenerator["default"].wrap(function _callee15$(_context15) {
|
|
450
|
+
while (1) {
|
|
451
|
+
switch (_context15.prev = _context15.next) {
|
|
452
|
+
case 0:
|
|
453
|
+
void feature.startWatching({
|
|
454
|
+
delay: 200,
|
|
455
|
+
sourceDir: '.'
|
|
456
|
+
});
|
|
457
|
+
_context15.next = 3;
|
|
458
|
+
return this.wait(1000);
|
|
459
|
+
case 3:
|
|
460
|
+
case "end":
|
|
461
|
+
return _context15.stop();
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}, _callee15, this);
|
|
465
|
+
}));
|
|
466
|
+
function startWatching(_x5) {
|
|
467
|
+
return _startWatching.apply(this, arguments);
|
|
468
|
+
}
|
|
469
|
+
return startWatching;
|
|
470
|
+
}()
|
|
471
|
+
}, {
|
|
472
|
+
key: "watchRunStop",
|
|
473
|
+
value: function () {
|
|
474
|
+
var _watchRunStop = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16(runner) {
|
|
475
|
+
var cli, feature, payloadChanges, expected, _iterator, _step, e;
|
|
476
|
+
return _regenerator["default"].wrap(function _callee16$(_context16) {
|
|
477
|
+
while (1) {
|
|
478
|
+
switch (_context16.prev = _context16.next) {
|
|
479
|
+
case 0:
|
|
480
|
+
_context16.next = 2;
|
|
481
|
+
return this.installWatch();
|
|
482
|
+
case 2:
|
|
483
|
+
cli = _context16.sent;
|
|
484
|
+
feature = cli.getFeature('watch');
|
|
485
|
+
payloadChanges = {};
|
|
486
|
+
void cli.on('watcher.did-detect-change', function (payload) {
|
|
487
|
+
payloadChanges = payload.changes;
|
|
488
|
+
});
|
|
489
|
+
_context16.next = 8;
|
|
490
|
+
return this.startWatching(feature);
|
|
491
|
+
case 8:
|
|
492
|
+
_context16.next = 10;
|
|
493
|
+
return runner();
|
|
494
|
+
case 10:
|
|
495
|
+
expected = _context16.sent;
|
|
496
|
+
_context16.next = 13;
|
|
497
|
+
return this.stopWatching(feature);
|
|
498
|
+
case 13:
|
|
499
|
+
_iterator = _createForOfIteratorHelper(expected);
|
|
500
|
+
try {
|
|
501
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
502
|
+
e = _step.value;
|
|
503
|
+
_testUtils.assert.doesInclude(payloadChanges, e);
|
|
504
|
+
}
|
|
505
|
+
} catch (err) {
|
|
506
|
+
_iterator.e(err);
|
|
507
|
+
} finally {
|
|
508
|
+
_iterator.f();
|
|
509
|
+
}
|
|
510
|
+
case 15:
|
|
511
|
+
case "end":
|
|
512
|
+
return _context16.stop();
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}, _callee16, this);
|
|
516
|
+
}));
|
|
517
|
+
function watchRunStop(_x6) {
|
|
518
|
+
return _watchRunStop.apply(this, arguments);
|
|
519
|
+
}
|
|
520
|
+
return watchRunStop;
|
|
521
|
+
}()
|
|
525
522
|
}, {
|
|
526
523
|
key: "installWatch",
|
|
527
524
|
value: function () {
|