From ce77e78c9371895ac34157cf48283c76031b595a Mon Sep 17 00:00:00 2001 From: Kiss Miklos Date: Fri, 26 Aug 2022 10:07:16 +0200 Subject: [PATCH] add tests for emitting refresh keys Signed-off-by: Kiss Miklos --- .changeset/great-cats-sit.md | 5 ++++ .../modules/core/UrlReaderProcessor.test.ts | 30 +++++++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 .changeset/great-cats-sit.md diff --git a/.changeset/great-cats-sit.md b/.changeset/great-cats-sit.md new file mode 100644 index 0000000000..abdf9cfb39 --- /dev/null +++ b/.changeset/great-cats-sit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Fixes a bug to be able to utilize refresh keys after the entity is loaded from cache diff --git a/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts b/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts index ee68b2aa39..80992c7cbb 100644 --- a/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts @@ -127,19 +127,25 @@ describe('UrlReaderProcessor', () => { mockCache.get.mockResolvedValue(cacheItem); const processor = new UrlReaderProcessor({ reader, logger }); - const generated = (await new Promise(emit => - processor.readLocation( - spec, - false, - emit, - defaultEntityDataParser, - mockCache, - ), - )) as CatalogProcessorEntityResult; + const emitted = new Array(); + await processor.readLocation( + spec, + false, + r => emitted.push(r), + defaultEntityDataParser, + mockCache, + ); + + const entity = emitted[0]; + const refresh = emitted[1]; + + expect(entity.type).toBe('entity'); + expect(entity.location).toEqual(spec); + expect(entity.entity).toEqual({ mock: 'entity' }); + + expect(refresh.type).toBe('refresh'); + expect(refresh.key).toBe('url:http://localhost/component.yaml'); - expect(generated.type).toBe('entity'); - expect(generated.location).toEqual(spec); - expect(generated.entity).toEqual({ mock: 'entity' }); expect(mockCache.get).toBeCalledWith('v1'); expect(mockCache.get).toBeCalledTimes(1); expect(mockCache.set).toBeCalledTimes(0);