From a65d7261cafbeef85da4ab572d1a045fba72592c Mon Sep 17 00:00:00 2001 From: Saravana Achu Mac Date: Sat, 9 May 2026 02:03:10 -0700 Subject: [PATCH] test(ui): cover profile rule keyboard toggles --- .../TradeProfileManager.dom.test.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/web/src/components/TradeProfileManager.dom.test.tsx b/web/src/components/TradeProfileManager.dom.test.tsx index 471a850..14effbe 100644 --- a/web/src/components/TradeProfileManager.dom.test.tsx +++ b/web/src/components/TradeProfileManager.dom.test.tsx @@ -178,6 +178,29 @@ describe('TradeProfileManager DOM flow', () => { }); }, 20000); + it('lets keyboard users toggle strategy rules from the drawer', async () => { + const user = userEvent.setup(); + render(); + + await waitFor(() => { + expect(screen.getAllByText('High Risk Scalper').length).toBeGreaterThan(0); + }); + + await user.click(screen.getByRole('button', { name: /New Profile/i })); + await user.click(screen.getByRole('button', { name: 'Rules' })); + + expect(screen.getByText('Fast EMA Period')).toBeInTheDocument(); + + const trendBiasRule = screen.getByRole('button', { name: /Trend Bias/ }); + trendBiasRule.focus(); + await user.keyboard('{Enter}'); + + expect(screen.queryByText('Fast EMA Period')).not.toBeInTheDocument(); + + await user.keyboard(' '); + expect(screen.getByText('Fast EMA Period')).toBeInTheDocument(); + }, 20000); + it('updates activation state, edits profile, and deletes profile', async () => { const user = userEvent.setup(); render();