Switches `vitest.config.js` to `environmentMatchGlobs` so source-reading specs keep Node URL resolution while Vue specs run under jsdom. Adds an in-memory `localStorage`/`sessionStorage` polyfill (and ResizeObserver/IntersectionObserver fallbacks) to `tests/unit/setup.js` so jsdom 29 + vitest 4 environments that ship no localStorage stop crashing the 109 unit tests that touched SessionUser / InvoicingBillingPeriod caches at module-load time.
Test result: 1343/1343 fast + 1688/1688 serial pass (was 1195/1304 on master). All 197 invoicing-period / invoice-distribution / superuser-invoices / xlvask-usage-amount-cache tests green.
- Introduced `run-vitest-unit-batches.mjs` script for running unit tests in batches with configurable batch size.
- Updated `package.json` to replace `test:unit` command with the batch runner and added `test:unit:single` for direct execution.
- Tweaked GitHub workflows (`tests.yml`, `code_quality.yml`) to use updated actions and support batch testing.
- Minor formatting improvements in Vue components and workflows for consistent style.