3.4 KiB
3.4 KiB
Batch 12 Plan - Safe Mutations (Phase 1)
Strategy: Start with Safest Mutations
After completing ALL query endpoints (198/198 ✅), we now transition to the mutation phase.
Total Mutations: 311 endpoints
Risk Classification:
- 🟢 SAFE (24): Read-like, idempotent, or status changes (mark, send, set, approve, register)
- 🟡 MEDIUM (99): Update operations that modify existing data
- 🔴 DANGEROUS (188): Create/delete operations that add or remove data
Batch 12 Focus: All 24 SAFE Mutations
These mutations are the safest to test as they:
- Don't create new records
- Don't delete existing data
- Mostly change status or send notifications
- Are often idempotent (can run multiple times safely)
Endpoints (24 total)
Approval/Status Operations (3)
approveCreditorInvoice- Approve a creditor invoiceapproveScheme- Approve a schemecloseScheme- Close a scheme
Mark/Read Operations (1)
markMessageAsRead- Mark message as read (idempotent)
Registration Operations (2)
registerLiquidBarcodeUser- Register user for liquid barcode systemregisterUserPushNotification- Register push notification token
Rejection Operations (1)
rejectGasServiceCase- Reject gas service case
Send/Communication Operations (7)
sendCaseReport- Send case report via emailsendCompanyPushNotification- Send push notification to companysendCreditorInvoiceViaEmail- Send creditor invoice by emailsendOfferViaEmail- Send offer by emailsendReminder- Send reminder (invoice/payment)sendSalesInvoiceViaEmail- Send sales invoice by emailsendSalesInvoiceViaGln- Send sales invoice via GLNsendUserPushNotification- Send push notification to user
Set/Configuration Operations (9)
setCarProduct- Set product for carsetDiscountGroupDetailItem- Set discount group detail itemsetInvoiceAddress- Set invoice addresssetNamedPreference- Set named user preferencesetSalesInvoiceDraftStateLine- Set sales invoice draft state linesetSalesInvoicePaidAmount- Set paid amount on invoicesetUserCredentials- Set user credentialssetUserPreferences- Set user preferences
Sync Operations (1)
syncCreditorsToCreditorInvoices- Sync creditors to invoices
Testing Strategy
For each mutation:
- Introspect arguments - Get required parameters
- Create script with validation - Similar to Batch 11 approach
- Add safety notes - Document what the mutation does
- Test if possible - Only if we have valid IDs and it's truly safe
- Document output - Save results for successful tests
Expected Outcomes:
- Most will require valid IDs (customer, invoice, case, etc.)
- Some may return errors if already in target state (e.g., already approved)
- Send operations may require valid email addresses
- Set operations may work with current user credentials
Success Criteria
- ✅ All 24 scripts created with parameter validation
- ✅ Clear documentation of what each mutation does
- ✅ Safety warnings where applicable
- ✅ Test any that can be safely executed
- ✅ Update progress: 255 → 279/507 (55%)
Next Batches
- Batch 13-15: MEDIUM mutations (update operations, ~30 each)
- Batch 16-22: DANGEROUS mutations (create/delete, ~30 each)
Batch 12 Goal: Complete all safe mutations and establish patterns for mutation testing.