Files
gorbenko.pavel 3cf46fa55c test: добавляет Vitest и CI-workflow по образцу request-portal
Покрыты чистые функции бизнес-логики: 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>
2026-08-21 09:45:05 +05:00

41 lines
1.1 KiB
YAML

name: Tests
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
frontend-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js 22
uses: actions/setup-node@v3
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: package-lock.json
- name: Install dependencies
run: |
npm config set fetch-retries 5
npm config set fetch-retry-mintimeout 10000
npm config set fetch-retry-maxtimeout 120000
for i in 1 2 3; do
npm install && break
echo "Attempt $i failed, retrying in 20s..."
sleep 20
done
# npm run ci = проверка типов + Vitest. Это НЕ то же самое, что npm run
# build: там дополнительно собирается production-бандл, а для проверки
# PR он не нужен.
- name: Typecheck & unit tests (Vitest)
run: npm run ci