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(); }); });