[ACA-4546] Flaky ACA Library actions test (#2417)

* [ACA-4546] Flaky ACA Library actions test

* [ACA-4546] Flaky ACA Library actions test

* [ACA-4546] Update

* [ACA-4546] Update

* [ACA-4546] Update
This commit is contained in:
Bartosz Sekuła 2022-02-02 11:53:28 +01:00 committed by GitHub
parent 047c4bcd72
commit 60e1d13bb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 61 additions and 73 deletions

View File

@ -23,17 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { import { AdminActions, SITE_VISIBILITY, SITE_ROLES, LoginPage, BrowsingPage, Utils, ConfirmDialog, RepoClient } from '@alfresco/aca-testing-shared';
AdminActions,
UserActions,
SITE_VISIBILITY,
SITE_ROLES,
LoginPage,
BrowsingPage,
Utils,
ConfirmDialog,
RepoClient
} from '@alfresco/aca-testing-shared';
import { BrowserActions } from '@alfresco/adf-testing'; import { BrowserActions } from '@alfresco/adf-testing';
describe('Library actions', () => { describe('Library actions', () => {
@ -75,21 +65,17 @@ describe('Library actions', () => {
const confirmDialog = new ConfirmDialog(); const confirmDialog = new ConfirmDialog();
const adminApiActions = new AdminActions(); 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.createUser({ username });
await adminApiActions.sites.createSite(siteSearchPublic1Admin); await adminApiActions.sites.createSites(publicAdminSites);
await adminApiActions.sites.createSite(siteSearchPublic2Admin); await adminApiActions.sites.createSites(moderatedSites, SITE_VISIBILITY.MODERATED);
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 loginPage.loginWith(username); await loginPage.loginWith(username);
done();
}); });
beforeEach(async () => { beforeEach(async () => {
@ -104,35 +90,17 @@ describe('Library actions', () => {
afterAll(async () => { afterAll(async () => {
await adminApiActions.login(); await adminApiActions.login();
await adminApiActions.deleteSites([ await adminApiActions.deleteSites([...publicAdminSites, ...moderatedSites]);
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();
}); });
describe('Join a public library', () => { describe('Join a public library', () => {
beforeAll(async (done) => { beforeAll(async () => {
await adminApiActions.sites.createSite(sitePublic1Admin); await adminApiActions.sites.createSite(sitePublic1Admin);
await apis.user.favorites.addFavoriteById('site', sitePublic1Admin); await apis.user.favorites.addFavoriteById('site', sitePublic1Admin);
done(); });
afterAll(async () => {
await adminApiActions.sites.deleteSite(sitePublic1Admin);
}); });
it('[C290105] from Favorite Libraries', async () => { it('[C290105] from Favorite Libraries', async () => {
@ -148,7 +116,6 @@ describe('Library actions', () => {
await searchInput.checkLibraries(); await searchInput.checkLibraries();
await searchInput.searchFor(siteSearchPublic1Admin); await searchInput.searchFor(siteSearchPublic1Admin);
await dataTable.waitForBody(); await dataTable.waitForBody();
await dataTable.selectItem(siteSearchPublic1Admin); await dataTable.selectItem(siteSearchPublic1Admin);
await BrowserActions.click(toolbar.joinButton); await BrowserActions.click(toolbar.joinButton);
@ -157,11 +124,14 @@ describe('Library actions', () => {
}); });
describe('Join a moderated library', () => { describe('Join a moderated library', () => {
beforeAll(async (done) => { beforeAll(async () => {
await adminApiActions.sites.createSite(siteModerated1Admin, SITE_VISIBILITY.MODERATED); await adminApiActions.sites.createSite(siteModerated1Admin, SITE_VISIBILITY.MODERATED);
await apis.user.favorites.addFavoriteById('site', siteModerated1Admin); await apis.user.favorites.addFavoriteById('site', siteModerated1Admin);
await apis.user.queries.waitForSites(siteSearchModerated1Admin, { expect: 1 }); await apis.user.queries.waitForSites(siteSearchModerated1Admin, { expect: 1 });
done(); });
afterAll(async () => {
await adminApiActions.sites.deleteSite(siteModerated1Admin);
}); });
it('[C290109] from Favorite Libraries', async () => { it('[C290109] from Favorite Libraries', async () => {
@ -179,7 +149,6 @@ describe('Library actions', () => {
await searchInput.checkLibraries(); await searchInput.checkLibraries();
await searchInput.searchFor(siteSearchModerated1Admin); await searchInput.searchFor(siteSearchModerated1Admin);
await dataTable.waitForBody(); await dataTable.waitForBody();
await dataTable.selectItem(siteSearchModerated1Admin); await dataTable.selectItem(siteSearchModerated1Admin);
await BrowserActions.click(toolbar.joinButton); await BrowserActions.click(toolbar.joinButton);
@ -190,12 +159,13 @@ describe('Library actions', () => {
}); });
describe('Leave a library', () => { describe('Leave a library', () => {
beforeAll(async (done) => { const adminSites = [sitePublic2Admin, sitePublic3Admin, sitePublic4Admin, sitePublic5Admin];
await adminApiActions.sites.createSite(sitePublic2Admin); const userSites = [sitePublicUser];
await adminApiActions.sites.createSite(sitePublic3Admin);
await adminApiActions.sites.createSite(sitePublic4Admin); beforeAll(async () => {
await adminApiActions.sites.createSite(sitePublic5Admin); await adminApiActions.sites.createSites(adminSites);
await apis.user.sites.createSite(sitePublicUser); await apis.user.sites.createSites(userSites);
await apis.user.favorites.addFavoriteById('site', sitePublic3Admin); await apis.user.favorites.addFavoriteById('site', sitePublic3Admin);
await adminApiActions.sites.addSiteMember(sitePublic2Admin, username, SITE_ROLES.SITE_COLLABORATOR.ROLE); await adminApiActions.sites.addSiteMember(sitePublic2Admin, username, SITE_ROLES.SITE_COLLABORATOR.ROLE);
await adminApiActions.sites.addSiteMember(sitePublic3Admin, username, SITE_ROLES.SITE_MANAGER.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(sitePublic4Admin, username, SITE_ROLES.SITE_MANAGER.ROLE);
await adminApiActions.sites.addSiteMember(sitePublic5Admin, 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 }); 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 () => { it('[C290106] from My Libraries', async () => {
@ -280,13 +254,16 @@ describe('Library actions', () => {
}); });
describe('Cancel join', () => { describe('Cancel join', () => {
beforeAll(async (done) => { beforeAll(async () => {
await adminApiActions.sites.createSite(siteModerated2Admin, SITE_VISIBILITY.MODERATED); await adminApiActions.sites.createSite(siteModerated2Admin, SITE_VISIBILITY.MODERATED);
await apis.user.favorites.addFavoriteById('site', siteModerated2Admin); await apis.user.favorites.addFavoriteById('site', siteModerated2Admin);
await apis.user.sites.requestToJoin(siteModerated2Admin); await apis.user.sites.requestToJoin(siteModerated2Admin);
await apis.user.sites.requestToJoin(siteSearchModerated2Admin); await apis.user.sites.requestToJoin(siteSearchModerated2Admin);
await apis.user.queries.waitForSites(siteSearchModerated2Admin, { expect: 1 }); await apis.user.queries.waitForSites(siteSearchModerated2Admin, { expect: 1 });
done(); });
afterAll(async () => {
await adminApiActions.sites.deleteSite(siteModerated2Admin);
}); });
it('[C290108] from Favorite Libraries', async () => { it('[C290108] from Favorite Libraries', async () => {
@ -317,11 +294,14 @@ describe('Library actions', () => {
}); });
describe('Mark library as favorite', () => { describe('Mark library as favorite', () => {
beforeAll(async (done) => { beforeAll(async () => {
await adminApiActions.sites.createSite(sitePublic6Admin); await adminApiActions.sites.createSite(sitePublic6Admin);
await adminApiActions.sites.addSiteMember(sitePublic6Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); await adminApiActions.sites.addSiteMember(sitePublic6Admin, username, SITE_ROLES.SITE_MANAGER.ROLE);
await apis.user.queries.waitForSites(siteSearchPublic3Admin, { expect: 1 }); await apis.user.queries.waitForSites(siteSearchPublic3Admin, { expect: 1 });
done(); });
afterAll(async () => {
await adminApiActions.sites.deleteSite(sitePublic6Admin);
}); });
it('[C289974] from My Libraries', async () => { it('[C289974] from My Libraries', async () => {
@ -349,17 +329,23 @@ describe('Library actions', () => {
}); });
describe('Remove library from favorites', () => { describe('Remove library from favorites', () => {
beforeAll(async (done) => { const adminSites = [sitePublic7Admin, sitePublic8Admin];
await adminApiActions.sites.createSite(sitePublic7Admin);
await adminApiActions.sites.createSite(sitePublic8Admin); beforeAll(async () => {
await adminApiActions.sites.createSites(adminSites);
await apis.user.favorites.addFavoriteById('site', sitePublic7Admin); await apis.user.favorites.addFavoriteById('site', sitePublic7Admin);
await apis.user.favorites.addFavoriteById('site', sitePublic8Admin); await apis.user.favorites.addFavoriteById('site', sitePublic8Admin);
await apis.user.favorites.addFavoriteById('site', siteSearchPublic4Admin); await apis.user.favorites.addFavoriteById('site', siteSearchPublic4Admin);
await adminApiActions.sites.addSiteMember(sitePublic7Admin, username, SITE_ROLES.SITE_MANAGER.ROLE); 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(sitePublic8Admin, username, SITE_ROLES.SITE_MANAGER.ROLE);
await adminApiActions.sites.addSiteMember(siteSearchPublic4Admin, 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 }); await apis.user.queries.waitForSites(siteSearchPublic4Admin, { expect: 1 });
done(); });
afterAll(async () => {
await adminApiActions.sites.deleteSites(adminSites);
}); });
it('[C289975] from My Libraries', async () => { it('[C289975] from My Libraries', async () => {
@ -396,11 +382,11 @@ describe('Library actions', () => {
}); });
describe('Delete a library', () => { describe('Delete a library', () => {
beforeAll(async (done) => { const userSites = [siteForDelete1, siteForDelete2, siteSearchForDelete];
await apis.user.sites.createSite(siteForDelete1);
await apis.user.sites.createSite(siteForDelete2); beforeAll(async () => {
await apis.user.sites.createSites(userSites);
await apis.user.queries.waitForSites(siteSearchForDelete, { expect: 1 }); await apis.user.queries.waitForSites(siteSearchForDelete, { expect: 1 });
done();
}); });
it('[C289988] from My Libraries', async () => { it('[C289988] from My Libraries', async () => {

View File

@ -26,13 +26,15 @@
import { browser, by, protractor } from 'protractor'; import { browser, by, protractor } from 'protractor';
import { Component } from '../component'; import { Component } from '../component';
import { waitForPresence, waitElement } from '../../utilities/utils'; 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 { export class SearchInput extends Component {
searchButton = this.component.element(by.css('.app-search-button')); searchButton = this.component.element(by.css('.app-search-button'));
searchContainer = browser.element(by.css('.app-search-container')); searchContainer = browser.element(by.css('.app-search-container'));
searchControl = browser.element(by.css('.app-search-control')); 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')); searchOptionsArea = browser.element(by.id('search-options'));
searchFilesOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Files')); searchFilesOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Files'));
searchFoldersOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Folders')); searchFoldersOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Folders'));
@ -150,8 +152,8 @@ export class SearchInput extends Component {
} }
async searchFor(text: string) { async searchFor(text: string) {
await BrowserActions.clearWithBackSpace(this.searchInput); await BrowserVisibility.waitUntilElementIsClickable(this.searchInput.elementFinder, 1000);
await this.searchInput.sendKeys(text); await this.searchInput.typeText(text);
await this.searchInput.sendKeys(protractor.Key.ENTER); await this.searchInput.elementFinder.sendKeys(protractor.Key.ENTER);
} }
} }