From e598739487d641e673563c725e7b68eb8cc311f8 Mon Sep 17 00:00:00 2001 From: Neemys <36508659+Neemys@users.noreply.github.com> Date: Mon, 1 Aug 2022 17:06:57 +0200 Subject: [PATCH] Modify plugin `sonarqube`'s APIs to take object as parameter to make the API more easy to extend. Signed-off-by: Neemys <36508659+Neemys@users.noreply.github.com> --- plugins/sonarqube/src/api/SonarQubeApi.ts | 11 +++++++---- .../sonarqube/src/api/SonarQubeClient.test.ts | 17 +++++++++++++---- plugins/sonarqube/src/api/SonarQubeClient.ts | 11 +++++++---- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/plugins/sonarqube/src/api/SonarQubeApi.ts b/plugins/sonarqube/src/api/SonarQubeApi.ts index 2232a00d9f..271f1d8e8e 100644 --- a/plugins/sonarqube/src/api/SonarQubeApi.ts +++ b/plugins/sonarqube/src/api/SonarQubeApi.ts @@ -38,8 +38,11 @@ export const sonarQubeApiRef = createApiRef({ }); export type SonarQubeApi = { - getFindingSummary( - projectInstance?: string, - componentKey?: string, - ): Promise; + getFindingSummary({ + componentKey, + projectInstance, + }: { + componentKey?: string; + projectInstance?: string; + }): Promise; }; diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index 87137ea93f..dc5d7f077e 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -124,7 +124,9 @@ describe('SonarQubeClient', () => { identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary).toEqual( expect.objectContaining({ lastAnalysis: '2020-01-01T00:00:00Z', @@ -199,7 +201,10 @@ describe('SonarQubeClient', () => { identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service', 'custom'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + projectInstance: 'custom', + }); expect(summary).toEqual( expect.objectContaining({ @@ -241,7 +246,9 @@ describe('SonarQubeClient', () => { discoveryApi, identityApi: identityApiAuthenticated, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); }); @@ -267,7 +274,9 @@ describe('SonarQubeClient', () => { discoveryApi, identityApi: identityApiGuest, }); - const summary = await client.getFindingSummary('our:service'); + const summary = await client.getFindingSummary({ + componentKey: 'our:service', + }); expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); }); diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts index 59182d917f..9ec40e8420 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.ts @@ -56,10 +56,13 @@ export class SonarQubeClient implements SonarQubeApi { return undefined; } - async getFindingSummary( - componentKey?: string, - projectInstance?: string, - ): Promise { + async getFindingSummary({ + componentKey, + projectInstance, + }: { + componentKey?: string; + projectInstance?: string; + } = {}): Promise { if (!componentKey) { return undefined; }