Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

3.1 KiB

Manual QA Checklist — Mobile Ticketing MVP

Date: 2026-02-03
Scope: React Native mobile app + mobile auth endpoints (Alga-hosted)

This checklist is used to validate MVP behavior end-to-end in a real device/simulator environment.

Auth

  • Sign in opens system browser to hosted login.
  • Deep link callback returns to app and completes OTT exchange.
  • Session persists across app restart.
  • Refresh rotates credentials before expiry; revoked sessions force sign-in.
  • Logout revokes session server-side and clears local storage.
  • Capability discovery gates sign-in when host is not allowlisted.

Tickets — List

  • Initial load returns paginated list; infinite scroll loads next pages.
  • Pull-to-refresh reloads page 1 and replaces results.
  • Rows show ticket number, title, status, priority, assignee, client, and updated-at.
  • Status/priority badges are readable with sufficient contrast.
  • Default sorting is updated-at descending; sort selector changes server-side sort.
  • Search debounces input and queries server-side.
  • Filters (status, assignee, priority, updated-since) apply server-side and can be combined.
  • Quick filters (My tickets, Unassigned, High priority, Recently updated) work.
  • Active filters summary/chip bar reflects current filters; “Clear all” resets.
  • Filters persist per user across app restarts.
  • Empty, offline, and error states are clear with retry behavior.
  • Prefetch of first ticket details improves navigation responsiveness.
  • Ticket stats header loads and matches expected counts (if enabled).
  • 403/no-access and RBAC restrictions show appropriate UX (no data leakage).

Tickets — Detail

  • Ticket header shows number/title/status/priority/assignee.
  • Requester/contact and client/company fields render.
  • Created/updated/closed timestamps display with relative + absolute formatting.
  • Description renders safely; external links require confirmation.
  • Comments/timeline loads with pagination (“Load more”) and entries are ordered.
  • Internal vs public comments are clearly labeled.
  • Copy ticket id/number works; “Open in web” opens correct hosted URL.
  • 403/404 states are friendly and do not leak data.

Ticket updates

  • Add comment supports internal/public visibility; drafts persist per ticket and clear on success.
  • Comment length validation prevents oversize posts; errors are actionable.
  • Status change picker loads statuses; optimistic update rolls back on failure; 409 conflict prompt works.
  • Assignment (assign-to-me/unassign), priority, due date, watch toggle, and time entry flows work as expected.
  • Mutations include audit headers (device/app metadata) and respect RBAC (403) and validation errors (400/422).
  • Offline prevents sending updates (draft preserved).

Settings

  • Diagnostics show app version/build, platform, env, and base URL.
  • Account section shows signed-in status, user, and tenant id.
  • Clear cache clears in-memory caches and prompts confirmation.
  • About/Legal opens and link-outs to privacy/terms work.