food-market/tests/food-market.UnitTests
nns 7f8750f30f
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
test(s29): unit (6) + integration (7) + e2e scenario для simple-mode (шаг 7/8)
Unit — AdvancedModeFilterTests (6/6, ~3с):
- allow when IsAdvancedMode=true
- 403 ProblemDetails с code=advanced-mode-required when simple
- SuperAdmin bypass
- InvalidateCache делает следующее чтение свежим
- unauthenticated — не трогаем ([Authorize] выше)
- authenticated без org — fail-closed 403

Integration — AdvancedModeTests (7/7, ~25с):
- /api/me.advancedMode=false по умолчанию
- GET на скрытый endpoint в простом режиме → 403 ProblemDetails
- org-admin не может переключить → 403
- SuperAdmin переключает → 200 + audit; идемпотент: повторный → changed=false
- /api/me обновилось, demand открылся
- данные пресета сохраняются через on→off→on
- архивную org переключать нельзя → 409

Доп. фикс: ApiFactory теперь прокидывает ConnectionStrings__Default через
Environment.SetEnvironmentVariable в InitializeAsync. ConfigureAppConfiguration
опаздывает к моменту чтения строки в Program.cs:86 (var poolTunedConnString=...)
— интеграционные тесты падали с «Connection refused к 127.0.0.1:5432». env-var
читает CreateBuilder сразу, строка подключения теперь корректно берётся из
Testcontainers. Это общий фикс для всей сюиты.

E2E — tests/e2e/scenarios/stage-simple-mode.{yml,steps.ts} (7 шагов):
sm01 signup→simple default; sm02 org-admin forbidden; sm03 SuperAdmin
toggle + audit; sm04 /api/me reflects + endpoint opens; sm05 data
survives toggle cycle; sm06 archived→409; sm07 Playwright UI показывает
страницу «Недоступно в простом режиме».

Quality-watchdog: GET /api/catalog/price-types не гейтится (только
мутации) — патч смока не требуется.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-04 12:02:44 +05:00
..
Support feat(audit): per-tenant журнал мутаций OrgAuditLog (P1-18) 2026-05-28 16:26:36 +05:00
AdvancedModeFilterTests.cs test(s29): unit (6) + integration (7) + e2e scenario для simple-mode (шаг 7/8) 2026-10-04 12:02:44 +05:00
ApiReferenceDocsJobTests.cs test: ApiReferenceDocsJob regex lock-down (Sprint 28) 2026-06-09 03:38:29 +05:00
CatalogDtosSmokeTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
DomainFullPropertyTouchTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
DomainPocoSmokeTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
EmailTemplateRendererTests.cs feat(email): HTML-шаблоны MailKit + invite/weekly/low-stock джобы (P1-22) 2026-05-28 16:37:32 +05:00
FiscalMockProviderTests.cs feat(s11): ОФД-scaffolding — IFiscalProvider + 4 провайдера + UI/тесты 2026-06-07 02:27:17 +05:00
food-market.UnitTests.csproj feat(pos-shared): контракты POS v1 в food-market.shared (P1-12a) 2026-05-28 12:03:04 +05:00
HousekeepingJobsTests.cs feat(hangfire): dashboard + scheduled cleanup джобы (P1-16) 2026-05-28 10:07:14 +05:00
MediatrHandlerTests.cs feat(cqrs): MediatR partial — 3 handler-образца (TD-1) 2026-05-28 17:51:08 +05:00
MovingAverageCostTests.cs test(unit): xUnit-проект food-market.UnitTests, 23 теста (P1-20) 2026-05-27 03:01:56 +05:00
PagedRequestTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
PhoneNormalizationTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
PosContractsTests.cs feat(pos-shared): контракты POS v1 в food-market.shared (P1-12a) 2026-05-28 12:03:04 +05:00
RequiredGuidTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
RetailPaymentValidatorTests.cs test(unit): xUnit-проект food-market.UnitTests, 23 теста (P1-20) 2026-05-27 03:01:56 +05:00
RolePermissionsTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
StockServicePropertyTests.cs test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill 2026-06-07 14:53:38 +05:00
StockServiceTests.cs test(unit): xUnit-проект food-market.UnitTests, 23 теста (P1-20) 2026-05-27 03:01:56 +05:00
TenantQueryFilterTests.cs test(unit): xUnit-проект food-market.UnitTests, 23 теста (P1-20) 2026-05-27 03:01:56 +05:00
ValidatorTests.cs feat(validation): FluentValidation + ValidationFilter для DTO (TD-2) 2026-05-28 17:40:46 +05:00
WebkassaProviderTests.cs feat(s11): ОФД-scaffolding — IFiscalProvider + 4 провайдера + UI/тесты 2026-06-07 02:27:17 +05:00