diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts index b122f52f0a..a8317db1d2 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverRegistry.ts @@ -21,8 +21,17 @@ import { } from '@backstage/plugin-tech-insights-node'; import { ConflictError, NotFoundError } from '@backstage/errors'; -export class FactRetrieverRegistry { - private readonly retrievers = new Map(); +export interface FactRetrieverRegistryInterface { + readonly retrievers: Map; + register(registration: FactRetrieverRegistration): void; + get(retrieverReference: string): FactRetrieverRegistration; + listRetrievers(): FactRetriever[]; + listRegistrations(): FactRetrieverRegistration[]; + getSchemas(): FactSchema[]; +} + +export class FactRetrieverRegistry implements FactRetrieverRegistryInterface { + readonly retrievers = new Map(); constructor(retrievers: FactRetrieverRegistration[]) { retrievers.forEach(it => { diff --git a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts index 418c406784..1314ee5dbd 100644 --- a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts +++ b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts @@ -16,7 +16,10 @@ import { FactRetrieverEngine } from './fact/FactRetrieverEngine'; import { Logger } from 'winston'; -import { FactRetrieverRegistry } from './fact/FactRetrieverRegistry'; +import { + FactRetrieverRegistry, + FactRetrieverRegistryInterface, +} from './fact/FactRetrieverRegistry'; import { Config } from '@backstage/config'; import { PluginDatabaseManager, @@ -59,7 +62,7 @@ export interface TechInsightsOptions< */ factCheckerFactory?: FactCheckerFactory; - factRetrieverRegistry?: FactRetrieverRegistry; + factRetrieverRegistry?: FactRetrieverRegistryInterface; logger: Logger; config: Config; @@ -111,7 +114,7 @@ export const buildTechInsightsContext = async < tokenManager, } = options; - const buildFactRetrieverRegistry = () => { + const buildFactRetrieverRegistry = (): FactRetrieverRegistryInterface => { if (!options.factRetrieverRegistry) { if (!factRetrievers) { throw new Error(