diff --git a/scripts/deploy/financial-audit.sql b/scripts/deploy/financial-audit.sql index 6920e03..6f9eb05 100644 --- a/scripts/deploy/financial-audit.sql +++ b/scripts/deploy/financial-audit.sql @@ -11,7 +11,7 @@ FROM schema_migrations; WITH audit(category, row_count, atomic_amount) AS ( SELECT 'payout_nonterminal', COUNT(*), COALESCE(SUM(amount), 0)::numeric FROM payouts - WHERE status IS DISTINCT FROM 'completed' + WHERE status IS NULL OR status NOT IN ('recorded', 'completed') UNION ALL SELECT 'payout_completed_missing_tx', COUNT(*), COALESCE(SUM(amount), 0)::numeric FROM payouts @@ -19,7 +19,7 @@ WITH audit(category, row_count, atomic_amount) AS ( UNION ALL SELECT 'refund_unsettled', COUNT(*), COALESCE(SUM(amount), 0)::numeric FROM payment_refunds - WHERE status IS DISTINCT FROM 'completed' + WHERE status IS NULL OR status NOT IN ('recorded', 'completed') UNION ALL SELECT 'solo_orphan', COUNT(*), 0::numeric FROM games diff --git a/test/financialAuditContract.test.js b/test/financialAuditContract.test.js index 96d1671..6ce3a70 100644 --- a/test/financialAuditContract.test.js +++ b/test/financialAuditContract.test.js @@ -17,6 +17,8 @@ describe('deployment financial-audit contract', () => { expect(audit).toContain("payouts WHERE status IS DISTINCT FROM 'completed'"); expect(audit).toContain("games WHERE status IS NULL OR status NOT IN ('won', 'lost', 'expired')"); expect(audit).toContain("MAX(filename) = '042_immutable_financial_event_snapshots.sql'"); + expect(audit.match(/status IS NULL OR status NOT IN \('recorded', 'completed'\)/g)) + .toHaveLength(2); expect(audit).toContain('COUNT(*) = 42'); }); });