Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
import { _electron, test } from '@playwright/test';
|
|
|
|
import { beforeAllClean, forceCloseAllWindows } from './setup/beforeEach';
|
Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
import { newUser } from './setup/new_user';
|
|
|
|
import { sendNewMessage } from './utilities/send_message';
|
|
|
|
import { clickOnMatchingText, clickOnTestIdWithText, typeIntoInput } from './utilities/utils';
|
|
|
|
import { sleepFor } from '../../session/utils/Promise';
|
Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
import { openApp } from './setup/open';
|
|
|
|
// tslint:disable: no-console
|
|
|
|
|
|
|
|
test.beforeEach(beforeAllClean);
|
|
|
|
|
|
|
|
test('Delete account from swarm', async () => {
|
|
|
|
const [windowA, windowB] = await openApp(2); // not using sessionTest here as we need to close and reopen one of the window
|
Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
2 years ago
|
|
|
const [userA, userB] = await Promise.all([newUser(windowA, 'Alice'), newUser(windowB, 'Bob')]);
|
|
|
|
const testMessage = `${userA.userName} to ${userB.userName}`;
|
|
|
|
const testReply = `${userB.userName} to ${userA.userName}`;
|
|
|
|
// Create contact and send new message
|
|
|
|
await Promise.all([
|
|
|
|
sendNewMessage(windowA, userB.sessionid, testMessage),
|
|
|
|
sendNewMessage(windowB, userA.sessionid, testReply),
|
|
|
|
]);
|
|
|
|
// Delete all data from device
|
|
|
|
// Click on settings tab
|
|
|
|
await clickOnTestIdWithText(windowA, 'settings-section');
|
|
|
|
// Click on clear all data
|
|
|
|
await clickOnTestIdWithText(windowA, 'clear-data-settings-menu-item', 'Clear Data');
|
|
|
|
// Select entire account
|
|
|
|
await clickOnTestIdWithText(windowA, 'label-device_and_network', 'Clear Device and Network');
|
|
|
|
// Confirm deletion by clicking Clear, twice
|
|
|
|
await clickOnMatchingText(windowA, 'Clear');
|
|
|
|
await clickOnMatchingText(windowA, 'Clear');
|
|
|
|
await windowA.waitForTimeout(7500);
|
|
|
|
// Wait for window to close and reopen
|
|
|
|
await sleepFor(10000, true);
|
|
|
|
// await windowA.close();
|
|
|
|
const restoringWindows = await openApp(1); // not using sessionTest here as we need to close and reopen one of the window
|
|
|
|
const [restoringWindow] = restoringWindows;
|
|
|
|
// Sign in with deleted account and check that nothing restores
|
|
|
|
await clickOnTestIdWithText(restoringWindow, 'restore-using-recovery', 'Restore your account');
|
|
|
|
// Fill in recovery phrase
|
|
|
|
await typeIntoInput(restoringWindow, 'recovery-phrase-input', userA.recoveryPhrase);
|
|
|
|
// Enter display name
|
|
|
|
await typeIntoInput(restoringWindow, 'display-name-input', userA.userName);
|
|
|
|
// Click continue
|
|
|
|
await clickOnTestIdWithText(restoringWindow, 'continue-session-button');
|
|
|
|
console.log('sleeping for 20000ms');
|
|
|
|
await sleepFor(20000); // just to allow any messages from our swarm to show up
|
|
|
|
// Check if message from user B is restored (we don't want it to be)
|
|
|
|
const errorDesc = 'Test Message should not be found';
|
|
|
|
try {
|
|
|
|
const elemShouldNotBeFound = restoringWindow.locator(testMessage);
|
|
|
|
if (elemShouldNotBeFound) {
|
|
|
|
console.error('Test message was not found');
|
|
|
|
throw new Error(errorDesc);
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
if (e.message !== errorDesc) {
|
|
|
|
throw e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
await clickOnTestIdWithText(restoringWindow, 'new-conversation-button'); // Expect contacts list to be empty
|
|
|
|
|
|
|
|
const errorDesc2 = 'Should not be found';
|
|
|
|
try {
|
|
|
|
const elemShouldNotBeFound = restoringWindow.locator(userB.userName);
|
|
|
|
if (elemShouldNotBeFound) {
|
|
|
|
console.error('Contact not found');
|
|
|
|
throw new Error(errorDesc2);
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
if (e.message !== errorDesc2) {
|
|
|
|
throw e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
await forceCloseAllWindows(restoringWindows);
|
|
|
|
});
|