diff --git a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx index ac6b5132951..153a72ce5ee 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/components/PromQueryBuilderOptions.test.tsx @@ -59,13 +59,19 @@ describe('PromQueryBuilderOptions', () => { legendFormat: '{{label_name}}', }); }); + + it('Handle defaults with undefined range', async () => { + setup(getQueryWithDefaults({ refId: 'A', expr: '', range: undefined, instant: true }, CoreApp.Dashboard)); + + expect(screen.getByText('Type: Instant')).toBeInTheDocument(); + }); }); function setup(queryOverrides: Partial = {}) { const props = { query: { ...getQueryWithDefaults({ refId: 'A' } as PromQuery, CoreApp.PanelEditor), - queryOverrides, + ...queryOverrides, }, onRunQuery: jest.fn(), onChange: jest.fn(), diff --git a/public/app/plugins/datasource/prometheus/querybuilder/types.ts b/public/app/plugins/datasource/prometheus/querybuilder/types.ts index 7c639684958..e51ad1ff144 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/types.ts +++ b/public/app/plugins/datasource/prometheus/querybuilder/types.ts @@ -131,14 +131,14 @@ export function getQueryWithDefaults(query: PromQuery, app: CoreApp | undefined) result = { ...result, expr: '', legendFormat: LegendFormatMode.Auto }; } - // Default to range query - if (query.range == null) { + if (query.range == null && query.instant == null) { + // Default to range query result = { ...result, range: true }; - } - // In explore we default to both instant & range - if (query.instant == null && app === CoreApp.Explore) { - result = { ...result, instant: true }; + // In explore we default to both instant & range + if (app === CoreApp.Explore) { + result.instant = true; + } } return result;