From 13612474fe29226b3ab786ba53dbb652796b532a Mon Sep 17 00:00:00 2001 From: Diego Mello <diegolmello@gmail.com> Date: Fri, 15 May 2020 14:06:14 -0300 Subject: [PATCH] room and onboarding --- e2e/helpers/app.js | 13 +++++++++++++ e2e/{ => onboarding}/01-onboarding.spec.js | 2 +- e2e/{ => onboarding}/02-legal.spec.js | 2 +- e2e/{ => onboarding}/03-forgotpassword.spec.js | 4 ++-- e2e/{ => onboarding}/04-createuser.spec.js | 8 ++------ e2e/{ => onboarding}/05-login.spec.js | 4 ++-- e2e/{ => onboarding}/06-roomslist.spec.js | 13 +------------ e2e/onboarding/init.js | 11 +++++++++++ e2e/{ => room}/07-createroom.spec.js | 11 ++++------- e2e/{ => room}/08-room.spec.js | 4 ++-- e2e/{ => room}/09-roomactions.spec.js | 4 ++-- e2e/{ => room}/10-roominfo.spec.js | 4 ++-- e2e/room/init.js | 11 +++++++++++ 13 files changed, 54 insertions(+), 37 deletions(-) rename e2e/{ => onboarding}/01-onboarding.spec.js (98%) rename e2e/{ => onboarding}/02-legal.spec.js (96%) rename e2e/{ => onboarding}/03-forgotpassword.spec.js (93%) rename e2e/{ => onboarding}/04-createuser.spec.js (95%) rename e2e/{ => onboarding}/05-login.spec.js (96%) rename e2e/{ => onboarding}/06-roomslist.spec.js (86%) create mode 100644 e2e/onboarding/init.js rename e2e/{ => room}/07-createroom.spec.js (96%) rename e2e/{ => room}/08-room.spec.js (99%) rename e2e/{ => room}/09-roomactions.spec.js (99%) rename e2e/{ => room}/10-roominfo.spec.js (99%) create mode 100644 e2e/room/init.js diff --git a/e2e/helpers/app.js b/e2e/helpers/app.js index c77c6bf5c..5c5f646aa 100644 --- a/e2e/helpers/app.js +++ b/e2e/helpers/app.js @@ -52,6 +52,18 @@ async function logout() { await expect(element(by.id('onboarding-view'))).toBeVisible(); } +async function createUser() { + await navigateToRegister(); + await element(by.id('register-view-name')).replaceText(data.user); + await element(by.id('register-view-username')).replaceText(data.user); + await element(by.id('register-view-email')).replaceText(data.email); + await element(by.id('register-view-password')).replaceText(data.password); + await sleep(300); + await element(by.id('register-view-submit')).tap(); + await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(60000); + await expect(element(by.id('rooms-list-view'))).toBeVisible(); +} + async function tapBack() { await element(by.id('header-back')).atIndex(0).tap(); } @@ -66,6 +78,7 @@ module.exports = { navigateToRegister, login, logout, + createUser, tapBack, sleep }; \ No newline at end of file diff --git a/e2e/01-onboarding.spec.js b/e2e/onboarding/01-onboarding.spec.js similarity index 98% rename from e2e/01-onboarding.spec.js rename to e2e/onboarding/01-onboarding.spec.js index 900947b37..9f717dfe9 100644 --- a/e2e/01-onboarding.spec.js +++ b/e2e/onboarding/01-onboarding.spec.js @@ -1,7 +1,7 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); +const data = require('../data'); describe('Onboarding', () => { before(async() => { diff --git a/e2e/02-legal.spec.js b/e2e/onboarding/02-legal.spec.js similarity index 96% rename from e2e/02-legal.spec.js rename to e2e/onboarding/02-legal.spec.js index b61480af7..576ff895d 100644 --- a/e2e/02-legal.spec.js +++ b/e2e/onboarding/02-legal.spec.js @@ -1,7 +1,7 @@ const { device, expect, element, by, waitFor } = require('detox'); -const { navigateToRegister, navigateToLogin } = require('./helpers/app'); +const { navigateToRegister, navigateToLogin } = require('../helpers/app'); describe('Legal screen', () => { it('should have legal button on login', async() => { diff --git a/e2e/03-forgotpassword.spec.js b/e2e/onboarding/03-forgotpassword.spec.js similarity index 93% rename from e2e/03-forgotpassword.spec.js rename to e2e/onboarding/03-forgotpassword.spec.js index 83bd53e50..a287136d5 100644 --- a/e2e/03-forgotpassword.spec.js +++ b/e2e/onboarding/03-forgotpassword.spec.js @@ -1,8 +1,8 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); -const { navigateToLogin } = require('./helpers/app'); +const data = require('../data'); +const { navigateToLogin } = require('../helpers/app'); describe('Forgot password screen', () => { before(async() => { diff --git a/e2e/04-createuser.spec.js b/e2e/onboarding/04-createuser.spec.js similarity index 95% rename from e2e/04-createuser.spec.js rename to e2e/onboarding/04-createuser.spec.js index 7f2442bfb..8fc5d6cc4 100644 --- a/e2e/04-createuser.spec.js +++ b/e2e/onboarding/04-createuser.spec.js @@ -1,8 +1,8 @@ const { device, expect, element, by, waitFor } = require('detox'); -const { navigateToRegister, sleep } = require('./helpers/app'); -const data = require('./data'); +const { navigateToRegister, sleep } = require('../helpers/app'); +const data = require('../data'); describe('Create user screen', () => { before(async() => { @@ -83,9 +83,5 @@ describe('Create user screen', () => { await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(60000); await expect(element(by.id('rooms-list-view'))).toBeVisible(); }); - - // afterAll(async() => { - // await logout(); - // }); }); }); diff --git a/e2e/05-login.spec.js b/e2e/onboarding/05-login.spec.js similarity index 96% rename from e2e/05-login.spec.js rename to e2e/onboarding/05-login.spec.js index 3b1f45eec..fcc47c545 100644 --- a/e2e/05-login.spec.js +++ b/e2e/onboarding/05-login.spec.js @@ -1,8 +1,8 @@ const { expect, element, by, waitFor } = require('detox'); -const { navigateToLogin, tapBack, sleep } = require('./helpers/app'); -const data = require('./data'); +const { navigateToLogin, tapBack, sleep } = require('../helpers/app'); +const data = require('../data'); describe('Login screen', () => { before(async() => { diff --git a/e2e/06-roomslist.spec.js b/e2e/onboarding/06-roomslist.spec.js similarity index 86% rename from e2e/06-roomslist.spec.js rename to e2e/onboarding/06-roomslist.spec.js index 638585b17..43845bc02 100644 --- a/e2e/06-roomslist.spec.js +++ b/e2e/onboarding/06-roomslist.spec.js @@ -1,18 +1,13 @@ const { device, expect, element, by, waitFor } = require('detox'); -const { login, logout, navigateToLogin, tapBack, sleep } = require('./helpers/app'); -const data = require('./data'); +const { logout, tapBack, sleep } = require('../helpers/app'); describe('Rooms list screen', () => { describe('Render', () => { it('should have rooms list screen', async() => { await expect(element(by.id('rooms-list-view'))).toBeVisible(); }); - - // it('should have rooms list', async() => { - // await expect(element(by.id('rooms-list-view-list'))).toBeVisible(); - // }); it('should have room item', async() => { await expect(element(by.id('rooms-list-view-item-general')).atIndex(0)).toExist(); @@ -26,7 +21,6 @@ describe('Rooms list screen', () => { it('should have sidebar button', async() => { await expect(element(by.id('rooms-list-view-sidebar'))).toBeVisible(); - // await expect(element(by.id('rooms-list-view-sidebar'))).toHaveLabel(`Connected to ${ data.server }. Tap to view servers list.`); }); }); }); @@ -72,10 +66,5 @@ describe('Rooms list screen', () => { await logout(); }); }); - - // afterAll(async() => { - // await navigateToLogin(); - // await login(); - // }); }); }); diff --git a/e2e/onboarding/init.js b/e2e/onboarding/init.js new file mode 100644 index 000000000..391336b4a --- /dev/null +++ b/e2e/onboarding/init.js @@ -0,0 +1,11 @@ +const detox = require('detox'); +const config = require('../../package.json').detox; + +before(async() => { + await detox.init(config, { launchApp: false }); + await device.launchApp({ permissions: { notifications: 'YES' } }); +}); + +after(async() => { + await detox.cleanup(); +}); \ No newline at end of file diff --git a/e2e/07-createroom.spec.js b/e2e/room/07-createroom.spec.js similarity index 96% rename from e2e/07-createroom.spec.js rename to e2e/room/07-createroom.spec.js index 79ae561fd..182e5a486 100644 --- a/e2e/07-createroom.spec.js +++ b/e2e/room/07-createroom.spec.js @@ -1,16 +1,13 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); -const { tapBack, sleep, login, navigateToLogin } = require('./helpers/app'); +const data = require('../data'); +const { tapBack, sleep, createUser } = require('../helpers/app'); describe('Create room screen', () => { before(async() => { - // await sleep(5000); - await device.launchApp({ newInstance: true }); - await navigateToLogin(); - await login(); - await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(2000); + // await device.launchApp({ newInstance: true }); + await createUser(); await element(by.id('rooms-list-view-create-channel')).tap(); await waitFor(element(by.id('new-message-view'))).toBeVisible().withTimeout(2000); }); diff --git a/e2e/08-room.spec.js b/e2e/room/08-room.spec.js similarity index 99% rename from e2e/08-room.spec.js rename to e2e/room/08-room.spec.js index 63e1fc59f..5b861c4f2 100644 --- a/e2e/08-room.spec.js +++ b/e2e/room/08-room.spec.js @@ -1,8 +1,8 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); -const { tapBack, sleep } = require('./helpers/app'); +const data = require('../data'); +const { tapBack, sleep } = require('../helpers/app'); async function mockMessage(message) { await element(by.id('messagebox-input')).tap(); diff --git a/e2e/09-roomactions.spec.js b/e2e/room/09-roomactions.spec.js similarity index 99% rename from e2e/09-roomactions.spec.js rename to e2e/room/09-roomactions.spec.js index 2f5821ba2..483bac008 100644 --- a/e2e/09-roomactions.spec.js +++ b/e2e/room/09-roomactions.spec.js @@ -1,8 +1,8 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); -const { tapBack, sleep } = require('./helpers/app'); +const data = require('../data'); +const { tapBack, sleep } = require('../helpers/app'); const scrollDown = 200; diff --git a/e2e/10-roominfo.spec.js b/e2e/room/10-roominfo.spec.js similarity index 99% rename from e2e/10-roominfo.spec.js rename to e2e/room/10-roominfo.spec.js index 92f568d3f..692f9f54b 100644 --- a/e2e/10-roominfo.spec.js +++ b/e2e/room/10-roominfo.spec.js @@ -1,8 +1,8 @@ const { device, expect, element, by, waitFor } = require('detox'); -const data = require('./data'); -const { tapBack, sleep } = require('./helpers/app'); +const data = require('../data'); +const { tapBack, sleep } = require('../helpers/app'); async function navigateToRoomInfo(type) { let room; diff --git a/e2e/room/init.js b/e2e/room/init.js new file mode 100644 index 000000000..391336b4a --- /dev/null +++ b/e2e/room/init.js @@ -0,0 +1,11 @@ +const detox = require('detox'); +const config = require('../../package.json').detox; + +before(async() => { + await detox.init(config, { launchApp: false }); + await device.launchApp({ permissions: { notifications: 'YES' } }); +}); + +after(async() => { + await detox.cleanup(); +}); \ No newline at end of file