Skip to content

Reminders App QA

The Reminders app (/business/apps/reminders) lets users create scheduled reminders with 7 frequency options, assign recipients, link to target resources (documents, invoices, projects, or custom), and review execution logs. Reminders can be toggled active/inactive and deleted.

Supported frequencies: once, daily, weekly, monthly, quarterly, half_yearly, yearly

Supported target types: document, invoice, project, custom

Routes under test:

RoutePurpose
/business/apps/remindersReminder list with type filter and toggle
/business/apps/reminders/newCreate a new reminder
/business/apps/reminders/[id]View reminder details, fire history, toggle, delete
/business/apps/reminders/logsOverview log table for all reminders

IDDescriptionPreconditionsStepsExpected ResultPriority
RM-001Reminder list rendersUser has reminders1. Navigate to /business/apps/remindersEach reminder shown as a card with title, frequency badge, target type badge (if set), next fire date, last fired date, and Active/Inactive toggle buttonP0
RM-002Count badgeUser has reminders1. Navigate to /business/apps/remindersBadge next to “Reminders” heading shows the correct countP1
RM-003Filter by target type — DocumentsReminders with target_type “document” exist1. Select “Documents” from the filter dropdownOnly document-type reminders displayed; URL updates with ?type=documentP0
RM-004Filter by target type — InvoicesInvoice reminders exist1. Select “Invoices”Only invoice reminders displayedP1
RM-005Filter by target type — ProjectsProject reminders exist1. Select “Projects”Only project reminders displayedP1
RM-006Filter by target type — CustomCustom reminders exist1. Select “Custom”Only custom reminders displayedP1
RM-007Filter by target type — AllA filter is active1. Select “All”All reminders displayed; type param removedP1
RM-008Toggle active to inactiveReminder is currently active1. Click the “Active” button on a reminderReminder toggles to inactive; toast “Reminder paused” shown; button changes to “Inactive”P0
RM-009Toggle inactive to activeReminder is currently inactive1. Click the “Inactive” button on a reminderReminder activates; toast “Reminder activated” shown; button changes to “Active”P0
RM-010Empty reminder listNo reminders exist1. Navigate to /business/apps/reminders”No reminders found. Create one to get started.” message displayedP1
RM-011Reminder card navigates to detailReminders exist1. Click on a reminder card (not the toggle button)Navigates to /business/apps/reminders/[id]P0
RM-012Logs button navigatesUser is on reminder list1. Click “Logs” buttonNavigates to /business/apps/reminders/logsP1
RM-013New Reminder button navigatesUser is on reminder list1. Click “New Reminder” buttonNavigates to /business/apps/reminders/newP1

IDDescriptionPreconditionsStepsExpected ResultPriority
RM-020Create a once-frequency reminderUser is authenticated1. Navigate to /business/apps/reminders/new 2. Enter title “Review contract” 3. Select frequency “Once” 4. Set a start date 5. Enter recipient IDs 6. Click “Create Reminder”Redirected to /business/apps/reminders; new reminder appears in listP0
RM-021Create a daily reminderUser is authenticated1. Enter title 2. Select frequency “Daily” 3. Set start date 4. Add recipients 5. CreateReminder created with frequency = dailyP0
RM-022Create a weekly reminder with day of weekUser is authenticated1. Select frequency “Weekly” 2. Verify “Day of Week” dropdown appears 3. Select “Wednesday” 4. CreateReminder created with frequency = weekly and day_of_week = 3P0
RM-023Create a monthly reminder with day of monthUser is authenticated1. Select frequency “Monthly” 2. Verify “Day of Month” input appears 3. Enter “15” 4. CreateReminder created with frequency = monthly and day_of_month = 15P0
RM-024Create a quarterly reminderUser is authenticated1. Select frequency “Quarterly” 2. CreateReminder created with frequency = quarterlyP1
RM-025Create a half-yearly reminderUser is authenticated1. Select frequency “Half Yearly” 2. CreateReminder created with frequency = half_yearlyP1
RM-026Create a yearly reminderUser is authenticated1. Select frequency “Yearly” 2. CreateReminder created with frequency = yearlyP1
RM-027Set optional end dateUser is on create form1. Set an end date in addition to start date 2. CreateReminder created with ends_at setP1
RM-028Set optional messageUser is on create form1. Enter a message in the message textarea 2. CreateReminder created with message storedP1
RM-029Set target type and target IDUser is on create form1. Select target type “Document” 2. Verify Target ID field appears 3. Enter a UUID 4. CreateReminder created with target_type = document and target_id setP1
RM-030Target ID hidden when no target typeUser is on create form1. Leave target type as “None”Target ID field is not renderedP2
RM-031Comma-separated recipientsUser is on create form1. Enter “user-1, user-2, user-3” in the recipients fieldHidden inputs created for each recipient IDP0
RM-032Validation — empty titleUser is on create form1. Leave title blank 2. Click “Create Reminder”Validation error on title fieldP0
RM-033Validation — no frequency selectedUser is on create form1. Enter title but skip frequency 2. Click “Create Reminder”Validation error on frequency fieldP0
RM-034Validation — no start dateUser is on create form1. Enter title and frequency but skip start date 2. CreateValidation error on starts_at fieldP1
RM-035Cancel returns to listUser is on create form1. Click “Cancel”Navigates to /business/apps/remindersP2
RM-036Day of week hidden for non-weeklyUser is on create form1. Select frequency “Daily""Day of Week” dropdown is not displayedP2
RM-037Day of month hidden for non-monthlyUser is on create form1. Select frequency “Weekly""Day of Month” input is not displayedP2

IDDescriptionPreconditionsStepsExpected ResultPriority
RM-040Detail page loadsReminder exists1. Navigate to /business/apps/reminders/[id]Page shows title, Active/Inactive badge, message (if set), frequency badge, target info, start/end dates, next fire date, last fired date, day of week/month (if applicable), and recipients listP0
RM-041Toggle active from detailReminder is active1. Click “Pause” buttonReminder becomes inactive; toast “Reminder paused” shownP0
RM-042Toggle inactive from detailReminder is inactive1. Click “Activate” buttonReminder becomes active; toast “Reminder activated” shownP0
RM-043Delete reminder from detailReminder detail is open1. Click “Delete” button 2. Confirm in the browser dialogRedirected to /business/apps/reminders; reminder no longer in listP0
RM-044Recipients displayReminder has recipients1. Navigate to detailEach recipient user ID displayed as a badgeP1
RM-045No recipients messageReminder has no recipients1. Navigate to detail”No recipients” text displayedP1
RM-046Fire history table — with logsReminder has been fired1. Navigate to detail”Fire History” section shows table with Fired At and Recipients Notified columnsP0
RM-047Fire history — emptyReminder has never fired1. Navigate to detail”No fire history yet.” message displayedP1
RM-048Non-owner cannot accessReminder belongs to another user1. Navigate to detail as different user401 or 404 error returnedP1
RM-049Day of week displays correctlyReminder is weekly with day_of_week set1. Navigate to detail”Day of Week” shows the correct day name (e.g., “Wednesday”)P2
RM-050Day of month displays correctlyReminder is monthly with day_of_month set1. Navigate to detail”Day of Month” shows the correct numberP2

IDDescriptionPreconditionsStepsExpected ResultPriority
RM-060Logs page loadsUser has reminders1. Navigate to /business/apps/reminders/logsTable displays all reminders with columns: Reminder (title), Frequency (badge), Status (Active/Inactive badge), Last Fired, Next Fire, and View linkP0
RM-061View link navigates to detailLogs page is displayed1. Click “View” on a reminder rowNavigates to /business/apps/reminders/[id]P0
RM-062Empty logs pageNo reminders exist1. Navigate to /business/apps/reminders/logs”No reminders found.” message displayedP1
RM-063Last fired shows “Never” for unfiredReminder has never fired1. Navigate to logs pageLast Fired column shows “Never” for that reminderP1
RM-064Back navigationUser is on logs page1. Click back arrowNavigates to /business/apps/remindersP2