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.
		
		
		
		
		
			
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
| import { _electron, Page, test } from '@playwright/test';
 | |
| import { beforeAllClean, forceCloseAllWindows } from './setup/beforeEach';
 | |
| import { messageSent } from './message';
 | |
| import { openAppsAndNewUsers } from './setup/new_user';
 | |
| import { sendNewMessage } from './send_message';
 | |
| import {
 | |
|   clickOnMatchingText,
 | |
|   clickOnTestIdWithText,
 | |
|   waitForMatchingText,
 | |
|   waitForReadableMessageWithText,
 | |
|   waitForTestIdWithText,
 | |
| } from './utils';
 | |
| 
 | |
| let windows: Array<Page> = [];
 | |
| 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 windowLoggedIn = await openAppsAndNewUsers(2);
 | |
|   windows = windowLoggedIn.windows;
 | |
|   const users = windowLoggedIn.users;
 | |
|   const [windowA, windowB] = windows;
 | |
|   const [userA, userB] = users;
 | |
|   // Create Contact
 | |
|   await sendNewMessage(windowA, userB.sessionid, sentMessage);
 | |
|   await sendNewMessage(windowB, userA.sessionid, sentReplyMessage);
 | |
|   await waitForReadableMessageWithText(windowA, 'Your message request has been accepted');
 | |
|   // await waitForMatchingText(windowA, `You have accepted ${userA.userName}'s message request`);
 | |
|   // await waitForMatchingText(windowB, 'Your message request has been accepted');
 | |
|   // 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,
 | |
|     'readable-message',
 | |
|     'You set the disappearing message timer to 5 seconds'
 | |
|   );
 | |
|   // Check top right hand corner indicator
 | |
|   await waitForTestIdWithText(windowA, 'disappearing-messages-indicator', '5 seconds');
 | |
|   // Send message
 | |
|   // Wait for tick of confirmation
 | |
|   await messageSent(windowA, sentMessage);
 | |
|   // Check timer is functioning
 | |
| 
 | |
|   // Verify message is deleted
 | |
|   const errorDesc = 'Should not be found';
 | |
|   try {
 | |
|     const elemShouldNotBeFound = windowA.locator(sentMessage);
 | |
|     if (elemShouldNotBeFound) {
 | |
|       console.error('Sent message not found in window A');
 | |
|       throw new Error(errorDesc);
 | |
|     }
 | |
|   } catch (e) {
 | |
|     if (e.message !== errorDesc) {
 | |
|       throw e;
 | |
|     }
 | |
|   }
 | |
|   // Click on user's avatar for options
 | |
|   await clickOnTestIdWithText(windowA, 'conversation-options-avatar');
 | |
|   // Click on disappearing messages drop down
 | |
|   await clickOnMatchingText(windowA, 'Disappearing messages');
 | |
|   // Select off
 | |
|   await clickOnMatchingText(windowA, 'Off');
 | |
|   // Click chevron to close menu
 | |
|   await clickOnTestIdWithText(windowA, 'back-button-conversation-options');
 | |
|   // Check config message
 | |
|   await waitForTestIdWithText(windowA, 'readable-message', 'You disabled disappearing messages.');
 | |
|   // Verify message is deleted in windowB for receiver user
 | |
|   // Check config message in windowB
 | |
|   await waitForMatchingText(
 | |
|     windowB,
 | |
|     `${userA.userName} set the disappearing message timer to 5 seconds`
 | |
|   );
 | |
|   // Wait 5 seconds
 | |
|   await waitForMatchingText(windowB, `${userA.userName} disabled disappearing messages`);
 | |
|   // verify message is deleted in windowB
 | |
|   const errorDesc2 = 'Should not be found';
 | |
|   try {
 | |
|     const elemShouldNotBeFound = windowA.locator(sentMessage);
 | |
|     if (elemShouldNotBeFound) {
 | |
|       console.error('Sent message not found in window B');
 | |
|       throw new Error(errorDesc2);
 | |
|     }
 | |
|   } catch (e) {
 | |
|     if (e.message !== errorDesc2) {
 | |
|       throw e;
 | |
|     }
 | |
|   }
 | |
| });
 |