Repository navigation
Testing multiple accounts
Rob Lazzurs edited this page Jan 25, 2026
·
1 revision
This document provides testing instructions for the multi-account support feature.
Steps:
- Build and run the app
- Click the menu bar icon
- Click the gear icon to open Settings
- Verify "No accounts configured" message is displayed
- Click "Add Account"
- Enter account details:
- Name: "Test Account 1"
- Service Type: PagerDuty
- API Token: (valid token)
- Click "Add Account"
- Verify account appears in the list
- Click the network icon to test connection
- Verify connection test passes
- Close Settings
- Verify incidents appear in the menu
Expected Results:
- ✅ Account is added successfully
- ✅ Connection test passes
- ✅ Incidents are displayed with account badge
- ✅ Status bar updates with alert counts
Steps:
- If you have an existing installation with a single account configured
- Build and run the updated app
- Click the menu bar icon
- Click the gear icon to open Settings
- Verify your existing account appears as "PagerDuty Account"
- Verify incidents continue to display correctly
Expected Results:
- ✅ Existing account is migrated automatically
- ✅ Account name is "PagerDuty Account"
- ✅ All existing functionality continues to work
- ✅ No data loss
Steps:
- Have at least one account configured
- Open Settings
- Click "Add Account"
- Add a second account with different credentials
- Verify both accounts appear in the list
- Test connection for both accounts
- Close Settings
- Verify incidents from both accounts appear in the menu
- Verify each incident shows the correct account badge
Expected Results:
- ✅ Both accounts can be added
- ✅ Both connections can be tested independently
- ✅ Incidents from both accounts appear
- ✅ Account badges correctly identify the source account
- ✅ Aggregate counts are correct
Steps:
- Have at least two accounts configured
- Open Settings
- Click the checkmark icon on one account to disable it
- Verify the icon changes to an empty circle
- Verify "Disabled" label appears
- Close Settings
- Verify incidents from the disabled account no longer appear
- Verify aggregate counts are updated
Expected Results:
- ✅ Account can be disabled
- ✅ Disabled account's incidents are not fetched
- ✅ Other accounts continue to work normally
- ✅ Re-enabling the account restores functionality
Steps:
- Have at least two accounts configured
- Open Settings
- Click the trash icon on one account
- Verify account is removed from the list
- Close Settings
- Verify incidents from the deleted account no longer appear
- Reopen Settings
- Verify the account is still not present
Expected Results:
- ✅ Account is deleted
- ✅ API token is removed from Keychain
- ✅ Incidents from deleted account are not displayed
- ✅ Deletion is persistent across app restarts
Steps:
- Have at least one account with unacknowledged incidents
- Click the menu bar icon
- Find an incident with status "triggered"
- Note the account badge on the incident
- Click the checkmark icon to acknowledge
- Wait for the operation to complete
- Verify the incident updates to "acknowledged" status
Expected Results:
- ✅ Incident can be acknowledged
- ✅ Correct account is used for the API call
- ✅ UI updates after acknowledgment
- ✅ No errors occur
Steps:
- Open Settings
- Click "Add Account"
- Enter invalid API token
- Add the account
- Click the network icon to test connection
- Verify error indicator (red X) appears
Expected Results:
- ✅ Invalid token can be added (for later fixing)
- ✅ Connection test fails appropriately
- ✅ Error is displayed clearly
- ✅ App doesn't crash
Steps:
- Delete all accounts
- Verify Settings shows "No accounts configured"
- Verify menu shows appropriate message
- Verify status bar icon shows gray/inactive state
Expected Results:
- ✅ Empty state is handled gracefully
- ✅ No errors or crashes
- ✅ Clear instructions to add an account
- Add two accounts with the same API token
- Verify both work independently
- Verify incidents are not duplicated
- Add an account that has no active incidents
- Verify it doesn't cause errors
- Verify on-call status still works
- Disable network connectivity
- Verify app handles failures gracefully
- Verify appropriate error messages are shown
- Re-enable network and verify recovery
- Quickly add/remove multiple accounts
- Verify no race conditions occur
- Verify UI remains responsive
- Add 3-5 accounts
- Monitor memory usage (should remain under 30 MB)
- Verify no memory leaks over time
- With multiple accounts configured
- Verify CPU usage is minimal when idle (<1%)
- Verify CPU usage during refresh is acceptable (<5%)
- Monitor network traffic during refresh
- Should be approximately 10-20 KB per account per refresh
- Add multiple accounts
- Open Keychain Access app
- Search for "com.oncall.notify"
- Verify each account has a separate keychain entry
- Verify tokens are encrypted
- Try to add an account with:
- Too short token (<20 chars) - should fail
- Too long token (>100 chars) - should fail
- Token with special characters - should fail
- Valid token - should succeed
Verify that all existing functionality still works:
- ✅ Status bar icon updates
- ✅ Color coding (red/orange/blue/gray)
- ✅ Alert counts are correct
- ✅ On-call status detection
- ✅ Next shift display
- ✅ Auto-refresh every 60 seconds
- ✅ Manual refresh button
- ✅ Opening PagerDuty web interface
- ✅ Quit functionality
- Migration is one-way (single → multi-account)
- Currently only PagerDuty is supported
- Cannot edit account name after creation (workaround: delete and re-add)
- Account order in list is not configurable
When reporting issues, please include:
- macOS version
- App version
- Number of accounts configured
- Steps to reproduce
- Screenshots if applicable
- Console logs (check Console.app and filter for "OnCallNotify")