Azure: Fix time management field (#107993)

* Fix mode setting

* Update selector

* Add tests

* Fix condition
This commit is contained in:
Andreas Christou
2025-07-22 17:47:52 +02:00
committed by GitHub
parent 52f6104230
commit a421f55cd5
4 changed files with 80 additions and 3 deletions

View File

@ -131,7 +131,7 @@ export const LogsQueryBuilder: React.FC<LogsQueryBuilderProps> = (props) => {
);
return (
<span data-testid={selectors.components.queryEditor.logsQueryEditor.container.input}>
<span data-testid={selectors.components.queryEditor.logsQueryBuilder.container.input}>
<EditorRows>
{schema && tables.length === 0 && (
<Alert

View File

@ -1,4 +1,4 @@
import { render, screen, waitFor } from '@testing-library/react';
import { render, screen, waitFor, cleanup } from '@testing-library/react';
import { CoreApp } from '@grafana/data';
import { config } from '@grafana/runtime';
@ -39,6 +39,15 @@ jest.mock('@grafana/runtime', () => ({
}));
describe('Azure Monitor QueryEditor', () => {
beforeEach(() => {
config.featureToggles = {};
});
afterEach(() => {
cleanup();
jest.clearAllMocks();
});
it('renders the Metrics query editor when the query type is Metrics', async () => {
const mockDatasource = createMockDatasource();
const mockQuery = {
@ -67,6 +76,65 @@ describe('Azure Monitor QueryEditor', () => {
);
});
it('renders the Logs code editor when there is an existing query and the builder is enabled', async () => {
config.featureToggles.azureMonitorLogsBuilderEditor = true;
const mockDatasource = createMockDatasource();
const mockQuery = {
...createMockQuery(),
queryType: AzureQueryType.LogAnalytics,
};
render(<QueryEditor query={mockQuery} datasource={mockDatasource} onChange={() => {}} onRunQuery={() => {}} />);
await waitFor(() => {
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryEditor.container.input)
).toBeInTheDocument();
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryBuilder.container.input)
).not.toBeInTheDocument();
});
});
it('renders the Logs code editor when there is no existing query and the builder is disabled', async () => {
config.featureToggles.azureMonitorLogsBuilderEditor = false;
const mockDatasource = createMockDatasource();
const mockQuery = {
...createMockQuery(),
queryType: AzureQueryType.LogAnalytics,
};
delete mockQuery.azureLogAnalytics?.query;
render(<QueryEditor query={mockQuery} datasource={mockDatasource} onChange={() => {}} onRunQuery={() => {}} />);
await waitFor(() => {
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryEditor.container.input)
).toBeInTheDocument();
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryBuilder.container.input)
).not.toBeInTheDocument();
});
});
it('renders the Logs builder when there is no existing query and the builder is enabled', async () => {
config.featureToggles.azureMonitorLogsBuilderEditor = true;
const mockDatasource = createMockDatasource();
const mockQuery = {
...createMockQuery(),
queryType: AzureQueryType.LogAnalytics,
};
delete mockQuery.azureLogAnalytics?.query;
render(<QueryEditor query={mockQuery} datasource={mockDatasource} onChange={() => {}} onRunQuery={() => {}} />);
await waitFor(() => {
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryEditor.container.input)
).toBeInTheDocument();
expect(
screen.queryByTestId(selectors.components.queryEditor.logsQueryBuilder.container.input)
).not.toBeInTheDocument();
});
});
it('renders the ARG query editor when the query type is ARG', async () => {
const mockDatasource = createMockDatasource();
const mockQuery = {

View File

@ -64,7 +64,13 @@ export const QueryHeader = ({
...query,
azureLogAnalytics: {
...query.azureLogAnalytics,
mode: LogsEditorMode.Builder,
// Builder mode is default unless there is an existing Log Analytics query
// that was not created with the builder
mode:
(query.azureLogAnalytics?.builderQuery === undefined && query.azureLogAnalytics?.query !== undefined) ||
!config.featureToggles.azureMonitorLogsBuilderEditor
? LogsEditorMode.Raw
: LogsEditorMode.Builder,
dashboardTime: true,
},
};

View File

@ -80,6 +80,9 @@ export const components = {
button: 'data-testid run-query',
},
},
logsQueryBuilder: {
container: { input: 'data-testid azure-monitor-logs-query-builder' },
},
argsQueryEditor: {
container: {
input: 'data-testid azure-monitor-arg-query-editor',