From c505860ee59eec86c7afe7eee0e0174d72182d8d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 25 Sep 2022 20:40:42 +0200 Subject: [PATCH] catalog-backend: integration test, forward more process args and throw on unhandled error Signed-off-by: Patrik Oldsberg --- .../catalog-backend/src/integration.test.ts | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/plugins/catalog-backend/src/integration.test.ts b/plugins/catalog-backend/src/integration.test.ts index b702dc1180..a742d86ba7 100644 --- a/plugins/catalog-backend/src/integration.test.ts +++ b/plugins/catalog-backend/src/integration.test.ts @@ -40,7 +40,11 @@ import { DefaultRefreshService } from './service/DefaultRefreshService'; import { connectEntityProviders } from './processing/connectEntityProviders'; import { EntitiesCatalog } from './catalog/types'; import { RefreshOptions, RefreshService } from './service/types'; -import { EntityProviderConnection } from '@backstage/plugin-catalog-node'; +import { + CatalogProcessorEmit, + EntityProviderConnection, + LocationSpec, +} from '@backstage/plugin-catalog-node'; import { RefreshStateItem } from './database/types'; const voidLogger = getVoidLogger(); @@ -179,7 +183,11 @@ class TestHarness { logger?: Logger; db?: Knex; permissions?: PermissionEvaluator; - processEntity?(entity: Entity): Promise; + processEntity?( + entity: Entity, + location: LocationSpec, + emit: CatalogProcessorEmit, + ): Promise; onProcessingError?(event: { unprocessedEntity: Entity; errors: Error[]; @@ -216,9 +224,13 @@ class TestHarness { processors: [ { getProcessorName: () => 'test', - async preProcessEntity(entity: Entity) { + async preProcessEntity( + entity: Entity, + location: LocationSpec, + emit: CatalogProcessorEmit, + ) { if (options?.processEntity) { - return options?.processEntity(entity); + return options?.processEntity(entity, location, emit); } return entity; }, @@ -246,7 +258,13 @@ class TestHarness { () => createHash('sha1'), 50, event => { - options?.onProcessingError?.(event); + if (options?.onProcessingError) { + options.onProcessingError(event); + } else { + throw new Error( + `Catalog processing error, ${event.errors.join(', ')}`, + ); + } }, proxyProgressTracker, );