* improvement(tests): make vitest suites state-safe with auto-unstub of env/global stubs
- add unstubEnvs/unstubGlobals to vitest config so vi.stubEnv/vi.stubGlobal
are restored after every test
- move module-scope fetch/crypto/window stubs into beforeEach across executor,
data-drains, and knowledge suites so they hold under auto-unstub (several
suites were silently hitting live Datadog/BigQuery/Snowflake/OpenAI/Anthropic
endpoints when their module-scope stubs were cleared)
- converge billing/workspaces/tools/hooks suites onto the shared @sim/testing
mock instances and namespace spies instead of rival file-local vi.mock
factories, with explicit beforeEach setup and afterAll restore
- give lib/core suites private module instances via vite query-suffix imports
where module-level state bakes env at import time
- stub auth-client/NEXT_PUBLIC_APP_URL in suites that crashed at collection
without a local .env
Groundwork for eventually running the suite with isolate: false; no CI
behavior change (isolation stays on).
* fix(tests): complete databaseMock restore and route selectDistinctOn
- restoreGlobalDb now mockReset()s entries whose original implementation was
undefined instead of leaving the chain-mock delegation installed
- add selectDistinctOn to the setup-level createMockDb and to the dashboard
suite's delegated key set so the distinct-on path routes under either binding
* fix(tests): run knowledge utils cases sequentially over shared per-test state