Skip to main content

Playwright Behavior Coverage Gaps

This document compares portal API client endpoints with endpoints currently asserted by behavior-level Playwright integration tests.

  • Scope: apps/websites/customer/src/lib/api.ts and apps/websites/support/src/lib/api.ts
  • Behavior-covered means the Playwright tests explicitly wait for and assert a successful API response for that endpoint pattern.
  • Route-level mapping coverage is handled outside this behavior test inventory.

Support Portal (management API)

  • Total API client endpoints: 71
  • Behavior-covered by Playwright assertions: 29
  • Not behavior-covered: 42

Not Behavior-Covered Endpoints

  • DELETE /devices
  • DELETE /orgs/{param}
  • DELETE /orgs/{param}/members/{param}
  • DELETE /orgs/{param}/stores/{param}
  • DELETE /staff/{param}
  • GET /auth/me
  • GET /health
  • GET /orgs/{param}/activity-log
  • GET /orgs/{param}/members
  • GET /orgs/{param}/notifications/{param}
  • GET /orgs/{param}/notifications/unread-count
  • GET /orgs/{param}/stores/{param}/terminals
  • GET /stores/{param}/activity-log
  • GET /stores/{param}/activity-log/{param}
  • GET /stores/{param}/activity-log/actions
  • GET /stores/{param}/activity-log/entity-types
  • GET /stores/{param}/activity-log/user/{param}
  • GET /stores/{param}/export/batches
  • GET /stores/{param}/export/inventory
  • GET /stores/{param}/export/sales
  • GET /stores/{param}/export/transactions
  • GET /stores/{param}/reports/dashboard
  • GET /stores/{param}/reports/inventory
  • GET /stores/{param}/reports/members
  • GET /stores/{param}/reports/sales
  • GET /support/knowledge
  • GET /support/knowledge/{param}
  • GET /support/tickets
  • GET /support/tickets/{param}
  • POST /devices
  • POST /orgs/{param}/activate
  • POST /orgs/{param}/members
  • POST /orgs/{param}/notifications/{param}/read
  • POST /orgs/{param}/notifications/read-all
  • POST /orgs/{param}/stores/{param}/activate
  • POST /orgs/{param}/stores/{param}/terminals/{param}/onboarding-tokens/{param}/confirm
  • POST /orgs/{param}/stores/{param}/terminals/{param}/regenerate-secret
  • POST /orgs/{param}/superadmin
  • POST /staff/{param}/activate
  • POST /staff/invites/accept
  • POST /staff/invites/validate
  • PUT /orgs/{param}/members/{param}

Customer Portal (merchant API)

  • Total API client endpoints: 189
  • Behavior-covered by Playwright assertions: 31
  • Not behavior-covered: 158

Not Behavior-Covered Endpoints

  • DELETE /devices
  • DELETE /orgs/{param}/customers/{param}
  • DELETE /orgs/{param}/iam/groups/{param}
  • DELETE /orgs/{param}/iam/roles/{param}
  • DELETE /orgs/{param}/iam/roles/users/{param}/{param}
  • DELETE /orgs/{param}/integrations/{param}
  • DELETE /orgs/{param}/members/{param}
  • DELETE /orgs/{param}/suppliers/{param}/products/{param}
  • DELETE /stores/{param}/invites/{param}
  • DELETE /stores/{param}/members/{param}
  • DELETE /stores/{param}/products/{param}
  • DELETE /stores/{param}/shifts/assigned/{param}
  • DELETE /stores/{param}/shifts/preferences/{param}
  • DELETE /stores/{param}/tax-configs/{param}
  • DELETE /stores/{param}/upsells/{param}
  • GET /auth/me
  • GET /devices
  • GET /health
  • GET /orgs/{param}/activity-log
  • GET /orgs/{param}/categories/{param}
  • GET /orgs/{param}/categories/tree
  • GET /orgs/{param}/iam/groups
  • GET /orgs/{param}/iam/groups/{param}
  • GET /orgs/{param}/iam/permissions
  • GET /orgs/{param}/iam/roles
  • GET /orgs/{param}/iam/roles/{param}
  • GET /orgs/{param}/iam/roles/users/{param}
  • GET /orgs/{param}/integrations
  • GET /orgs/{param}/integrations/{param}
  • GET /orgs/{param}/integrations/runtime
  • GET /orgs/{param}/invites
  • GET /orgs/{param}/members
  • GET /orgs/{param}/notifications
  • GET /orgs/{param}/notifications/{param}
  • GET /orgs/{param}/notifications/unread-count
  • GET /orgs/{param}/promotions/{param}
  • GET /orgs/{param}/promotions/active
  • GET /orgs/{param}/serial-numbers
  • GET /orgs/{param}/serial-numbers/{param}
  • GET /orgs/{param}/serial-numbers/lookup/{param}
  • GET /orgs/{param}/stock-transfers
  • GET /orgs/{param}/stock-transfers/{param}
  • GET /orgs/{param}/stores
  • GET /orgs/{param}/stores/{param}
  • GET /orgs/{param}/stores/{param}/batches
  • GET /orgs/{param}/stores/{param}/batches/{param}
  • GET /orgs/{param}/stores/{param}/terminals/{param}
  • GET /orgs/{param}/stores/{param}/terminals/{param}/payment-config
  • GET /orgs/{param}/stores/{param}/transactions
  • GET /orgs/{param}/stores/{param}/transactions/{param}
  • GET /orgs/{param}/stores/{param}/transactions/daily-sales
  • GET /orgs/{param}/stores/{param}/transactions/summary
  • GET /orgs/{param}/stores/{param}/users
  • GET /orgs/{param}/suppliers/{param}/products
  • GET /orgs/{param}/users
  • GET /stores/{param}/activity-log
  • GET /stores/{param}/activity-log/{param}
  • GET /stores/{param}/activity-log/actions
  • GET /stores/{param}/activity-log/entity-types
  • GET /stores/{param}/activity-log/user/{param}
  • GET /stores/{param}/compliance
  • GET /stores/{param}/compliance/{param}
  • GET /stores/{param}/compliance/summary
  • GET /stores/{param}/discounts/{param}
  • GET /stores/{param}/discounts/active
  • GET /stores/{param}/export/batches
  • GET /stores/{param}/export/inventory
  • GET /stores/{param}/export/sales
  • GET /stores/{param}/export/transactions
  • GET /stores/{param}/inventory
  • GET /stores/{param}/inventory/{param}
  • GET /stores/{param}/inventory/{param}/history
  • GET /stores/{param}/invites
  • GET /stores/{param}/members
  • GET /stores/{param}/onboarding/status
  • GET /stores/{param}/products
  • GET /stores/{param}/products/{param}
  • GET /stores/{param}/products/barcode/{param}
  • GET /stores/{param}/products/types
  • GET /stores/{param}/reports/dashboard
  • GET /stores/{param}/reports/inventory
  • GET /stores/{param}/reports/members
  • GET /stores/{param}/reports/sales
  • GET /stores/{param}/returns
  • GET /stores/{param}/returns/{param}
  • GET /stores/{param}/shifts/assigned
  • GET /stores/{param}/shifts/preferences
  • GET /stores/{param}/shifts/preferences/me
  • GET /stores/{param}/shifts/requests
  • GET /stores/{param}/shifts/requests/pending
  • GET /stores/{param}/shifts/status
  • GET /stores/{param}/tax-configs
  • GET /stores/{param}/tax-configs/{param}
  • GET /stores/{param}/tax-configs/active
  • GET /stores/{param}/upsells
  • GET /stores/{param}/upsells/{param}
  • POST /auth/change-password
  • POST /devices
  • POST /invites/accept
  • POST /invites/validate
  • POST /orgs/{param}/customers/{param}/points
  • POST /orgs/{param}/iam/groups
  • POST /orgs/{param}/iam/roles
  • POST /orgs/{param}/iam/roles/users/{param}
  • POST /orgs/{param}/integrations
  • POST /orgs/{param}/integrations/{param}/toggle
  • POST /orgs/{param}/integrations/runtime/{param}/sync
  • POST /orgs/{param}/integrations/runtime/sync
  • POST /orgs/{param}/invites
  • POST /orgs/{param}/invites/{param}/revoke
  • POST /orgs/{param}/members
  • POST /orgs/{param}/notifications/{param}/read
  • POST /orgs/{param}/notifications/read-all
  • POST /orgs/{param}/serial-numbers
  • POST /orgs/{param}/serial-numbers/{param}/return
  • POST /orgs/{param}/serial-numbers/{param}/sell
  • POST /orgs/{param}/stock-transfers
  • POST /orgs/{param}/stock-transfers/{param}/cancel
  • POST /orgs/{param}/stock-transfers/{param}/receive
  • POST /orgs/{param}/stock-transfers/{param}/ship
  • POST /orgs/{param}/stores/{param}/batches/{param}/settle
  • POST /orgs/{param}/stores/{param}/transactions/{param}/void
  • POST /orgs/{param}/stores/{param}/users/{param}/activate
  • POST /orgs/{param}/stores/{param}/users/{param}/deactivate
  • POST /orgs/{param}/suppliers/{param}/products
  • POST /stores/{param}/compliance/override
  • POST /stores/{param}/inventory/adjust
  • POST /stores/{param}/inventory/receive
  • POST /stores/{param}/inventory/transfer
  • POST /stores/{param}/invites
  • POST /stores/{param}/invites/{param}/revoke
  • POST /stores/{param}/members
  • POST /stores/{param}/onboarding/complete
  • POST /stores/{param}/products
  • POST /stores/{param}/returns
  • POST /stores/{param}/shifts/assigned
  • POST /stores/{param}/shifts/clock-in
  • POST /stores/{param}/shifts/clock-out
  • POST /stores/{param}/shifts/preferences
  • POST /stores/{param}/shifts/requests
  • POST /stores/{param}/shifts/requests/{param}/review
  • POST /stores/{param}/tax-configs
  • POST /stores/{param}/upsells
  • POST /stores/{param}/upsells/{param}/toggle
  • POST /stores/{param}/upsells/recommendations
  • PUT /orgs/{param}/iam/groups/{param}
  • PUT /orgs/{param}/iam/roles/{param}
  • PUT /orgs/{param}/integrations/{param}
  • PUT /orgs/{param}/members/{param}
  • PUT /orgs/{param}/stores/{param}
  • PUT /orgs/{param}/stores/{param}/users/{param}
  • PUT /orgs/{param}/stores/{param}/users/{param}/pin
  • PUT /stores/{param}/members/{param}
  • PUT /stores/{param}/products/{param}
  • PUT /stores/{param}/shifts/assigned/{param}
  • PUT /stores/{param}/shifts/preferences/{param}
  • PUT /stores/{param}/tax-configs/{param}
  • PUT /stores/{param}/upsells/{param}