session-desktop/ts/test/automation/message_requests.spec.ts

56 lines
2.6 KiB
TypeScript

import { _electron, Page, test } from '@playwright/test';
import { sendNewMessage } from './send_message';
import { forceCloseAllWindows } from './setup/beforeEach';
import { openAppsAndNewUsers } from './setup/new_user';
import { clickOnTestIdWithText, waitForMatchingText, waitForTestIdWithText } from './utils';
const testMessage = 'A -> B';
let windows: Array<Page> = [];
test.afterEach(() => forceCloseAllWindows(windows));
// Open two windows and log into 2 separate accounts
test.describe('Message requests', () => {
test('Message request acceptance', async () => {
const windowLoggedIn = await openAppsAndNewUsers(2);
windows = windowLoggedIn.windows;
const users = windowLoggedIn.users;
const [windowA, windowB] = windows;
const [userA, userB] = users;
// send a message to User B from User A
await sendNewMessage(windowA, userB.sessionid, `${testMessage}${Date.now()}`);
// Check the message request banner appears and click on it
await clickOnTestIdWithText(windowB, 'message-request-banner');
// Select message request from User A
await clickOnTestIdWithText(windowB, 'module-conversation__user__profile-name', userA.userName);
// Check that using the accept button has intended use
await clickOnTestIdWithText(windowB, 'accept-message-request');
// Check config message of message request acceptance
await waitForTestIdWithText(
windowB,
'readable-message',
`You have accepted ${userA.userName}'s message request`
);
await waitForMatchingText(windowB, 'No pending message requests');
});
test('Message request rejection', async () => {
const windowLoggedIn = await openAppsAndNewUsers(2);
windows = windowLoggedIn.windows;
const users = windowLoggedIn.users;
const [windowA, windowB] = windows;
const [userA, userB] = users;
// send a message to User B from User A
await sendNewMessage(windowA, userB.sessionid, `${testMessage}${Date.now()}`);
// Check the message request banner appears and click on it
await clickOnTestIdWithText(windowB, 'message-request-banner');
// Select message request from User A
await clickOnTestIdWithText(windowB, 'module-conversation__user__profile-name', userA.userName);
// Check that using the accept button has intended use
await clickOnTestIdWithText(windowB, 'decline-message-request');
// Confirm decline
await clickOnTestIdWithText(windowB, 'session-confirm-ok-button', 'Decline');
// Check config message of message request acceptance
await waitForTestIdWithText(windowB, 'session-toast', 'Blocked');
await waitForMatchingText(windowB, 'No pending message requests');
});
});