You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
4.9 KiB
TypeScript
101 lines
4.9 KiB
TypeScript
import { test } from '@playwright/test';
|
|
import { beforeAllClean } from './setup/beforeEach';
|
|
import { newUser } from './setup/new_user';
|
|
import { openApp } from './setup/open';
|
|
import { sendMessage } from './utilities/message';
|
|
import { sendNewMessage } from './utilities/send_message';
|
|
import {
|
|
clickOnMatchingText,
|
|
clickOnTestIdWithText,
|
|
waitForMatchingText,
|
|
waitForTestIdWithText,
|
|
} from './utilities/utils';
|
|
|
|
test.beforeEach(beforeAllClean);
|
|
|
|
// test.afterEach(() => forceCloseAllWindows(windows));
|
|
// Open two windows and log into 2 separate accounts
|
|
test.describe('Message requests', () => {
|
|
test('Message requests accept', async () => {
|
|
const [windowA, windowB] = await openApp(2);
|
|
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
|
|
const testMessage = `Sender: ${userA.userName} Receiver: ${userB.userName}`;
|
|
// send a message to User B from User A
|
|
await sendNewMessage(windowA, userB.sessionid, `${testMessage}`);
|
|
// 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,
|
|
'control-message',
|
|
`You have accepted ${userA.userName}'s message request`
|
|
);
|
|
await waitForMatchingText(windowB, 'No pending message requests');
|
|
});
|
|
test('Message requests text reply', async () => {
|
|
const [windowA, windowB] = await openApp(2);
|
|
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
|
|
const testMessage = `Sender: ${userA.userName}, Receiver: ${userB.userName}`;
|
|
const testReply = `Sender: ${userB.userName}, Receiver: ${userA.userName}`;
|
|
// send a message to User B from User A
|
|
await sendNewMessage(windowA, userB.sessionid, `${testMessage}`);
|
|
// 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 sendMessage(windowB, testReply);
|
|
// Check config message of message request acceptance
|
|
await waitForTestIdWithText(
|
|
windowB,
|
|
'control-message',
|
|
`You have accepted ${userA.userName}'s message request`
|
|
);
|
|
await waitForMatchingText(windowB, 'No pending message requests');
|
|
});
|
|
test('Message requests decline', async () => {
|
|
const [windowA, windowB] = await openApp(2);
|
|
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
|
|
const testMessage = `Sender: ${userA.userName}, Receiver: ${userB.userName}`;
|
|
// send a message to User B from User A
|
|
await sendNewMessage(windowA, userB.sessionid, `${testMessage}`);
|
|
// 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');
|
|
});
|
|
test('Message requests clear all', async () => {
|
|
const [windowA, windowB] = await openApp(2);
|
|
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
|
|
const testMessage = `Sender: ${userA.userName}, Receiver: ${userB.userName}`;
|
|
// send a message to User B from User A
|
|
await sendNewMessage(windowA, userB.sessionid, `${testMessage}`);
|
|
// Check the message request banner appears and click on it
|
|
await clickOnTestIdWithText(windowB, 'message-request-banner');
|
|
// Select 'Clear All' button
|
|
await clickOnMatchingText(windowB, 'Clear All');
|
|
// Confirm decline
|
|
await clickOnTestIdWithText(windowB, 'session-confirm-ok-button', 'OK');
|
|
// Navigate back to message request folder to check
|
|
await clickOnTestIdWithText(windowB, 'settings-section');
|
|
// Check config message of message request acceptance
|
|
await waitForMatchingText(windowB, 'No pending message requests');
|
|
});
|
|
});
|
|
|
|
// Clear all requests
|
|
|
|
// Delete request (not a feature yet)
|
|
// Block request (not a feature yet)
|