Add 5 pi extensions: pi-subagents, pi-crew, rpiv-pi, pi-interactive-shell, pi-intercom
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: TC-TEAM-001
|
||||
title: "Invite and onboard new team member"
|
||||
feature: "Team Management"
|
||||
priority: high
|
||||
type: functional
|
||||
status: draft
|
||||
tags: ["team", "invitation", "onboarding", "roles", "happy-path"]
|
||||
commit: abc1234
|
||||
---
|
||||
|
||||
# Invite and onboard new team member
|
||||
|
||||
## Objective
|
||||
Verify that a workspace admin can invite a new team member by email, the invitee receives an invitation, and upon accepting they gain access to the workspace with the assigned role and permissions.
|
||||
|
||||
## Preconditions
|
||||
- Workspace exists with at least 1 admin user
|
||||
- Admin user is logged into the workspace Settings area
|
||||
- Invitation email service is configured in test mode
|
||||
- Target email address ("newmember@example.com") is not already a workspace member
|
||||
- Workspace is not at member limit
|
||||
|
||||
## Steps
|
||||
| # | Action | Expected Result |
|
||||
|---|--------|-----------------|
|
||||
| 1 | Navigate to Settings > Team Members page | Team members list displays with current members and their roles |
|
||||
| 2 | Click "Invite Member" button | Invitation form appears with email field and role dropdown |
|
||||
| 3 | Enter "newmember@example.com" in email field | Email field validates format, no error shown |
|
||||
| 4 | Select "Editor" from role dropdown | Role selection highlights "Editor" with permission summary tooltip |
|
||||
| 5 | Click "Send Invitation" | Success toast: "Invitation sent to newmember@example.com". Member appears in list with status "Invited" |
|
||||
| 6 | Open invitee's email inbox | Invitation email received with workspace name and "Accept Invitation" button |
|
||||
| 7 | Click "Accept Invitation" link in email | Browser opens account creation page (or login page if account exists) |
|
||||
| 8 | Complete account creation with name and password | Account created, redirects to workspace dashboard |
|
||||
| 9 | Verify workspace dashboard access | Dashboard loads with workspace content visible, "Editor" badge in profile menu |
|
||||
| 10 | Return to admin's Team Members page | New member shows status "Active" with role "Editor" |
|
||||
|
||||
## Postconditions
|
||||
- Invitation record created with status "accepted" and acceptance timestamp
|
||||
- New user account linked to workspace with "Editor" role
|
||||
- Invitation email marked as used — re-clicking link shows "Already accepted" message
|
||||
- Audit log entry created with action "team.member_invited" (admin) and "team.invitation_accepted" (invitee)
|
||||
- Workspace member count incremented by 1
|
||||
- Welcome notification sent to new member (in-app)
|
||||
|
||||
## Edge Cases
|
||||
- Invite email already associated with an existing account — verify login flow instead of signup
|
||||
- Invite with "Admin" role — verify admin permissions granted after acceptance
|
||||
- Re-invite after previous invitation expired — verify new invitation supersedes old
|
||||
- Invite when workspace is at member limit — verify error message shown before sending
|
||||
- Invited user closes browser mid-signup and returns via link later — verify flow resumes
|
||||
|
||||
## Notes
|
||||
- Related TCs: TC-TEAM-002 (change member role), TC-TEAM-003 (deactivate member)
|
||||
- Dependencies: Email delivery service in test mode, invitation token service
|
||||
- Known issues: Invitation emails may take up to 1 minute in test environments
|
||||
Reference in New Issue
Block a user