mirror of
https://github.com/kamask-dev/pchelpmaster.git
synced 2026-11-11 05:49:38 +00:00
1.9 KiB
1.9 KiB
Стенд API-тестов
Тесты бэкенда (схема, миграции, правила доступа, изоляция пользователей) на чистом Vitest в Node, с запросами к временному PocketBase. Общие правила и устройство тестового PocketBase — в testing.md.
pnpm test:api = tsc -p tsconfig.tests.json && vitest run --config vitest.api.config.mts: чистый Vitest в Node, без Angular.
- Сначала проверяются типы тестового кода (
tsconfig.tests.json:tests/**,vitest.*.config.mtsиproxy.conf.mjs;allowJsнужен, чтобыtests/lint/импортировали.mjs-конфиг): сам Vitest типы не проверяет. vitest.api.config.mts:include: tests/api/**/*.api.spec.ts,globalSetup: tests/support/global-setup.ts, таймауты 20 с (запас на старт PocketBase внутри теста).global-setup.tsподнимает один PocketBase на прогон и передаёт тестамpbUrl,pbDataDir,pbSuperuserчерезproject.provide; в тестах —inject('pbUrl')и т. д. изvitest. Типы этих значений —tests/support/provided-context.d.ts.- Тесты самого стенда —
tests/api/harness.api.spec.ts. Проверка уборки поSIGINT/SIGTERMзапускает фикстуруtests/support/fixtures/hold-pocketbase.tsотдельным процессомnode: она поднимает PocketBase, печатает{ url, dataDir }и ждёт сигнала. - Поэтому
pocketbase-server.tsвыполняется чистым Node без сборки: в нём только импортыnode:*и стираемый TypeScript (безenum,namespace, параметров-свойств).