# Manual Regression Testing ## **❗ Before Production Deployment** - [x] Create a PR to check that all terraform changes have been applied - [x] If needed, apply any changes to prod ## 🚀 After Environment Deployment ### 💚 Testing - [x] Verify `calendar_integration_identity_mappings` have `customer_salesforce_id` values in their `internal_id` column - `SELECT * FROM "calendar_integration_identity_mappings" WHERE "calendar_integration_type" = 'TCM' AND "type" = 'CUSTOMER'` - As an internal fitter... - [x] Book an appointment - [x] Verify it is created with proper data in appointment service - [x] CONFIRMED status - [x] `created_by` has proper user id and email - [x] Reschedule an appointment - [x] Verify it is rescheduled with proper status in appointment service - [x] Cancel an appointment - [x] Verify it is canceled with proper status in appointment service - As a consultant... - [x] Book an appointment in SF (legacy method) - [x] Verify it is created with proper data in appointment service - [x] `created_by` has proper `system`: SALESFORCE - [x] Cancel an appointment in SF (legacy method) - [x] Verify it is canceled with proper status in appointment service - As a TCM fitter... - [x] Book an appointment - [x] Verify a customer record has been created in `calendar_integration_identity_mappings` - [x] Reschedule an appointment (on a different day) - [x] Verify NO DUPLICATE customer record has been created in `calendar_integration_identity_mappings` - [x] Cancel an appointment - As a Sycle fitter... - [x] Book an appointment - [x] Reschedule an appointment - [x] Cancel an appointment - As a fitter in the fitting flow... - [x] Verify we can book a follow-up appointment ### 💛 Staging - [x] Verify `calendar_integration_identity_mappings` have `customer_salesforce_id` values in their `internal_id` column - `SELECT * FROM "calendar_integration_identity_mappings" WHERE "calendar_integration_type" = 'TCM' AND "type" = 'CUSTOMER'` - As an internal fitter... - [x] Book an appointment - [x] Verify it is created with proper data in appointment service - [x] CONFIRMED status - [x] `created_by` has proper user id and email - [x] Reschedule an appointment - [x] Verify it is rescheduled with proper status in appointment service - [x] Cancel an appointment - [x] Verify it is canceled with proper status in appointment service - [x] Verify appointment has been created/rescheduled/canceled in Salesforce - As a consultant... - [x] Book an appointment in SF (legacy method) - [x] Verify it is created with proper data in appointment service - [x] `created_by` has proper `system`: SALESFORCE - [x] Cancel an appointment in SF (legacy method) - [x] Verify it is canceled with proper status in appointment service - As a TCM fitter... - [ ] Book an appointment - [ ] Verify a customer record has been created in `calendar_integration_identity_mappings` - [ ] Reschedule an appointment (on a different day) - [ ] Verify NO DUPLICATE customer record has been created in `calendar_integration_identity_mappings` - [ ] Cancel an appointment - As a Sycle fitter... - [ ] Book an appointment - [ ] Reschedule an appointment - [ ] Cancel an appointment - As a fitter in the fitting flow... - [ ] Verify we can book a follow-up appointment ### ❤️ Production - [x] Verify `calendar_integration_identity_mappings` have `customer_salesforce_id` values in their `internal_id` column - `SELECT * FROM "calendar_integration_identity_mappings" WHERE "calendar_integration_type" = 'TCM' AND "type" = 'CUSTOMER'` - As an internal fitter... - [x] Book an appointment - [x] Verify it is created with proper data in appointment service - [x] CONFIRMED status - [x] `created_by` has proper user id and email - [x] Reschedule an appointment - [x] Verify it is rescheduled with proper status in appointment service - [x] Cancel an appointment - [x] Verify it is canceled with proper status in appointment service - [x] Verify appointment has been created/rescheduled/canceled in Salesforce - As a consultant... - [x] Book an appointment in SF (legacy method) - [x] Verify it is created with proper data in appointment service - [x] `created_by` has proper `system`: SALESFORCE - [x] Cancel an appointment in SF (legacy method) - [x] Verify it is canceled with proper status in appointment service - As a TCM fitter... - [ ] Book an appointment - [ ] Verify a customer record has been created in `calendar_integration_identity_mappings` - [ ] Reschedule an appointment (on a different day) - [ ] Verify NO DUPLICATE customer record has been created in `calendar_integration_identity_mappings` - [ ] Cancel an appointment - As a Sycle fitter... - [ ] Book an appointment - [ ] Reschedule an appointment - [ ] Cancel an appointment - As a fitter in the fitting flow... - [ ] Verify we can book a follow-up appointment ## 🔙 Rollback strategy - [ ] Run down migration manually against environment - [ ] Rollback `master` deployment to previous code version - [ ] [`ta-appointment-service`](https://jenkins.audibene.net/blue/organizations/jenkins/Audibene-GMBH%2Fta-appointment-service/activity?branch=master) - [ ] Verify `calendar_integration_identity_mappings` have `customer_id` values in their `internal_id` column - `SELECT * FROM "calendar_integration_identity_mappings" WHERE "calendar_integration_type" = 'TCM' AND "type" = 'CUSTOMER'` - [ ] [`ta-appointment-ui`](https://jenkins.audibene.net/blue/organizations/jenkins/Audibene-GMBH%2Fta-appointment-ui/activity?branch=master) - [ ] Verify Scheduling UI comes up with availabilities