@sprucelabs/spruce-cli 14.26.16 → 14.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/.spruce/errors/errors.types.d.ts +19 -0
  3. package/build/.spruce/errors/options.types.d.ts +4 -1
  4. package/build/.spruce/errors/spruceCli/dependencyExists.schema.d.ts +3 -0
  5. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js +28 -0
  6. package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -0
  7. package/build/__tests__/behavioral/AddingADependency.test.d.ts +6 -3
  8. package/build/__tests__/behavioral/AddingADependency.test.js +116 -44
  9. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  10. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +2 -2
  11. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  12. package/build/__tests__/behavioral/LoggingInAsASkill.test.js +4 -4
  13. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  14. package/build/__tests__/behavioral/ManagingDependencies.test.js +3 -3
  15. package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
  16. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
  17. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  18. package/build/__tests__/behavioral/SettingRemote.test.js +1 -1
  19. package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
  20. package/build/__tests__/behavioral/SettingUpVscode.test.js +3 -3
  21. package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
  22. package/build/__tests__/behavioral/TestingDataStores.test.js +2 -2
  23. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  24. package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -2
  25. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  26. package/build/__tests__/behavioral/events/CreatingAnEvent.test.d.ts +3 -2
  27. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +156 -106
  28. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  29. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +6 -9
  30. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  31. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +7 -4
  32. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  33. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js +7 -7
  34. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +1 -1
  35. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js +2 -2
  36. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +1 -1
  37. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +1 -1
  38. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  39. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +3 -3
  40. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  41. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +2 -2
  42. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  43. package/build/__tests__/implementation/ActionExecuter2.test.js +3 -3
  44. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  45. package/build/errors/SpruceError.js +4 -0
  46. package/build/errors/SpruceError.js.map +1 -1
  47. package/build/errors/dependencyExists.builder.d.ts +11 -0
  48. package/build/errors/dependencyExists.builder.js +22 -0
  49. package/build/errors/dependencyExists.builder.js.map +1 -0
  50. package/build/features/AbstractAction.js +1 -1
  51. package/build/features/AbstractAction.js.map +1 -1
  52. package/build/features/dependencies/actions/AddAction.js +22 -15
  53. package/build/features/dependencies/actions/AddAction.js.map +1 -1
  54. package/build/features/event/actions/CreateAction.js +1 -1
  55. package/build/features/event/actions/CreateAction.js.map +1 -1
  56. package/build/interfaces/SpyInterface.d.ts +1 -1
  57. package/build/interfaces/SpyInterface.js +2 -2
  58. package/build/interfaces/SpyInterface.js.map +1 -1
  59. package/build/services/DependencyService.d.ts +1 -0
  60. package/build/services/DependencyService.js +18 -0
  61. package/build/services/DependencyService.js.map +1 -1
  62. package/build/tests/AbstractCliTest.js +1 -1
  63. package/build/tests/AbstractCliTest.js.map +1 -1
  64. package/build/tests/utilities/uiAssert.utility.d.ts +6 -0
  65. package/build/tests/utilities/uiAssert.utility.js +51 -0
  66. package/build/tests/utilities/uiAssert.utility.js.map +1 -0
  67. package/package.json +30 -28
  68. package/src/.spruce/errors/errors.types.ts +29 -0
  69. package/src/.spruce/errors/options.types.ts +4 -1
  70. package/src/.spruce/errors/spruceCli/dependencyExists.schema.ts +22 -0
  71. package/src/__tests__/behavioral/AddingADependency.test.ts +45 -8
  72. package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +3 -3
  73. package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +4 -4
  74. package/src/__tests__/behavioral/ManagingDependencies.test.ts +3 -3
  75. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
  76. package/src/__tests__/behavioral/SettingRemote.test.ts +1 -1
  77. package/src/__tests__/behavioral/SettingUpVscode.test.ts +3 -3
  78. package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -2
  79. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +2 -2
  80. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +44 -22
  81. package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +1 -1
  82. package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +2 -0
  83. package/src/__tests__/behavioral/skill/UpgradingASkill.test.ts +7 -7
  84. package/src/__tests__/behavioral/skill/UpgradingASkill3.test.ts +2 -2
  85. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +1 -1
  86. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -3
  87. package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +2 -2
  88. package/src/__tests__/implementation/ActionExecuter2.test.ts +3 -3
  89. package/src/errors/SpruceError.ts +4 -0
  90. package/src/errors/dependencyExists.builder.ts +12 -0
  91. package/src/features/AbstractAction.ts +1 -4
  92. package/src/features/dependencies/actions/AddAction.ts +12 -5
  93. package/src/features/event/actions/CreateAction.ts +4 -1
  94. package/src/interfaces/SpyInterface.ts +1 -1
  95. package/src/services/DependencyService.ts +14 -0
  96. package/src/tests/AbstractCliTest.ts +1 -1
  97. package/src/tests/utilities/uiAssert.utility.ts +29 -0
@@ -97,7 +97,7 @@ var ManagingDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
97
97
  return this.waitForInput();
98
98
 
99
99
  case 9:
100
- last = this.ui.lastInvocation();
100
+ last = this.ui.getLastInvocation();
101
101
 
102
102
  _test.assert.isEqual(last.options.type, 'select');
103
103
 
@@ -150,7 +150,7 @@ var ManagingDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
150
150
  return this.waitForInput();
151
151
 
152
152
  case 7:
153
- last = this.ui.lastInvocation();
153
+ last = this.ui.getLastInvocation();
154
154
 
155
155
  _test.assert.isEqualDeep(last.options.value, [skill1.id]);
156
156
 
@@ -250,7 +250,7 @@ var ManagingDependenciesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
250
250
  return this.waitForInput();
251
251
 
252
252
  case 6:
253
- last = this.ui.lastInvocation();
253
+ last = this.ui.getLastInvocation();
254
254
 
255
255
  _test.assert.doesNotInclude(last.options.options.choices, {
256
256
  value: skill.id
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/ManagingDependencies.test.ts"],"names":["ManagingDependenciesTest","assert","isFunction","Action","execute","getSkillFixture","seedDemoSkill","name","skill1","skill2","waitForInput","last","ui","lastInvocation","isEqual","options","type","doesInclude","choices","value","id","reset","Service","set","namespace","slug","isEqualDeep","promise","sendInput","dependencies","get","registerCurrentSkill","skill","doesNotInclude","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class ManagingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\n\t@test()\n\tprotected static async hasAddDependencyAction() {\n\t\tassert.isFunction(this.Action('dependency', 'manage').execute)\n\t}\n\n\t@test()\n\tprotected static async showsSkillsAsCheckboxes() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 1',\n\t\t})\n\n\t\tconst skill2 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 2',\n\t\t})\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: skill1.id,\n\t\t})\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: skill2.id,\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async selectsExistingDependencies() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 3',\n\t\t})\n\n\t\tthis.Service('dependency').set([\n\t\t\t{\n\t\t\t\tnamespace: skill1.slug,\n\t\t\t\tid: skill1.id,\n\t\t\t},\n\t\t])\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\n\t\tassert.isEqualDeep(last.options.value, [skill1.id])\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canSelectANewDependencies() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 4',\n\t\t})\n\n\t\tconst skill2 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 5',\n\t\t})\n\n\t\tconst promise = this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput([skill1.id, skill2.id])\n\n\t\tconst dependencies = this.Service('settings').get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies, [\n\t\t\t{\n\t\t\t\tid: skill1.id,\n\t\t\t\tnamespace: skill1.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t])\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async doesNotShowCurrentSkill() {\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in managing deps',\n\t\t})\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue: skill.id,\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n}\n"],"file":"ManagingDependencies.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/ManagingDependencies.test.ts"],"names":["ManagingDependenciesTest","assert","isFunction","Action","execute","getSkillFixture","seedDemoSkill","name","skill1","skill2","waitForInput","last","ui","getLastInvocation","isEqual","options","type","doesInclude","choices","value","id","reset","Service","set","namespace","slug","isEqualDeep","promise","sendInput","dependencies","get","registerCurrentSkill","skill","doesNotInclude","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class ManagingDependenciesTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\n\t@test()\n\tprotected static async hasAddDependencyAction() {\n\t\tassert.isFunction(this.Action('dependency', 'manage').execute)\n\t}\n\n\t@test()\n\tprotected static async showsSkillsAsCheckboxes() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 1',\n\t\t})\n\n\t\tconst skill2 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 2',\n\t\t})\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: skill1.id,\n\t\t})\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue: skill2.id,\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async selectsExistingDependencies() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 3',\n\t\t})\n\n\t\tthis.Service('dependency').set([\n\t\t\t{\n\t\t\t\tnamespace: skill1.slug,\n\t\t\t\tid: skill1.id,\n\t\t\t},\n\t\t])\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.isEqualDeep(last.options.value, [skill1.id])\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canSelectANewDependencies() {\n\t\tconst skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 4',\n\t\t})\n\n\t\tconst skill2 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: 'dependency manage 5',\n\t\t})\n\n\t\tconst promise = this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput([skill1.id, skill2.id])\n\n\t\tconst dependencies = this.Service('settings').get('dependencies')\n\n\t\tassert.isEqualDeep(dependencies, [\n\t\t\t{\n\t\t\t\tid: skill1.id,\n\t\t\t\tnamespace: skill1.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t])\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async doesNotShowCurrentSkill() {\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in managing deps',\n\t\t})\n\n\t\tvoid this.Action('dependency', 'manage').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue: skill.id,\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n}\n"],"file":"ManagingDependencies.test.js"}
@@ -187,7 +187,7 @@ var RememberingUpgradeSelectionsTest = (_dec = (0, _test.test)(), _dec2 = (0, _t
187
187
  return this.waitForInput();
188
188
 
189
189
  case 3:
190
- last = this.ui.lastInvocation();
190
+ last = this.ui.getLastInvocation();
191
191
 
192
192
  _test.assert.doesInclude(last, {
193
193
  'options.options.choices[].value': _constants.FILE_ACTION_ALWAYS_SKIP
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/RememberingUpgradeSelections.test.ts"],"names":["RememberingUpgradeSelectionsTest","expected","getExpectedBuildCi","updater","ScriptUpdater","assertShowsAlwaysSkipOption","ui","sendInput","wait","pkg","Service","ci","get","assert","isEqual","getFeatureInstaller","getFeature","scripts","update","key","value","latestScripts","settings","waitForInput","last","lastInvocation","doesInclude","FILE_ACTION_ALWAYS_SKIP","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,gC,WAGnB,iB,UAsBA,iB,UAYA,iB;;;;;;;;;;;;;8HAlCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,QAFP,GAEkB,KAAKC,kBAAL,EAFlB;AAGOC,gBAAAA,OAHP,GAGiB,KAAKC,aAAL,CAAmB,UAAnB,EAA+B,MAA/B,CAHjB;AAAA;AAAA,uBAKO,KAAKC,2BAAL,CAAiCF,OAAjC,CALP;;AAAA;AAAA;AAAA,uBAOO,KAAKG,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAPP;;AAAA;AAAA;AAAA,uBASO,KAAKC,IAAL,CAAU,GAAV,CATP;;AAAA;AAWOC,gBAAAA,GAXP,GAWa,KAAKC,OAAL,CAAa,KAAb,CAXb;AAYOC,gBAAAA,EAZP,GAYYF,GAAG,CAACG,GAAJ,CAAQ,CAAC,SAAD,EAAY,UAAZ,CAAR,CAZZ;;AAcCC,6BAAOC,OAAP,CAAeH,EAAf,EAAmBV,QAAnB;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAiBA,8BAAoC;AACnC;AACA,aAAO,KAAKc,mBAAL,GAA2BC,UAA3B,CAAsC,OAAtC,EAA+CC,OAA/C,CAAuD,UAAvD,CAAP;AACA;;;;mHAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOd,gBAAAA,OAFP,GAEiB,KAAKC,aAAL,CAAmB,UAAnB,EAA+B,OAA/B,CAFjB;AAAA;AAAA,uBAGOD,OAAO,CAACe,MAAR,EAHP;;AAAA;AAKOjB,gBAAAA,QALP,GAKkB,KAAKC,kBAAL,EALlB;AAMOO,gBAAAA,GANP,GAMa,KAAKC,OAAL,CAAa,KAAb,CANb;AAOOC,gBAAAA,EAPP,GAOYF,GAAG,CAACG,GAAJ,CAAQ,CAAC,SAAD,EAAY,UAAZ,CAAR,CAPZ;;AASCC,6BAAOC,OAAP,CAAeH,EAAf,EAAmBV,QAAnB;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yHAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOE,gBAAAA,OAFP,GAEiB,KAAKC,aAAL,CAAmB,WAAnB,EAAgC,MAAhC,CAFjB;AAAA;AAAA,uBAGO,KAAKC,2BAAL,CAAiCF,OAAjC,CAHP;;AAAA;AAAA;AAAA,uBAKO,KAAKG,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CALP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAQA,uBAA6BY,GAA7B,EAA0CC,KAA1C,EAAyD;AACxD,UAAMjB,OAAO,GAAG,IAAIC,0BAAJ,CAAkB;AACjCK,QAAAA,GAAG,EAAE,KAAKC,OAAL,CAAa,KAAb,CAD4B;AAEjCW,QAAAA,aAAa,uCACXF,GADW,EACLC,KADK,CAFoB;AAKjCd,QAAAA,EAAE,EAAE,KAAKA,EALwB;AAMjCgB,QAAAA,QAAQ,EAAE,KAAKZ,OAAL,CAAa,UAAb;AANuB,OAAlB,CAAhB;AAQA,aAAOP,OAAP;AACA;;;;uHAED,kBAAiDA,OAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AACC,qBAAKA,OAAO,CAACe,MAAR,EAAL;AADD;AAAA,uBAGO,KAAKK,YAAL,EAHP;;AAAA;AAKOC,gBAAAA,IALP,GAKc,KAAKlB,EAAL,CAAQmB,cAAR,EALd;;AAOCZ,6BAAOa,WAAP,CAAmBF,IAAnB,EAAyB;AACxB,qDAAmCG;AADX,iBAAzB;;AAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAzD6DC,8B,8DAC5B,S","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { FILE_ACTION_ALWAYS_SKIP } from '../../constants'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\n\nexport default class RememberingUpgradeSelectionsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\n\t@test()\n\tprotected static async changedScriptsHasAlwaysSkipOptions() {\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco')\n\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\n\t\tawait this.wait(100)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\tprivate static getExpectedBuildCi() {\n\t\t//@ts-ignore\n\t\treturn this.getFeatureInstaller().getFeature('skill').scripts['build.ci']\n\t}\n\n\t@test()\n\tprotected static async shouldNotAskASecondTime() {\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco2')\n\t\tawait updater.update()\n\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\t@test()\n\tprotected static async stillAsksAboutDifferentScript() {\n\t\tconst updater = this.ScriptUpdater('build.dev', 'taco')\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\t}\n\n\tprivate static ScriptUpdater(key: string, value: string) {\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: this.Service('pkg'),\n\t\t\tlatestScripts: {\n\t\t\t\t[key]: value,\n\t\t\t},\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t\treturn updater\n\t}\n\n\tprivate static async assertShowsAlwaysSkipOption(updater: ScriptUpdater) {\n\t\tvoid updater.update()\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\t}\n}\n"],"file":"RememberingUpgradeSelections.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/RememberingUpgradeSelections.test.ts"],"names":["RememberingUpgradeSelectionsTest","expected","getExpectedBuildCi","updater","ScriptUpdater","assertShowsAlwaysSkipOption","ui","sendInput","wait","pkg","Service","ci","get","assert","isEqual","getFeatureInstaller","getFeature","scripts","update","key","value","latestScripts","settings","waitForInput","last","getLastInvocation","doesInclude","FILE_ACTION_ALWAYS_SKIP","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,gC,WAGnB,iB,UAsBA,iB,UAYA,iB;;;;;;;;;;;;;8HAlCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,QAFP,GAEkB,KAAKC,kBAAL,EAFlB;AAGOC,gBAAAA,OAHP,GAGiB,KAAKC,aAAL,CAAmB,UAAnB,EAA+B,MAA/B,CAHjB;AAAA;AAAA,uBAKO,KAAKC,2BAAL,CAAiCF,OAAjC,CALP;;AAAA;AAAA;AAAA,uBAOO,KAAKG,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CAPP;;AAAA;AAAA;AAAA,uBASO,KAAKC,IAAL,CAAU,GAAV,CATP;;AAAA;AAWOC,gBAAAA,GAXP,GAWa,KAAKC,OAAL,CAAa,KAAb,CAXb;AAYOC,gBAAAA,EAZP,GAYYF,GAAG,CAACG,GAAJ,CAAQ,CAAC,SAAD,EAAY,UAAZ,CAAR,CAZZ;;AAcCC,6BAAOC,OAAP,CAAeH,EAAf,EAAmBV,QAAnB;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAiBA,8BAAoC;AACnC;AACA,aAAO,KAAKc,mBAAL,GAA2BC,UAA3B,CAAsC,OAAtC,EAA+CC,OAA/C,CAAuD,UAAvD,CAAP;AACA;;;;mHAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOd,gBAAAA,OAFP,GAEiB,KAAKC,aAAL,CAAmB,UAAnB,EAA+B,OAA/B,CAFjB;AAAA;AAAA,uBAGOD,OAAO,CAACe,MAAR,EAHP;;AAAA;AAKOjB,gBAAAA,QALP,GAKkB,KAAKC,kBAAL,EALlB;AAMOO,gBAAAA,GANP,GAMa,KAAKC,OAAL,CAAa,KAAb,CANb;AAOOC,gBAAAA,EAPP,GAOYF,GAAG,CAACG,GAAJ,CAAQ,CAAC,SAAD,EAAY,UAAZ,CAAR,CAPZ;;AASCC,6BAAOC,OAAP,CAAeH,EAAf,EAAmBV,QAAnB;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yHAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOE,gBAAAA,OAFP,GAEiB,KAAKC,aAAL,CAAmB,WAAnB,EAAgC,MAAhC,CAFjB;AAAA;AAAA,uBAGO,KAAKC,2BAAL,CAAiCF,OAAjC,CAHP;;AAAA;AAAA;AAAA,uBAKO,KAAKG,EAAL,CAAQC,SAAR,CAAkB,YAAlB,CALP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAQA,uBAA6BY,GAA7B,EAA0CC,KAA1C,EAAyD;AACxD,UAAMjB,OAAO,GAAG,IAAIC,0BAAJ,CAAkB;AACjCK,QAAAA,GAAG,EAAE,KAAKC,OAAL,CAAa,KAAb,CAD4B;AAEjCW,QAAAA,aAAa,uCACXF,GADW,EACLC,KADK,CAFoB;AAKjCd,QAAAA,EAAE,EAAE,KAAKA,EALwB;AAMjCgB,QAAAA,QAAQ,EAAE,KAAKZ,OAAL,CAAa,UAAb;AANuB,OAAlB,CAAhB;AAQA,aAAOP,OAAP;AACA;;;;uHAED,kBAAiDA,OAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AACC,qBAAKA,OAAO,CAACe,MAAR,EAAL;AADD;AAAA,uBAGO,KAAKK,YAAL,EAHP;;AAAA;AAKOC,gBAAAA,IALP,GAKc,KAAKlB,EAAL,CAAQmB,iBAAR,EALd;;AAOCZ,6BAAOa,WAAP,CAAmBF,IAAnB,EAAyB;AACxB,qDAAmCG;AADX,iBAAzB;;AAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAzD6DC,8B,8DAC5B,S","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { FILE_ACTION_ALWAYS_SKIP } from '../../constants'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\n\nexport default class RememberingUpgradeSelectionsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\n\t@test()\n\tprotected static async changedScriptsHasAlwaysSkipOptions() {\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco')\n\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\n\t\tawait this.wait(100)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\tprivate static getExpectedBuildCi() {\n\t\t//@ts-ignore\n\t\treturn this.getFeatureInstaller().getFeature('skill').scripts['build.ci']\n\t}\n\n\t@test()\n\tprotected static async shouldNotAskASecondTime() {\n\t\tconst updater = this.ScriptUpdater('build.ci', 'taco2')\n\t\tawait updater.update()\n\n\t\tconst expected = this.getExpectedBuildCi()\n\t\tconst pkg = this.Service('pkg')\n\t\tconst ci = pkg.get(['scripts', 'build.ci'])\n\n\t\tassert.isEqual(ci, expected)\n\t}\n\n\t@test()\n\tprotected static async stillAsksAboutDifferentScript() {\n\t\tconst updater = this.ScriptUpdater('build.dev', 'taco')\n\t\tawait this.assertShowsAlwaysSkipOption(updater)\n\n\t\tawait this.ui.sendInput('alwaysSkip')\n\t}\n\n\tprivate static ScriptUpdater(key: string, value: string) {\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: this.Service('pkg'),\n\t\t\tlatestScripts: {\n\t\t\t\t[key]: value,\n\t\t\t},\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t\treturn updater\n\t}\n\n\tprivate static async assertShowsAlwaysSkipOption(updater: ScriptUpdater) {\n\t\tvoid updater.update()\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last, {\n\t\t\t'options.options.choices[].value': FILE_ACTION_ALWAYS_SKIP,\n\t\t})\n\t}\n}\n"],"file":"RememberingUpgradeSelections.test.js"}
@@ -127,7 +127,7 @@ var SettingRemoteTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)("save
127
127
  return this.waitForInput();
128
128
 
129
129
  case 6:
130
- last = this.ui.lastInvocation();
130
+ last = this.ui.getLastInvocation();
131
131
 
132
132
  _test.assert.doesInclude(last.options.label, 'remote');
133
133
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/SettingRemote.test.ts"],"names":["SettingRemoteTest","REMOTE_LOCAL","REMOTE_DEV","REMOTE_SANDBOX","REMOTE_PROD","assert","isFunction","Action","execute","remote","expected","env","Service","host","get","isEqual","feature","action","TerminalInterface","setDoesSupportColor","unset","shouldAutoHandleDependencies","waitForInput","last","ui","lastInvocation","doesInclude","options","label","reset","shouldThrowOnListenerError","results","isTruthy","errors","stack","set","summaryLines","AbstractSkillTest"],"mappings":"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","sourcesContent":["import {\n\tREMOTE_DEV,\n\tREMOTE_LOCAL,\n\tREMOTE_PROD,\n\tREMOTE_SANDBOX,\n} from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../features/features.types'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class SettingRemoteTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async hasSetRemoteAction() {\n\t\tassert.isFunction(this.Action('event', 'setRemote').execute)\n\t}\n\n\t@test(`saves local as ${REMOTE_LOCAL}`, `local`, `${REMOTE_LOCAL}`)\n\t@test(`saves dev as ${REMOTE_DEV}`, `developer`, `${REMOTE_DEV}`)\n\t@test(`saves sandbox as ${REMOTE_SANDBOX}`, `sandbox`, `${REMOTE_SANDBOX}`)\n\t@test(`saves prod as ${REMOTE_PROD}`, `production`, `${REMOTE_PROD}`)\n\tprotected static async savesRemote(remote: string, expected: string) {\n\t\tawait this.Action('event', 'setRemote').execute({ remote })\n\n\t\tconst env = this.Service('env')\n\t\tconst host = env.get('HOST')\n\n\t\tassert.isEqual(host, expected)\n\t}\n\n\t@test('create.event asks for remote on IS TTY', 'event', 'create')\n\t@test('sync.events asks for remote on IS TTY', 'event', 'sync')\n\t@test('login asks for remote on IS TTY', 'person', 'login')\n\t@test('skill.login asks for remote on IS TTY', 'skill', 'login')\n\tprotected static async shouldAskForRemoteBeforeEventActionIsInvokedIfTerminalSupportsIt(\n\t\tfeature: FeatureCode,\n\t\taction: string\n\t) {\n\t\tTerminalInterface.setDoesSupportColor(true)\n\n\t\tconst env = this.Service('env')\n\t\tenv.unset('HOST')\n\n\t\tvoid this.Action(feature, action, {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\n\t\tassert.doesInclude(last.options.label, 'remote')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test('create.event throws for remote on NOT TTY', 'create', false)\n\t@test('sync.events throws for remote on NOT TTY', 'sync', false)\n\tprotected static async shouldThrowBeforeEventActionIsInvokedIfTerminalSupportsIt(\n\t\taction: string\n\t) {\n\t\tTerminalInterface.setDoesSupportColor(false)\n\t\tconst env = this.Service('env')\n\t\tenv.unset('HOST')\n\n\t\tconst results = await this.Action('event', action, {\n\t\t\tshouldThrowOnListenerError: false,\n\t\t}).execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].stack, 'env.HOST')\n\t}\n\n\t@test()\n\tprotected static async resultsOfCommandHasRemoteMixedIntoSummary() {\n\t\tthis.Service('remote').set('developer')\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isTruthy(results.summaryLines)\n\t\tassert.doesInclude(results.summaryLines, 'Remote: dev')\n\t}\n}\n"],"file":"SettingRemote.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/SettingRemote.test.ts"],"names":["SettingRemoteTest","REMOTE_LOCAL","REMOTE_DEV","REMOTE_SANDBOX","REMOTE_PROD","assert","isFunction","Action","execute","remote","expected","env","Service","host","get","isEqual","feature","action","TerminalInterface","setDoesSupportColor","unset","shouldAutoHandleDependencies","waitForInput","last","ui","getLastInvocation","doesInclude","options","label","reset","shouldThrowOnListenerError","results","isTruthy","errors","stack","set","summaryLines","AbstractSkillTest"],"mappings":"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","sourcesContent":["import {\n\tREMOTE_DEV,\n\tREMOTE_LOCAL,\n\tREMOTE_PROD,\n\tREMOTE_SANDBOX,\n} from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureCode } from '../../features/features.types'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class SettingRemoteTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async hasSetRemoteAction() {\n\t\tassert.isFunction(this.Action('event', 'setRemote').execute)\n\t}\n\n\t@test(`saves local as ${REMOTE_LOCAL}`, `local`, `${REMOTE_LOCAL}`)\n\t@test(`saves dev as ${REMOTE_DEV}`, `developer`, `${REMOTE_DEV}`)\n\t@test(`saves sandbox as ${REMOTE_SANDBOX}`, `sandbox`, `${REMOTE_SANDBOX}`)\n\t@test(`saves prod as ${REMOTE_PROD}`, `production`, `${REMOTE_PROD}`)\n\tprotected static async savesRemote(remote: string, expected: string) {\n\t\tawait this.Action('event', 'setRemote').execute({ remote })\n\n\t\tconst env = this.Service('env')\n\t\tconst host = env.get('HOST')\n\n\t\tassert.isEqual(host, expected)\n\t}\n\n\t@test('create.event asks for remote on IS TTY', 'event', 'create')\n\t@test('sync.events asks for remote on IS TTY', 'event', 'sync')\n\t@test('login asks for remote on IS TTY', 'person', 'login')\n\t@test('skill.login asks for remote on IS TTY', 'skill', 'login')\n\tprotected static async shouldAskForRemoteBeforeEventActionIsInvokedIfTerminalSupportsIt(\n\t\tfeature: FeatureCode,\n\t\taction: string\n\t) {\n\t\tTerminalInterface.setDoesSupportColor(true)\n\n\t\tconst env = this.Service('env')\n\t\tenv.unset('HOST')\n\n\t\tvoid this.Action(feature, action, {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.label, 'remote')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test('create.event throws for remote on NOT TTY', 'create', false)\n\t@test('sync.events throws for remote on NOT TTY', 'sync', false)\n\tprotected static async shouldThrowBeforeEventActionIsInvokedIfTerminalSupportsIt(\n\t\taction: string\n\t) {\n\t\tTerminalInterface.setDoesSupportColor(false)\n\t\tconst env = this.Service('env')\n\t\tenv.unset('HOST')\n\n\t\tconst results = await this.Action('event', action, {\n\t\t\tshouldThrowOnListenerError: false,\n\t\t}).execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].stack, 'env.HOST')\n\t}\n\n\t@test()\n\tprotected static async resultsOfCommandHasRemoteMixedIntoSummary() {\n\t\tthis.Service('remote').set('developer')\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isTruthy(results.summaryLines)\n\t\tassert.doesInclude(results.summaryLines, 'Remote: dev')\n\t}\n}\n"],"file":"SettingRemote.test.js"}
@@ -89,7 +89,7 @@ var SettingUpVscodeTest = (_dec = (0, _test.test)(), _dec2 = _test.test.skip('Ca
89
89
  return this.waitForInput();
90
90
 
91
91
  case 5:
92
- _test.assert.isEqualDeep(this.ui.lastInvocation(), {
92
+ _test.assert.isEqualDeep(this.ui.getLastInvocation(), {
93
93
  command: 'confirm',
94
94
  options: 'Want me to setup debugging for you?'
95
95
  });
@@ -102,7 +102,7 @@ var SettingUpVscodeTest = (_dec = (0, _test.test)(), _dec2 = _test.test.skip('Ca
102
102
  return this.waitForInput();
103
103
 
104
104
  case 10:
105
- _test.assert.isEqualDeep(this.ui.lastInvocation(), {
105
+ _test.assert.isEqualDeep(this.ui.getLastInvocation(), {
106
106
  command: 'confirm',
107
107
  options: 'Want me to setup vscode settings for building, testing and linting on save?'
108
108
  });
@@ -115,7 +115,7 @@ var SettingUpVscodeTest = (_dec = (0, _test.test)(), _dec2 = _test.test.skip('Ca
115
115
  return this.waitForInput();
116
116
 
117
117
  case 15:
118
- _test.assert.isEqualDeep(this.ui.lastInvocation(), {
118
+ _test.assert.isEqualDeep(this.ui.getLastInvocation(), {
119
119
  command: 'confirm',
120
120
  options: 'Want me to setup tasks for building and testing?'
121
121
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpVscode.test.ts"],"names":["SettingUpVscodeTest","test","skip","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","promise","waitForInput","isEqualDeep","ui","lastInvocation","command","options","sendInput","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","resolvePath","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,mB,WACnB,iB,UAKAC,WAAKC,IAAL,CAAU,8CAAV,C;;;;;;;;;;;;;0GALD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,OAAtB,EAA+BC,OAAjD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,KAAKJ,MAAL,CAAY,QAAZ,EAAsB,OAAtB,EAA+BC,OAA/B,CAAuC,EAAvC,CAHjB;AAAA;AAAA,uBAKO,KAAKI,YAAL,EALP;;AAAA;AAOCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,cAAR,EAAnB,EAA6C;AAC5CC,kBAAAA,OAAO,EAAE,SADmC;AAE5CC,kBAAAA,OAAO,EAAE;AAFmC,iBAA7C;;AAPD;AAAA,uBAYO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CAZP;;AAAA;AAAA;AAAA,uBAcO,KAAKN,YAAL,EAdP;;AAAA;AAgBCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,cAAR,EAAnB,EAA6C;AAC5CC,kBAAAA,OAAO,EAAE,SADmC;AAE5CC,kBAAAA,OAAO,EACN;AAH2C,iBAA7C;;AAhBD;AAAA,uBAsBO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CAtBP;;AAAA;AAAA;AAAA,uBAwBO,KAAKN,YAAL,EAxBP;;AAAA;AA0BCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,cAAR,EAAnB,EAA6C;AAC5CC,kBAAAA,OAAO,EAAE,SADmC;AAE5CC,kBAAAA,OAAO,EAAE;AAFmC,iBAA7C;;AA1BD;AAAA,uBA+BO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CA/BP;;AAAA;AAAA;AAAA,uBAiCuBP,OAjCvB;;AAAA;AAiCOQ,gBAAAA,OAjCP;;AAmCCd,6BAAOe,OAAP,CAAeD,OAAO,CAACE,MAAvB;;AAEMC,gBAAAA,KArCP,GAqCeC,kBAASC,gCAAT,CACb,aADa,oBAEbL,OAAO,CAACM,KAFK,2DAEI,EAFJ,CArCf;;AA0CCpB,6BAAOqB,OAAP,CAAeJ,KAAf,EAAsB,KAAKK,WAAL,CAAiB,qBAAjB,CAAtB;;AA1CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EANgDC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class SettingUpVscodeTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasSetupAction() {\n\t\tassert.isFunction(this.Action('vscode', 'setup').execute)\n\t}\n\n\t@test.skip('Cant run on machine without vscode installed')\n\tprotected static async settingUpAsksAboutExtensonsAndSetsUpDebug() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst promise = this.Action('vscode', 'setup').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.lastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions: 'Want me to setup debugging for you?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.lastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.lastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions: 'Want me to setup tasks for building and testing?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'launch.json',\n\t\t\tresults.files ?? []\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('.vscode/launch.json'))\n\t}\n}\n"],"file":"SettingUpVscode.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpVscode.test.ts"],"names":["SettingUpVscodeTest","test","skip","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","promise","waitForInput","isEqualDeep","ui","getLastInvocation","command","options","sendInput","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","resolvePath","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,mB,WACnB,iB,UAKAC,WAAKC,IAAL,CAAU,8CAAV,C;;;;;;;;;;;;;0GALD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,OAAtB,EAA+BC,OAAjD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,KAAKJ,MAAL,CAAY,QAAZ,EAAsB,OAAtB,EAA+BC,OAA/B,CAAuC,EAAvC,CAHjB;AAAA;AAAA,uBAKO,KAAKI,YAAL,EALP;;AAAA;AAOCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,iBAAR,EAAnB,EAAgD;AAC/CC,kBAAAA,OAAO,EAAE,SADsC;AAE/CC,kBAAAA,OAAO,EAAE;AAFsC,iBAAhD;;AAPD;AAAA,uBAYO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CAZP;;AAAA;AAAA;AAAA,uBAcO,KAAKN,YAAL,EAdP;;AAAA;AAgBCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,iBAAR,EAAnB,EAAgD;AAC/CC,kBAAAA,OAAO,EAAE,SADsC;AAE/CC,kBAAAA,OAAO,EACN;AAH8C,iBAAhD;;AAhBD;AAAA,uBAsBO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CAtBP;;AAAA;AAAA;AAAA,uBAwBO,KAAKN,YAAL,EAxBP;;AAAA;AA0BCP,6BAAOQ,WAAP,CAAmB,KAAKC,EAAL,CAAQC,iBAAR,EAAnB,EAAgD;AAC/CC,kBAAAA,OAAO,EAAE,SADsC;AAE/CC,kBAAAA,OAAO,EAAE;AAFsC,iBAAhD;;AA1BD;AAAA,uBA+BO,KAAKH,EAAL,CAAQI,SAAR,CAAkB,GAAlB,CA/BP;;AAAA;AAAA;AAAA,uBAiCuBP,OAjCvB;;AAAA;AAiCOQ,gBAAAA,OAjCP;;AAmCCd,6BAAOe,OAAP,CAAeD,OAAO,CAACE,MAAvB;;AAEMC,gBAAAA,KArCP,GAqCeC,kBAASC,gCAAT,CACb,aADa,oBAEbL,OAAO,CAACM,KAFK,2DAEI,EAFJ,CArCf;;AA0CCpB,6BAAOqB,OAAP,CAAeJ,KAAf,EAAsB,KAAKK,WAAL,CAAiB,qBAAjB,CAAtB;;AA1CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EANgDC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class SettingUpVscodeTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasSetupAction() {\n\t\tassert.isFunction(this.Action('vscode', 'setup').execute)\n\t}\n\n\t@test.skip('Cant run on machine without vscode installed')\n\tprotected static async settingUpAsksAboutExtensonsAndSetsUpDebug() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst promise = this.Action('vscode', 'setup').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions: 'Want me to setup debugging for you?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions:\n\t\t\t\t'Want me to setup vscode settings for building, testing and linting on save?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.isEqualDeep(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'confirm',\n\t\t\toptions: 'Want me to setup tasks for building and testing?',\n\t\t})\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'launch.json',\n\t\t\tresults.files ?? []\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('.vscode/launch.json'))\n\t}\n}\n"],"file":"SettingUpVscode.test.js"}
@@ -83,7 +83,7 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
83
83
  return this.waitForInput();
84
84
 
85
85
  case 5:
86
- last = this.ui.lastInvocation();
86
+ last = this.ui.getLastInvocation();
87
87
 
88
88
  _test.assert.isTruthy(last.options.options.choices);
89
89
 
@@ -140,7 +140,7 @@ var TestingDataStoresTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
140
140
  return this.waitForInput();
141
141
 
142
142
  case 4:
143
- last = this.ui.lastInvocation();
143
+ last = this.ui.getLastInvocation();
144
144
 
145
145
  _test.assert.isTruthy(last.options.options.choices);
146
146
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/TestingDataStores.test.ts"],"names":["TestingDataStoresTest","storeFeature","cli","getFeature","isInstalled","Action","execute","type","nameReadable","nameCamel","namePascal","waitForInput","last","ui","lastInvocation","assert","isTruthy","options","choices","doesInclude","label","reset","promise","selectOptionBasedOnLabel","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","contents","diskUtil","readFile","Service","build","shouldReportWhileRunning","testResults","isArray","isLength","first","message","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class TestingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'storesWithTests'\n\n\t@test()\n\tprotected static async cantSelectAbstractStoreIfStoreFeatureNotInstalled() {\n\t\tconst storeFeature = this.cli.getFeature('store')\n\n\t\tstoreFeature.isInstalled = async () => false\n\n\t\tvoid this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest (requires install)',\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async letsYouSelectAbstractStoreTest() {\n\t\tthis.cli.getFeature('store').isInstalled = async () => true\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.lastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest',\n\t\t})\n\n\t\tawait this.selectOptionBasedOnLabel('AbstractStoreTest')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'CanBookAppointmentTest extends AbstractStoreTest'\n\t\t)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\tshouldReportWhileRunning: false,\n\t\t})\n\n\t\tassert.isArray(testResults.errors)\n\t\tassert.isLength(testResults.errors, 1)\n\n\t\tconst first = testResults.errors[0]\n\n\t\tassert.doesInclude(first.message, 'does not equal')\n\t}\n}\n"],"file":"TestingDataStores.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/TestingDataStores.test.ts"],"names":["TestingDataStoresTest","storeFeature","cli","getFeature","isInstalled","Action","execute","type","nameReadable","nameCamel","namePascal","waitForInput","last","ui","getLastInvocation","assert","isTruthy","options","choices","doesInclude","label","reset","promise","selectOptionBasedOnLabel","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","contents","diskUtil","readFile","Service","build","shouldReportWhileRunning","testResults","isArray","isLength","first","message","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class TestingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'storesWithTests'\n\n\t@test()\n\tprotected static async cantSelectAbstractStoreIfStoreFeatureNotInstalled() {\n\t\tconst storeFeature = this.cli.getFeature('store')\n\n\t\tstoreFeature.isInstalled = async () => false\n\n\t\tvoid this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest (requires install)',\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async letsYouSelectAbstractStoreTest() {\n\t\tthis.cli.getFeature('store').isInstalled = async () => true\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.isTruthy(last.options.options.choices)\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel: 'AbstractStoreTest',\n\t\t})\n\n\t\tawait this.selectOptionBasedOnLabel('AbstractStoreTest')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'CanBookAppointmentTest extends AbstractStoreTest'\n\t\t)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\tshouldReportWhileRunning: false,\n\t\t})\n\n\t\tassert.isArray(testResults.errors)\n\t\tassert.isLength(testResults.errors, 1)\n\n\t\tconst first = testResults.errors[0]\n\n\t\tassert.doesInclude(first.message, 'does not equal')\n\t}\n}\n"],"file":"TestingDataStores.test.js"}
@@ -227,7 +227,7 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
227
227
  return this.waitForInput();
228
228
 
229
229
  case 5:
230
- lastInvocation = this.ui.lastInvocation();
230
+ lastInvocation = this.ui.getLastInvocation();
231
231
 
232
232
  _test.assert.isEqual(lastInvocation.command, 'prompt');
233
233
 
@@ -241,7 +241,7 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
241
241
  return this.waitForInput();
242
242
 
243
243
  case 12:
244
- lastInvocation = this.ui.lastInvocation();
244
+ lastInvocation = this.ui.getLastInvocation();
245
245
 
246
246
  _test.assert.doesInclude(lastInvocation.options.label, 'event');
247
247
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","eventNamespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","parameters","eventName","cli","version","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","checkHealth","health","skill","isUndefined","event","listeners","waitForInput","lastInvocation","ui","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","add","namespace","listener","diskUtil","readFile","listenerPath","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventNamespace'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'mercury',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.lastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.lastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","eventNamespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","parameters","eventName","cli","version","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","checkHealth","health","skill","isUndefined","event","listeners","waitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","add","namespace","listener","diskUtil","readFile","listenerPath","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventNamespace'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'mercury',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
@@ -4,14 +4,15 @@ export default class CreatingAnEventTest extends AbstractEventTest {
4
4
  protected static hasCreateAction(): Promise<void>;
5
5
  protected static cantCreateEventWithoutBeingRegistered(): Promise<void>;
6
6
  protected static createsPayloadBuildersAndSchemas(): Promise<void>;
7
- protected static createsEventWitPayloadsPermissionsAndOptions(): Promise<void>;
7
+ protected static createsEventWithPayloadsPermissionsAndOptions(): Promise<void>;
8
8
  protected static createdEventsAreTypedCorrectly(): Promise<void>;
9
9
  protected static canReferenceSchemaFromOtherModule(): Promise<void>;
10
+ protected static asksForVersionIfPreviousVersionExistsOnDifferentDay(): Promise<void>;
10
11
  private static createEvent;
12
+ private static registerCurrentSkill;
11
13
  private static assertCreatesOptionsFile;
12
14
  private static assertExpectedTargetAndPayload;
13
15
  protected static createsExpectedPermissionContract(results: any): Promise<void>;
14
- protected static assertCantCreateWithoutBeingRegistered(): Promise<void>;
15
16
  private static assertReturnsEventFromHealthCheck;
16
17
  private static assertExpectedPayloadSchemas;
17
18
  }