Largely this is written by an LLM after I provided the targets, and I've looked through the tests themselves to confirm they are accurate. There may be improvements in how to actually *set up* the tests, though, as I am less familiar with those.
This has two test suites: the first for html structure, the second for behavior. Each of them calls another script that provides helper functions for setting things up and taking them down. This keeps the test suites themselves fairly lean.
This fixes the odd alignments of menu-wrapper names by ensuring that both menuitems and menu-wrappers (actually their child triggers) both have space for icons.
Unless a menu item has the `no-dismiss` attribute (set to either `''` or `'true'`), clicking a menu item will dismiss the menu. Clicking a submenu trigger will not dismiss the menu.
The `no-dismiss` attribute must take a string, either empty or `'true'` because react doesn't allow boolean custom attributes.