From 015149cffde95f1cdf282841639422975862a510 Mon Sep 17 00:00:00 2001 From: Marley <55280588+marleypowell@users.noreply.github.com> Date: Fri, 19 Apr 2024 09:09:40 +0000 Subject: [PATCH] fix: added `eventsServiceFactory` to `defaultServiceFactories` Signed-off-by: Marley <55280588+marleypowell@users.noreply.github.com> --- packages/backend-defaults/package.json | 29 ++++++++++--------- .../backend-defaults/src/CreateBackend.ts | 2 ++ packages/backend-test-utils/package.json | 1 + .../src/next/services/mockServices.ts | 12 ++++++++ .../src/next/wiring/TestBackend.ts | 1 + plugins/events-node/src/index.ts | 2 +- plugins/events-node/src/service.ts | 29 ++++++++++--------- 7 files changed, 47 insertions(+), 29 deletions(-) diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 8b061b15f4..d2c86e46c8 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,5 +1,6 @@ { "name": "@backstage/backend-defaults", + "version": "0.2.17", "description": "Backend defaults used by Backstage backend apps", "version": "0.2.18-next.0", "main": "src/index.ts", @@ -9,38 +10,38 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "node-library" - }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "packages/backend-defaults" }, - "keywords": [ - "backstage" - ], "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" + ], "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", - "start": "backstage-cli package start" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-app-api": "workspace:^", - "@backstage/backend-common": "workspace:^" + "@backstage/backend-common": "workspace:^", + "@backstage/plugin-events-node": "workspace:^" }, "devDependencies": { "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^" - }, - "files": [ - "dist" - ] + } } diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 5495665dd8..e9bdc03262 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -36,6 +36,7 @@ import { httpAuthServiceFactory, userInfoServiceFactory, } from '@backstage/backend-app-api'; +import { eventsServiceFactory } from '@backstage/plugin-events-node'; export const defaultServiceFactories = [ authServiceFactory(), @@ -56,6 +57,7 @@ export const defaultServiceFactories = [ tokenManagerServiceFactory(), userInfoServiceFactory(), urlReaderServiceFactory(), + eventsServiceFactory(), ]; /** diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 1d43e24adf..e252d267da 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -51,6 +51,7 @@ "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", + "@backstage/plugin-events-node": "workspace:^", "@backstage/types": "workspace:^", "better-sqlite3": "^9.0.0", "cookie": "^0.6.0", diff --git a/packages/backend-test-utils/src/next/services/mockServices.ts b/packages/backend-test-utils/src/next/services/mockServices.ts index a858bf7dbf..05b3ae927c 100644 --- a/packages/backend-test-utils/src/next/services/mockServices.ts +++ b/packages/backend-test-utils/src/next/services/mockServices.ts @@ -52,6 +52,10 @@ import { MockAuthService } from './MockAuthService'; import { MockHttpAuthService } from './MockHttpAuthService'; import { mockCredentials } from './mockCredentials'; import { MockUserInfoService } from './MockUserInfoService'; +import { + eventsServiceFactory, + eventsServiceRef, +} from '@backstage/plugin-events-node'; /** @internal */ function simpleFactory< @@ -397,4 +401,12 @@ export namespace mockServices { search: jest.fn(), })); } + + export namespace events { + export const factory = eventsServiceFactory; + export const mock = simpleMock(eventsServiceRef, () => ({ + publish: jest.fn(), + subscribe: jest.fn(), + })); + } } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 10041dce4f..e43353991f 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -83,6 +83,7 @@ export const defaultServiceFactories = [ mockServices.tokenManager.factory(), mockServices.userInfo.factory(), mockServices.urlReader.factory(), + mockServices.events.factory(), ]; /** diff --git a/plugins/events-node/src/index.ts b/plugins/events-node/src/index.ts index 2bd93a8aea..643ba7f79e 100644 --- a/plugins/events-node/src/index.ts +++ b/plugins/events-node/src/index.ts @@ -22,4 +22,4 @@ export * from './api'; export * from './deprecated'; -export { eventsServiceRef } from './service'; +export { eventsServiceRef, eventsServiceFactory } from './service'; diff --git a/plugins/events-node/src/service.ts b/plugins/events-node/src/service.ts index e1d3047fca..af0e562c80 100644 --- a/plugins/events-node/src/service.ts +++ b/plugins/events-node/src/service.ts @@ -30,18 +30,19 @@ import { EventsService, DefaultEventsService } from './api'; export const eventsServiceRef = createServiceRef({ id: 'events.service', scope: 'plugin', - defaultFactory: async service => - createServiceFactory({ - service, - deps: { - pluginMetadata: coreServices.pluginMetadata, - rootLogger: coreServices.rootLogger, - }, - async createRootContext({ rootLogger }) { - return DefaultEventsService.create({ logger: rootLogger }); - }, - async factory({ pluginMetadata }, eventsService) { - return eventsService.forPlugin(pluginMetadata.getId()); - }, - }), +}); + +/** @public */ +export const eventsServiceFactory = createServiceFactory({ + service: eventsServiceRef, + deps: { + pluginMetadata: coreServices.pluginMetadata, + rootLogger: coreServices.rootLogger, + }, + async createRootContext({ rootLogger }) { + return DefaultEventsService.create({ logger: rootLogger }); + }, + async factory({ pluginMetadata }, eventsService) { + return eventsService.forPlugin(pluginMetadata.getId()); + }, });