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();