diff --git a/e2e/suites/actions/library/library-actions.test.ts b/e2e/suites/actions/library/library-actions.test.ts index 665190e0d..5b35e552e 100755 --- a/e2e/suites/actions/library/library-actions.test.ts +++ b/e2e/suites/actions/library/library-actions.test.ts @@ -23,17 +23,7 @@ * along with Alfresco. If not, see . */ -import { - AdminActions, - UserActions, - SITE_VISIBILITY, - SITE_ROLES, - LoginPage, - BrowsingPage, - Utils, - ConfirmDialog, - RepoClient -} from '@alfresco/aca-testing-shared'; +import { AdminActions, SITE_VISIBILITY, SITE_ROLES, LoginPage, BrowsingPage, Utils, ConfirmDialog, RepoClient } from '@alfresco/aca-testing-shared'; import { BrowserActions } from '@alfresco/adf-testing'; describe('Library actions', () => { @@ -75,21 +65,17 @@ describe('Library actions', () => { const confirmDialog = new ConfirmDialog(); const adminApiActions = new AdminActions(); - const userActions = new UserActions(); - beforeAll(async (done) => { + const publicAdminSites = [siteSearchPublic1Admin, siteSearchPublic2Admin, siteSearchPublic3Admin, siteSearchPublic4Admin]; + const moderatedSites = [siteSearchModerated1Admin, siteSearchModerated2Admin]; + + beforeAll(async () => { await adminApiActions.createUser({ username }); - await adminApiActions.sites.createSite(siteSearchPublic1Admin); - await adminApiActions.sites.createSite(siteSearchPublic2Admin); - await adminApiActions.sites.createSite(siteSearchPublic3Admin); - await adminApiActions.sites.createSite(siteSearchPublic4Admin); - await adminApiActions.sites.createSite(siteSearchModerated1Admin, SITE_VISIBILITY.MODERATED); - await adminApiActions.sites.createSite(siteSearchModerated2Admin, SITE_VISIBILITY.MODERATED); - await apis.user.sites.createSite(siteSearchForDelete); + await adminApiActions.sites.createSites(publicAdminSites); + await adminApiActions.sites.createSites(moderatedSites, SITE_VISIBILITY.MODERATED); await loginPage.loginWith(username); - done(); }); beforeEach(async () => { @@ -104,35 +90,17 @@ describe('Library actions', () => { afterAll(async () => { await adminApiActions.login(); - await adminApiActions.deleteSites([ - sitePublic1Admin, - siteSearchPublic1Admin, - sitePublic2Admin, - sitePublic3Admin, - sitePublic4Admin, - sitePublic5Admin, - sitePublic6Admin, - sitePublic7Admin, - sitePublic8Admin, - siteSearchPublic2Admin, - siteSearchPublic3Admin, - siteSearchPublic4Admin, - siteModerated1Admin, - siteModerated2Admin, - siteSearchModerated1Admin, - siteSearchModerated2Admin - ]); - - await userActions.login(username, username); - await userActions.deleteSites([sitePublicUser]); - await userActions.emptyTrashcan(); + await adminApiActions.deleteSites([...publicAdminSites, ...moderatedSites]); }); describe('Join a public library', () => { - beforeAll(async (done) => { + beforeAll(async () => { await adminApiActions.sites.createSite(sitePublic1Admin); await apis.user.favorites.addFavoriteById('site', sitePublic1Admin); - done(); + }); + + afterAll(async () => { + await adminApiActions.sites.deleteSite(sitePublic1Admin); }); it('[C290105] from Favorite Libraries', async () => { @@ -148,7 +116,6 @@ describe('Library actions', () => { await searchInput.checkLibraries(); await searchInput.searchFor(siteSearchPublic1Admin); await dataTable.waitForBody(); - await dataTable.selectItem(siteSearchPublic1Admin); await BrowserActions.click(toolbar.joinButton); @@ -157,11 +124,14 @@ describe('Library actions', () => { }); describe('Join a moderated library', () => { - beforeAll(async (done) => { + beforeAll(async () => { await adminApiActions.sites.createSite(siteModerated1Admin, SITE_VISIBILITY.MODERATED); await apis.user.favorites.addFavoriteById('site', siteModerated1Admin); await apis.user.queries.waitForSites(siteSearchModerated1Admin, { expect: 1 }); - done(); + }); + + afterAll(async () => { + await adminApiActions.sites.deleteSite(siteModerated1Admin); }); it('[C290109] from Favorite Libraries', async () => { @@ -179,7 +149,6 @@ describe('Library actions', () => { await searchInput.checkLibraries(); await searchInput.searchFor(siteSearchModerated1Admin); await dataTable.waitForBody(); - await dataTable.selectItem(siteSearchModerated1Admin); await BrowserActions.click(toolbar.joinButton); @@ -190,12 +159,13 @@ describe('Library actions', () => { }); describe('Leave a library', () => { - beforeAll(async (done) => { - await adminApiActions.sites.createSite(sitePublic2Admin); - await adminApiActions.sites.createSite(sitePublic3Admin); - await adminApiActions.sites.createSite(sitePublic4Admin); - await adminApiActions.sites.createSite(sitePublic5Admin); - await apis.user.sites.createSite(sitePublicUser); + const adminSites = [sitePublic2Admin, sitePublic3Admin, sitePublic4Admin, sitePublic5Admin]; + const userSites = [sitePublicUser]; + + beforeAll(async () => { + await adminApiActions.sites.createSites(adminSites); + await apis.user.sites.createSites(userSites); + await apis.user.favorites.addFavoriteById('site', sitePublic3Admin); await adminApiActions.sites.addSiteMember(sitePublic2Admin, username, SITE_ROLES.SITE_COLLABORATOR.ROLE); await adminApiActions.sites.addSiteMember(sitePublic3Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); @@ -203,7 +173,11 @@ describe('Library actions', () => { await adminApiActions.sites.addSiteMember(sitePublic4Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await adminApiActions.sites.addSiteMember(sitePublic5Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await apis.user.queries.waitForSites(siteSearchPublic2Admin, { expect: 1 }); - done(); + }); + + afterAll(async () => { + await adminApiActions.deleteSites(adminSites); + await apis.user.sites.deleteSites(userSites); }); it('[C290106] from My Libraries', async () => { @@ -280,13 +254,16 @@ describe('Library actions', () => { }); describe('Cancel join', () => { - beforeAll(async (done) => { + beforeAll(async () => { await adminApiActions.sites.createSite(siteModerated2Admin, SITE_VISIBILITY.MODERATED); await apis.user.favorites.addFavoriteById('site', siteModerated2Admin); await apis.user.sites.requestToJoin(siteModerated2Admin); await apis.user.sites.requestToJoin(siteSearchModerated2Admin); await apis.user.queries.waitForSites(siteSearchModerated2Admin, { expect: 1 }); - done(); + }); + + afterAll(async () => { + await adminApiActions.sites.deleteSite(siteModerated2Admin); }); it('[C290108] from Favorite Libraries', async () => { @@ -317,11 +294,14 @@ describe('Library actions', () => { }); describe('Mark library as favorite', () => { - beforeAll(async (done) => { + beforeAll(async () => { await adminApiActions.sites.createSite(sitePublic6Admin); await adminApiActions.sites.addSiteMember(sitePublic6Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await apis.user.queries.waitForSites(siteSearchPublic3Admin, { expect: 1 }); - done(); + }); + + afterAll(async () => { + await adminApiActions.sites.deleteSite(sitePublic6Admin); }); it('[C289974] from My Libraries', async () => { @@ -349,17 +329,23 @@ describe('Library actions', () => { }); describe('Remove library from favorites', () => { - beforeAll(async (done) => { - await adminApiActions.sites.createSite(sitePublic7Admin); - await adminApiActions.sites.createSite(sitePublic8Admin); + const adminSites = [sitePublic7Admin, sitePublic8Admin]; + + beforeAll(async () => { + await adminApiActions.sites.createSites(adminSites); + await apis.user.favorites.addFavoriteById('site', sitePublic7Admin); await apis.user.favorites.addFavoriteById('site', sitePublic8Admin); + await apis.user.favorites.addFavoriteById('site', siteSearchPublic4Admin); await adminApiActions.sites.addSiteMember(sitePublic7Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await adminApiActions.sites.addSiteMember(sitePublic8Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await adminApiActions.sites.addSiteMember(siteSearchPublic4Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await apis.user.queries.waitForSites(siteSearchPublic4Admin, { expect: 1 }); - done(); + }); + + afterAll(async () => { + await adminApiActions.sites.deleteSites(adminSites); }); it('[C289975] from My Libraries', async () => { @@ -396,11 +382,11 @@ describe('Library actions', () => { }); describe('Delete a library', () => { - beforeAll(async (done) => { - await apis.user.sites.createSite(siteForDelete1); - await apis.user.sites.createSite(siteForDelete2); + const userSites = [siteForDelete1, siteForDelete2, siteSearchForDelete]; + + beforeAll(async () => { + await apis.user.sites.createSites(userSites); await apis.user.queries.waitForSites(siteSearchForDelete, { expect: 1 }); - done(); }); it('[C289988] from My Libraries', async () => { diff --git a/projects/aca-testing-shared/src/components/search/search-input.ts b/projects/aca-testing-shared/src/components/search/search-input.ts index 539a5345a..083533522 100755 --- a/projects/aca-testing-shared/src/components/search/search-input.ts +++ b/projects/aca-testing-shared/src/components/search/search-input.ts @@ -26,13 +26,15 @@ import { browser, by, protractor } from 'protractor'; import { Component } from '../component'; import { waitForPresence, waitElement } from '../../utilities/utils'; -import { BrowserActions } from '@alfresco/adf-testing'; +import { BrowserActions, BrowserVisibility, TestElement } from '@alfresco/adf-testing'; export class SearchInput extends Component { searchButton = this.component.element(by.css('.app-search-button')); searchContainer = browser.element(by.css('.app-search-container')); searchControl = browser.element(by.css('.app-search-control')); - searchInput = browser.element(by.css(`input[id='app-control-input']`)); + + searchInput = TestElement.byCss('input[id="app-control-input"]'); + searchOptionsArea = browser.element(by.id('search-options')); searchFilesOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Files')); searchFoldersOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Folders')); @@ -150,8 +152,8 @@ export class SearchInput extends Component { } async searchFor(text: string) { - await BrowserActions.clearWithBackSpace(this.searchInput); - await this.searchInput.sendKeys(text); - await this.searchInput.sendKeys(protractor.Key.ENTER); + await BrowserVisibility.waitUntilElementIsClickable(this.searchInput.elementFinder, 1000); + await this.searchInput.typeText(text); + await this.searchInput.elementFinder.sendKeys(protractor.Key.ENTER); } }