Scope
In Scope:- Custom pricing logic (per customer, per zone, per currency)
- Fallback to default pricing
- Data push to Bunny (plans, usage)
- Subscription creation in Bunny
- Monthly invoice triggering and charge logic
- ARR/MRR calculation using custom pricing
- Fallback payment method handling
- Bunny invoice error handling and recovery
- UI management of pricing (not yet implemented)
- Direct payment processing logic (handled by Bunny)
Assumptions
- Bunny API is accessible and available for testing
- Staging or dev accounts are available for internal verification
- Default and custom pricing are pre-configured in the backend
- Usage metrics are tracked accurately in the system
Risks
- Bunny errors during invoice generation may block testing
- No UI to validate/set prices increases reliance on API/debug tools
- Pricing inconsistencies may affect ARR/MRR reports
Test Types
- Functional testing (pricing logic, API calls)
- Integration testing (data flow to Bunny)
- Regression testing (existing billing logic)
- Negative testing (missing data, unlinked teams, cancelled plans)
- API testing (Swagger/Postman)
- Exploratory testing (unexpected usage spikes, edge scenarios)
Test Environment
- Telgea staging environment
- Bunny development account (with API access)
- Swagger or Postman for API testing
- Logging tools (for backend tracking)
- Time-based triggers simulated or fast-forwarded if needed
Test Data
- Customers with:
- Custom prices in USD, EUR
- No custom pricing (default fallback)
- Linked/unlinked payment methods
- Active and cancelled plans (Zone A, B, C)
- Teams and solo users
- Usage data representing various counts of active numbers
Entry Criteria
- Features deployed in staging
- Bunny test account ready
- API credentials available
- Pricing setup confirmed by backend/dev team
Exit Criteria
- All test cases passed or bugs logged and accepted
- No critical/blocker bugs remain
- Bunny integration generates valid invoices
- ARR/MRR calculations reflect correct pricing
Deliverables
- Test cases
- Checklist (see below)
- Bug reports (with logs, examples)
- Test summary report
Checklist Example for Bunny Billing Integration
| # | Test Item | Expected Result |
|---|---|---|
| 1 | Custom pricing is applied when configured | Customer is charged their specific price |
| 2 | Default pricing is used when no custom pricing exists | Customer sees and pays default plan rates |
| 3 | Prices are stored in both USD and EUR | Correct currency is shown and charged |
| 4 | Custom pricing is pushed to Bunny | Bunny invoice reflects custom values |
| 5 | Subscriptions are created in Bunny for each plan | Bunny shows Zone A/B/C as active subscriptions |
| 6 | Usage data is pushed to Bunny monthly | Usage field in Bunny is updated before billing cycle |
| 7 | Bunny generates monthly invoice based on usage | Invoice is created with correct totals |
| 8 | Cancelled plans mid-month are not billed (current logic) | No charges for cancelled plans |
| 9 | Cancelled plans are still charged full month (if highest usage mode enabled) | Invoice includes charges for peak usage |
| 10 | ARR/MRR uses custom pricing in reporting | Revenue numbers reflect correct pricing |
| 11 | Users without teams are billed via primary method | Charge is successful using fallback method |
| 12 | Teams without payment method → fallback to primary | Charge succeeds using primary method |
| 13 | Bunny invoice API returns error (manual call) | Error is caught and logged properly |
| 14 | Bunny error fixed → invoice generated | Invoice is visible and correct |
