import { _electron, expect, Page, test } from '@playwright/test'; import { forceCloseAllWindows } from './setup/beforeEach'; import { openAppsAndNewUsers } from './setup/new_user'; import { sendNewMessage } from './send_message'; import { clickOnMatchingText, clickOnTestIdWithText, waitForTestIdWithText } from './utils'; let windows: Array = []; test.afterEach(() => forceCloseAllWindows(windows)); test('Block User', async () => { // Open app and create user const windowLoggedIn = await openAppsAndNewUsers(2); windows = windowLoggedIn.windows; const users = windowLoggedIn.users; const [windowA, windowB] = windows; const [userA, userB] = users; // Create contact and send new message await sendNewMessage(windowA, userB.sessionid, `A -> B: ${Date.now()}`); await sendNewMessage(windowB, userA.sessionid, `B -> A: ${Date.now()}`); // Check to see if User B is a contact await clickOnTestIdWithText(windowA, 'new-conversation-button'); await waitForTestIdWithText(windowA, 'module-conversation__user__profile-name', userB.userName); //Click on three dots menu await clickOnTestIdWithText(windowA, 'message-section'); await clickOnTestIdWithText(windowA, 'three-dots-conversation-options'); // Select block await clickOnMatchingText(windowA, 'Block'); // Verify toast notification 'blocked' await waitForTestIdWithText(windowA, 'session-toast', 'Blocked'); // Verify the user was moved to the blocked contact list // Click on settings tab await clickOnTestIdWithText(windowA, 'settings-section'); // Navigate to blocked users tab' await clickOnMatchingText(windowA, 'Blocked contacts'); // Check for user B's name const blockedContact = windowA.locator('.session-settings-item__title'); await expect(blockedContact).toContainText(userB.userName); // Unblock user await clickOnMatchingText(windowA, 'Unblock'); // Verify toast notification says unblocked await waitForTestIdWithText(windowA, 'session-toast', 'Unblocked'); });