diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index f7298888fe..e617324555 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -173,7 +173,7 @@ describe('SonarqubeConfig', () => { }, ]); - expect(config.getInstanceConfig('default')).toEqual({ + expect(config.getInstanceConfig({ sonarqubeName: 'default' })).toEqual({ name: 'default', baseUrl: 'https://sonarqube.example.com', apiKey: '123456789abcdef0123456789abcedf012', @@ -190,7 +190,7 @@ describe('SonarqubeConfig', () => { }, ]); - expect(config.getInstanceConfig('other')).toEqual({ + expect(config.getInstanceConfig({ sonarqubeName: 'other' })).toEqual({ name: 'other', baseUrl: 'https://sonarqube-other.example.com', apiKey: '123456789abcdef0123456789abcedf012', @@ -206,7 +206,9 @@ describe('SonarqubeConfig', () => { }, ]); - expect(() => config.getInstanceConfig('default')).toThrowError(Error); + expect(() => + config.getInstanceConfig({ sonarqubeName: 'default' }), + ).toThrowError(Error); }); it('Throw an error if named instance could not be found', async () => { @@ -214,7 +216,9 @@ describe('SonarqubeConfig', () => { DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG, ]); - expect(() => config.getInstanceConfig('other')).toThrowError(Error); + expect(() => + config.getInstanceConfig({ sonarqubeName: 'other' }), + ).toThrowError(Error); }); }); }); @@ -385,7 +389,10 @@ describe('DefaultSonarqubeInfoProvider', () => { setupHandlers(); const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [ @@ -414,7 +421,10 @@ describe('DefaultSonarqubeInfoProvider', () => { }, }); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); it('Provide undefined as finding if component API answer incorrectly', async () => { @@ -434,7 +444,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); it('Provide findings when metrics API uses pages', async () => { @@ -462,7 +475,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [ @@ -489,7 +505,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toBeUndefined(); }); @@ -509,7 +528,10 @@ describe('DefaultSonarqubeInfoProvider', () => { const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); expect( - await provider.getFindings(DUMMY_COMPONENT_KEY, 'default'), + await provider.getFindings({ + componentKey: DUMMY_COMPONENT_KEY, + instanceName: 'default', + }), ).toEqual({ analysisDate: DUMMY_ANALYSIS_DATE, measures: [], diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index f03593b012..7027738d2c 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -43,10 +43,13 @@ export interface SonarqubeInfoProvider { * @returns All measures with the analysis date. Will return undefined if we * can't provide the full response */ - getFindings( - componentKey: string, - instanceName?: string, - ): Promise; + getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise; } /** @@ -182,7 +185,9 @@ export class SonarqubeConfig { * @returns The requested Sonarqube instance. * @throws Error when no default config could be found or the requested name couldn't be found in config. */ - getInstanceConfig(sonarqubeName?: string): SonarqubeInstanceConfig { + getInstanceConfig({ + sonarqubeName, + }: { sonarqubeName?: string } = {}): SonarqubeInstanceConfig { const DEFAULT_SONARQUBE_NAME = 'default'; if (!sonarqubeName || sonarqubeName === DEFAULT_SONARQUBE_NAME) { @@ -301,7 +306,9 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { getBaseUrl({ instanceName }: { instanceName?: string } = {}): { baseUrl: string; } { - const instanceConfig = this.config.getInstanceConfig(instanceName); + const instanceConfig = this.config.getInstanceConfig({ + sonarqubeName: instanceName, + }); return { baseUrl: instanceConfig.baseUrl }; } @@ -309,11 +316,16 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { * {@inheritDoc SonarqubeInfoProvider.getFindings} * @throws Error If configuration can't be retrieved. */ - async getFindings( - componentKey: string, - instanceName?: string, - ): Promise { - const { baseUrl, apiKey } = this.config.getInstanceConfig(instanceName); + async getFindings({ + componentKey, + instanceName, + }: { + componentKey: string; + instanceName?: string; + }): Promise { + const { baseUrl, apiKey } = this.config.getInstanceConfig({ + sonarqubeName: instanceName, + }); // get component info to retrieve analysis date const component =