From 730f10597aac91e4c5c7f56d03c217ef0030780d Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Fri, 12 Dec 2025 11:38:50 +0000 Subject: [PATCH] "fix" useMoveRuleFromRuleGroup tests --- .../useMoveRuleFromRuleGroup.test.tsx | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/public/app/features/alerting/unified/hooks/ruleGroup/useMoveRuleFromRuleGroup.test.tsx b/public/app/features/alerting/unified/hooks/ruleGroup/useMoveRuleFromRuleGroup.test.tsx index 4ffd739ca42..b77afd19737 100644 --- a/public/app/features/alerting/unified/hooks/ruleGroup/useMoveRuleFromRuleGroup.test.tsx +++ b/public/app/features/alerting/unified/hooks/ruleGroup/useMoveRuleFromRuleGroup.test.tsx @@ -1,3 +1,4 @@ +import { act, fireEvent } from '@testing-library/react'; import { produce } from 'immer'; import { render } from 'test/test-utils'; import { byRole, byText } from 'testing-library-selector'; @@ -58,7 +59,7 @@ describe('Moving a Grafana managed rule', () => { const ruleID = fromRulerRuleAndRuleGroupIdentifier(currentRuleGroupID, ruleToMove); - const { user } = render( + render( { rule={ruleToMove} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/success/i).find()).toBeInTheDocument(); @@ -87,7 +91,7 @@ describe('Moving a Grafana managed rule', () => { uid: 'does-not-exist', }; - const { user } = render( + render( { rule={grafanaRulerRule} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/error/i).find()).toBeInTheDocument(); }); @@ -130,7 +137,7 @@ describe('Moving a Data source managed rule', () => { draft.grafana_alert.title = 'updated rule title'; }); - const { user } = render( + render( { rule={newRule} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/success/i).find()).toBeInTheDocument(); @@ -167,7 +177,7 @@ describe('Moving a Data source managed rule', () => { const ruleID = fromRulerRuleAndRuleGroupIdentifier(currentRuleGroupID, ruleToMove); - const { user } = render( + render( { rule={ruleToMove} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/success/i).find()).toBeInTheDocument(); @@ -206,7 +219,7 @@ describe('Moving a Data source managed rule', () => { const ruleID = fromRulerRuleAndRuleGroupIdentifier(currentRuleGroupID, ruleToMove); - const { user } = render( + render( { rule={ruleToMove} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/success/i).find()).toBeInTheDocument(); @@ -239,7 +255,7 @@ describe('Moving a Data source managed rule', () => { draft.grafana_alert.title = 'updated rule title'; }); - const { user } = render( + render( { rule={newRule} /> ); - await user.click(byRole('button').get()); + // TODO investigate why we need act/fireEvent + // see https://github.com/testing-library/react-testing-library/issues/1375 + // eslint-disable-next-line testing-library/no-unnecessary-act, testing-library/prefer-user-event + await act(() => fireEvent.click(byRole('button').get())); expect(await byText(/error/i).find()).toBeInTheDocument(); });