fix: a few integration tests broken with latest changes

pull/2806/head
Audric Ackermann 2 years ago
parent 594eee698b
commit 4966cf9192

@ -17,15 +17,16 @@ type Props = {
active?: boolean;
onClick?: any;
}>;
dataTestId?: string;
};
export const SessionDropdown = (props: Props) => {
const { label, options } = props;
const { label, options, dataTestId } = props;
const [expanded, setExpanded] = useState(!!props.expanded);
const chevronOrientation = expanded ? 180 : 0;
return (
<div className="session-dropdown">
<div className="session-dropdown" data-testid={dataTestId}>
<div
className="session-dropdown__label"
onClick={() => {
@ -43,6 +44,7 @@ export const SessionDropdown = (props: Props) => {
return (
<SessionDropdownItem
key={item.content}
dataTestId={`dropdownitem-${item.content.replace(' ', '-')}`}
content={item.content}
icon={item.icon}
type={item.type}

@ -13,6 +13,7 @@ type Props = {
icon: SessionIconType | null;
active: boolean;
onClick: any;
dataTestId?: string;
};
export const SessionDropdownItem = (props: Props) => {
@ -23,7 +24,7 @@ export const SessionDropdownItem = (props: Props) => {
}
};
const { content, type, icon, active } = props;
const { content, type, icon, active, dataTestId } = props;
return (
<div
@ -34,6 +35,7 @@ export const SessionDropdownItem = (props: Props) => {
)}
role="button"
onClick={clickHandler}
data-testid={dataTestId}
>
{icon ? <SessionIcon iconType={icon} iconSize="small" /> : ''}
<div className="item-content">{content}</div>

@ -354,6 +354,7 @@ export const SessionRightPanelWithDetails = () => {
<SessionDropdown
label={window.i18n('disappearingMessages')}
options={disappearingMessagesOptions}
dataTestId="disappearing-messages-dropdown"
/>
)}

@ -23,10 +23,12 @@ sessionTestTwoWindows('Disappearing messages', async ([windowA, windowB]) => {
await createContact(windowA, windowB, userA, userB);
// Click on user's avatar to open conversation options
await clickOnTestIdWithText(windowA, 'conversation-options-avatar');
await waitForMatchingText(windowA, 'Your message request has been accepted');
// Select disappearing messages drop down
await clickOnMatchingText(windowA, 'Disappearing messages');
await clickOnTestIdWithText(windowA, 'disappearing-messages-dropdown', 'Disappearing messages');
// Select 5 seconds
await clickOnMatchingText(windowA, '5 seconds');
await sleepFor(200);
await clickOnTestIdWithText(windowA, 'dropdownitem-5-seconds', '5 seconds');
// Click chevron to close menu
await clickOnTestIdWithText(windowA, 'back-button-conversation-options');
// Check config message

@ -41,7 +41,7 @@ sessionTestTwoWindows('Decline request syncs', async ([windowA, windowB]) => {
const testMessage = `${userA.userName} sending message request to ${userB.userName}`;
await sendNewMessage(windowA, userB.sessionid, testMessage);
// Accept request in windowB
// Decline request in windowB
await clickOnTestIdWithText(windowB, 'message-request-banner');
await clickOnTestIdWithText(windowB, 'module-conversation__user__profile-name', userA.userName);
await clickOnTestIdWithText(windowC, 'message-request-banner');

@ -166,7 +166,8 @@ test('Check blocked user syncs', async () => {
// Check linked device for blocked contact in settings screen
await clickOnTestIdWithText(windowB, 'settings-section');
await clickOnTestIdWithText(windowB, 'conversations-settings-menu-item');
await clickOnTestIdWithText(windowB, 'reveal-blocked-user-settings');
// a conf sync job can take 30s (if the last one failed) + 10s polling to show a change on a linked device.
await clickOnTestIdWithText(windowB, 'reveal-blocked-user-settings', undefined, undefined, 50000);
// Check if user B is in blocked contact list
await waitForMatchingText(windowB, userB.userName);
});

@ -84,6 +84,8 @@ test.describe('Message requests', () => {
await clickOnTestIdWithText(windowB, 'session-confirm-ok-button', 'OK');
// Navigate back to message request folder to check
await clickOnTestIdWithText(windowB, 'settings-section');
await clickOnTestIdWithText(windowB, 'message-requests-settings-menu-item', 'Message Requests');
// Check config message of message request acceptance
await waitForMatchingText(windowB, 'No pending message requests');
});

@ -1,12 +1,13 @@
import { Page } from '@playwright/test';
import { User } from '../types/testing';
import { clickOnMatchingText, typeIntoInput } from '../utilities/utils';
import { sleepFor } from '../../../session/utils/Promise';
// tslint:disable: no-console
export const newUser = async (window: Page, userName: string): Promise<User> => {
// Create User
await clickOnMatchingText(window, 'Create Session ID');
// Wait for animation for finish creating ID
await window.waitForTimeout(1500);
await sleepFor(2500);
//Save session ID to a variable
const sessionid = await window.inputValue('[data-testid=session-id-signup]');
await clickOnMatchingText(window, 'Continue');

@ -111,7 +111,8 @@ export async function clickOnTestIdWithText(
window: Page,
dataTestId: string,
text?: string,
rightButton?: boolean
rightButton?: boolean,
maxWait?: number
) {
console.info(`clickOnTestIdWithText with testId:${dataTestId} and text:${text ? text : 'none'}`);
@ -119,7 +120,7 @@ export async function clickOnTestIdWithText(
? `css=[data-testid=${dataTestId}]`
: `css=[data-testid=${dataTestId}]:has-text("${text}")`;
await window.waitForSelector(builtSelector);
await window.waitForSelector(builtSelector, { timeout: maxWait });
return window.click(builtSelector, rightButton ? { button: 'right' } : undefined);
}

Loading…
Cancel
Save