Files
portal/app/tests/Feature/Auth/NotifPrefsDefaultNoReminderTest.php
T
Дмитрий 37a8a5c17f
Accessibility (Pa11y live) / a11y (push) Has been cancelled
SAST — Semgrep / Semgrep SAST scan (push) Has been cancelled
fix(приёмка): FN-2 + FN-3 — мёртвый reminder в DEFAULT и email_verified_at при confirm
FN-3: онбординг-confirm не ставил users.email_verified_at — поле вне fillable,
mass-assign его гасил. RegistrationService::confirm теперь forceFill is_active +
email_verified_at. TDD ConfirmSetsEmailVerifiedAtTest.

FN-2: миграция 2026_06_19_130000 дропнула таблицу reminders, но забыла
ALTER COLUMN notification_preferences SET DEFAULT — реальный DB-дефолт оставался
с мёртвым ключом reminder, расходясь с каноном schema.sql v8.45. Новая миграция
2026_06_22_120000 метаданные-only выравнивает дефолт под канон. squawk 0 issues,
применено dev+testing, проверено psql. CHANGELOG v8.50 + шапка schema.sql.
TDD NotifPrefsDefaultNoReminderTest.

FN-1 переоценён как не-баг кода: resolvePlatforms даёт B2+B3 корректно, B3-miss —
supplier-side Doubles, джоба сама ретраит. Зафиксировано в отчёте приёмки.

Прод не трогался. Накат — позже вместе с остальным.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 09:20:42 +03:00

21 lines
926 B
PHP

<?php
declare(strict_types=1);
use Illuminate\Support\Facades\DB;
// FN-2 (приёмка 22.06.2026): DEFAULT колонки users.notification_preferences содержал
// мёртвый ключ "reminder" (фича «Напоминания» снята в v8.45, но миграция
// drop_reminders_table забыла поправить дефолт). Контракт: дефолт без "reminder".
test('DEFAULT users.notification_preferences не содержит мёртвый ключ reminder', function () {
$def = DB::selectOne(
"SELECT column_default FROM information_schema.columns
WHERE table_name = 'users' AND column_name = 'notification_preferences'"
);
expect($def)->not->toBeNull();
expect($def->column_default)->not->toContain('reminder');
// sanity: канон-события на месте
expect($def->column_default)->toContain('new_lead');
});