From 56d62276d73d1c0f7cab3c2150d0d217274ca00d Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Wed, 22 Nov 2017 10:51:49 +0200 Subject: [PATCH] e2e test components refactoring (#76) --- e2e/components/sidenav/sidenav.ts | 5 +- e2e/suites/application/page-titles.test.ts | 2 +- e2e/suites/authentication/login.test.ts | 2 +- e2e/suites/authentication/logout.test.ts | 2 +- e2e/suites/list-views/trash.test.ts | 51 ++++++++++++------- e2e/suites/navigation/side-navigation.test.ts | 3 +- 6 files changed, 38 insertions(+), 27 deletions(-) diff --git a/e2e/components/sidenav/sidenav.ts b/e2e/components/sidenav/sidenav.ts index 38149b9d4..53590c9ca 100644 --- a/e2e/components/sidenav/sidenav.ts +++ b/e2e/components/sidenav/sidenav.ts @@ -46,10 +46,7 @@ export class Sidenav extends Component { } isActiveByLabel(label: string): promise.Promise { - return this - .getLinkByLabel(label) - .getWebElement() - .then(element => element.getAttribute('class')) + return this.getLinkByLabel(label).getAttribute('class') .then(className => className.includes(Sidenav.selectors.activeLink.replace('.', ''))); } diff --git a/e2e/suites/application/page-titles.test.ts b/e2e/suites/application/page-titles.test.ts index 498913ee6..6ce0a6583 100644 --- a/e2e/suites/application/page-titles.test.ts +++ b/e2e/suites/application/page-titles.test.ts @@ -49,7 +49,7 @@ describe('Page titles', () => { loginPage.load() .then(() => loginPage.loginWithAdmin()) .then(() => page.signOut()) - .then(() => browser.driver.navigate().back()) + .then(() => browser.navigate().back()) .then(() => { expect(browser.getTitle()).toContain('Sign in'); }); diff --git a/e2e/suites/authentication/login.test.ts b/e2e/suites/authentication/login.test.ts index 80fa54a38..46ab49470 100644 --- a/e2e/suites/authentication/login.test.ts +++ b/e2e/suites/authentication/login.test.ts @@ -121,7 +121,7 @@ describe('Login', () => { loginPage .loginWith(username) - .then(() => browser.driver.navigate().back()) + .then(() => browser.navigate().back()) .then(() => { expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES); }); diff --git a/e2e/suites/authentication/logout.test.ts b/e2e/suites/authentication/logout.test.ts index 773f961a0..bc98cd2b5 100644 --- a/e2e/suites/authentication/logout.test.ts +++ b/e2e/suites/authentication/logout.test.ts @@ -58,7 +58,7 @@ describe('Logout', () => { it('redirects to Login page when pressing browser Back after logout', () => { page.signOut() - .then(() => browser.driver.navigate().back()) + .then(() => browser.navigate().back()) .then(() => { expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN); }); diff --git a/e2e/suites/list-views/trash.test.ts b/e2e/suites/list-views/trash.test.ts index e6cd440c5..de16408d2 100644 --- a/e2e/suites/list-views/trash.test.ts +++ b/e2e/suites/list-views/trash.test.ts @@ -24,18 +24,24 @@ import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-cl describe('Trash', () => { const username = `user-${Utils.random()}`; - const password = username; const siteName = `site-${Utils.random()}`; - const folderAdmin = `folder-${Utils.random()}`; - const folderUser = `folder-${Utils.random()}`; - const fileAdmin = `file-${Utils.random()}.txt`; - const fileUser = `file-${Utils.random()}.txt`; const fileSite = `file-${Utils.random()}.txt`; + let fileSiteId; + + const folderAdmin = `folder-${Utils.random()}`; + let folderAdminId; + const fileAdmin = `file-${Utils.random()}.txt`; + let fileAdminId; + + const folderUser = `folder-${Utils.random()}`; + let folderUserId; + const fileUser = `file-${Utils.random()}.txt`; + let fileUserId; const apis = { admin: new RepoClient(), - user: new RepoClient(username, password) + user: new RepoClient(username, username) }; const loginPage = new LoginPage(); @@ -45,29 +51,38 @@ describe('Trash', () => { beforeAll(done => { apis.admin.people.createUser(username) - // admin: create file -> delete file .then(() => apis.admin.nodes.createFiles([ fileAdmin ]) - .then((resp) => apis.admin.nodes.deleteNodeById(resp.data.entry.id, false))) - // admin: create folder -> delete folder + .then(resp => fileAdminId = resp.data.entry.id)) .then(() => apis.admin.nodes.createFolders([ folderAdmin ]) - .then((resp) => apis.admin.nodes.deleteNodeById(resp.data.entry.id, false))) - // admin: create site, add user to site, create file + .then(resp => folderAdminId = resp.data.entry.id)) .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_MANAGER)) .then(() => apis.admin.nodes.createFiles([ fileSite ], `Sites/${siteName}/documentLibrary`) - // user: delete file from site - .then(resp => apis.user.nodes.deleteNodeById(resp.data.entry.id, false))) - // user: create file -> delete file + .then(resp => fileSiteId = resp.data.entry.id)) .then(() => apis.user.nodes.createFiles([ fileUser ]) - .then((resp) => apis.user.nodes.deleteNodeById(resp.data.entry.id, false))) - // user: create folder -> delete folder + .then(resp => fileUserId = resp.data.entry.id)) .then(() => apis.user.nodes.createFolders([ folderUser ]) - .then((resp) => apis.user.nodes.deleteNodeById(resp.data.entry.id, false))) + .then(resp => folderUserId = resp.data.entry.id)) + + .then(() => apis.admin.nodes.deleteNodeById(fileAdminId, false)) + .then(() => apis.admin.nodes.deleteNodeById(folderAdminId, false)) + .then(() => apis.user.nodes.deleteNodeById(fileSiteId, false)) + .then(() => apis.user.nodes.deleteNodeById(fileUserId, false)) + .then(() => apis.user.nodes.deleteNodeById(folderUserId, false)) + .then(done); }); afterAll(done => { - apis.admin.sites.deleteSite(siteName).then(done); + Promise.all([ + apis.admin.sites.deleteSite(siteName), + apis.admin.trashcan.permanentlyDelete(fileAdminId), + apis.admin.trashcan.permanentlyDelete(folderAdminId), + apis.admin.trashcan.permanentlyDelete(fileSiteId), + apis.user.trashcan.permanentlyDelete(fileUserId), + apis.user.trashcan.permanentlyDelete(folderUserId) + ]) + .then(done); }); xit(''); diff --git a/e2e/suites/navigation/side-navigation.test.ts b/e2e/suites/navigation/side-navigation.test.ts index 792b4d845..826c4a520 100644 --- a/e2e/suites/navigation/side-navigation.test.ts +++ b/e2e/suites/navigation/side-navigation.test.ts @@ -36,8 +36,7 @@ describe('Side navigation', () => { }); afterAll(done => { - logoutPage.load() - .then(done); + logoutPage.load().then(done); }); it('has "Personal Files" as default', () => {