remove default value

This commit is contained in:
ismail simsek
2025-05-22 15:10:17 +02:00
parent c226cb386a
commit b64d7b73ed
2 changed files with 18 additions and 24 deletions
@@ -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<typeof jest.spyOn>) => {
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}`
);
});
@@ -124,7 +124,7 @@ export default class PromQlLanguageProvider extends LanguageProvider {
Object.assign(this, initialValues);
}
request = async (url: string, defaultValue: unknown, params = {}, options?: Partial<BackendSrvRequest>) => {
request = async (url: string, params = {}, options?: Partial<BackendSrvRequest>) => {
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<any[]> => {
@@ -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<Array<Record<string, string>>> => {
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) =>