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.
session-desktop/ts/test/automation/disappearing_messages.spec.ts

68 lines
2.5 KiB
TypeScript

import { test } from '@playwright/test';
import { sleepFor } from '../../session/utils/Promise';
import { beforeAllClean } from './setup/beforeEach';
import { newUser } from './setup/new_user';
import { openApp } from './setup/open';
import { sendMessage } from './utilities/message';
import {
clickOnMatchingText,
clickOnTestIdWithText,
hasTextElementBeenDeleted,
waitForTestIdWithText,
} from './utilities/utils';
import { createContact } from './utilities/create_contact';
test.beforeEach(beforeAllClean);
// test.afterEach(() => forceCloseAllWindows(windows));
// tslint:disable: no-console
const testMessage = 'Test-Message- (A -> B) ';
// const testReply = 'Reply-Test-Message- (B -> A)';
const sentMessage = `${testMessage}${Date.now()}`;
// const sentReplyMessage = `${testReply} :${Date.now()}`;
test('Disappearing messages', async () => {
// Open App
// Create User
const [windowA, windowB] = await openApp(2);
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
// Create Contact
await createContact(windowA, windowB, userA, userB);
// Need to wait for contact approval
await sleepFor(5000);
// Click on user's avatar to open conversation options
await clickOnTestIdWithText(windowA, 'conversation-options-avatar');
// Select disappearing messages drop down
await clickOnMatchingText(windowA, 'Disappearing messages');
// Select 5 seconds
await clickOnMatchingText(windowA, '5 seconds');
// Click chevron to close menu
await clickOnTestIdWithText(windowA, 'back-button-conversation-options');
// Check config message
await waitForTestIdWithText(
windowA,
'control-message',
'You set the disappearing message timer to 5 seconds'
);
await waitForTestIdWithText(
windowB,
'control-message',
`${userA.userName} set the disappearing message timer to 5 seconds`
);
await sleepFor(500);
// Check top right hand corner indicator
await waitForTestIdWithText(windowA, 'disappearing-messages-indicator', '5 seconds');
// Send message
await sendMessage(windowA, sentMessage);
// Check timer is functioning
await sleepFor(6000);
// Verify message is deleted
await hasTextElementBeenDeleted(windowA, sentMessage, 3000);
// focus window B
await windowA.close();
await windowB.bringToFront();
await clickOnTestIdWithText(windowB, "control-message", `${userA.userName} set the disappearing message timer to 5 seconds`);
await hasTextElementBeenDeleted(windowB, sentMessage, 5000);
});