From b52baa518b4868a3c344a752cfa29fab1c24515a Mon Sep 17 00:00:00 2001 From: Erik Larsson Date: Tue, 19 Jan 2021 18:34:21 +0100 Subject: [PATCH] Make identityApi required --- plugins/fossa/src/api/FossaClient.test.ts | 25 ++++++++++++++++++++--- plugins/fossa/src/api/FossaClient.ts | 11 +++++----- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/plugins/fossa/src/api/FossaClient.test.ts b/plugins/fossa/src/api/FossaClient.test.ts index dd0fdeff5e..820210e2b6 100644 --- a/plugins/fossa/src/api/FossaClient.test.ts +++ b/plugins/fossa/src/api/FossaClient.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { UrlPatternDiscovery } from '@backstage/core'; +import { UrlPatternDiscovery, IdentityApi } from '@backstage/core'; import { msw } from '@backstage/test-utils'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; @@ -22,6 +22,21 @@ import { FindingSummary, FossaApi, FossaClient } from './index'; const server = setupServer(); +const identityApi: IdentityApi = { + getUserId() { + return 'jane-fonda'; + }, + getProfile() { + return { email: 'jane-fonda@spotify.com' }; + }, + async getIdToken() { + return Promise.resolve('fake-id-token'); + }, + async signOut() { + return Promise.resolve(); + }, +}; + describe('FossaClient', () => { msw.setupDefaultHandlers(server); @@ -30,7 +45,11 @@ describe('FossaClient', () => { let client: FossaApi; beforeEach(() => { - client = new FossaClient({ discoveryApi, organizationId: '8736' }); + client = new FossaClient({ + discoveryApi, + identityApi, + organizationId: '8736', + }); }); it('should report finding summary', async () => { @@ -137,7 +156,7 @@ describe('FossaClient', () => { }); it('should skip organizationId', async () => { - client = new FossaClient({ discoveryApi }); + client = new FossaClient({ discoveryApi, identityApi }); server.use( rest.get(`${mockBaseUrl}/fossa/projects`, (req, res, ctx) => { diff --git a/plugins/fossa/src/api/FossaClient.ts b/plugins/fossa/src/api/FossaClient.ts index 6730f7ddb3..33c8c65c5f 100644 --- a/plugins/fossa/src/api/FossaClient.ts +++ b/plugins/fossa/src/api/FossaClient.ts @@ -20,7 +20,7 @@ import { FindingSummary, FossaApi } from './FossaApi'; export class FossaClient implements FossaApi { discoveryApi: DiscoveryApi; - identityApi?: IdentityApi; + identityApi: IdentityApi; organizationId?: string; constructor({ @@ -29,7 +29,7 @@ export class FossaClient implements FossaApi { organizationId, }: { discoveryApi: DiscoveryApi; - identityApi?: IdentityApi; + identityApi: IdentityApi; organizationId?: string; }) { this.discoveryApi = discoveryApi; @@ -39,10 +39,9 @@ export class FossaClient implements FossaApi { private async callApi(path: string): Promise { const apiUrl = `${await this.discoveryApi.getBaseUrl('proxy')}/fossa`; - const headers: Record = {}; - if (this.identityApi) { - headers.authorization = `Bearer ${this.identityApi.getIdToken()}`; - } + const headers: Record = { + authorization: await `Bearer ${this.identityApi.getIdToken()}`, + }; const response = await fetch(`${apiUrl}/${path}`, { headers, });