Tests: 4. Submit Desires Functionality. Multiple User approcah needs to be fixed.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test.describe('Results Display Functionality', () => {
|
||||
test.fixme('Verify Results Display After All Submissions', async ({ page, browser }) => {
|
||||
// 1. Follow steps for "4.2 Multi-User - All Participants Submit Desires" to reach the results page.
|
||||
// Create a session with `Number of Expected Responses` set to 2.
|
||||
await page.goto('https://unisono.aglink.duckdns.org/login');
|
||||
await page.getByRole('textbox', { name: 'Passphrase' }).fill('HonorableHumansPrivilegeIsToBeAllowedHere');
|
||||
await page.getByRole('button', { name: 'Enter' }).click();
|
||||
await page.waitForURL(/.*\/session\/.*/);
|
||||
await page.getByRole('textbox', { name: 'Topic' }).fill('Results Display Test');
|
||||
await page.getByRole('textbox', { name: 'Details (Optional)' }).fill('Verifying the results display after all submissions.');
|
||||
await page.getByRole('spinbutton', { name: 'Number of Expected Responses' }).fill('2');
|
||||
await page.getByRole('button', { name: 'Start Session' }).click();
|
||||
await page.waitForURL(/.*\/session\/.*/);
|
||||
|
||||
// Copy the session link.
|
||||
await page.getByRole('button', { name: 'Copy Link' }).click();
|
||||
await expect(page.getByText('Link copied to clipboard!')).toBeVisible();
|
||||
const sessionLink = await page.evaluate(() => navigator.clipboard.readText());
|
||||
|
||||
// User 1:
|
||||
// a. Enter desires into all categories.
|
||||
await page.getByRole('textbox', { name: 'Enter items you want' }).fill('User1 Want A
|
||||
User1 Want B');
|
||||
await page.getByRole('textbox', { name: 'Enter sensitive ideas privately' }).fill('User1 Secret Item');
|
||||
await page.getByRole('textbox', { name: 'Enter items you accept' }).fill('User1 Accept Item');
|
||||
await page.getByRole('textbox', { name: 'Enter items you absolutely do not want' }).fill('User1 Unwanted Item');
|
||||
|
||||
// b. Click "Submit Desires".
|
||||
await page.getByRole('button', { name: 'Submit Desires' }).click();
|
||||
await expect(page.getByText('Your desires have been submitted.')).toBeVisible();
|
||||
await expect(page.getByText('Waiting for 1 more responses...')).toBeVisible();
|
||||
|
||||
// User 2 (in a new browser context/page):
|
||||
// a. Navigate to the copied session link.
|
||||
const user2Context = await browser.newContext();
|
||||
const user2Page = await user2Context.newPage();
|
||||
await user2Page.goto(sessionLink);
|
||||
|
||||
// b. Enter desires into all categories.
|
||||
// User 2 needs to log in first
|
||||
await user2Page.getByRole('textbox', { name: 'Passphrase' }).fill('HonorableHumansPrivilegeIsToBeAllowedHere');
|
||||
await user2Page.getByRole('button', { name: 'Enter' }).click();
|
||||
await user2Page.waitForURL(/.*\/session\/.*/);
|
||||
|
||||
await user2Page.getByRole('textbox', { name: 'Enter items you want' }).fill('User2 Want C
|
||||
User2 Want D');
|
||||
await user2Page.getByRole('textbox', { name: 'Enter sensitive ideas privately' }).fill('User2 Secret Item');
|
||||
await user2Page.getByRole('textbox', { name: 'Enter items you accept' }).fill('User2 Accept Item');
|
||||
await user2Page.getByRole('textbox', { name: 'Enter items you absolutely do not want' }).fill('User2 Unwanted Item');
|
||||
|
||||
// c. Click "Submit Desires".
|
||||
await user2Page.getByRole('button', { name: 'Submit Desires' }).click();
|
||||
await expect(user2Page.getByText('Your desires have been submitted.')).toBeVisible();
|
||||
|
||||
// Expected Results:
|
||||
// - The "Results Display" page is visible.
|
||||
await expect(page.getByRole('heading', { name: 'Results' })).toBeVisible();
|
||||
await expect(user2Page.getByRole('heading', { name: 'Results' })).toBeVisible();
|
||||
|
||||
// - All submitted desires (excluding private ones) are displayed in their respective categories (Want, Accept, Do Not Want).
|
||||
await expect(page.getByText('User1 Want A')).toBeVisible();
|
||||
await expect(page.getByText('User1 Want B')).toBeVisible();
|
||||
await expect(page.getByText('User2 Want C')).toBeVisible();
|
||||
await expect(page.getByText('User2 Want D')).toBeVisible();
|
||||
await expect(page.getByText('User1 Accept Item')).toBeVisible();
|
||||
await expect(page.getByText('User2 Accept Item')).toBeVisible();
|
||||
await expect(page.getByText('User1 Unwanted Item')).toBeVisible();
|
||||
await expect(page.getByText('User2 Unwanted Item')).toBeVisible();
|
||||
|
||||
// - The count of participants who submitted desires matches the `Number of Expected Responses`.
|
||||
// This would require more complex assertions based on the actual display of participant count.
|
||||
|
||||
// - The session topic and details are still visible.
|
||||
await expect(page.getByRole('heading', { name: 'Results Display Test' })).toBeVisible();
|
||||
await expect(page.getByText('Details: Verifying the results display after all submissions.')).toBeVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user