MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-393

6.10.8 E2E — create an org, attach workspaces, manage cross-workspace members

Done
Description

Estimate: 50m · Depends on: 6.10.5

A Playwright end-to-end flow proving the org tier works from the shell: create/administer an org, attach workspaces, and manage cross-workspace members — the customer-facing org admin path the 6.10.5 UI ships.

The flow:

  1. As the seeded org owner, open the org switcher in the shell — the moooon org is the active org; its workspace(s) are listed under it by the workspace switcher.
  2. Open org settings — rename the org (or edit org metadata) and confirm it saves (and that there is NO billing/credit surface — 7.12.5 / Epic 8).
  3. Open cross-workspace member management — see the roster across the org’s workspaces (paginated); invite/add a member to the org, set their org role (admin), and confirm they appear with that role; change a role; remove a member.
  4. Confirm GATING: a user who is in a workspace but NOT in the org cannot reach that workspace (a separate browser context / seeded non-org-member sees not-found, not forbidden — 404-not-403); an org admin can administer every workspace under the org.
  5. (If the seed models a second org) switch orgs via the switcher and confirm the workspace switcher re-scopes to the other org’s workspaces.

Harness. Follow the prodect E2E run-harness conventions (run the dev server + the seeded DB; the selector gotchas — combobox option = label+secondary; exact/level on heading selectors; the empty-state headings). Drive the real UI, not API shortcuts.

Acceptance criteria

  • The flow passes headless in CI: org switcher → org settings rename → cross-workspace member add/role-change/remove → the gating assertion (member-of-workspace-but-not-org is denied 404-not-403; org admin spans all workspaces).
  • The member roster is asserted paginated (a page control / lazy load, not all rows at once).
  • No billing/credit/checkout surface appears anywhere in the flow (7.12.5 / Epic 8).
  • The test drives the real UI (no API-only shortcuts) and uses the prodect E2E selector conventions.

Context refs

  • 6.10.5 — the org admin UI under test.
  • motir-core/e2e/ — the existing Playwright specs + the run-harness + selector conventions to mirror.
  • 6.10.6 — the seeded moooon org + members the flow runs against.