fix(migrations): dropping the demo also takes its reset job's interval-change audit rows

0098 deleted the reset job's run rows but not the scheduler_interval rows that changing its interval
wrote; with the job's label gone they rendered as a raw id. The delete now takes every job-targeted
row for it, and a test seeds both kinds below 0098 and upgrades (red on the old filter). The test
has its own file so the removed-features guard can name it.
This commit is contained in:
2026-10-05 00:19:50 +02:00
parent 2f901ad643
commit eecc195b7e
3 changed files with 42 additions and 5 deletions
@@ -9,7 +9,8 @@ import { describe, expect, it } from "vitest";
//
// Not scanned: the Alembic migrations (0014 added the account and 0098 removed it, and both stay true
// as history) and the release notes, which record what shipped when. `audit_metrics.py` counts the
// footprint by this same word, so it names it on purpose.
// footprint by this same word, and test_migration_0098.py tests the removal itself, so both name it
// on purpose.
const REPO = new URL("../../../", import.meta.url);
const ROOTS = ["backend/app", "backend/tests", "frontend/src", "frontend/e2e", "scripts"];
@@ -18,6 +19,7 @@ const EXTENSIONS = /\.(py|ts|tsx|js|mjs|json|css|md|sh)$/;
const ALLOWED = new Set([
"frontend/src/lib/removedFeatures.contract.test.ts",
"scripts/audit_metrics.py",
"backend/tests/test_migration_0098.py",
]);
// "demo" as a word or an identifier part (`is_demo`, `DemoBanner`, `tryDemo`) — not "demote" (a role
// change) and not "Demokratikus" (a country's Hungarian name in the vocab).