refactor(shortcuts): use data-testid selectors for reliable targeting

Add data-testid="nav-settings" to the Settings menu item in
AccountSettings so the open-settings shortcut no longer relies on
fragile text-content matching ('Settings' but not 'Keyboard').
This commit is contained in:
Marco Beretta 2026-03-27 00:06:25 +01:00
parent 4b50012c32
commit af42d9d9fd
No known key found for this signature in database
GPG key ID: D918033D8E74CC11
2 changed files with 7 additions and 8 deletions

View file

@ -89,7 +89,11 @@ function AccountSettings({ collapsed = false }: { collapsed?: boolean }) {
<Keyboard className="icon-md" aria-hidden="true" />
{localize('com_shortcut_keyboard_shortcuts')}
</Menu.MenuItem>
<Menu.MenuItem onClick={() => setShowSettings(true)} className="select-item text-sm">
<Menu.MenuItem
onClick={() => setShowSettings(true)}
className="select-item text-sm"
data-testid="nav-settings"
>
<GearIcon className="icon-md" aria-hidden="true" />
{localize('com_nav_settings')}
</Menu.MenuItem>

View file

@ -269,13 +269,8 @@ export default function useKeyboardShortcuts() {
}
btn.click();
setTimeout(() => {
const items = document.querySelectorAll<HTMLElement>('[role="menuitem"]');
for (const item of items) {
if (item.textContent?.includes('Settings') && !item.textContent?.includes('Keyboard')) {
item.click();
return;
}
}
const settingsItem = document.querySelector<HTMLElement>('[data-testid="nav-settings"]');
settingsItem?.click();
}, 150);
}, []);