update to use getEntityByRef

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2022-03-03 11:26:42 +01:00
parent a52f69987a
commit 899f196af5
41 changed files with 157 additions and 111 deletions
@@ -20,7 +20,7 @@ import { CompoundEntityRef } from '@backstage/catalog-model';
describe('CachedEntityLoader', () => {
const catalog: jest.Mocked<CatalogClient> = {
getEntityByName: jest.fn(),
getEntityByRef: jest.fn(),
} as any;
const cache: jest.Mocked<CacheClient> = {
@@ -53,7 +53,7 @@ describe('CachedEntityLoader', () => {
it('writes entities to cache', async () => {
cache.get.mockResolvedValue(undefined);
catalog.getEntityByName.mockResolvedValue(entity);
catalog.getEntityByRef.mockResolvedValue(entity);
const result = await loader.load(entityName, token);
@@ -71,12 +71,12 @@ describe('CachedEntityLoader', () => {
const result = await loader.load(entityName, token);
expect(result).toEqual(entity);
expect(catalog.getEntityByName).not.toBeCalled();
expect(catalog.getEntityByRef).not.toBeCalled();
});
it('does not cache missing entites', async () => {
cache.get.mockResolvedValue(undefined);
catalog.getEntityByName.mockResolvedValue(undefined);
catalog.getEntityByRef.mockResolvedValue(undefined);
const result = await loader.load(entityName, token);
@@ -86,7 +86,7 @@ describe('CachedEntityLoader', () => {
it('uses entity ref as cache key for anonymous users', async () => {
cache.get.mockResolvedValue(undefined);
catalog.getEntityByName.mockResolvedValue(entity);
catalog.getEntityByRef.mockResolvedValue(entity);
const result = await loader.load(entityName, undefined);
@@ -103,7 +103,7 @@ describe('CachedEntityLoader', () => {
setTimeout(() => resolve(undefined), 10000);
}),
);
catalog.getEntityByName.mockResolvedValue(entity);
catalog.getEntityByRef.mockResolvedValue(entity);
const result = await loader.load(entityName, token);
@@ -37,17 +37,17 @@ export class CachedEntityLoader {
}
async load(
entityName: CompoundEntityRef,
entityRef: CompoundEntityRef,
token: string | undefined,
): Promise<Entity | undefined> {
const cacheKey = this.getCacheKey(entityName, token);
const cacheKey = this.getCacheKey(entityRef, token);
let result = await this.getFromCache(cacheKey);
if (result) {
return result;
}
result = await this.catalog.getEntityByName(entityName, { token });
result = await this.catalog.getEntityByRef(entityRef, { token });
if (result) {
this.cache.set(cacheKey, result, { ttl: 5000 });