Decreasing android input flakiness

This commit is contained in:
Anant Bhasin 2021-06-24 02:30:26 +05:30
parent bb6e19c860
commit eb8fb69639
32 changed files with 74 additions and 4 deletions

View File

@ -17,6 +17,11 @@ function runCommand(command) {
}); });
} }
exports.prepareAndroid = async () => {
await runCommand('adb shell settings put secure spell_checker_enabled 0');
await runCommand('adb shell settings put secure autofill_service null');
}
exports.launchWithLanguage = async (language, countryCode="US", launchArgs=defaultLaunchArgs) => { exports.launchWithLanguage = async (language, countryCode="US", launchArgs=defaultLaunchArgs) => {
if(device.id === undefined) if(device.id === undefined)
{ {
@ -41,3 +46,7 @@ exports.launchWithLanguage = async (language, countryCode="US", launchArgs=defau
}); });
} }
} }
exports.closeKeyboardAndroid = async () => {
await device.pressBack(); // Android-only
}

View File

@ -6,6 +6,7 @@ const { navigateToLogin, login, sleep, tapBack, mockMessage, searchRoom, logout
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const data = require('../../data'); const data = require('../../data');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const testuser = data.users.regular const testuser = data.users.regular
const otheruser = data.users.alternate const otheruser = data.users.alternate
@ -50,6 +51,7 @@ describe('E2E Encryption', () => {
before(async () => { before(async () => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]); ({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]);
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);

View File

@ -5,6 +5,7 @@ const OTP = require('otp.js');
const GA = OTP.googleAuthenticator; const GA = OTP.googleAuthenticator;
const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app');
const data = require('../../data'); const data = require('../../data');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const testuser = data.users.regular const testuser = data.users.regular
const otheruser = data.users.alternate const otheruser = data.users.alternate
@ -12,6 +13,7 @@ const otheruser = data.users.alternate
describe('Broadcast room', () => { describe('Broadcast room', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);
}); });

View File

@ -5,6 +5,7 @@ const { navigateToLogin, login, sleep } = require('../../helpers/app');
const data = require('../../data'); const data = require('../../data');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { closeKeyboardAndroid, prepareAndroid } = require('../../helpers/platformFunctions');
const profileChangeUser = data.users.profileChanges const profileChangeUser = data.users.profileChanges
@ -23,6 +24,7 @@ describe('Profile screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
({ textInputType, scrollViewType } = platformTypes[device.getPlatform()]); ({ textInputType, scrollViewType } = platformTypes[device.getPlatform()]);
await navigateToLogin(); await navigateToLogin();
await login(profileChangeUser.username, profileChangeUser.password); await login(profileChangeUser.username, profileChangeUser.password);
@ -83,7 +85,7 @@ describe('Profile screen', () => {
it('should change name and username', async() => { it('should change name and username', async() => {
await element(by.id('profile-view-name')).replaceText(`${ profileChangeUser.username }new`); await element(by.id('profile-view-name')).replaceText(`${ profileChangeUser.username }new`);
await element(by.id('profile-view-username')).typeText(`${ profileChangeUser.username }new`); await element(by.id('profile-view-username')).typeText(`${ profileChangeUser.username }new`);
await device.pressBack(); await closeKeyboardAndroid();
await element(by.type(scrollViewType)).atIndex(1).swipe('up'); await element(by.type(scrollViewType)).atIndex(1).swipe('up');
await element(by.id('profile-view-submit')).tap(); await element(by.id('profile-view-submit')).tap();
await waitForToast(); await waitForToast();

View File

@ -4,6 +4,7 @@ const {
const { navigateToLogin, login, tapBack } = require('../../helpers/app'); const { navigateToLogin, login, tapBack } = require('../../helpers/app');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
@ -13,6 +14,7 @@ describe('Settings screen', () => {
let alertButtonType; let alertButtonType;
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
({ alertButtonType } = platformTypes[device.getPlatform()]); ({ alertButtonType } = platformTypes[device.getPlatform()]);
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);

View File

@ -5,6 +5,7 @@ const data = require('../../data');
const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const testuser = data.users.regular const testuser = data.users.regular
const room = data.channels.detoxpublic.name; const room = data.channels.detoxpublic.name;
@ -24,6 +25,7 @@ describe('Join public room', () => {
let scrollViewType; let scrollViewType;
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
({ scrollViewType } = platformTypes[device.getPlatform()]); ({ scrollViewType } = platformTypes[device.getPlatform()]);
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);

View File

@ -2,6 +2,7 @@ const {
expect, element, by, waitFor expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { navigateToLogin, login, sleep } = require('../../helpers/app'); const { navigateToLogin, login, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
const testuser = data.users.regular const testuser = data.users.regular
@ -13,6 +14,7 @@ async function waitForToast() {
describe('Status screen', () => { describe('Status screen', () => {
before(async () => { before(async () => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, checkServer } = require('../../helpers/app'); const { navigateToLogin, login, checkServer } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const reopenAndCheckServer = async(server) => { const reopenAndCheckServer = async(server) => {
await device.terminateApp(); await device.terminateApp();
@ -14,6 +15,7 @@ const reopenAndCheckServer = async(server) => {
describe('Change server', () => { describe('Change server', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000); await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000);

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const testuser = data.users.regular const testuser = data.users.regular
const room = data.channels.detoxpublicprotected.name const room = data.channels.detoxpublicprotected.name
@ -22,6 +23,7 @@ async function openJoinCode() {
describe('Join protected room', () => { describe('Join protected room', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);
await navigateToRoom(); await navigateToRoom();

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, tapBack, sleep } = require('../../helpers/app'); const { navigateToLogin, login, tapBack, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const testuser = data.users.regular const testuser = data.users.regular
@ -18,6 +19,7 @@ async function navigateToRoom(search) {
describe('Join room from directory', () => { describe('Join room from directory', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(testuser.username, testuser.password); await login(testuser.username, testuser.password);
}); });

View File

@ -5,11 +5,13 @@ const data = require('../../data');
const { sleep, navigateToLogin, login, checkServer } = require('../../helpers/app'); const { sleep, navigateToLogin, login, checkServer } = require('../../helpers/app');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Delete server', () => { describe('Delete server', () => {
let scrollViewType, alertButtonType; let scrollViewType, alertButtonType;
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]); ({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]);
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);

View File

@ -5,6 +5,7 @@ const data = require('../../data');
const { tapBack, checkServer, navigateToRegister } = require('../../helpers/app'); const { tapBack, checkServer, navigateToRegister } = require('../../helpers/app');
const { post, get, login } = require('../../helpers/data_setup'); const { post, get, login } = require('../../helpers/data_setup');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { closeKeyboardAndroid, prepareAndroid } = require('../../helpers/platformFunctions');
const DEEPLINK_METHODS = { AUTH: 'auth', ROOM: 'room' }; const DEEPLINK_METHODS = { AUTH: 'auth', ROOM: 'room' };
@ -34,6 +35,7 @@ describe('Deep linking', () => {
delete: true, delete: true,
url: getDeepLink(DEEPLINK_METHODS.AUTH, data.server, `userId=123${amp}token=abc`), url: getDeepLink(DEEPLINK_METHODS.AUTH, data.server, `userId=123${amp}token=abc`),
}); });
if(device.getPlatform() == 'android') await prepareAndroid();
await waitFor(element(by.text('You\'ve been logged out by the server. Please log in again.'))).toExist().withTimeout(10000); // TODO: we need to improve this message await waitFor(element(by.text('You\'ve been logged out by the server. Please log in again.'))).toExist().withTimeout(10000); // TODO: we need to improve this message
}); });
@ -61,7 +63,7 @@ describe('Deep linking', () => {
await element(by.id('register-view-username')).replaceText(data.registeringUser4.username); await element(by.id('register-view-username')).replaceText(data.registeringUser4.username);
await element(by.id('register-view-email')).replaceText(data.registeringUser4.email); await element(by.id('register-view-email')).replaceText(data.registeringUser4.email);
await element(by.id('register-view-password')).typeText(data.registeringUser4.password); await element(by.id('register-view-password')).typeText(data.registeringUser4.password);
await device.pressBack(); await closeKeyboardAndroid();
await element(by.type(scrollViewType)).atIndex(0).scrollTo('bottom'); await element(by.type(scrollViewType)).atIndex(0).scrollTo('bottom');
await element(by.id('register-view-submit')).tap(); await element(by.id('register-view-submit')).tap();
await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000); await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000);

View File

@ -3,7 +3,7 @@ const {
} = require('detox'); } = require('detox');
const { navigateToLogin, login, sleep } = require('../../helpers/app'); const { navigateToLogin, login, sleep } = require('../../helpers/app');
const { post } = require('../../helpers/data_setup'); const { post } = require('../../helpers/data_setup');
const { launchWithLanguage } = require('../../helpers/platformFunctions'); const { launchWithLanguage, prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
const testuser = data.users.regular const testuser = data.users.regular
@ -27,6 +27,7 @@ describe('i18n', () => {
...defaultLaunchArgs, ...defaultLaunchArgs,
delete: true delete: true
}); });
if(device.getPlatform() == 'android') await prepareAndroid();
await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000); await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000);
await expect(element(by.id('join-workspace').and(by.label('Join a workspace')))).toBeVisible(); await expect(element(by.id('join-workspace').and(by.label('Join a workspace')))).toBeVisible();
await expect(element(by.id('create-workspace-button').and(by.label('Create a new workspace')))).toBeVisible(); await expect(element(by.id('create-workspace-button').and(by.label('Create a new workspace')))).toBeVisible();

View File

@ -2,10 +2,12 @@ const {
device, expect, element, by, waitFor device, expect, element, by, waitFor
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Onboarding', () => { describe('Onboarding', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000); await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000);
}); });

View File

@ -2,12 +2,14 @@ const {
device, expect, element, by, waitFor device, expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { navigateToRegister, navigateToLogin } = require('../../helpers/app'); const { navigateToRegister, navigateToLogin } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Legal screen', () => { describe('Legal screen', () => {
describe('From Login', () => { describe('From Login', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
}); });

View File

@ -3,10 +3,12 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin } = require('../../helpers/app'); const { navigateToLogin } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Forgot password screen', () => { describe('Forgot password screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await element(by.id('login-view-forgot-password')).tap(); await element(by.id('login-view-forgot-password')).tap();
await waitFor(element(by.id('forgot-password-view'))).toExist().withTimeout(2000); await waitFor(element(by.id('forgot-password-view'))).toExist().withTimeout(2000);

View File

@ -2,11 +2,13 @@ const {
device, expect, element, by, waitFor device, expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { navigateToRegister, sleep } = require('../../helpers/app'); const { navigateToRegister, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
describe('Create user screen', () => { describe('Create user screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToRegister(); await navigateToRegister();
}); });

View File

@ -2,11 +2,13 @@ const {
expect, element, by, waitFor expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { navigateToLogin, tapBack, sleep } = require('../../helpers/app'); const { navigateToLogin, tapBack, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
describe('Login screen', () => { describe('Login screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
}); });

View File

@ -2,12 +2,14 @@ const {
device, expect, element, by, waitFor device, expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { login, navigateToLogin, logout, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { login, navigateToLogin, logout, tapBack, sleep, searchRoom } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
describe('Rooms list screen', () => { describe('Rooms list screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password) await login(data.users.regular.username, data.users.regular.password)
}); });

View File

@ -2,11 +2,13 @@ const {
device, expect, element, by, waitFor device, expect, element, by, waitFor
} = require('detox'); } = require('detox');
const { login, navigateToLogin, logout, tapBack } = require('../../helpers/app'); const { login, navigateToLogin, logout, tapBack } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const data = require('../../data'); const data = require('../../data');
describe('Server history', () => { describe('Server history', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
}); });
describe('Usage', () => { describe('Usage', () => {

View File

@ -3,12 +3,14 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { tapBack, sleep, navigateToLogin, login, tryTapping } = require('../../helpers/app'); const { tapBack, sleep, navigateToLogin, login, tryTapping } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Create room screen', () => { describe('Create room screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
}); });

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom, starMessage, pinMessage, dismissReviewNag, tryTapping, logout } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom, starMessage, pinMessage, dismissReviewNag, tryTapping, logout } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
async function navigateToRoom(roomName) { async function navigateToRoom(roomName) {
await searchRoom(`${ roomName }`); await searchRoom(`${ roomName }`);
@ -15,6 +16,7 @@ describe('Room screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
await navigateToRoom(mainRoom); await navigateToRoom(mainRoom);

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, tapBack, sleep, searchRoom, mockMessage, starMessage, pinMessage } = require('../../helpers/app'); const { navigateToLogin, login, tapBack, sleep, searchRoom, mockMessage, starMessage, pinMessage } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const { sendMessage } = require('../../helpers/data_setup') const { sendMessage } = require('../../helpers/data_setup')
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
@ -41,6 +42,7 @@ describe('Room actions screen', () => {
let alertButtonType; let alertButtonType;
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
({ alertButtonType } = platformTypes[device.getPlatform()]); ({ alertButtonType } = platformTypes[device.getPlatform()]);

View File

@ -4,6 +4,7 @@ const {
const { navigateToLogin, login, mockMessage, tapBack, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, searchRoom } = require('../../helpers/app');
const data = require('../../data'); const data = require('../../data');
const platformTypes = require('../../helpers/platformTypes'); const platformTypes = require('../../helpers/platformTypes');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const channel = data.groups.private.name; const channel = data.groups.private.name;
@ -18,6 +19,7 @@ describe('Discussion', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
({ scrollViewType } = platformTypes[device.getPlatform()]); ({ scrollViewType } = platformTypes[device.getPlatform()]);

View File

@ -3,9 +3,11 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom, starMessage, pinMessage, dismissReviewNag, tryTapping, mockMessageWithNag } = require('../../helpers/app'); const { navigateToLogin, login, mockMessage, tapBack, sleep, searchRoom, starMessage, pinMessage, dismissReviewNag, tryTapping, mockMessageWithNag } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
async function navigateToRoom(roomName) { async function navigateToRoom(roomName) {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
await searchRoom(`${ roomName }`); await searchRoom(`${ roomName }`);

View File

@ -3,12 +3,14 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { tapBack, sleep, navigateToLogin, login, tryTapping } = require('../../helpers/app'); const { tapBack, sleep, navigateToLogin, login, tryTapping } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
describe('Group DM', () => { describe('Group DM', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
}); });

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, searchRoom, sleep } = require('../../helpers/app'); const { navigateToLogin, login, searchRoom, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const { sendMessage } = require('../../helpers/data_setup') const { sendMessage } = require('../../helpers/data_setup')
async function navigateToRoom(user) { async function navigateToRoom(user) {
@ -16,6 +17,7 @@ describe('Mark as unread', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
await navigateToRoom(user); await navigateToRoom(user);

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, tapBack, sleep, searchRoom } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const privateRoomName = data.groups.private.name const privateRoomName = data.groups.private.name
@ -34,6 +35,7 @@ describe('Room info screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
}); });

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, mockMessage, tapBack, login, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, mockMessage, tapBack, login, sleep, searchRoom } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
async function navigateToRoom(roomName) { async function navigateToRoom(roomName) {
await searchRoom(`${ roomName }`); await searchRoom(`${ roomName }`);
@ -33,6 +34,7 @@ async function waitForLoading() {
describe('Room', () => { describe('Room', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.adminUser, data.adminPassword); await login(data.adminUser, data.adminPassword);
}); });

View File

@ -3,12 +3,14 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login } = require('../../helpers/app'); const { navigateToLogin, login } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const teamName = `team-${ data.random }`; const teamName = `team-${ data.random }`;
describe('Create team screen', () => { describe('Create team screen', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
}); });

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, tapBack, sleep, searchRoom } = require('../../helpers/app'); const { navigateToLogin, login, tapBack, sleep, searchRoom } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
async function navigateToRoom(roomName) { async function navigateToRoom(roomName) {
await searchRoom(`${ roomName }`); await searchRoom(`${ roomName }`);
@ -44,6 +45,7 @@ describe('Team', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
await navigateToRoom(team); await navigateToRoom(team);

View File

@ -3,6 +3,7 @@ const {
} = require('detox'); } = require('detox');
const data = require('../../data'); const data = require('../../data');
const { navigateToLogin, login, tapBack, searchRoom, sleep } = require('../../helpers/app'); const { navigateToLogin, login, tapBack, searchRoom, sleep } = require('../../helpers/app');
const { prepareAndroid } = require('../../helpers/platformFunctions');
const toBeConverted = `to-be-converted-${ data.random }`; const toBeConverted = `to-be-converted-${ data.random }`;
const toBeMoved = `to-be-moved-${ data.random }`; const toBeMoved = `to-be-moved-${ data.random }`;
@ -38,6 +39,7 @@ async function navigateToRoomActions(room) {
describe('Move/Convert Team', () => { describe('Move/Convert Team', () => {
before(async() => { before(async() => {
await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); await device.launchApp({ permissions: { notifications: 'YES' }, delete: true });
if(device.getPlatform() == 'android') await prepareAndroid();
await navigateToLogin(); await navigateToLogin();
await login(data.users.regular.username, data.users.regular.password); await login(data.users.regular.username, data.users.regular.password);
}); });