CloudWatch: Clear log groups when region is changed (#108727)

This commit is contained in:
Isabella Siu
2025-07-28 10:58:21 -04:00
committed by GitHub
parent 4c6888654c
commit e261d5f14a
2 changed files with 18 additions and 6 deletions
@@ -26,14 +26,19 @@ describe('QueryHeader', () => {
{ value: 'us-east-2', label: 'us-east-2' },
{ value: 'us-east-1', label: 'us-east-1' },
]);
it('should reset account id if new region is not monitoring account', async () => {
it('should reset account id and log groups if new region is not monitoring account', async () => {
config.featureToggles.cloudWatchCrossAccountQuerying = true;
const onChange = jest.fn();
datasource.resources.isMonitoringAccount = jest.fn().mockResolvedValue(false);
render(
<QueryHeader
datasource={datasource}
query={{ ...validMetricSearchBuilderQuery, region: 'us-east-1', accountId: 'all' }}
query={{
...validMetricSearchBuilderQuery,
region: 'us-east-1',
accountId: 'all',
logGroups: [{ arn: 'arn', name: 'name' }],
}}
onChange={onChange}
onRunQuery={jest.fn()}
dataIsStale={false}
@@ -45,10 +50,11 @@ describe('QueryHeader', () => {
...validMetricSearchBuilderQuery,
region: 'us-east-2',
accountId: undefined,
logGroups: [],
});
});
it('should not reset account id if new region is a monitoring account', async () => {
it('should reset log groups but not account id if new region is a monitoring account', async () => {
config.featureToggles.cloudWatchCrossAccountQuerying = true;
const onChange = jest.fn();
datasource.resources.isMonitoringAccount = jest.fn().mockResolvedValue(true);
@@ -56,7 +62,12 @@ describe('QueryHeader', () => {
render(
<QueryHeader
datasource={datasource}
query={{ ...validMetricSearchBuilderQuery, region: 'us-east-1', accountId: '123' }}
query={{
...validMetricSearchBuilderQuery,
region: 'us-east-1',
accountId: '123',
logGroups: [{ arn: 'arn', name: 'name' }],
}}
onChange={onChange}
onRunQuery={jest.fn()}
dataIsStale={false}
@@ -68,6 +79,7 @@ describe('QueryHeader', () => {
...validMetricSearchBuilderQuery,
region: 'us-east-2',
accountId: '123',
logGroups: [],
});
});
@@ -47,9 +47,9 @@ const QueryHeader = ({
const onRegionChange = async (region: string) => {
if (config.featureToggles.cloudWatchCrossAccountQuerying && isCloudWatchMetricsQuery(query)) {
const isMonitoringAccount = await datasource.resources.isMonitoringAccount(region);
onChange({ ...query, region, accountId: isMonitoringAccount ? query.accountId : undefined });
onChange({ ...query, logGroups: [], region, accountId: isMonitoringAccount ? query.accountId : undefined });
} else {
onChange({ ...query, region });
onChange({ ...query, logGroups: [], region });
}
};