Behavior-parity safety net before migrating the Transaction Rule modal onto the
session-backed wizard engine. The modal had no e2e coverage; the test server seeded
no rules.
- test_server.clj: seed a transaction rule (under client TEST2, in a SEPARATE
transaction so the first transaction's tempid->entity-id allocation — and thus the
TEST transaction grid order the other specs depend on — is byte-identical); surface
its id via /test-info (ruleId).
- e2e/transaction-rule.spec.ts (4 tests): the new-rule edit step renders (description,
account grid, approval radios, Test control), the edit dialog pre-populates the
seeded rule, advancing to the test step renders the matching-transactions preview,
and saving from the test step creates the rule + closes the modal. Covers both entry
points (new/edit), both steps (edit + test), and save.
Note: deliberately NOT seeding a recent matching transaction — a date-NOW txn perturbs
an unrelated transaction-edit save spec (pre-existing fragility), and the test-table
query/render is reused unchanged by the migration, so characterizing that the preview
renders is sufficient parity.
Full Playwright suite 55/55 (51 prior + 4 new).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>