test: integration coverage for dues_payment_methods RLS and dispatcher skip

- dues_payment_methods RLS: member read, admin-only write, cross-space
  denial, 046 unverified-admin status gate (4 cases).
- notification dispatcher: a muted category becomes 'skipped' while
  billing always sends; no pref row sends (default on). First real
  exercise of the skip path (cron is gated off in prod).
- Fix integration/db.ts rowsAsUser: the SELECT must be the last psql -c
  statement or its output is swallowed (it was never used before).
- Dues card: hide "No active dues subscription" for spaces without
  Stripe, where it read as confusing.
This commit is contained in:
Moheeb Zara
2026-05-19 20:44:08 -07:00
parent 897ff99726
commit 5ce6b29d4a
5 changed files with 220 additions and 11 deletions
+2 -2
View File
@@ -53,9 +53,9 @@ export function DuesCard({ billing, methods = [] }: { billing: Billing; methods?
? ` · renews ${new Date(billing.currentPeriodEnd).toLocaleDateString()}`
: ''}
</p>
) : (
) : stripeReady ? (
<p className="font-mono text-[10px] text-muted-foreground mt-0.5">No active dues subscription.</p>
)}
) : null}
</div>
{billing?.status && (
<Badge variant={paid ? 'default' : 'outline'}>{paid ? 'Current' : 'Action needed'}</Badge>