Skip to content

test(billing): migrate compatibility tests to the charges engine - #5280

Closed
turip wants to merge 2 commits into
mainfrom
feat/credits-billing-compat-migration
Closed

turip wants to merge 2 commits into
mainfrom
feat/credits-billing-compat-migration

Conversation

@turip

@turip turip commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Overview

Stacked on #5277. Route the copied invoice and discount compatibility tests through the charges engine so we can compare legacy billing behavior and continue the migration from this checkpoint.

Provision ledger accounts and default tax codes, assert charge-backed gathering lines and charge IDs, and update the agreed lifecycle fixtures for progressive invoicing and system charge deletion. Exercise API invoice-deletion idempotency for flat-fee and usage-based charges, with a dedicated credit-purchase testcase.

Notes for reviewer

This is a work-in-progress checkpoint; remaining failures are retained for investigation. Correlation-ID handling is skipped for OM-581, and credit-purchase invoice deletion is skipped for OM-586.

Validation:

  • Invoice testcases run independently: 25 passed, 9 failed, 1 skipped.
  • Discount testcases: 2 passed, 1 skipped.
  • Scoped fast lint reports three findings: context assignments before skipped tests in the invoice and discount suites, and a missing blank line in the gathering-invoice fixture helper. This draft preserves the reviewed snapshot without additional cleanup.

Remaining failing invoice testcases:

  • TestUBPProgressiveInvoicing: progressive collection returns fewer lines/invoices than expected.
  • TestUBPGraduatingFlatFeeTier1: legacy split-parent lookup fails; later collections return no invoices.
  • TestEmptyInvoiceGenerationZeroPrice: the standard line has no detailed lines.
  • TestSortLines: invoice waits for collection instead of automatic approval.
  • TestGatheringInvoicePeriodPersisting: fixture is missing manual management metadata.
  • TestDeleteGatheringInvoiceViaService: fixtures are missing manual management metadata.
  • TestCreatePendingInvoiceLinesForDeletedCustomers: fixture is missing manual management metadata.
  • TestSnapshotQuantityMissingFeature: fixture corrupts legacy line configuration rather than the charge feature reference.
  • TestSnapshotQuantityInvalidDatabaseState: missing meter gates invoice assignment instead of creating an invalid standard invoice.

RetriggerConfidence Score: 5/5

No additional issues block this draft checkpoint beyond the failures and cleanup already acknowledged by `turip`.

Summary

Routes the copied invoice and discount tests through the charges engine.

  • Invoice compatibility tests create pending lines through the charges service.
  • Invoice lifecycle tests now follow charge-backed deletion paths.
  • Progressive discounts follow one charge across three invoices.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Setup["Ledger accounts and tax codes"] --> Charges["Charges.CreatePendingInvoiceLines"]
  Charges --> Gathering["Gathering lines with ChargeID"]
  Gathering --> Collect["BillingService.InvoicePendingLines"]
  Collect --> Invoice["Charge-backed standard invoice"]
  Invoice --> Delete["API deletion or system charge deletion"]
Loading

Reviews (1) · Last reviewed commit: "test(billing): migrate invoice and disco..." · Reviewed by Greptile

@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Base automatically changed from feat/credits-billing-compat-tests to main October 13, 2026 08:37
@turip

turip commented Oct 21, 2026

Copy link
Copy Markdown
Member Author

Closing as superseded by #5289 and #5293, both merged. #5289 continued the invoice and discount compatibility migration from this checkpoint, and #5293 migrated the remaining compatibility suites.

@turip turip closed this Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant