3cf46fa55c
Покрыты чистые функции бизнес-логики: validateFeedback (обязательность полей по видам обращения, минимальная длина текста, анонимность) и getAppealFieldsConfig (согласованность конфига — обязательное поле не может быть скрыто). React-компоненты пока не тестируются: сначала нужно решить, куда форма отправляет данные, иначе тесты придётся сразу переписывать. vite.config.ts: defineConfig теперь из 'vitest/config' — один файл конфига на сборку и тесты вместо двух рассинхронизирующихся. globals: true и environment: 'node', т.к. тестируется логика, а не DOM. .gitea/workflows/test.yml — тот же принцип, что в request-portal (push в main, PR, ретраи npm install), но npm run ci вместо heft test: здесь нет SPFx/Jest, и деплой пока не добавлен — куда разворачивать dist/, не решено. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
26 lines
815 B
TypeScript
26 lines
815 B
TypeScript
/// <reference types="vitest/config" />
|
|
import { defineConfig } from 'vitest/config';
|
|
import react from '@vitejs/plugin-react';
|
|
import { fileURLToPath, URL } from 'node:url';
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
open: true
|
|
},
|
|
test: {
|
|
// globals: true — describe/it/expect доступны без импорта, как привычно по Jest.
|
|
globals: true,
|
|
// Тестируем чистую логику (валидация, конфиг полей), а не React-компоненты,
|
|
// поэтому DOM не нужен — node-окружение быстрее jsdom.
|
|
environment: 'node',
|
|
include: ['src/**/*.test.ts']
|
|
}
|
|
});
|