From bba5b0950c8f4089dc5fd0a0b1b0794b728c853d Mon Sep 17 00:00:00 2001 From: Dmitry Sotnikov Date: Thu, 6 Jan 2022 15:58:21 +0200 Subject: [PATCH 1/4] added new spec for multiple account --- appium/tests/data/index.ts | 10 ++- appium/tests/screenobjects/all-screens.ts | 4 +- .../screenobjects/email-provider.screen.ts | 69 +++++++++++++++++++ .../tests/screenobjects/setup-key.screen.ts | 26 ++++++- appium/tests/screenobjects/splash.screen.ts | 15 ++++ .../login/LoginToMultipleAccounts.spec.ts | 24 +++++++ 6 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 appium/tests/screenobjects/email-provider.screen.ts create mode 100644 appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts diff --git a/appium/tests/data/index.ts b/appium/tests/data/index.ts index 6cd7329f6..08b2657b9 100644 --- a/appium/tests/data/index.ts +++ b/appium/tests/data/index.ts @@ -6,6 +6,12 @@ export const CommonData = { password: process.env.ACCOUNT_PASSWORD, passPhrase: 'London blueBARREY capi' }, + outlookAccount: { + email: 'e2e.consumer.tests@outlook.com', + password: process.env.E2E_CONSUMER_TESTS_OUTLOOK_PASSWORD, + passPhrase: 'flowcrypt compatibility accounts o', + name: 'e2e.consumer.tests' + }, sender: { email: 'dmitry@flowcrypt.com', }, @@ -115,7 +121,9 @@ export const CommonData = { '\n' + 'One or more of your recipients have revoked public keys (marked in red).\n' + '\n' + - 'Please ask them to send you a new public key. If this is an enterprise installation, please ask your systems admin.' + 'Please ask them to send you a new public key. If this is an enterprise installation, please ask your systems admin.', + wrongPassPhraseOnLogin: 'Error\n' + + 'Wrong pass phrase, please try again' }, decryptErrorBadge: { badgeText: 'decrypt error' diff --git a/appium/tests/screenobjects/all-screens.ts b/appium/tests/screenobjects/all-screens.ts index ccafd7778..7ca7f303a 100644 --- a/appium/tests/screenobjects/all-screens.ts +++ b/appium/tests/screenobjects/all-screens.ts @@ -12,6 +12,7 @@ import AttachmentScreen from './attachment.screen'; import MailFolderScreen from './mail-folder.screen'; import SearchScreen from './search.screen'; import OldVersionAppScreen from './old-version-app.screen'; +import EmailProviderScreen from './email-provider.screen'; export { SplashScreen, @@ -27,5 +28,6 @@ export { ContactPublicKeyScreen, MailFolderScreen, SearchScreen, - OldVersionAppScreen + OldVersionAppScreen, + EmailProviderScreen }; diff --git a/appium/tests/screenobjects/email-provider.screen.ts b/appium/tests/screenobjects/email-provider.screen.ts new file mode 100644 index 000000000..0a1a49ca2 --- /dev/null +++ b/appium/tests/screenobjects/email-provider.screen.ts @@ -0,0 +1,69 @@ +import BaseScreen from './base.screen'; +import ElementHelper from "../helpers/ElementHelper"; +import TouchHelper from "../helpers/TouchHelper"; + +const SELECTORS = { + BACK_BTN: '~aid-back-button', + EMAIL_PROVIDER_HEADER: '~navigationItemEmail Provider', + CONNECT_BUTTON: '~Connect', + EMAIL_FIELD: '-ios class chain:**/XCUIElementTypeTextField[`name == "Email"`]', + PASSWORD_FIELD: '-ios class chain:**/XCUIElementTypeSecureTextField[`name == "Password"`]', + RETURN_BUTTON: '~Return', +}; + +class EmailProviderScreen extends BaseScreen { + constructor() { + super(SELECTORS.BACK_BTN); + } + + get backButton() { + return $(SELECTORS.BACK_BTN); + } + + get emailProviderHeader() { + return $(SELECTORS.EMAIL_PROVIDER_HEADER); + } + + get connectButton() { + return $(SELECTORS.CONNECT_BUTTON); + } + + get emailField() { + return $(SELECTORS.EMAIL_FIELD); + } + + get passwordField() { + return $(SELECTORS.PASSWORD_FIELD) + } + + get returnButton() { + return $(SELECTORS.RETURN_BUTTON) + } + + checkEmailProviderScreen = async () => { + await expect(this.backButton).toBeDisplayed(); + await expect(this.emailProviderHeader).toBeDisplayed(); + await expect(this.connectButton).toBeDisplayed(); + } + + fillEmail = async (email: string) => { + await ElementHelper.waitClickAndType(await this.emailField, email); + await browser.pause(500); + } + + fillPassword = async (password: string) => { + await ElementHelper.waitClickAndType(await this.passwordField, password); + await browser.pause(500); // stability sleep + } + + clickConnectBtn = async () => { + await TouchHelper.scrollUp(); + await ElementHelper.waitAndClick(await this.connectButton); + } + + clickReturnBtn = async () => { + await ElementHelper.waitAndClick(await this.returnButton); + } +} + +export default new EmailProviderScreen(); diff --git a/appium/tests/screenobjects/setup-key.screen.ts b/appium/tests/screenobjects/setup-key.screen.ts index 93480df4d..fb6f21eb3 100644 --- a/appium/tests/screenobjects/setup-key.screen.ts +++ b/appium/tests/screenobjects/setup-key.screen.ts @@ -4,9 +4,10 @@ import ElementHelper from "../helpers/ElementHelper"; const SELECTORS = { SET_PASS_PHRASE_BUTTON: '~Set pass phrase', - ENTER_YOUR_PASS_PHRASE_FIELD: '-ios class chain:**/XCUIElementTypeSecureTextField[`value == "Enter your pass phrase"`]', + ENTER_YOUR_PASS_PHRASE_FIELD: '-ios class chain:**/XCUIElementTypeSecureTextField', OK_BUTTON: '~Ok', CONFIRM_PASS_PHRASE_FIELD: '~textField', + LOAD_ACCOUNT_BUTTON: '~load_account', }; class SetupKeyScreen extends BaseScreen { @@ -18,6 +19,10 @@ class SetupKeyScreen extends BaseScreen { return $(SELECTORS.SET_PASS_PHRASE_BUTTON); } + get loadAccountButton() { + return $(SELECTORS.LOAD_ACCOUNT_BUTTON) + } + get enterPassPhraseField() { return $(SELECTORS.ENTER_YOUR_PASS_PHRASE_FIELD); } @@ -46,6 +51,21 @@ class SetupKeyScreen extends BaseScreen { await this.confirmPassPhrase(text); } + setPassPhraseForOtherProviderEmail = async (text: string = CommonData.outlookAccount.passPhrase) => { + // retrying several times because following login, we switch + // from webview to our own view and then to another one several + // times, which was causing flaky tests. Originally we did a 10s + // delay but now instead we're retrying once per second until + // we see what we expect. + let count = 0; + do { + await browser.pause(1000); + count++; + } while (await (await this.enterPassPhraseField).isDisplayed() !== true && count <= 15); + await this.fillPassPhrase(text); + await this.clickLoadAccountButton(); + } + fillPassPhrase = async (passPhrase: string) => { await ElementHelper.waitClickAndType(await this.enterPassPhraseField, passPhrase); } @@ -54,6 +74,10 @@ class SetupKeyScreen extends BaseScreen { await ElementHelper.waitAndClick(await this.setPassPhraseButton); } + clickLoadAccountButton = async () => { + await ElementHelper.waitAndClick(await this.loadAccountButton); + } + confirmPassPhrase = async (passPhrase: string) => { await ElementHelper.waitClickAndType(await this.confirmPassPhraseField, passPhrase); await ElementHelper.waitAndClick(await this.okButton); diff --git a/appium/tests/screenobjects/splash.screen.ts b/appium/tests/screenobjects/splash.screen.ts index 2c8800322..9fdbf9d3f 100644 --- a/appium/tests/screenobjects/splash.screen.ts +++ b/appium/tests/screenobjects/splash.screen.ts @@ -1,6 +1,9 @@ import BaseScreen from './base.screen'; import { CommonData } from "../data"; import ElementHelper from "../helpers/ElementHelper"; +import { + EmailProviderScreen +} from '../screenobjects/all-screens'; const SELECTORS = { PRIVACY_TAB: '~privacy', @@ -98,6 +101,10 @@ class SplashScreen extends BaseScreen { await ElementHelper.waitAndClick(await this.continueWithGmailBtn); } + clickOtherEmailProvider = async () => { + await ElementHelper.waitAndClick(await this.otherEmailProviderButton) ; + } + clickContinueBtn = async () => { // expect(await this.continueButton).toBeDisplayed(); // expect(await this.cancelButton).toBeDisplayed(); @@ -160,6 +167,14 @@ class SplashScreen extends BaseScreen { await this.gmailLogin(email, password); await ElementHelper.waitElementInvisible(await this.signInAsGoogleAccounLabel); } + + loginToOtherEmailProvider = async (email: string = CommonData.outlookAccount.email, password: string = CommonData.outlookAccount.password!) => { + await this.clickOtherEmailProvider(); + await EmailProviderScreen.checkEmailProviderScreen(); + await EmailProviderScreen.fillEmail(email); + await EmailProviderScreen.fillPassword(password); + await EmailProviderScreen.clickConnectBtn(); + } } export default new SplashScreen(); diff --git a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts new file mode 100644 index 000000000..d0cc83916 --- /dev/null +++ b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts @@ -0,0 +1,24 @@ +import { + SplashScreen, + SetupKeyScreen, + +} from '../../../screenobjects/all-screens'; +import BaseScreen from "../../../screenobjects/base.screen"; +import {CommonData} from "../../../data"; + + +describe('LOGIN: ', () => { + + it('user should be able login to multiple accounts', async () => { + + const wrongPassPhrase = 'wrong'; + const wrongPassPhraseError = CommonData.errors.wrongPassPhraseOnLogin; + + await SplashScreen.loginToOtherEmailProvider(); + await SetupKeyScreen.setPassPhraseForOtherProviderEmail(wrongPassPhrase); + await BaseScreen.checkModalMessage(wrongPassPhraseError); + await BaseScreen.clickOkButtonOnError(); + await SetupKeyScreen.setPassPhraseForOtherProviderEmail(); + await BaseScreen.checkModalMessage(wrongPassPhraseError); + }); +}); From bceb6fab85448ebc053f89ed6dd82652b9e2a534 Mon Sep 17 00:00:00 2001 From: Dmitry Sotnikov Date: Fri, 14 Jan 2022 14:34:45 +0200 Subject: [PATCH 2/4] added new scenario for multiple account --- appium/tests/data/index.ts | 14 +++- appium/tests/screenobjects/menu-bar.screen.ts | 25 ++++++ appium/tests/screenobjects/search.screen.ts | 7 ++ .../tests/screenobjects/setup-key.screen.ts | 30 +++++-- appium/tests/screenobjects/splash.screen.ts | 2 +- .../login/LoginToMultipleAccounts.spec.ts | 78 +++++++++++++++++-- 6 files changed, 142 insertions(+), 14 deletions(-) diff --git a/appium/tests/data/index.ts b/appium/tests/data/index.ts index 08b2657b9..16fd4ad3a 100644 --- a/appium/tests/data/index.ts +++ b/appium/tests/data/index.ts @@ -3,14 +3,22 @@ import * as path from 'path'; export const CommonData = { account: { email: 'e2e.enterprise.test@flowcrypt.com', - password: process.env.ACCOUNT_PASSWORD, - passPhrase: 'London blueBARREY capi' + password: process.env.E2E_ENTERPRISE_TESTS_GOOGLE_PASSWORD, + passPhrase: 'London blueBARREY capi', + folder: 'Gmail enterprise folder', + name: 'e2e' }, outlookAccount: { email: 'e2e.consumer.tests@outlook.com', password: process.env.E2E_CONSUMER_TESTS_OUTLOOK_PASSWORD, passPhrase: 'flowcrypt compatibility accounts o', - name: 'e2e.consumer.tests' + name: 'e2e.consumer.tests', + outlookFolder: 'Outlook consumer folder' + }, + outlookEmail: { + subject: 'outlook account inbox email', + message: 'test email from gmail', + sender: 'e2e.enterprise.test@flowcrypt.com' }, sender: { email: 'dmitry@flowcrypt.com', diff --git a/appium/tests/screenobjects/menu-bar.screen.ts b/appium/tests/screenobjects/menu-bar.screen.ts index a3163c4a8..abeee7590 100644 --- a/appium/tests/screenobjects/menu-bar.screen.ts +++ b/appium/tests/screenobjects/menu-bar.screen.ts @@ -9,6 +9,7 @@ const SELECTORS = { INBOX_BTN: '~menuBarItemInbox', SENT_BTN: '~menuBarItemSent', TRASH_BTN: '~menuBarItemTrash', + ADD_ACCOUNT_BUTTON: '~Add account' }; class MenuBarScreen extends BaseScreen { @@ -40,6 +41,10 @@ class MenuBarScreen extends BaseScreen { return $(SELECTORS.TRASH_BTN) } + get addAccountButton() { + return $(SELECTORS.ADD_ACCOUNT_BUTTON); + } + clickMenuIcon = async () => { await ElementHelper.waitAndClick(await this.menuIcon, 1000); await this.checkMenuBar(); @@ -50,6 +55,15 @@ class MenuBarScreen extends BaseScreen { await el.waitForDisplayed(); } + clickOnUserEmail = async (email: string = CommonData.account.email) => { + const el = await $(`~${email}`); + await ElementHelper.waitAndClick(await el); + } + + clickAddAccountButton = async() => { + await ElementHelper.waitAndClick(await this.addAccountButton); + } + checkMenuBar = async () => { await ElementHelper.waitElementVisible(await this.logoutButton); await ElementHelper.waitElementVisible(await this.settingsButton); @@ -77,6 +91,17 @@ class MenuBarScreen extends BaseScreen { clickTrashButton = async () => { await ElementHelper.waitAndClick(await this.trashButton); } + + checkMenuBarItem = async(menuItem: string) => { + const menuBarItem = await $(`~menuBarItem${menuItem}`); + await menuBarItem.waitForDisplayed(); + } + + selectAccount = async(name: string = CommonData.account.name , email: string = CommonData.account.email) => { + const account = `**/XCUIElementTypeStaticText[\`label == "${name} ${email}"\`]`; + const ele = $(`-ios class chain:${account}`); + await ElementHelper.waitAndClick(await ele); + } } export default new MenuBarScreen(); diff --git a/appium/tests/screenobjects/search.screen.ts b/appium/tests/screenobjects/search.screen.ts index 653b6cfa7..6cfd730b7 100644 --- a/appium/tests/screenobjects/search.screen.ts +++ b/appium/tests/screenobjects/search.screen.ts @@ -31,6 +31,13 @@ class SearchScreen extends BaseScreen { const selector = `~${subject}`; await ElementHelper.waitAndClick(await $(selector), 500); } + + searchAndClickEmailForOutlook = async (subject: string) => { + await (await this.searchField).setValue(subject); + + const selector = `~${subject}`; + await ElementHelper.waitAndClick(await $(selector), 500); + } } export default new SearchScreen(); diff --git a/appium/tests/screenobjects/setup-key.screen.ts b/appium/tests/screenobjects/setup-key.screen.ts index fb6f21eb3..c1f178c93 100644 --- a/appium/tests/screenobjects/setup-key.screen.ts +++ b/appium/tests/screenobjects/setup-key.screen.ts @@ -8,6 +8,7 @@ const SELECTORS = { OK_BUTTON: '~Ok', CONFIRM_PASS_PHRASE_FIELD: '~textField', LOAD_ACCOUNT_BUTTON: '~load_account', + CREATE_NEW_KEY_BUTTON: '~Create a new key' }; class SetupKeyScreen extends BaseScreen { @@ -35,6 +36,10 @@ class SetupKeyScreen extends BaseScreen { return $(SELECTORS.CONFIRM_PASS_PHRASE_FIELD) } + get createNewKeyButton () { + return $(SELECTORS.CREATE_NEW_KEY_BUTTON) + } + setPassPhrase = async (text: string = CommonData.account.passPhrase) => { // retrying several times because following login, we switch // from webview to our own view and then to another one several @@ -52,20 +57,31 @@ class SetupKeyScreen extends BaseScreen { } setPassPhraseForOtherProviderEmail = async (text: string = CommonData.outlookAccount.passPhrase) => { + // retrying several times because following login, we switch // from webview to our own view and then to another one several // times, which was causing flaky tests. Originally we did a 10s // delay but now instead we're retrying once per second until // we see what we expect. + let count = 0; do { - await browser.pause(1000); - count++; - } while (await (await this.enterPassPhraseField).isDisplayed() !== true && count <= 15); - await this.fillPassPhrase(text); - await this.clickLoadAccountButton(); + await browser.pause(1000); + count++; + } while ((await (await this.loadAccountButton).isDisplayed() !== true && await (await this.createNewKeyButton).isDisplayed() !== true) && count <= 15); + + if(await (await this.enterPassPhraseField).isDisplayed() !== true) { + await this.clickCreateNewKeyButton(); + await this.fillPassPhrase(text); + await this.clickSetPassPhraseBtn(); + await this.confirmPassPhrase(text); + } else { + await this.fillPassPhrase(text); + await this.clickLoadAccountButton(); + } } + fillPassPhrase = async (passPhrase: string) => { await ElementHelper.waitClickAndType(await this.enterPassPhraseField, passPhrase); } @@ -82,6 +98,10 @@ class SetupKeyScreen extends BaseScreen { await ElementHelper.waitClickAndType(await this.confirmPassPhraseField, passPhrase); await ElementHelper.waitAndClick(await this.okButton); } + + clickCreateNewKeyButton = async () => { + await ElementHelper.waitAndClick(await this.createNewKeyButton); + } } export default new SetupKeyScreen(); diff --git a/appium/tests/screenobjects/splash.screen.ts b/appium/tests/screenobjects/splash.screen.ts index 9fdbf9d3f..0ec5f25d1 100644 --- a/appium/tests/screenobjects/splash.screen.ts +++ b/appium/tests/screenobjects/splash.screen.ts @@ -142,7 +142,7 @@ class SplashScreen extends BaseScreen { } gmailLogin = async (email: string, password: string) => { - const emailSelector = `-ios class chain:**/XCUIElementTypeStaticText[\`label == "${email}"\`]`; + const emailSelector = `-ios class chain:**/XCUIElementTypeLink/XCUIElementTypeStaticText[\`label == "${email}"\`]`; await (await this.signInAsGoogleAccounLabel).waitForDisplayed(); await browser.pause(1000); // stability sleep for language change if (await (await $(emailSelector)).isDisplayed()) { diff --git a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts index d0cc83916..9a580e6f2 100644 --- a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts +++ b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts @@ -1,24 +1,92 @@ import { SplashScreen, SetupKeyScreen, - + MailFolderScreen, + SearchScreen, + EmailScreen, + MenuBarScreen } from '../../../screenobjects/all-screens'; -import BaseScreen from "../../../screenobjects/base.screen"; import {CommonData} from "../../../data"; +import BaseScreen from "../../../screenobjects/base.screen"; describe('LOGIN: ', () => { it('user should be able login to multiple accounts', async () => { - const wrongPassPhrase = 'wrong'; + const senderOutlook = CommonData.outlookEmail.sender; + const subjectOutlook = CommonData.outlookEmail.subject; + const messageOutlook = CommonData.outlookEmail.message; + const outlookEmail = CommonData.outlookAccount.email; + const outlookFolder = CommonData.outlookAccount.outlookFolder; + const outlookUserName = CommonData.outlookAccount.name; + + const senderGmail = CommonData.recipientsListEmail.sender; + const subjectGmail = CommonData.recipientsListEmail.subject; + const messageGmail = CommonData.recipientsListEmail.message; + const gmailFolder = CommonData.account.folder; const wrongPassPhraseError = CommonData.errors.wrongPassPhraseOnLogin; await SplashScreen.loginToOtherEmailProvider(); - await SetupKeyScreen.setPassPhraseForOtherProviderEmail(wrongPassPhrase); + await SetupKeyScreen.setPassPhraseForOtherProviderEmail('wrong'); await BaseScreen.checkModalMessage(wrongPassPhraseError); await BaseScreen.clickOkButtonOnError(); await SetupKeyScreen.setPassPhraseForOtherProviderEmail(); - await BaseScreen.checkModalMessage(wrongPassPhraseError); + await MailFolderScreen.checkInboxScreen(); + + await MailFolderScreen.clickSearchButton(); + + await SearchScreen.searchAndClickEmailForOutlook(subjectOutlook); + await EmailScreen.checkOpenedEmail(senderOutlook, subjectOutlook, messageOutlook); + + await EmailScreen.clickBackButton(); + + await SearchScreen.clickBackButton(); + + await MenuBarScreen.clickMenuIcon(); + await MenuBarScreen.checkUserEmail(outlookEmail); + await MenuBarScreen.checkMenuBarItem(outlookFolder); + + await MenuBarScreen.clickOnUserEmail(outlookEmail); + + await MenuBarScreen.clickAddAccountButton(); + + await SplashScreen.checkLoginPage(); + + await SplashScreen.login(); + + await SetupKeyScreen.setPassPhrase(); + await MailFolderScreen.checkInboxScreen(); + + await MailFolderScreen.clickSearchButton(); + + await SearchScreen.searchAndClickEmailForOutlook(subjectGmail); + await EmailScreen.checkOpenedEmail(senderGmail, subjectGmail, messageGmail); + + await EmailScreen.clickBackButton(); + + await SearchScreen.clickBackButton(); + + await MenuBarScreen.clickMenuIcon(); + await MenuBarScreen.checkUserEmail(); + await MenuBarScreen.checkMenuBarItem(gmailFolder); + + await MenuBarScreen.clickOnUserEmail(); + await MenuBarScreen.selectAccount(outlookUserName, outlookEmail); + + await MailFolderScreen.checkInboxScreen(); + + await MailFolderScreen.clickSearchButton(); + + await SearchScreen.searchAndClickEmailForOutlook(subjectOutlook); + await EmailScreen.checkOpenedEmail(senderOutlook, subjectOutlook, messageOutlook); + + await EmailScreen.clickBackButton(); + + await SearchScreen.clickBackButton(); + + await MenuBarScreen.clickMenuIcon(); + await MenuBarScreen.checkUserEmail(outlookEmail); + await MenuBarScreen.checkMenuBarItem(outlookFolder); }); }); From 886112c5e0f0d0d1990873c79d0a3f7592411a89 Mon Sep 17 00:00:00 2001 From: Dmitry Sotnikov Date: Fri, 14 Jan 2022 16:57:49 +0200 Subject: [PATCH 3/4] added fixes after fixing aid for multiple accounts --- appium/tests/screenobjects/menu-bar.screen.ts | 7 +++---- .../tests/specs/live/login/LoginToMultipleAccounts.spec.ts | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/appium/tests/screenobjects/menu-bar.screen.ts b/appium/tests/screenobjects/menu-bar.screen.ts index abeee7590..eca16a4af 100644 --- a/appium/tests/screenobjects/menu-bar.screen.ts +++ b/appium/tests/screenobjects/menu-bar.screen.ts @@ -92,14 +92,13 @@ class MenuBarScreen extends BaseScreen { await ElementHelper.waitAndClick(await this.trashButton); } - checkMenuBarItem = async(menuItem: string) => { + checkMenuBarItem = async (menuItem: string) => { const menuBarItem = await $(`~menuBarItem${menuItem}`); await menuBarItem.waitForDisplayed(); } - selectAccount = async(name: string = CommonData.account.name , email: string = CommonData.account.email) => { - const account = `**/XCUIElementTypeStaticText[\`label == "${name} ${email}"\`]`; - const ele = $(`-ios class chain:${account}`); + selectAccount = async (index: number = 1) => { + const ele = await $(`~aid-account-email-${index-1}`); await ElementHelper.waitAndClick(await ele); } } diff --git a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts index 9a580e6f2..e98aafa58 100644 --- a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts +++ b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts @@ -19,7 +19,6 @@ describe('LOGIN: ', () => { const messageOutlook = CommonData.outlookEmail.message; const outlookEmail = CommonData.outlookAccount.email; const outlookFolder = CommonData.outlookAccount.outlookFolder; - const outlookUserName = CommonData.outlookAccount.name; const senderGmail = CommonData.recipientsListEmail.sender; const subjectGmail = CommonData.recipientsListEmail.subject; @@ -72,7 +71,8 @@ describe('LOGIN: ', () => { await MenuBarScreen.checkMenuBarItem(gmailFolder); await MenuBarScreen.clickOnUserEmail(); - await MenuBarScreen.selectAccount(outlookUserName, outlookEmail); + + await MenuBarScreen.selectAccount(); await MailFolderScreen.checkInboxScreen(); From 3f0098a55153c2b537c4a10632adf59b860572fa Mon Sep 17 00:00:00 2001 From: Dmitry Sotnikov Date: Fri, 14 Jan 2022 17:32:35 +0200 Subject: [PATCH 4/4] added fixes for multiple accounts --- appium/tests/screenobjects/menu-bar.screen.ts | 4 ++-- appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/appium/tests/screenobjects/menu-bar.screen.ts b/appium/tests/screenobjects/menu-bar.screen.ts index eca16a4af..eccbada66 100644 --- a/appium/tests/screenobjects/menu-bar.screen.ts +++ b/appium/tests/screenobjects/menu-bar.screen.ts @@ -97,8 +97,8 @@ class MenuBarScreen extends BaseScreen { await menuBarItem.waitForDisplayed(); } - selectAccount = async (index: number = 1) => { - const ele = await $(`~aid-account-email-${index-1}`); + selectAccount = async (order: number) => { + const ele = await $(`~aid-account-email-${order-1}`); await ElementHelper.waitAndClick(await ele); } } diff --git a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts index e98aafa58..3a353ae51 100644 --- a/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts +++ b/appium/tests/specs/live/login/LoginToMultipleAccounts.spec.ts @@ -72,7 +72,7 @@ describe('LOGIN: ', () => { await MenuBarScreen.clickOnUserEmail(); - await MenuBarScreen.selectAccount(); + await MenuBarScreen.selectAccount(1); await MailFolderScreen.checkInboxScreen();