import { test, expect } from '@playwright/test'; test.describe('Results Display Functionality', () => { test('Verify Private Desires are Not Shared', async ({ page, browser }) => { // 1. 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('Private Desires Test'); await page.getByRole('textbox', { name: 'Details (Optional)' }).fill('Verifying private desires are not shared between users.'); 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 = page.url(); // User 1 (in the initial browser context): // a. Enter desires into "What You Want" and "Afraid to Ask (Private)". await page.getByRole('textbox', { name: 'Enter items you want' }).fill('User1 Public Want'); await page.getByRole('textbox', { name: 'Enter sensitive ideas privately' }).fill('User1 Secret Desire'); // 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, e.g., using `browser.newContext()` in Playwright): // a. Navigate to the copied session link. const user2Context = await browser.newContext(); const user2Page = await user2Context.newPage(); await user2Page.goto(sessionLink); // b. Log in with the valid `AUTH_PASSPHRASE`. await user2Page.getByRole('textbox', { name: 'Passphrase' }).fill('HonorableHumansPrivilegeIsToBeAllowedHere'); await user2Page.getByRole('button', { name: 'Enter' }).click(); await user2Page.waitForURL(/.*\/session\/.*/); // c. Enter desires into "What You Want". await user2Page.getByRole('textbox', { name: 'Enter items you want' }).fill('User2 Public Want'); // d. Click "Submit Desires". await user2Page.getByRole('button', { name: 'Submit Desires' }).click(); // Expected Results: // - User 1's private desire is only visible to User 1 (if applicable, or not displayed at all on the results page). await expect(page.getByText('User1 Secret Desire')).not.toBeVisible(); // User 1's private desire should not be visible on the results page await expect(user2Page.getByText('User1 Secret Desire')).not.toBeVisible(); // User 2 cannot see User 1's private desire await expect(page.getByText('User2 Secret Item')).not.toBeVisible(); // User 1 cannot see User 2's private desire // - User 2's results page does not show User 1's private desire. await expect(user2Page.getByText('User2 Public Want')).toBeVisible(); }); });