@sprucelabs/spruce-cli 14.28.5 → 14.29.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 (142) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/__tests__/behavioral/BootingWithBadFiles.test.js +26 -13
  3. package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
  4. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +13 -9
  5. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  6. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +1 -1
  7. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +24 -14
  8. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
  9. package/build/__tests__/behavioral/TestingDataStores.test.js +15 -11
  10. package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
  11. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +3 -1
  12. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
  14. package/build/__tests__/behavioral/events/CreatingAListener.test.js +157 -81
  15. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  16. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +1 -1
  17. package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
  18. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.d.ts +7 -0
  19. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +171 -0
  20. package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -0
  21. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
  22. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +53 -21
  23. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  24. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +1 -1
  25. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +10 -20
  26. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
  27. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.d.ts +5 -0
  28. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js +137 -0
  29. package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +1 -0
  30. package/build/__tests__/behavioral/{CreatingADataStore.test.d.ts → stores/CreatingADataStore.test.d.ts} +2 -1
  31. package/build/__tests__/behavioral/{CreatingADataStore.test.js → stores/CreatingADataStore.test.js} +87 -57
  32. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -0
  33. package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.d.ts → stores/KeepingDataStoresInSync.test.d.ts} +5 -2
  34. package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.js → stores/KeepingDataStoresInSync.test.js} +138 -49
  35. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -0
  36. package/build/__tests__/behavioral/tests/CreatingATest.test.js +14 -10
  37. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  38. package/build/__tests__/behavioral/views/TestingViewControllers.test.d.ts +1 -0
  39. package/build/__tests__/behavioral/views/TestingViewControllers.test.js +67 -35
  40. package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
  41. package/build/__tests__/implementation/AuthService.test.d.ts +1 -0
  42. package/build/__tests__/implementation/AuthService.test.js +8 -0
  43. package/build/__tests__/implementation/AuthService.test.js.map +1 -1
  44. package/build/__tests__/implementation/EventStore.test.js +3 -1
  45. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  46. package/build/__tests__/implementation/StoreFeature.test.d.ts +4 -0
  47. package/build/__tests__/implementation/StoreFeature.test.js +132 -0
  48. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -0
  49. package/build/cli.d.ts +1 -1
  50. package/build/cli.js +1 -1
  51. package/build/cli.js.map +1 -1
  52. package/build/features/event/EventFeature.d.ts +2 -2
  53. package/build/features/event/EventFeature.js +53 -13
  54. package/build/features/event/EventFeature.js.map +1 -1
  55. package/build/features/event/actions/ListenAction.d.ts +1 -0
  56. package/build/features/event/actions/ListenAction.js +60 -31
  57. package/build/features/event/actions/ListenAction.js.map +1 -1
  58. package/build/features/event/actions/SyncListenersAction.d.ts +15 -0
  59. package/build/features/event/actions/SyncListenersAction.js +115 -0
  60. package/build/features/event/actions/SyncListenersAction.js.map +1 -0
  61. package/build/features/event/builders/ListenerTemplateItemBuilder.d.ts +8 -0
  62. package/build/features/event/builders/ListenerTemplateItemBuilder.js +65 -0
  63. package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -0
  64. package/build/features/event/stores/EventStore.js +2 -2
  65. package/build/features/event/stores/EventStore.js.map +1 -1
  66. package/build/features/event/stores/ListenerStore.d.ts +9 -0
  67. package/build/features/event/stores/ListenerStore.js +122 -0
  68. package/build/features/event/stores/ListenerStore.js.map +1 -0
  69. package/build/features/event/writers/EventWriter.d.ts +4 -1
  70. package/build/features/event/writers/EventWriter.js +42 -8
  71. package/build/features/event/writers/EventWriter.js.map +1 -1
  72. package/build/features/node/NodeFeature.js +6 -11
  73. package/build/features/node/NodeFeature.js.map +1 -1
  74. package/build/features/skill/SkillFeature.js +1 -1
  75. package/build/features/skill/SkillFeature.js.map +1 -1
  76. package/build/features/skill/stores/SkillStore.js +4 -8
  77. package/build/features/skill/stores/SkillStore.js.map +1 -1
  78. package/build/features/store/StoreFeature.d.ts +1 -1
  79. package/build/features/store/StoreFeature.js +6 -6
  80. package/build/features/store/StoreFeature.js.map +1 -1
  81. package/build/features/store/actions/SyncAction.js +11 -10
  82. package/build/features/store/actions/SyncAction.js.map +1 -1
  83. package/build/features/store/writers/StoreWriter.d.ts +6 -0
  84. package/build/features/store/writers/StoreWriter.js +78 -8
  85. package/build/features/store/writers/StoreWriter.js.map +1 -1
  86. package/build/services/AuthService.d.ts +4 -1
  87. package/build/services/AuthService.js +15 -4
  88. package/build/services/AuthService.js.map +1 -1
  89. package/build/services/LintService.d.ts +4 -1
  90. package/build/services/LintService.js +123 -94
  91. package/build/services/LintService.js.map +1 -1
  92. package/build/services/ServiceFactory.js +3 -3
  93. package/build/services/ServiceFactory.js.map +1 -1
  94. package/build/stores/StoreFactory.d.ts +2 -0
  95. package/build/stores/StoreFactory.js +4 -1
  96. package/build/stores/StoreFactory.js.map +1 -1
  97. package/build/tests/AbstractCliTest.js +3 -3
  98. package/build/tests/AbstractCliTest.js.map +1 -1
  99. package/build/writers/AbstractWriter.d.ts +0 -3
  100. package/build/writers/AbstractWriter.js +2 -18
  101. package/build/writers/AbstractWriter.js.map +1 -1
  102. package/package.json +30 -28
  103. package/src/__tests__/behavioral/BootingWithBadFiles.test.ts +8 -3
  104. package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -0
  105. package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +10 -5
  106. package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -0
  107. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -0
  108. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +28 -9
  109. package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +1 -1
  110. package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +47 -0
  111. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
  112. package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +1 -10
  113. package/src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts +59 -0
  114. package/src/__tests__/behavioral/{CreatingADataStore.test.ts → stores/CreatingADataStore.test.ts} +13 -6
  115. package/src/__tests__/behavioral/{KeepingDataStoresInSync.test.ts → stores/KeepingDataStoresInSync.test.ts} +37 -8
  116. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -0
  117. package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +6 -0
  118. package/src/__tests__/implementation/AuthService.test.ts +6 -0
  119. package/src/__tests__/implementation/EventStore.test.ts +1 -0
  120. package/src/__tests__/implementation/StoreFeature.test.ts +40 -0
  121. package/src/cli.ts +2 -2
  122. package/src/features/event/EventFeature.ts +21 -4
  123. package/src/features/event/actions/ListenAction.ts +9 -3
  124. package/src/features/event/actions/SyncListenersAction.ts +38 -0
  125. package/src/features/event/builders/ListenerTemplateItemBuilder.ts +27 -0
  126. package/src/features/event/stores/EventStore.ts +1 -1
  127. package/src/features/event/stores/ListenerStore.ts +32 -0
  128. package/src/features/event/writers/EventWriter.ts +19 -0
  129. package/src/features/node/NodeFeature.ts +0 -3
  130. package/src/features/skill/SkillFeature.ts +1 -1
  131. package/src/features/skill/stores/SkillStore.ts +4 -3
  132. package/src/features/store/StoreFeature.ts +3 -3
  133. package/src/features/store/actions/SyncAction.ts +2 -1
  134. package/src/features/store/writers/StoreWriter.ts +30 -0
  135. package/src/services/AuthService.ts +15 -5
  136. package/src/services/LintService.ts +19 -2
  137. package/src/services/ServiceFactory.ts +9 -3
  138. package/src/stores/StoreFactory.ts +3 -0
  139. package/src/tests/AbstractCliTest.ts +2 -2
  140. package/src/writers/AbstractWriter.ts +2 -13
  141. package/build/__tests__/behavioral/CreatingADataStore.test.js.map +0 -1
  142. package/build/__tests__/behavioral/KeepingDataStoresInSync.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\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\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\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\t\t})\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', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\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\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.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', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\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\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\n\t\t\t\t\t\t\t\t\t},\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\t\t})\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', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\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\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\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}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\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}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.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', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
@@ -0,0 +1,7 @@
1
+ import AbstractEventTest from '../../../tests/AbstractEventTest';
2
+ export default class KeepingListenersInSyncTest extends AbstractEventTest {
3
+ protected static hasSyncAction(): Promise<void>;
4
+ protected static deletingAListener(): Promise<void>;
5
+ private static deleteLastFile;
6
+ private static createBootListener;
7
+ }
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
+
26
+ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
27
+
28
+ var _test = require("@sprucelabs/test");
29
+
30
+ var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
31
+
32
+ var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
33
+
34
+ var _dec, _dec2, _class;
35
+
36
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
37
+
38
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
+
40
+ var KeepingListenersInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractEventTest) {
41
+ (0, _inherits2["default"])(KeepingListenersInSyncTest, _AbstractEventTest);
42
+
43
+ var _super = _createSuper(KeepingListenersInSyncTest);
44
+
45
+ function KeepingListenersInSyncTest() {
46
+ (0, _classCallCheck2["default"])(this, KeepingListenersInSyncTest);
47
+ return _super.apply(this, arguments);
48
+ }
49
+
50
+ (0, _createClass2["default"])(KeepingListenersInSyncTest, null, [{
51
+ key: "hasSyncAction",
52
+ value: function () {
53
+ var _hasSyncAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
54
+ return _regenerator["default"].wrap(function _callee$(_context) {
55
+ while (1) {
56
+ switch (_context.prev = _context.next) {
57
+ case 0:
58
+ _test.assert.isFunction(this.Action('event', 'sync.listeners').execute);
59
+
60
+ case 1:
61
+ case "end":
62
+ return _context.stop();
63
+ }
64
+ }
65
+ }, _callee, this);
66
+ }));
67
+
68
+ function hasSyncAction() {
69
+ return _hasSyncAction.apply(this, arguments);
70
+ }
71
+
72
+ return hasSyncAction;
73
+ }()
74
+ }, {
75
+ key: "deletingAListener",
76
+ value: function () {
77
+ var _deletingAListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
78
+ var results, syncResults, listenerMap;
79
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
80
+ while (1) {
81
+ switch (_context2.prev = _context2.next) {
82
+ case 0:
83
+ _context2.next = 2;
84
+ return this.FeatureFixture().installCachedFeatures('events');
85
+
86
+ case 2:
87
+ _context2.next = 4;
88
+ return this.createBootListener('did-boot');
89
+
90
+ case 4:
91
+ _context2.next = 6;
92
+ return this.createBootListener('will-boot');
93
+
94
+ case 6:
95
+ results = _context2.sent;
96
+ this.deleteLastFile(results);
97
+ _context2.next = 10;
98
+ return this.Action('event', 'sync.listeners').execute({});
99
+
100
+ case 10:
101
+ syncResults = _context2.sent;
102
+ listenerMap = _test2["default"].assertFileByNameInGeneratedFiles('listeners.ts', syncResults.files);
103
+ _context2.next = 14;
104
+ return this.Service('typeChecker').check(listenerMap);
105
+
106
+ case 14:
107
+ case "end":
108
+ return _context2.stop();
109
+ }
110
+ }
111
+ }, _callee2, this);
112
+ }));
113
+
114
+ function deletingAListener() {
115
+ return _deletingAListener.apply(this, arguments);
116
+ }
117
+
118
+ return deletingAListener;
119
+ }()
120
+ }, {
121
+ key: "deleteLastFile",
122
+ value: function deleteLastFile(results) {
123
+ var _results$files, _results$files$pop;
124
+
125
+ var path = (_results$files = results.files) === null || _results$files === void 0 ? void 0 : (_results$files$pop = _results$files.pop()) === null || _results$files$pop === void 0 ? void 0 : _results$files$pop.path;
126
+
127
+ _test.assert.isString(path);
128
+
129
+ _spruceSkillUtils.diskUtil.deleteFile(path);
130
+ }
131
+ }, {
132
+ key: "createBootListener",
133
+ value: function () {
134
+ var _createBootListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name) {
135
+ var results;
136
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
137
+ while (1) {
138
+ switch (_context3.prev = _context3.next) {
139
+ case 0:
140
+ _context3.next = 2;
141
+ return this.Action('event', 'listen').execute({
142
+ namespace: 'skill',
143
+ eventName: name
144
+ });
145
+
146
+ case 2:
147
+ results = _context3.sent;
148
+
149
+ _test.assert.isFalsy(results.errors);
150
+
151
+ return _context3.abrupt("return", results);
152
+
153
+ case 5:
154
+ case "end":
155
+ return _context3.stop();
156
+ }
157
+ }
158
+ }, _callee3, this);
159
+ }));
160
+
161
+ function createBootListener(_x) {
162
+ return _createBootListener.apply(this, arguments);
163
+ }
164
+
165
+ return createBootListener;
166
+ }()
167
+ }]);
168
+ return KeepingListenersInSyncTest;
169
+ }(_AbstractEventTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasSyncAction", [_dec], Object.getOwnPropertyDescriptor(_class, "hasSyncAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "deletingAListener", [_dec2], Object.getOwnPropertyDescriptor(_class, "deletingAListener"), _class)), _class));
170
+ exports["default"] = KeepingListenersInSyncTest;
171
+ //# sourceMappingURL=KeepingListenersInSync.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingListenersInSync.test.ts"],"names":["KeepingListenersInSyncTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","createBootListener","results","deleteLastFile","syncResults","listenerMap","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","path","pop","isString","diskUtil","deleteFile","name","namespace","eventName","isFalsy","errors","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,0B,WACnB,iB,UAKA,iB;;;;;;;;;;;;;yGALD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAzD;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6GAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAAA;AAAA,uBAIO,KAAKC,kBAAL,CAAwB,UAAxB,CAJP;;AAAA;AAAA;AAAA,uBAKuB,KAAKA,kBAAL,CAAwB,WAAxB,CALvB;;AAAA;AAKOC,gBAAAA,OALP;AAOC,qBAAKC,cAAL,CAAoBD,OAApB;AAPD;AAAA,uBAS2B,KAAKL,MAAL,CAAY,OAAZ,EAAqB,gBAArB,EAAuCC,OAAvC,CAA+C,EAA/C,CAT3B;;AAAA;AASOM,gBAAAA,WATP;AAWOC,gBAAAA,WAXP,GAWqBC,kBAASC,gCAAT,CACnB,cADmB,EAEnBH,WAAW,CAACI,KAFO,CAXrB;AAAA;AAAA,uBAgBO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,WAAlC,CAhBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAmBA,wBAA8BH,OAA9B,EAA8D;AAAA;;AAC7D,UAAMS,IAAI,qBAAGT,OAAO,CAACM,KAAX,yEAAG,eAAeI,GAAf,EAAH,uDAAG,mBAAsBD,IAAnC;;AACAhB,mBAAOkB,QAAP,CAAgBF,IAAhB;;AAEAG,iCAASC,UAAT,CAAoBJ,IAApB;AACA;;;;8GAED,kBAAwCK,IAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACuB,KAAKnB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DmB,kBAAAA,SAAS,EAAE,OADiD;AAE5DC,kBAAAA,SAAS,EAAEF;AAFiD,iBAAvC,CADvB;;AAAA;AACOd,gBAAAA,OADP;;AAKCP,6BAAOwB,OAAP,CAAejB,OAAO,CAACkB,MAAvB;;AALD,kDAMQlB,OANR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAhCuDmB,8B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class KeepingListenersInSyncTest extends AbstractEventTest {\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('event', 'sync.listeners').execute)\n\t}\n\n\t@test()\n\tprotected static async deletingAListener() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.createBootListener('did-boot')\n\t\tconst results = await this.createBootListener('will-boot')\n\n\t\tthis.deleteLastFile(results)\n\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\n\t\tconst listenerMap = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'listeners.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerMap)\n\t}\n\n\tprivate static deleteLastFile(results: FeatureActionResponse) {\n\t\tconst path = results.files?.pop()?.path\n\t\tassert.isString(path)\n\n\t\tdiskUtil.deleteFile(path)\n\t}\n\n\tprivate static async createBootListener(name: 'will-boot' | 'did-boot') {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: name,\n\t\t})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n}\n"],"file":"KeepingListenersInSync.test.js"}
@@ -1,5 +1,6 @@
1
1
  import AbstractEventTest from '../../../tests/AbstractEventTest';
2
2
  export default class SkillEmitsBootEventsTest extends AbstractEventTest {
3
+ protected static beforeEach(): Promise<void>;
3
4
  protected static skillEmitsWillBootEvents(): Promise<void>;
4
5
  protected static skillEmitsDidBootEventsThatErrorAfterBoot(): Promise<void>;
5
6
  }
@@ -15,6 +15,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
15
15
 
16
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
17
 
18
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
+
18
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
21
 
20
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -27,6 +29,8 @@ var _test = require("@sprucelabs/test");
27
29
 
28
30
  var _testUtils = require("@sprucelabs/test-utils");
29
31
 
32
+ var _LintService = _interopRequireDefault(require("../../../services/LintService"));
33
+
30
34
  var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
31
35
 
32
36
  var _dec, _dec2, _class;
@@ -46,20 +50,48 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
46
50
  }
47
51
 
48
52
  (0, _createClass2["default"])(SkillEmitsBootEventsTest, null, [{
49
- key: "skillEmitsWillBootEvents",
53
+ key: "beforeEach",
50
54
  value: function () {
51
- var _skillEmitsWillBootEvents = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
52
- var version, response;
55
+ var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
53
56
  return _regenerator["default"].wrap(function _callee$(_context) {
54
57
  while (1) {
55
58
  switch (_context.prev = _context.next) {
56
59
  case 0:
57
60
  _context.next = 2;
61
+ return (0, _get2["default"])((0, _getPrototypeOf2["default"])(SkillEmitsBootEventsTest), "beforeEach", this).call(this);
62
+
63
+ case 2:
64
+ _LintService["default"].enableLinting();
65
+
66
+ case 3:
67
+ case "end":
68
+ return _context.stop();
69
+ }
70
+ }
71
+ }, _callee, this);
72
+ }));
73
+
74
+ function beforeEach() {
75
+ return _beforeEach.apply(this, arguments);
76
+ }
77
+
78
+ return beforeEach;
79
+ }()
80
+ }, {
81
+ key: "skillEmitsWillBootEvents",
82
+ value: function () {
83
+ var _skillEmitsWillBootEvents = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
84
+ var version, response;
85
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
86
+ while (1) {
87
+ switch (_context2.prev = _context2.next) {
88
+ case 0:
89
+ _context2.next = 2;
58
90
  return this.installEventFeature('events');
59
91
 
60
92
  case 2:
61
93
  version = 'v2020_01_01';
62
- _context.next = 5;
94
+ _context2.next = 5;
63
95
  return this.Action('event', 'listen').execute({
64
96
  namespace: 'skill',
65
97
  eventName: 'will-boot',
@@ -67,15 +99,15 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
67
99
  });
68
100
 
69
101
  case 5:
70
- _context.next = 7;
102
+ _context2.next = 7;
71
103
  return this.Service('build').build();
72
104
 
73
105
  case 7:
74
- _context.next = 9;
106
+ _context2.next = 9;
75
107
  return this.Action('skill', 'boot').execute({});
76
108
 
77
109
  case 9:
78
- response = _context.sent;
110
+ response = _context2.sent;
79
111
 
80
112
  _test.assert.isTruthy(response.errors);
81
113
 
@@ -83,10 +115,10 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
83
115
 
84
116
  case 12:
85
117
  case "end":
86
- return _context.stop();
118
+ return _context2.stop();
87
119
  }
88
120
  }
89
- }, _callee, this);
121
+ }, _callee2, this);
90
122
  }));
91
123
 
92
124
  function skillEmitsWillBootEvents() {
@@ -98,18 +130,18 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
98
130
  }, {
99
131
  key: "skillEmitsDidBootEventsThatErrorAfterBoot",
100
132
  value: function () {
101
- var _skillEmitsDidBootEventsThatErrorAfterBoot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
133
+ var _skillEmitsDidBootEventsThatErrorAfterBoot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
102
134
  var version, response, err;
103
- return _regenerator["default"].wrap(function _callee2$(_context2) {
135
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
104
136
  while (1) {
105
- switch (_context2.prev = _context2.next) {
137
+ switch (_context3.prev = _context3.next) {
106
138
  case 0:
107
- _context2.next = 2;
139
+ _context3.next = 2;
108
140
  return this.installEventFeature('events');
109
141
 
110
142
  case 2:
111
143
  version = 'v2020_01_01';
112
- _context2.next = 5;
144
+ _context3.next = 5;
113
145
  return this.Action('event', 'listen').execute({
114
146
  namespace: 'skill',
115
147
  eventName: 'did-boot',
@@ -117,16 +149,16 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
117
149
  });
118
150
 
119
151
  case 5:
120
- _context2.next = 7;
152
+ _context3.next = 7;
121
153
  return this.Service('build').build();
122
154
 
123
155
  case 7:
124
- _context2.next = 9;
156
+ _context3.next = 9;
125
157
  return this.Action('skill', 'boot').execute({});
126
158
 
127
159
  case 9:
128
- response = _context2.sent;
129
- _context2.next = 12;
160
+ response = _context3.sent;
161
+ _context3.next = 12;
130
162
  return _test.assert.doesThrowAsync(function () {
131
163
  var _response$meta;
132
164
 
@@ -134,16 +166,16 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
134
166
  });
135
167
 
136
168
  case 12:
137
- err = _context2.sent;
169
+ err = _context3.sent;
138
170
 
139
171
  _testUtils.errorAssertUtil.assertError(err, 'LISTENER_NOT_IMPLEMENTED');
140
172
 
141
173
  case 14:
142
174
  case "end":
143
- return _context2.stop();
175
+ return _context3.stop();
144
176
  }
145
177
  }
146
- }, _callee2, this);
178
+ }, _callee3, this);
147
179
  }));
148
180
 
149
181
  function skillEmitsDidBootEventsThatErrorAfterBoot() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"names":["SkillEmitsBootEventsTest","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","errorAssertUtil","assertError","doesThrowAsync","meta","promise","err","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WACnB,iB,UAkBA,iB;;;;;;;;;;;;;oHAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,WAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;;AAcCC,6BAAOC,QAAP,CAAgBF,QAAQ,CAACG,MAAzB;;AACAC,2CAAgBC,WAAhB,CAA4BL,QAAQ,CAACG,MAAT,CAAgB,CAAhB,CAA5B,EAAgD,0BAAhD;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,UAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;AAAA;AAAA,uBAcmBC,aAAOK,cAAP,CAAsB;AAAA;;AAAA,2CAAMN,QAAQ,CAACO,IAAf,mDAAM,eAAeC,OAArB;AAAA,iBAAtB,CAdnB;;AAAA;AAcOC,gBAAAA,GAdP;;AAeCL,2CAAgBC,WAAhB,CAA4BI,GAA5B,EAAiC,0BAAjC;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAnBqDC,8B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SkillEmitsBootEventsTest extends AbstractEventTest {\n\t@test()\n\tprotected static async skillEmitsWillBootEvents() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tassert.isTruthy(response.errors)\n\t\terrorAssertUtil.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED')\n\t}\n\n\t@test()\n\tprotected static async skillEmitsDidBootEventsThatErrorAfterBoot() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'did-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tconst err = await assert.doesThrowAsync(() => response.meta?.promise)\n\t\terrorAssertUtil.assertError(err, 'LISTENER_NOT_IMPLEMENTED')\n\t}\n}\n"],"file":"SkillEmitsBootEvents.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"names":["SkillEmitsBootEventsTest","LintService","enableLinting","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","errorAssertUtil","assertError","doesThrowAsync","meta","promise","err","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAMnB,iB,UAkBA,iB;;;;;;;;;;;;;sGAvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,wCAAYC,aAAZ;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,WAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;;AAcCC,6BAAOC,QAAP,CAAgBF,QAAQ,CAACG,MAAzB;;AACAC,2CAAgBC,WAAhB,CAA4BL,QAAQ,CAACG,MAAT,CAAgB,CAAhB,CAA5B,EAAgD,0BAAhD;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,UAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;AAAA;AAAA,uBAcmBC,aAAOK,cAAP,CAAsB;AAAA;;AAAA,2CAAMN,QAAQ,CAACO,IAAf,mDAAM,eAAeC,OAArB;AAAA,iBAAtB,CAdnB;;AAAA;AAcOC,gBAAAA,GAdP;;AAeCL,2CAAgBC,WAAhB,CAA4BI,GAA5B,EAAiC,0BAAjC;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAxBqDC,8B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SkillEmitsBootEventsTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tLintService.enableLinting()\n\t}\n\n\t@test()\n\tprotected static async skillEmitsWillBootEvents() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tassert.isTruthy(response.errors)\n\t\terrorAssertUtil.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED')\n\t}\n\n\t@test()\n\tprotected static async skillEmitsDidBootEventsThatErrorAfterBoot() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'did-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tconst err = await assert.doesThrowAsync(() => response.meta?.promise)\n\t\terrorAssertUtil.assertError(err, 'LISTENER_NOT_IMPLEMENTED')\n\t}\n}\n"],"file":"SkillEmitsBootEvents.test.js"}
@@ -6,7 +6,7 @@ export default class UpgradingASkill2Test extends AbstractCliTest {
6
6
  protected static featuresNotEnabledDontInstall(): Promise<void>;
7
7
  protected static upgradingSkillSyncsEvents(): Promise<void>;
8
8
  protected static upgradeCallsUpdateDependencies(): Promise<void>;
9
- protected static callsCleanFixLintAndBuildDev(): Promise<void>;
9
+ protected static callsCleanFixAndBuildDev(): Promise<void>;
10
10
  protected static writesViewPlugin(): Promise<void>;
11
11
  protected static upgradeSyncsErrors(isInstalled?: boolean): Promise<void>;
12
12
  protected static resetsErrorPluginInSkill(): Promise<void>;
@@ -256,10 +256,10 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
256
256
  return upgradeCallsUpdateDependencies;
257
257
  }()
258
258
  }, {
259
- key: "callsCleanFixLintAndBuildDev",
259
+ key: "callsCleanFixAndBuildDev",
260
260
  value: function () {
261
- var _callsCleanFixLintAndBuildDev = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
262
- var wasCleanBuildCalled, wasFixLintCalled, wasBuildDevCalled, results;
261
+ var _callsCleanFixAndBuildDev = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
262
+ var wasCleanBuildCalled, wasBuildDevCalled, results;
263
263
  return _regenerator["default"].wrap(function _callee7$(_context7) {
264
264
  while (1) {
265
265
  switch (_context7.prev = _context7.next) {
@@ -283,7 +283,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
283
283
  }
284
284
  }, _callee6);
285
285
  }));
286
- wasFixLintCalled = false;
287
286
 
288
287
  _CommandService["default"].setMockResponse('yarn clean.build', {
289
288
  code: 0,
@@ -292,13 +291,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
292
291
  }
293
292
  });
294
293
 
295
- _CommandService["default"].setMockResponse('yarn fix.lint', {
296
- code: 0,
297
- callback: function callback() {
298
- wasFixLintCalled = true;
299
- }
300
- });
301
-
302
294
  wasBuildDevCalled = false;
303
295
 
304
296
  _CommandService["default"].setMockResponse('yarn build.dev', {
@@ -308,10 +300,10 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
308
300
  }
309
301
  });
310
302
 
311
- _context7.next = 11;
303
+ _context7.next = 9;
312
304
  return this.Action('node', 'upgrade').execute({});
313
305
 
314
- case 11:
306
+ case 9:
315
307
  results = _context7.sent;
316
308
 
317
309
  _test.assert.isFalsy(results.errors);
@@ -320,9 +312,7 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
320
312
 
321
313
  _test.assert.isTrue(wasBuildDevCalled);
322
314
 
323
- _test.assert.isTrue(wasFixLintCalled);
324
-
325
- case 16:
315
+ case 13:
326
316
  case "end":
327
317
  return _context7.stop();
328
318
  }
@@ -330,11 +320,11 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
330
320
  }, _callee7, this);
331
321
  }));
332
322
 
333
- function callsCleanFixLintAndBuildDev() {
334
- return _callsCleanFixLintAndBuildDev.apply(this, arguments);
323
+ function callsCleanFixAndBuildDev() {
324
+ return _callsCleanFixAndBuildDev.apply(this, arguments);
335
325
  }
336
326
 
337
- return callsCleanFixLintAndBuildDev;
327
+ return callsCleanFixAndBuildDev;
338
328
  }()
339
329
  }, {
340
330
  key: "writesViewPlugin",
@@ -579,6 +569,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
579
569
  }
580
570
  }]);
581
571
  return UpgradingASkill2Test;
582
- }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "originalErrorSyncExecute", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade", [_dec], Object.getOwnPropertyDescriptor(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "featuresNotEnabledDontInstall", [_dec2], Object.getOwnPropertyDescriptor(_class, "featuresNotEnabledDontInstall"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillSyncsEvents", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSkillSyncsEvents"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeCallsUpdateDependencies", [_dec4], Object.getOwnPropertyDescriptor(_class, "upgradeCallsUpdateDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "callsCleanFixLintAndBuildDev", [_dec5], Object.getOwnPropertyDescriptor(_class, "callsCleanFixLintAndBuildDev"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "writesViewPlugin", [_dec6], Object.getOwnPropertyDescriptor(_class, "writesViewPlugin"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeSyncsErrors", [_dec7, _dec8], Object.getOwnPropertyDescriptor(_class, "upgradeSyncsErrors"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginInSkill", [_dec9], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginWhenErrorInstalled", [_dec10], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginWhenErrorInstalled"), _class)), _class));
572
+ }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "originalErrorSyncExecute", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade", [_dec], Object.getOwnPropertyDescriptor(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "featuresNotEnabledDontInstall", [_dec2], Object.getOwnPropertyDescriptor(_class, "featuresNotEnabledDontInstall"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillSyncsEvents", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSkillSyncsEvents"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeCallsUpdateDependencies", [_dec4], Object.getOwnPropertyDescriptor(_class, "upgradeCallsUpdateDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "callsCleanFixAndBuildDev", [_dec5], Object.getOwnPropertyDescriptor(_class, "callsCleanFixAndBuildDev"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "writesViewPlugin", [_dec6], Object.getOwnPropertyDescriptor(_class, "writesViewPlugin"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeSyncsErrors", [_dec7, _dec8], Object.getOwnPropertyDescriptor(_class, "upgradeSyncsErrors"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginInSkill", [_dec9], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginWhenErrorInstalled", [_dec10], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginWhenErrorInstalled"), _class)), _class));
583
573
  exports["default"] = UpgradingASkill2Test;
584
574
  //# sourceMappingURL=UpgradingASkill2.test.js.map