food-market/tests/food-market.UnitTests
nns f3a177a121 fix(sales): дата чека в UTC + защита от «будущих» времён
«Последние продажи»/Z-отчёт показывали времена вперёд, потому что дата чека
бралась от клиента (input.Date / POS OccurredAt) без нормализации: наивная
локальная дата или спешащие часы кассы давали будущий инстант. Добавил
BusinessTime.ToInstantUtc: Kind→UTC и clamp будущего (>5 мин) к now — чек не
может быть в будущем. Применено в рознице (create) и в приёме чеков с кассы
(движение берёт тот же инстант). Юнит-тесты на нормализацию/clamp.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-09 09:58:34 +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
BusinessTimeTests.cs fix(sales): дата чека в UTC + защита от «будущих» времён 2026-10-09 09:58:34 +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
ClaudeCliInvoiceExtractorParseTests.cs test(s31): unit 20/20 + integration 2/2 для invoice pipeline (7/8) 2026-10-04 21:46:10 +05:00
ClaudeCliInvoicePhotosParseTests.cs feat(invoices+inventory): порт улучшений 05.10.2026 из sklad 2026-10-06 00:02:13 +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 feat(inventory): модель МойСклада — инвентаризация не двигает остатки 2026-10-08 20:34:05 +05:00
EanTests.cs feat(invoices+inventory): порт улучшений 05.10.2026 из sklad 2026-10-06 00:02:13 +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-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00
HousekeepingJobsTests.cs feat(hangfire): dashboard + scheduled cleanup джобы (P1-16) 2026-05-28 10:07:14 +05:00
InternalBarcodeTests.cs feat(catalog): карточка товара как МойСклад+ — обязательно только наименование 2026-10-09 05:45:38 +05:00
InventoryResultTests.cs feat(inventory): модель МойСклада — инвентаризация не двигает остатки 2026-10-08 20:34:05 +05:00
InvoiceMatcherTests.cs test(s31): unit 20/20 + integration 2/2 для invoice pipeline (7/8) 2026-10-04 21:46:10 +05:00
InvoicePhotoRetentionTests.cs feat(invoices+inventory): порт улучшений 05.10.2026 из sklad 2026-10-06 00:02:13 +05:00
MediatrHandlerTests.cs feat(cqrs): MediatR partial — 3 handler-образца (TD-1) 2026-05-28 17:51:08 +05:00
MoneyMathTests.cs test(money): независимый инвариант остатка счёта (нач+платежи+смены) + unit/integration 2026-10-08 03:11:09 +05:00
MovingAverageCostTests.cs test(unit): xUnit-проект food-market.UnitTests, 23 теста (P1-20) 2026-05-27 03:01:56 +05:00
NegativeStockNotifyQuietHoursTests.cs feat(notifications): центр уведомлений + агрегация/эскалация минусов + каналы 2026-10-09 02:56:59 +05:00
NoopNegativeStockAlertService.cs feat(notifications): центр уведомлений + агрегация/эскалация минусов + каналы 2026-10-09 02:56:59 +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
PinHasherTests.cs feat(pos): быстрый вход кассира по PIN (grant_type=pin) + lockout 2026-10-08 09:38:36 +05:00
PosContractsTests.cs feat(pos-shared): контракты POS v1 в food-market.shared (P1-12a) 2026-05-28 12:03:04 +05:00
PosCoreTests.cs test(pos): реализовать QuickCreateProductAsync в FakeServer 2026-10-09 09:58:34 +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 feat(notifications): центр уведомлений + агрегация/эскалация минусов + каналы 2026-10-09 02:56:59 +05:00
StockServiceTests.cs feat(notifications): центр уведомлений + агрегация/эскалация минусов + каналы 2026-10-09 02:56:59 +05:00
TableReaderTests.cs feat(invoices+inventory): порт улучшений 05.10.2026 из sklad 2026-10-06 00:02:13 +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
WeightedBarcodeTests.cs test(mobile-api): unit + integration доработок для «FM Склад» 2026-10-08 05:39:37 +05:00