@sprucelabs/spruce-cli 14.22.10 → 14.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.d.ts +10 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js +24 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js.map +1 -0
- package/build/.spruce/events/events.contract.d.ts +346 -36
- package/build/.spruce/events/events.contract.js +9 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.d.ts +15 -0
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js +17 -2
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.d.ts +20 -3
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js +23 -6
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.d.ts +38 -4
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js +45 -11
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +17 -2
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +21 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +26 -6
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js +36 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js +56 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +0 -10
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.d.ts +678 -604
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.d.ts +9 -0
- package/build/__tests__/behavioral/AddingADependency.test.js +273 -0
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -0
- package/build/__tests__/behavioral/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.d.ts +9 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js +279 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +8 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +209 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +9 -5
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +14 -7
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +43 -12
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +8 -2
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/SettingUpViews.test.js +48 -3
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +4 -3
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.d.ts +1 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +21 -3
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/errors/SpruceError.js +2 -2
- package/build/errors/SpruceError.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +1 -1
- package/build/features/FeatureInstallerFactory.js +4 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.d.ts +16 -0
- package/build/features/dependencies/DependencyFeature.js +92 -0
- package/build/features/dependencies/DependencyFeature.js.map +1 -0
- package/build/features/dependencies/actions/AddAction.d.ts +33 -0
- package/build/features/dependencies/actions/AddAction.js +154 -0
- package/build/features/dependencies/actions/AddAction.js.map +1 -0
- package/build/features/dependencies/actions/ManageAction.d.ts +19 -0
- package/build/features/dependencies/actions/ManageAction.js +161 -0
- package/build/features/dependencies/actions/ManageAction.js.map +1 -0
- package/build/features/event/EventFeature.js +2 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.d.ts +3 -0
- package/build/features/event/builders/EventContractBuilder.js +12 -8
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +2 -1
- package/build/features/event/stores/EventStore.js +33 -25
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js +4 -2
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -0
- package/build/features/skill/stores/SkillStore.js +39 -15
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/view/ViewFeature.js +5 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -1
- package/build/interfaces/SpyInterface.js +67 -7
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/services/DependencyService.d.ts +13 -0
- package/build/services/DependencyService.js +49 -0
- package/build/services/DependencyService.js.map +1 -0
- package/build/services/ServiceFactory.d.ts +2 -0
- package/build/services/ServiceFactory.js +5 -0
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +9 -0
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js +2 -36
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.d.ts +2 -0
- package/build/tests/fixtures/SkillFixture.js +8 -8
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/utilities/action.utility.js +1 -5
- package/build/utilities/action.utility.js.map +1 -1
- package/package.json +19 -19
- package/src/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.ts +15 -0
- package/src/.spruce/events/events.contract.ts +32 -8
- package/src/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/createForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.ts +15 -0
- package/src/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.ts +20 -3
- package/src/.spruce/events/forms/listForms.v2021_07_02.contract.ts +38 -4
- package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
- package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
- package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +21 -1
- package/src/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/appointments.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.ts +24 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.ts +36 -0
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.ts +0 -6
- package/src/.spruce/schemas/schemas.types.ts +815 -720
- package/src/__tests__/behavioral/AddingADependency.test.ts +98 -0
- package/src/__tests__/behavioral/CreatingADataStore.test.ts +2 -0
- package/src/__tests__/behavioral/ManagingDependencies.test.ts +115 -0
- package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +70 -0
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +5 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync.test.ts +6 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +27 -0
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +4 -0
- package/src/__tests__/behavioral/views/SettingUpViews.test.ts +23 -0
- package/src/__tests__/implementation/EventStore.test.ts +5 -2
- package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +20 -1
- package/src/errors/SpruceError.ts +1 -1
- package/src/features/FeatureInstallerFactory.ts +3 -0
- package/src/features/dependencies/DependencyFeature.ts +27 -0
- package/src/features/dependencies/actions/AddAction.ts +63 -0
- package/src/features/dependencies/actions/ManageAction.ts +84 -0
- package/src/features/event/EventFeature.ts +1 -0
- package/src/features/event/builders/EventContractBuilder.ts +9 -2
- package/src/features/event/stores/EventStore.ts +20 -11
- package/src/features/schema/actions/SyncAction.ts +6 -3
- package/src/features/skill/actions/RebuildAction.ts +2 -0
- package/src/features/skill/stores/SkillStore.ts +8 -1
- package/src/features/view/ViewFeature.ts +5 -0
- package/src/interfaces/SpyInterface.ts +29 -2
- package/src/services/DependencyService.ts +27 -0
- package/src/services/ServiceFactory.ts +6 -0
- package/src/templateItemBuilders/EventTemplateItemBuilder.ts +10 -0
- package/src/tests/AbstractCliTest.ts +1 -21
- package/src/tests/fixtures/SkillFixture.ts +6 -2
- package/src/utilities/action.utility.ts +1 -6
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.d.ts +0 -3
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js +0 -28
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js.map +0 -1
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","EventStore","clearCache","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","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","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 EventStore from '../../../features/event/stores/EventStore'\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()\n\tprotected static async syncingSchemasWithBrokenConnectionStopsWithError() {\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\t\tawait client.disconnect()\n\n\t\tEventStore.clearCache()\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\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\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\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\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","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","EventStore","clearCache","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 EventStore from '../../../features/event/stores/EventStore'\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()\n\tprotected static async syncingSchemasWithBrokenConnectionStopsWithError() {\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\tEventStore.clearCache()\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\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 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"}
|
|
@@ -83,16 +83,22 @@ var CreatingAThemeTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _
|
|
|
83
83
|
switch (_context2.prev = _context2.next) {
|
|
84
84
|
case 0:
|
|
85
85
|
_context2.next = 2;
|
|
86
|
-
return this.
|
|
86
|
+
return this.getSkillFixture().registerCurrentSkill({
|
|
87
|
+
name: 'current skill in creating a theme'
|
|
88
|
+
});
|
|
87
89
|
|
|
88
90
|
case 2:
|
|
91
|
+
_context2.next = 4;
|
|
92
|
+
return this.Action('view', 'createTheme').execute({});
|
|
93
|
+
|
|
94
|
+
case 4:
|
|
89
95
|
results = _context2.sent;
|
|
90
96
|
|
|
91
97
|
_test.assert.isFalsy(results.errors);
|
|
92
98
|
|
|
93
99
|
_test.assert.isTrue(_spruceSkillUtils.diskUtil.doesFileExist(this.resolveHashSprucePath('events/events.contract.ts')));
|
|
94
100
|
|
|
95
|
-
case
|
|
101
|
+
case 7:
|
|
96
102
|
case "end":
|
|
97
103
|
return _context2.stop();
|
|
98
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/views/CreatingATheme.test.ts"],"names":["CreatingAThemeTest","assert","isFunction","Action","execute","results","isFalsy","errors","isTrue","diskUtil","doesFileExist","resolveHashSprucePath","getThemePath","Service","importDefault","imported","isTruthy","errorAssertUtil","assertError","emitter","getEmitter","hitCount","deleteFile","on","payload","featureCode","actionCode","isEqual","resolvePath","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,kB,WAGnB,iB,UAKA,iB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/views/CreatingATheme.test.ts"],"names":["CreatingAThemeTest","assert","isFunction","Action","execute","getSkillFixture","registerCurrentSkill","name","results","isFalsy","errors","isTrue","diskUtil","doesFileExist","resolveHashSprucePath","getThemePath","Service","importDefault","imported","isTruthy","errorAssertUtil","assertError","emitter","getEmitter","hitCount","deleteFile","on","payload","featureCode","actionCode","isEqual","resolvePath","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default class CreatingAThemeTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\n\t@test()\n\tprotected static async hasCreateThemeAction() {\n\t\tassert.isFunction(this.Action('view', 'createTheme').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFirst() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'current skill in creating a theme',\n\t\t})\n\n\t\tconst results = await this.Action('view', 'createTheme').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(\n\t\t\t\tthis.resolveHashSprucePath('events/events.contract.ts')\n\t\t\t)\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async makesThemeFile() {\n\t\tassert.isTrue(diskUtil.doesFileExist(this.getThemePath()))\n\t}\n\n\t@test()\n\tprotected static async makesValidThemeFile() {\n\t\tconst imported = await this.Service('import').importDefault(\n\t\t\tthis.getThemePath()\n\t\t)\n\n\t\tassert.isTruthy(imported)\n\t\tassert.isTrue('color1' in imported)\n\t}\n\n\t@test()\n\tprotected static async cantRunTwice() {\n\t\tconst results = await this.Action('view', 'createTheme').execute({})\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssertUtil.assertError(results.errors[0], 'THEME_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async doesNotSyncEventsIfAlreadySynced() {\n\t\tconst emitter = this.getEmitter()\n\t\tlet hitCount = 0\n\n\t\tdiskUtil.deleteFile(this.getThemePath())\n\n\t\tawait emitter.on('feature.will-execute', async (payload) => {\n\t\t\tconst { featureCode, actionCode } = payload\n\n\t\t\tif (featureCode === 'event' && actionCode === 'sync') {\n\t\t\t\thitCount++\n\t\t\t}\n\t\t})\n\n\t\tawait this.Action('view', 'createTheme').execute({})\n\n\t\tassert.isEqual(hitCount, 0)\n\t}\n\n\tprivate static getThemePath(): string {\n\t\treturn this.resolvePath('src', 'themes', 'skill.theme.ts')\n\t}\n}\n"],"file":"CreatingATheme.test.js"}
|
|
@@ -27,13 +27,13 @@ var _test = require("@sprucelabs/test");
|
|
|
27
27
|
|
|
28
28
|
var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
|
|
29
29
|
|
|
30
|
-
var _dec, _class;
|
|
30
|
+
var _dec, _dec2, _class;
|
|
31
31
|
|
|
32
32
|
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); }; }
|
|
33
33
|
|
|
34
34
|
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; } }
|
|
35
35
|
|
|
36
|
-
var SettingUpViewsTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
|
|
36
|
+
var SettingUpViewsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
|
|
37
37
|
(0, _inherits2["default"])(SettingUpViewsTest, _AbstractCliTest);
|
|
38
38
|
|
|
39
39
|
var _super = _createSuper(SettingUpViewsTest);
|
|
@@ -75,8 +75,53 @@ var SettingUpViewsTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/funct
|
|
|
75
75
|
|
|
76
76
|
return canGetViewFeature;
|
|
77
77
|
}()
|
|
78
|
+
}, {
|
|
79
|
+
key: "installingViewsAddsHeartwoodAsDependency",
|
|
80
|
+
value: function () {
|
|
81
|
+
var _installingViewsAddsHeartwoodAsDependency = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
82
|
+
var dependencies;
|
|
83
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
84
|
+
while (1) {
|
|
85
|
+
switch (_context2.prev = _context2.next) {
|
|
86
|
+
case 0:
|
|
87
|
+
_context2.next = 2;
|
|
88
|
+
return this.FeatureFixture().installFeatures([{
|
|
89
|
+
code: 'skill',
|
|
90
|
+
options: {
|
|
91
|
+
name: 'testing views',
|
|
92
|
+
description: 'this too, is a great test!'
|
|
93
|
+
}
|
|
94
|
+
}, {
|
|
95
|
+
code: 'view'
|
|
96
|
+
}]);
|
|
97
|
+
|
|
98
|
+
case 2:
|
|
99
|
+
_context2.next = 4;
|
|
100
|
+
return this.getPersonFixture().loginAsDemoPerson();
|
|
101
|
+
|
|
102
|
+
case 4:
|
|
103
|
+
dependencies = this.Service('dependency').get();
|
|
104
|
+
|
|
105
|
+
_test.assert.isLength(dependencies, 1);
|
|
106
|
+
|
|
107
|
+
_test.assert.isEqual(dependencies[0].namespace, 'heartwood');
|
|
108
|
+
|
|
109
|
+
case 7:
|
|
110
|
+
case "end":
|
|
111
|
+
return _context2.stop();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}, _callee2, this);
|
|
115
|
+
}));
|
|
116
|
+
|
|
117
|
+
function installingViewsAddsHeartwoodAsDependency() {
|
|
118
|
+
return _installingViewsAddsHeartwoodAsDependency.apply(this, arguments);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return installingViewsAddsHeartwoodAsDependency;
|
|
122
|
+
}()
|
|
78
123
|
}]);
|
|
79
124
|
return SettingUpViewsTest;
|
|
80
|
-
}(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "canGetViewFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "canGetViewFeature"), _class)), _class));
|
|
125
|
+
}(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "canGetViewFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "canGetViewFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "installingViewsAddsHeartwoodAsDependency", [_dec2], Object.getOwnPropertyDescriptor(_class, "installingViewsAddsHeartwoodAsDependency"), _class)), _class));
|
|
81
126
|
exports["default"] = SettingUpViewsTest;
|
|
82
127
|
//# sourceMappingURL=SettingUpViews.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/views/SettingUpViews.test.ts"],"names":["SettingUpViewsTest","Cli","cli","feature","getFeature","assert","isTruthy","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,kB,WACnB,iB;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/views/SettingUpViews.test.ts"],"names":["SettingUpViewsTest","Cli","cli","feature","getFeature","assert","isTruthy","FeatureFixture","installFeatures","code","options","name","description","getPersonFixture","loginAsDemoPerson","dependencies","Service","get","isLength","isEqual","namespace","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,kB,WACnB,iB,UAOA,iB;;;;;;;;;;;;;6GAPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKC,GAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAGOC,gBAAAA,OAHP,GAGiBD,GAAG,CAACE,UAAJ,CAAe,MAAf,CAHjB;;AAICC,6BAAOC,QAAP,CAAgBH,OAAhB;;AAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKI,cAAL,GAAsBC,eAAtB,CAAsC,CAC3C;AACCC,kBAAAA,IAAI,EAAE,OADP;AAECC,kBAAAA,OAAO,EAAE;AACRC,oBAAAA,IAAI,EAAE,eADE;AAERC,oBAAAA,WAAW,EAAE;AAFL;AAFV,iBAD2C,EAQ3C;AACCH,kBAAAA,IAAI,EAAE;AADP,iBAR2C,CAAtC,CAFP;;AAAA;AAAA;AAAA,uBAeO,KAAKI,gBAAL,GAAwBC,iBAAxB,EAfP;;AAAA;AAiBOC,gBAAAA,YAjBP,GAiBsB,KAAKC,OAAL,CAAa,YAAb,EAA2BC,GAA3B,EAjBtB;;AAkBCZ,6BAAOa,QAAP,CAAgBH,YAAhB,EAA8B,CAA9B;;AAEAV,6BAAOc,OAAP,CAAeJ,YAAY,CAAC,CAAD,CAAZ,CAAgBK,SAA/B,EAA0C,WAA1C;;AApBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAR+CC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class SettingUpViewsTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canGetViewFeature() {\n\t\tconst cli = await this.Cli()\n\t\tconst feature = cli.getFeature('view')\n\t\tassert.isTruthy(feature)\n\t}\n\n\t@test()\n\tprotected static async installingViewsAddsHeartwoodAsDependency() {\n\t\tawait this.FeatureFixture().installFeatures([\n\t\t\t{\n\t\t\t\tcode: 'skill',\n\t\t\t\toptions: {\n\t\t\t\t\tname: 'testing views',\n\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'view',\n\t\t\t},\n\t\t])\n\n\t\tawait this.getPersonFixture().loginAsDemoPerson()\n\n\t\tconst dependencies = this.Service('dependency').get()\n\t\tassert.isLength(dependencies, 1)\n\n\t\tassert.isEqual(dependencies[0].namespace, 'heartwood')\n\t}\n}\n"],"file":"SettingUpViews.test.js"}
|
|
@@ -265,7 +265,7 @@ var EventStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
265
265
|
_yield$eventStore2$fe = _context5.sent;
|
|
266
266
|
contracts = _yield$eventStore2$fe.contracts;
|
|
267
267
|
|
|
268
|
-
_test.assert.isTrue(contracts.length
|
|
268
|
+
_test.assert.isTrue(contracts.length > 2);
|
|
269
269
|
|
|
270
270
|
skillContract = contracts[1];
|
|
271
271
|
sig = _spruceEventUtils.eventContractUtil.getSignatureByName(skillContract, "".concat(skill1.slug, ".my-fantastic-event::").concat(this.version.constValue));
|
|
@@ -449,14 +449,15 @@ var EventStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
449
449
|
case 11:
|
|
450
450
|
_context8.next = 13;
|
|
451
451
|
return this.Store('event').fetchEventContracts({
|
|
452
|
-
localNamespace: skill.slug
|
|
452
|
+
localNamespace: skill.slug,
|
|
453
|
+
namespaces: ['core']
|
|
453
454
|
});
|
|
454
455
|
|
|
455
456
|
case 13:
|
|
456
457
|
_yield$this$Store$fet = _context8.sent;
|
|
457
458
|
contracts = _yield$this$Store$fet.contracts;
|
|
458
459
|
|
|
459
|
-
_test.assert.
|
|
460
|
+
_test.assert.isLength(contracts, 2);
|
|
460
461
|
|
|
461
462
|
name = _spruceEventUtils.eventNameUtil.join({
|
|
462
463
|
eventName: EVENT_NAME,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","diskUtil","writeFile","doesThrowAsync","loadLocalContract","RegExp","err","errorAssertUtil","assertError","copyEventBuildersAndPermissions","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","resolvePath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length >= 2)\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tassert.isTrue(contracts.length >= 2)\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","diskUtil","writeFile","doesThrowAsync","loadLocalContract","RegExp","err","errorAssertUtil","assertError","copyEventBuildersAndPermissions","namespaces","isLength","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","resolvePath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length > 2)\n\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t\tnamespaces: ['core'],\n\t\t})\n\n\t\tassert.isLength(contracts, 2)\n\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
@@ -10,4 +10,5 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
10
10
|
protected static turnsSingleContractIntoTemplateItem(): void;
|
|
11
11
|
protected static generateItems(contracts: EventContract[], expectedEventContractTemplateItems: EventContractTemplateItem[], expectedSchemaTemplateItems?: SchemaTemplateItem[]): void;
|
|
12
12
|
protected static canPullEventContractSchemaFromCoreEventContract(): void;
|
|
13
|
+
protected static sortsEventsAlphabetically(): void;
|
|
13
14
|
}
|
|
@@ -39,7 +39,7 @@ var _EventTemplateItemBuilder = _interopRequireDefault(require("../../templateIt
|
|
|
39
39
|
|
|
40
40
|
var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
|
|
41
41
|
|
|
42
|
-
var _eventSignatures2, _eventSignatures3, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _temp;
|
|
42
|
+
var _eventSignatures2, _eventSignatures3, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _temp;
|
|
43
43
|
|
|
44
44
|
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); }; }
|
|
45
45
|
|
|
@@ -249,7 +249,7 @@ var expectedContractWithEmitPayloadTemplateItem = {
|
|
|
249
249
|
emitPayloadSchema: _objectSpread({}, proximityEmitPayloadTemplateItem)
|
|
250
250
|
})
|
|
251
251
|
};
|
|
252
|
-
var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)('builds emit payload schema into a template item', [contractWithEmitPayload], [expectedContractWithEmitPayloadTemplateItem], [relatedToRelatedToProximitySchemaTemplateItem, relatedToProximitySchemaTemplateItem, proximityEmitPayloadTemplateItem]), _dec5 = (0, _test.test)('turns 1 contract with 2 event signature into 2 template items', [contractWith2Signatures], [didBookTemplateItem, willBookTemplateItem]), _dec6 = (0, _test.test)('turns 2 contract with 2 event signature into 4 template items', [contractWith2Signatures, contractWith2Signatures], [didBookTemplateItem,
|
|
252
|
+
var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)('builds emit payload schema into a template item', [contractWithEmitPayload], [expectedContractWithEmitPayloadTemplateItem], [relatedToRelatedToProximitySchemaTemplateItem, relatedToProximitySchemaTemplateItem, proximityEmitPayloadTemplateItem]), _dec5 = (0, _test.test)('turns 1 contract with 2 event signature into 2 template items', [contractWith2Signatures], [didBookTemplateItem, willBookTemplateItem]), _dec6 = (0, _test.test)('turns 2 contract with 2 event signature into 4 template items', [contractWith2Signatures, contractWith2Signatures], [didBookTemplateItem, didBookTemplateItem, willBookTemplateItem, willBookTemplateItem]), _dec7 = (0, _test.test)('turns 1 contract with 2 namespaced event signatures to 2 template items', [contractWith2NamespacedSignatures], [didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]), _dec8 = (0, _test.test)(), _dec9 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractCliTest) {
|
|
253
253
|
(0, _inherits2["default"])(EventTemplateItemBuilderTest, _AbstractCliTest);
|
|
254
254
|
|
|
255
255
|
var _super = _createSuper(EventTemplateItemBuilderTest);
|
|
@@ -383,8 +383,26 @@ var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.
|
|
|
383
383
|
|
|
384
384
|
_test.assert.isTruthy(match);
|
|
385
385
|
}
|
|
386
|
+
}, {
|
|
387
|
+
key: "sortsEventsAlphabetically",
|
|
388
|
+
value: function sortsEventsAlphabetically() {
|
|
389
|
+
var _this$itemBuilder$bui4 = this.itemBuilder.buildTemplateItems({
|
|
390
|
+
contracts: [{
|
|
391
|
+
eventSignatures: {
|
|
392
|
+
'zebra-cheeta': {},
|
|
393
|
+
'register-events': _mercuryCoreEvents.coreEventContracts[0].eventSignatures['can-listen::v2020_12_25']
|
|
394
|
+
}
|
|
395
|
+
}],
|
|
396
|
+
localNamespace: 'testing'
|
|
397
|
+
}),
|
|
398
|
+
eventContractTemplateItems = _this$itemBuilder$bui4.eventContractTemplateItems;
|
|
399
|
+
|
|
400
|
+
_test.assert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents');
|
|
401
|
+
|
|
402
|
+
_test.assert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta');
|
|
403
|
+
}
|
|
386
404
|
}]);
|
|
387
405
|
return EventTemplateItemBuilderTest;
|
|
388
|
-
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "itemBuilder", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "canCreateNewItemBuilder", [_dec], Object.getOwnPropertyDescriptor(_class, "canCreateNewItemBuilder"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasGenerateFunction", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasGenerateFunction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "turnsSingleContractIntoTemplateItem", [_dec3], Object.getOwnPropertyDescriptor(_class, "turnsSingleContractIntoTemplateItem"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generateItems", [_dec4, _dec5, _dec6, _dec7], Object.getOwnPropertyDescriptor(_class, "generateItems"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canPullEventContractSchemaFromCoreEventContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "canPullEventContractSchemaFromCoreEventContract"), _class)), _class));
|
|
406
|
+
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "itemBuilder", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "canCreateNewItemBuilder", [_dec], Object.getOwnPropertyDescriptor(_class, "canCreateNewItemBuilder"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasGenerateFunction", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasGenerateFunction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "turnsSingleContractIntoTemplateItem", [_dec3], Object.getOwnPropertyDescriptor(_class, "turnsSingleContractIntoTemplateItem"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generateItems", [_dec4, _dec5, _dec6, _dec7], Object.getOwnPropertyDescriptor(_class, "generateItems"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canPullEventContractSchemaFromCoreEventContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "canPullEventContractSchemaFromCoreEventContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "sortsEventsAlphabetically", [_dec9], Object.getOwnPropertyDescriptor(_class, "sortsEventsAlphabetically"), _class)), _class));
|
|
389
407
|
exports["default"] = EventTemplateItemBuilderTest;
|
|
390
408
|
//# sourceMappingURL=EventTemplateItemBuilder.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/EventTemplateItemBuilder.test.ts"],"names":["expectedVersion","versionUtil","generateVersion","dirValue","bookContract","eventSignatures","contractWith2Signatures","contractWith2NamespacedSignatures","didBookTemplateItem","version","namePascal","nameCamel","isLocal","namespace","namesUtil","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","toCamel","namespacePascal","toPascal","imports","importAs","willBookTemplateItem","didBookWithNamespaceTemplateItem","willBookWithNamespaceTemplateItem","relatedToRelatedToProximitySchema","id","fields","onlyField","type","relatedToRelatedToProximitySchemaTemplateItem","nameReadable","schema","isNested","destinationDir","relatedToProximitySchema","boolField","relatedToRelatedSchema","options","relatedToProximitySchemaTemplateItem","schemaIds","proximityEmitPayloadSchema","textField","relatedSchema","proximityEmitPayloadTemplateItem","contractWithEmitPayload","emitPayloadSchema","expectedContractWithEmitPayloadTemplateItem","EventTemplateItemBuilderTest","itemBuilder","EventTemplateItemBuilder","assert","isTruthy","isFunction","buildTemplateItems","contracts","localNamespace","eventContractTemplateItems","actual","isEqualDeep","expectedEventContractTemplateItems","expectedSchemaTemplateItems","schemaTemplateItems","coreEventContracts","match","find","item","AbstractCliTest"],"mappings":"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","sourcesContent":["import { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventContract } from '@sprucelabs/mercury-types'\nimport { buildSchema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { EventContractTemplateItem } from '@sprucelabs/spruce-templates'\nimport { test, assert } from '@sprucelabs/test'\nimport EventTemplateItemBuilder from '../../templateItemBuilders/EventTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst expectedVersion = versionUtil.generateVersion().dirValue\n\nconst bookContract: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2Signatures: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2NamespacedSignatures: EventContract = {\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\teventSignatures: {\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst relatedToRelatedToProximitySchema = buildSchema({\n\tid: 'relatedToRelatedToProximitySchema',\n\tversion: expectedVersion,\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToRelatedToProximitySchema.id,\n\tnameCamel: 'relatedToRelatedToProximitySchema',\n\tnamePascal: 'RelatedToRelatedToProximitySchema',\n\tnameReadable: 'relatedToRelatedToProximitySchema',\n\tschema: {\n\t\t...relatedToRelatedToProximitySchema,\n\t\tnamespace: 'Proximity',\n\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst relatedToProximitySchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'relatedToProximitySchema',\n\tfields: {\n\t\tboolField: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\trelatedToRelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToRelatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToProximitySchema.id,\n\tnameCamel: 'relatedToProximitySchema',\n\tnamePascal: 'RelatedToProximitySchema',\n\tnameReadable: 'relatedToProximitySchema',\n\tschema: {\n\t\tid: 'relatedToProximitySchema',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\tboolField: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t\trelatedToRelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToRelatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst proximityEmitPayloadSchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'proximityEmitPayload',\n\tfields: {\n\t\ttextField: {\n\t\t\ttype: 'text',\n\t\t},\n\t\trelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst proximityEmitPayloadTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: proximityEmitPayloadSchema.id,\n\tnameCamel: 'proximityEmitPayload',\n\tnamePascal: 'ProximityEmitPayload',\n\tnameReadable: 'proximityEmitPayload',\n\tschema: {\n\t\tid: 'proximityEmitPayload',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\ttextField: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\trelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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\t},\n\tisNested: false,\n\tdestinationDir: '#spruce/events',\n}\n\nconst contractWithEmitPayload: EventContract = {\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: proximityEmitPayloadSchema,\n\t\t},\n\t},\n}\n\nconst expectedContractWithEmitPayloadTemplateItem: EventContractTemplateItem = {\n\tnamePascal: 'DidEnter',\n\tnameCamel: 'didEnter',\n\tnamespace: 'proximity',\n\tisLocal: false,\n\tversion: expectedVersion,\n\tnamespaceCamel: 'proximity',\n\tnamespacePascal: 'Proximity',\n\timports: [\n\t\t{\n\t\t\tpackage: `#spruce/schemas/proximity/${expectedVersion}/proximityEmitPayload.schema`,\n\t\t\timportAs: 'proximityEmitPayloadSchema',\n\t\t},\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: {\n\t\t\t\t...proximityEmitPayloadTemplateItem,\n\t\t\t},\n\t\t},\n\t},\n}\n\nexport default class EventTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: EventTemplateItemBuilder\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new EventTemplateItemBuilder()\n\t}\n\n\t@test()\n\tprotected static async canCreateNewItemBuilder() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static async hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleContractIntoTemplateItem() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [bookContract],\n\t\t\tlocalNamespace: 'test-namespace',\n\t\t})\n\n\t\tconst actual = eventContractTemplateItems[0]\n\n\t\tassert.isEqualDeep(actual, didBookTemplateItem)\n\t}\n\n\t@test(\n\t\t'builds emit payload schema into a template item',\n\t\t[contractWithEmitPayload],\n\t\t[expectedContractWithEmitPayloadTemplateItem],\n\t\t[\n\t\t\trelatedToRelatedToProximitySchemaTemplateItem,\n\t\t\trelatedToProximitySchemaTemplateItem,\n\t\t\tproximityEmitPayloadTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 event signature into 2 template items',\n\t\t[contractWith2Signatures],\n\t\t[didBookTemplateItem, willBookTemplateItem]\n\t)\n\t@test(\n\t\t'turns 2 contract with 2 event signature into 4 template items',\n\t\t[contractWith2Signatures, contractWith2Signatures],\n\t\t[\n\t\t\tdidBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t\tdidBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 namespaced event signatures to 2 template items',\n\t\t[contractWith2NamespacedSignatures],\n\t\t[didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]\n\t)\n\tprotected static generateItems(\n\t\tcontracts: EventContract[],\n\t\texpectedEventContractTemplateItems: EventContractTemplateItem[],\n\t\texpectedSchemaTemplateItems: SchemaTemplateItem[] = []\n\t) {\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\tthis.itemBuilder.buildTemplateItems({\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace: 'appointments',\n\t\t\t})\n\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems,\n\t\t\texpectedEventContractTemplateItems\n\t\t)\n\n\t\tassert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)\n\t}\n\n\t@test()\n\tprotected static canPullEventContractSchemaFromCoreEventContract() {\n\t\tconst { schemaTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tconst match = schemaTemplateItems.find((item) => item.id === 'eventSource')\n\t\tassert.isTruthy(match)\n\t}\n}\n"],"file":"EventTemplateItemBuilder.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/EventTemplateItemBuilder.test.ts"],"names":["expectedVersion","versionUtil","generateVersion","dirValue","bookContract","eventSignatures","contractWith2Signatures","contractWith2NamespacedSignatures","didBookTemplateItem","version","namePascal","nameCamel","isLocal","namespace","namesUtil","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","toCamel","namespacePascal","toPascal","imports","importAs","willBookTemplateItem","didBookWithNamespaceTemplateItem","willBookWithNamespaceTemplateItem","relatedToRelatedToProximitySchema","id","fields","onlyField","type","relatedToRelatedToProximitySchemaTemplateItem","nameReadable","schema","isNested","destinationDir","relatedToProximitySchema","boolField","relatedToRelatedSchema","options","relatedToProximitySchemaTemplateItem","schemaIds","proximityEmitPayloadSchema","textField","relatedSchema","proximityEmitPayloadTemplateItem","contractWithEmitPayload","emitPayloadSchema","expectedContractWithEmitPayloadTemplateItem","EventTemplateItemBuilderTest","itemBuilder","EventTemplateItemBuilder","assert","isTruthy","isFunction","buildTemplateItems","contracts","localNamespace","eventContractTemplateItems","actual","isEqualDeep","expectedEventContractTemplateItems","expectedSchemaTemplateItems","schemaTemplateItems","coreEventContracts","match","find","item","isEqual","AbstractCliTest"],"mappings":"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","sourcesContent":["import { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventContract } from '@sprucelabs/mercury-types'\nimport { buildSchema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { EventContractTemplateItem } from '@sprucelabs/spruce-templates'\nimport { test, assert } from '@sprucelabs/test'\nimport EventTemplateItemBuilder from '../../templateItemBuilders/EventTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst expectedVersion = versionUtil.generateVersion().dirValue\n\nconst bookContract: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2Signatures: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2NamespacedSignatures: EventContract = {\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\teventSignatures: {\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst relatedToRelatedToProximitySchema = buildSchema({\n\tid: 'relatedToRelatedToProximitySchema',\n\tversion: expectedVersion,\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToRelatedToProximitySchema.id,\n\tnameCamel: 'relatedToRelatedToProximitySchema',\n\tnamePascal: 'RelatedToRelatedToProximitySchema',\n\tnameReadable: 'relatedToRelatedToProximitySchema',\n\tschema: {\n\t\t...relatedToRelatedToProximitySchema,\n\t\tnamespace: 'Proximity',\n\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst relatedToProximitySchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'relatedToProximitySchema',\n\tfields: {\n\t\tboolField: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\trelatedToRelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToRelatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToProximitySchema.id,\n\tnameCamel: 'relatedToProximitySchema',\n\tnamePascal: 'RelatedToProximitySchema',\n\tnameReadable: 'relatedToProximitySchema',\n\tschema: {\n\t\tid: 'relatedToProximitySchema',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\tboolField: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t\trelatedToRelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToRelatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst proximityEmitPayloadSchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'proximityEmitPayload',\n\tfields: {\n\t\ttextField: {\n\t\t\ttype: 'text',\n\t\t},\n\t\trelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst proximityEmitPayloadTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: proximityEmitPayloadSchema.id,\n\tnameCamel: 'proximityEmitPayload',\n\tnamePascal: 'ProximityEmitPayload',\n\tnameReadable: 'proximityEmitPayload',\n\tschema: {\n\t\tid: 'proximityEmitPayload',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\ttextField: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\trelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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\t},\n\tisNested: false,\n\tdestinationDir: '#spruce/events',\n}\n\nconst contractWithEmitPayload: EventContract = {\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: proximityEmitPayloadSchema,\n\t\t},\n\t},\n}\n\nconst expectedContractWithEmitPayloadTemplateItem: EventContractTemplateItem = {\n\tnamePascal: 'DidEnter',\n\tnameCamel: 'didEnter',\n\tnamespace: 'proximity',\n\tisLocal: false,\n\tversion: expectedVersion,\n\tnamespaceCamel: 'proximity',\n\tnamespacePascal: 'Proximity',\n\timports: [\n\t\t{\n\t\t\tpackage: `#spruce/schemas/proximity/${expectedVersion}/proximityEmitPayload.schema`,\n\t\t\timportAs: 'proximityEmitPayloadSchema',\n\t\t},\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: {\n\t\t\t\t...proximityEmitPayloadTemplateItem,\n\t\t\t},\n\t\t},\n\t},\n}\n\nexport default class EventTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: EventTemplateItemBuilder\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new EventTemplateItemBuilder()\n\t}\n\n\t@test()\n\tprotected static async canCreateNewItemBuilder() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static async hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleContractIntoTemplateItem() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [bookContract],\n\t\t\tlocalNamespace: 'test-namespace',\n\t\t})\n\n\t\tconst actual = eventContractTemplateItems[0]\n\n\t\tassert.isEqualDeep(actual, didBookTemplateItem)\n\t}\n\n\t@test(\n\t\t'builds emit payload schema into a template item',\n\t\t[contractWithEmitPayload],\n\t\t[expectedContractWithEmitPayloadTemplateItem],\n\t\t[\n\t\t\trelatedToRelatedToProximitySchemaTemplateItem,\n\t\t\trelatedToProximitySchemaTemplateItem,\n\t\t\tproximityEmitPayloadTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 event signature into 2 template items',\n\t\t[contractWith2Signatures],\n\t\t[didBookTemplateItem, willBookTemplateItem]\n\t)\n\t@test(\n\t\t'turns 2 contract with 2 event signature into 4 template items',\n\t\t[contractWith2Signatures, contractWith2Signatures],\n\t\t[\n\t\t\tdidBookTemplateItem,\n\t\t\tdidBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 namespaced event signatures to 2 template items',\n\t\t[contractWith2NamespacedSignatures],\n\t\t[didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]\n\t)\n\tprotected static generateItems(\n\t\tcontracts: EventContract[],\n\t\texpectedEventContractTemplateItems: EventContractTemplateItem[],\n\t\texpectedSchemaTemplateItems: SchemaTemplateItem[] = []\n\t) {\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\tthis.itemBuilder.buildTemplateItems({\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace: 'appointments',\n\t\t\t})\n\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems,\n\t\t\texpectedEventContractTemplateItems\n\t\t)\n\n\t\tassert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)\n\t}\n\n\t@test()\n\tprotected static canPullEventContractSchemaFromCoreEventContract() {\n\t\tconst { schemaTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tconst match = schemaTemplateItems.find((item) => item.id === 'eventSource')\n\t\tassert.isTruthy(match)\n\t}\n\n\t@test()\n\tprotected static sortsEventsAlphabetically() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'zebra-cheeta': {},\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tassert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents')\n\t\tassert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta')\n\t}\n}\n"],"file":"EventTemplateItemBuilder.test.js"}
|
|
@@ -50,7 +50,7 @@ var SpruceError = /*#__PURE__*/function (_AbstractSpruceError) {
|
|
|
50
50
|
value:
|
|
51
51
|
/** An easy to understand version of the errors */
|
|
52
52
|
function friendlyMessage() {
|
|
53
|
-
var _options$friendlyMess, _options$originalErro2, _options$originalErro3, _options$friendlyMess2, _options$originalErro4, _options$originalErro5, _options$originalErro7, _ref, _options$friendlyMess3, _options$originalErro8;
|
|
53
|
+
var _options$friendlyMess, _options$originalErro2, _options$originalErro3, _options$friendlyMess2, _options$originalErro4, _options$originalErro5, _options$originalErro7, _ref, _options$friendlyMess3, _options$originalErro8, _options$friendlyMess4;
|
|
54
54
|
|
|
55
55
|
var options = this.options;
|
|
56
56
|
var message;
|
|
@@ -246,7 +246,7 @@ var SpruceError = /*#__PURE__*/function (_AbstractSpruceError) {
|
|
|
246
246
|
break;
|
|
247
247
|
|
|
248
248
|
case 'SKILL_NOT_FOUND':
|
|
249
|
-
message = "I couldn't find that skill!";
|
|
249
|
+
message = (_options$friendlyMess4 = options.friendlyMessage) !== null && _options$friendlyMess4 !== void 0 ? _options$friendlyMess4 : "I couldn't find that skill!";
|
|
250
250
|
break;
|
|
251
251
|
|
|
252
252
|
case 'NO_SKILLS_REGISTERED':
|