From b64d7b73ede6b5021a7ceee8fdb22fcc08be32ca Mon Sep 17 00:00:00 2001 From: ismail simsek Date: Thu, 22 May 2025 15:08:02 +0200 Subject: [PATCH] remove default value --- .../src/language_provider.test.ts | 26 +++++++++---------- .../src/language_provider.ts | 16 +++++------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/packages/grafana-prometheus/src/language_provider.test.ts b/packages/grafana-prometheus/src/language_provider.test.ts index 57721556d51..808d667071f 100644 --- a/packages/grafana-prometheus/src/language_provider.test.ts +++ b/packages/grafana-prometheus/src/language_provider.test.ts @@ -62,7 +62,6 @@ const verifyRequestParams = ( expect(requestSpy).toHaveBeenCalled(); expect(requestSpy).toHaveBeenCalledWith( expectedUrl, - expect.anything(), expect.objectContaining(expectedParams), expectedOptions ); @@ -208,7 +207,6 @@ describe('Prometheus Language Provider', () => { expect(requestSpy).toHaveBeenCalled(); expect(requestSpy).toHaveBeenCalledWith( '/api/v1/labels', - [], { end: ( dateTime(fromPrometheusTime * 1000) @@ -339,7 +337,7 @@ describe('Prometheus Language Provider', () => { const tr = getMockTimeRange(); const getParams = (requestSpy: ReturnType) => { - return requestSpy.mock.calls[0][2]?.toString() ?? 'undefined'; + return requestSpy.mock.calls[0][1]?.toString() ?? 'undefined'; }; describe('with POST method', () => { @@ -588,7 +586,7 @@ describe('Prometheus Language Provider', () => { fetchLabelValues(getMockTimeRange(), 'job'); expect(requestSpy).toHaveBeenCalled(); - expect(requestSpy.mock.calls[0][3]).toEqual({ + expect(requestSpy.mock.calls[0][2]).toEqual({ headers: { 'X-Grafana-Cache': `private, max-age=${timeSnapMinutes * 60}` }, }); }); @@ -600,10 +598,10 @@ describe('Prometheus Language Provider', () => { .spyOn(defaultDatasource, 'metadataRequest') .mockRejectedValue(new Error('Network error')); - const result = await languageProvider.request('/api/v1/labels', [], {}); + const result = await languageProvider.request('/api/v1/labels', {}); expect(datasourceRequestMock).toHaveBeenCalled(); - expect(result).toEqual([]); + expect(result).toEqual(undefined); }); it('should ignore cancelled request errors', async () => { @@ -612,10 +610,10 @@ describe('Prometheus Language Provider', () => { const error = { cancelled: true }; const datasourceRequestMock = jest.spyOn(defaultDatasource, 'metadataRequest').mockRejectedValue(error); - const result = await languageProvider.request('/api/v1/labels', [], {}); + const result = await languageProvider.request('/api/v1/labels', {}); expect(datasourceRequestMock).toHaveBeenCalled(); - expect(result).toEqual([]); + expect(result).toEqual(undefined); expect(console.error).not.toHaveBeenCalled(); }); }); @@ -722,13 +720,13 @@ describe('Prometheus Language Provider', () => { expect(requestSpy.mock.calls[0][0]).toBe('/suggestions'); // Check method and content type - expect(requestSpy.mock.calls[0][3]).toMatchObject({ + expect(requestSpy.mock.calls[0][2]).toMatchObject({ headers: { 'Content-Type': 'application/json' }, method: 'POST', }); // Check query parameters - expect(requestSpy.mock.calls[0][2]).toMatchObject({ + expect(requestSpy.mock.calls[0][1]).toMatchObject({ labelName: 'metric', limit: 100, queries: ['interpolated_metric1'], @@ -745,8 +743,8 @@ describe('Prometheus Language Provider', () => { expect(requestSpy).toHaveBeenCalled(); // Default time range should be used - expect(requestSpy.mock.calls[0][2]).toHaveProperty('start'); - expect(requestSpy.mock.calls[0][2]).toHaveProperty('end'); + expect(requestSpy.mock.calls[0][1]).toHaveProperty('start'); + expect(requestSpy.mock.calls[0][1]).toHaveProperty('end'); }); it('should handle empty response gracefully', async () => { @@ -770,8 +768,8 @@ describe('Prometheus Language Provider', () => { await languageProvider.fetchSuggestions(getMockTimeRange(), [], [], [], 'test'); expect(requestSpy).toHaveBeenCalled(); - expect(requestSpy.mock.calls[0][3]?.headers).toHaveProperty('X-Grafana-Cache'); - expect(requestSpy.mock.calls[0][3]?.headers?.['X-Grafana-Cache']).toContain( + expect(requestSpy.mock.calls[0][2]?.headers).toHaveProperty('X-Grafana-Cache'); + expect(requestSpy.mock.calls[0][2]?.headers?.['X-Grafana-Cache']).toContain( `private, max-age=${timeSnapMinutes * 60}` ); }); diff --git a/packages/grafana-prometheus/src/language_provider.ts b/packages/grafana-prometheus/src/language_provider.ts index a2e820ba93c..c8f4d68c29a 100644 --- a/packages/grafana-prometheus/src/language_provider.ts +++ b/packages/grafana-prometheus/src/language_provider.ts @@ -124,7 +124,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { Object.assign(this, initialValues); } - request = async (url: string, defaultValue: unknown, params = {}, options?: Partial) => { + request = async (url: string, params = {}, options?: Partial) => { try { const res = await this.datasource.metadataRequest(url, params, options); return res.data.data; @@ -134,7 +134,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { } } - return defaultValue; + return undefined; }; start = async (timeRange: TimeRange = getDefaultTimeRange()): Promise => { @@ -153,7 +153,6 @@ export default class PromQlLanguageProvider extends LanguageProvider { await this.request( API_V1.METADATA, {}, - {}, { showErrorAlert: false, ...headers, @@ -189,7 +188,6 @@ export default class PromQlLanguageProvider extends LanguageProvider { const interpolatedAndEscapedName = escapeForUtf8Support(removeQuotesIfExist(interpolatedName)); const value = await this.request( API_V1.LABELS_VALUES(interpolatedAndEscapedName), - [], params, getDefaultCacheHeaders(this.datasource.cacheLevel) ); @@ -226,7 +224,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { url += `?${searchParams.toString()}`; } - const res = await this.request(url, [], searchParams, getDefaultCacheHeaders(this.datasource.cacheLevel)); + const res = await this.request(url, searchParams, getDefaultCacheHeaders(this.datasource.cacheLevel)); if (Array.isArray(res)) { this.labelKeys = res.slice().sort(); return [...this.labelKeys]; @@ -277,7 +275,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { const interpolatedAndEscapedName = escapeForUtf8Support(removeQuotesIfExist(interpolatedName ?? '')); - const value = await this.request(API_V1.LABELS_VALUES(interpolatedAndEscapedName), [], urlParams, requestOptions); + const value = await this.request(API_V1.LABELS_VALUES(interpolatedAndEscapedName), urlParams, requestOptions); return value ?? []; }; @@ -342,7 +340,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { urlParams = { ...urlParams, limit: withLimit ?? DEFAULT_SERIES_LIMIT }; } - const data = await this.request(API_V1.SERIES, [], urlParams, getDefaultCacheHeaders(this.datasource.cacheLevel)); + const data = await this.request(API_V1.SERIES, urlParams, getDefaultCacheHeaders(this.datasource.cacheLevel)); const { values } = processLabels(data, withName); return values; }; @@ -366,7 +364,6 @@ export default class PromQlLanguageProvider extends LanguageProvider { const data: string[] = await this.request( API_V1.LABELS, - [], urlParams, getDefaultCacheHeaders(this.datasource.cacheLevel) ); @@ -380,7 +377,7 @@ export default class PromQlLanguageProvider extends LanguageProvider { fetchSeries = async (timeRange: TimeRange, match: string): Promise>> => { const range = this.datasource.getTimeRangeParams(timeRange); const params = { ...range, 'match[]': match }; - return await this.request(API_V1.SERIES, {}, params, getDefaultCacheHeaders(this.datasource.cacheLevel)); + return await this.request(API_V1.SERIES, params, getDefaultCacheHeaders(this.datasource.cacheLevel)); }; /** @@ -413,7 +410,6 @@ export default class PromQlLanguageProvider extends LanguageProvider { const timeParams = this.datasource.getAdjustedInterval(timeRange); const value = await this.request( url, - [], { labelName, queries: queries?.map((q) =>