I got an answer:
That one happens because Radix uses pointer events, and happy-dom/jsdom don’t fully support them.
your workaround adding those small polyfills in your setup file is totally fine.
everyone using Radix or shadcn in Vitest does something similar.
If you ever want to avoid polyfills, the only real alternative is running your tests in a real browser (like Vitest browser mode or Playwright), but that’s heavier.