8.5 KiB
Unisono Application - Comprehensive Test Plan
Application Overview
The Unisono application facilitates harmonizing desires among participants through real-time collaboration. Users can create sessions, define a topic and optional details, specify the number of expected responses, and then share a link for others to join. The application uses a passphrase for authentication.
Test Scenarios
Note on Multi-User Scenarios: For tests involving multiple users, each user should be simulated in an isolated browser context (e.g., using browser.newContext() in Playwright) to ensure independent session states.
1. Authentication
1.1 Successful Login with Valid Passphrase
Steps:
- Navigate to the application URL (e.g.,
https://unisono.aglink.duckdns.org). - On the login page, enter the valid
AUTH_PASSPHRASEinto the "Passphrase" textbox. - Click the "Enter" button.
Expected Results:
- The user is redirected to a new session creation page (e.g.,
/session/<session-id>). - The "Harmonize Desires" heading is visible.
- The session creation form (Topic, Details, Number of Expected Responses, Start Session button) is displayed.
1.2 Unsuccessful Login with Invalid Passphrase
Steps:
- Navigate to the application URL (e.g.,
https://unisono.aglink.duckdns.org). - On the login page, enter an invalid passphrase (e.g., "incorrect-passphrase") into the "Passphrase" textbox.
- Click the "Enter" button.
Expected Results:
- An error message indicating invalid credentials is displayed.
- The user remains on the login page.
2. Session Creation
2.1 Create Session with Valid Data
Steps:
- Ensure the user is logged in and on the session creation page.
- Enter a valid topic (e.g., "Project Alpha Planning") into the "Topic" textbox.
- Enter optional details (e.g., "Discuss Q4 goals and allocate resources") into the "Details (Optional)" textbox.
- Enter a valid number of participants (e.g., "3") into the "Number of Expected Responses" spinbutton.
- Click the "Start Session" button.
Expected Results:
- A new session is created.
- The user is redirected to the active session page.
- The session details (Topic, Details, Number of Expected Responses) are displayed correctly.
- A "Copy Link" button is visible.
2.2 Attempt to Create Session with Missing Topic
Steps:
- Ensure the user is logged in and on the session creation page.
- Leave the "Topic" textbox empty.
- Enter optional details (e.g., "Discuss Q4 goals and allocate resources") into the "Details (Optional)" textbox.
- Enter a valid number of participants (e.g., "3") into the "Number of Expected Responses" spinbutton.
- Click the "Start Session" button.
Expected Results:
- An error message indicating that the "Topic" field is required is displayed.
- The session is not created, and the user remains on the session creation page.
2.3 Attempt to Create Session with Invalid Number of Participants (Less than 2)
Steps:
- Ensure the user is logged in and on the session creation page.
- Enter a valid topic (e.g., "Project Alpha Planning") into the "Topic" textbox.
- Enter optional details (e.g., "Discuss Q4 goals and allocate resources") into the "Details (Optional)" textbox.
- Enter "1" into the "Number of Expected Responses" spinbutton.
- Click the "Start Session" button.
Expected Results:
- An error message indicating that the number of participants must be at least 2 is displayed.
- The session is not created, and the user remains on the session creation page.
2.4 Attempt to Create Session with Invalid Number of Participants (More than 12)
Steps:
- Ensure the user is logged in and on the session creation page.
- Enter a valid topic (e.g., "Project Alpha Planning") into the "Topic" textbox.
- Enter optional details (e.g., "Discuss Q4 goals and allocate resources") into the "Details (Optional)" textbox.
- Enter "13" into the "Number of Expected Responses" spinbutton.
- Click the "Start Session" button.
Expected Results:
- An error message indicating that the number of participants cannot exceed 12 is displayed.
- The session is not created, and the user remains on the session creation page.
3. Copy Link Feature
3.1 Verify Copy Link Button Functionality
Steps:
- Ensure a session has been successfully created and the user is on the active session page.
- Click the "Copy Link" button.
Expected Results:
- A success message (e.g., "Link copied to clipboard!") is displayed.
- The session URL is copied to the clipboard.
4. Submit Desires Functionality
4.1 Single User - Submit All Desire Categories
Steps:
- Ensure a session is created and the user is on the active session page.
- Enter items into "What You Want" textbox (e.g., "Item A\nItem B").
- Enter items into "Afraid to Ask (Private)" textbox (e.g., "Secret Item").
- Enter items into "What You Accept" textbox (e.g., "Acceptable Item").
- Enter items into "What You Do Not Want" textbox (e.g., "Unwanted Item").
- Click the "Submit Desires" button.
Expected Results:
- A success message indicating desires have been submitted is displayed.
- The input fields are cleared or disabled.
- The page transitions to a "Waiting for other participants" or similar state if
Expected Responses> 1.
4.2 Multi-User - All Participants Submit Desires
Steps:
- Create a session with
Number of Expected Responsesset to 2. - Copy the session link.
- User 1 (in the initial browser context): a. Enter desires into all categories. b. Click "Submit Desires".
- User 2 (in a new browser context, e.g., using
browser.newContext()in Playwright): a. Navigate to the copied session link. b. Log in with the validAUTH_PASSPHRASE. c. Enter desires into all categories. d. Click "Submit Desires".
Expected Results:
- After User 1 submits, their page shows a "Waiting for other participants" message.
- After User 2 submits, both User 1 and User 2's pages transition to the "Results Display" page.
- The "Results Display" page shows a summary of all submitted desires, categorized and potentially aggregated.
- Private desires are not visible to other users.
4.3 Single User - Submit Only "What You Want"
Steps:
- Ensure a session is created and the user is on the active session page.
- Enter items into "What You Want" textbox (e.g., "Only Want This").
- Leave other desire fields empty.
- Click the "Submit Desires" button.
Expected Results:
- Desires are submitted successfully.
- The page transitions to a "Waiting for other participants" or similar state.
4.4 Multi-User - Different Desire Submissions
Steps:
- Create a session with
Number of Expected Responsesset to 2. - Copy the session link.
- User 1 (in the initial browser context): a. Enter items into "What You Want" (e.g., "User1 Want A"). b. Enter items into "What You Do Not Want" (e.g., "User1 Not Want B"). c. Click "Submit Desires".
- User 2 (in a new browser context, e.g., using
browser.newContext()in Playwright): a. Navigate to the copied session link. b. Log in with the validAUTH_PASSPHRASE. c. Enter items into "What You Want" (e.g., "User2 Want C"). d. Enter items into "What You Accept" (e.g., "User2 Accept D"). e. Click "Submit Desires".
Expected Results:
- Both users' pages transition to the "Results Display" page.
- The "Results Display" page accurately reflects the combined desires from both users, with correct categorization.
5. Results Display Functionality
5.1 Verify Results Display After All Submissions
Steps:
- Follow steps for "4.2 Multi-User - All Participants Submit Desires" to reach the results page.
Expected Results:
- The "Results Display" page is visible.
- All submitted desires (excluding private ones) are displayed in their respective categories (Want, Accept, Do Not Want).
- The count of participants who submitted desires matches the
Number of Expected Responses. - The session topic and details are still visible.
5.2 Verify Private Desires are Not Shared
Steps:
- Follow steps for "4.2 Multi-User - All Participants Submit Desires", ensuring User 1 submits a "Afraid to Ask (Private)" item.
- On User 2's results page (in its separate browser context, after logging in with
AUTH_PASSPHRASE), verify that User 1's private desire is not displayed.
Expected Results:
- User 1's private desire is only visible to User 1 (if applicable, or not displayed at all on the results page).
- User 2's results page does not show User 1's private desire.