[ACA-2008] tests for add favourite /remove favorite on a site (#810)

This commit is contained in:
Adina Parpalita
2018-11-19 17:50:02 +02:00
committed by Denys Vuika
parent 79f92c38ef
commit 9b7ad0b0b3
3 changed files with 79 additions and 2 deletions

View File

@@ -24,7 +24,7 @@
*/
import { LoginPage, BrowsingPage } from '../../pages/pages';
import { SITE_VISIBILITY } from '../../configs';
import { SITE_VISIBILITY, SITE_ROLES } from '../../configs';
import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils';
@@ -494,4 +494,60 @@ describe('Mark items as favorites', () => {
await apis.user.favorites.waitForApi({ expect: 5 });
});
});
describe('on a library', () => {
const adminSite1 = `adminSite1-${Utils.random()}`;
const adminSite2 = `adminSite2-${Utils.random()}`;
const adminSite3 = `adminSite3-${Utils.random()}`;
beforeAll(async (done) => {
await apis.admin.sites.createSite(adminSite1);
await apis.admin.sites.createSite(adminSite2);
await apis.admin.sites.createSite(adminSite3);
await apis.admin.sites.addSiteMember(adminSite1, username, SITE_ROLES.SITE_CONSUMER.ROLE);
await apis.admin.sites.addSiteMember(adminSite2, username, SITE_ROLES.SITE_CONSUMER.ROLE);
await apis.admin.sites.addSiteMember(adminSite3, username, SITE_ROLES.SITE_CONSUMER.ROLE);
await apis.user.favorites.addFavoriteById('site', adminSite2);
await apis.user.favorites.addFavoriteById('site', adminSite3);
done();
});
beforeEach(async (done) => {
await Utils.pressEscape();
done();
});
afterAll(async (done) => {
await apis.admin.sites.deleteSite(adminSite1);
await apis.admin.sites.deleteSite(adminSite2);
await apis.admin.sites.deleteSite(adminSite3);
done();
});
it('Mark a library as favorite - [C289974]', async () => {
await page.goToMyLibraries();
await dataTable.selectItem(adminSite1);
await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavoriteWithRetry(adminSite1, { expect: true })).toBe(true, `${adminSite1} not favorite`);
});
it('Remove a library from favorites - on My Libraries - [C289975]', async () => {
await page.goToMyLibraries();
await dataTable.selectItem(adminSite2);
await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavoriteWithRetry(adminSite2, { expect: false })).toBe(false, `${adminSite2} still favorite`);
});
it('Remove a library from favorites - on Favorite Libraries - [C289976]', async () => {
await page.goToFavoriteLibraries();
await dataTable.selectItem(adminSite3);
await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite');
expect(await dataTable.getRowByName(adminSite3).isPresent()).toBe(false, `${adminSite3} is displayed`);
expect(await apis.user.favorites.isFavoriteWithRetry(adminSite3, { expect: false })).toBe(false, `${adminSite3} still favorite`);
});
});
});

View File

@@ -103,6 +103,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${siteName}`);
await toolbar.openMoreMenu();
expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`);
expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`);
});
it('Correct actions appear when a library is selected - Favorite Libraries - [C289892]', async () => {
@@ -112,6 +113,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${siteName}`);
await toolbar.openMoreMenu();
expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`);
expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`);
});
it('selected row is marked with a check circle icon - [C213134]', async () => {

View File

@@ -79,13 +79,32 @@ export class FavoritesApi extends RepoApi {
async getFavoriteById(nodeId: string) {
await this.apiAuth();
return await this.alfrescoJsApi.core.favoritesApi.getFavorite('-me', nodeId);
return await this.alfrescoJsApi.core.favoritesApi.getFavorite('-me-', nodeId);
}
async isFavorite(nodeId: string) {
return JSON.stringify((await this.getFavorites()).list.entries).includes(nodeId);
}
async isFavoriteWithRetry(nodeId: string, data) {
let isFavorite;
try {
const favorite = async () => {
isFavorite = JSON.stringify((await this.getFavorites()).list.entries).includes(nodeId);
if ( isFavorite !== data.expect ) {
return Promise.reject(isFavorite);
} else {
return Promise.resolve(isFavorite);
}
};
return await Utils.retryCall(favorite);
} catch (error) {
console.log('-----> catch isFavoriteWithRetry: ', error);
}
return isFavorite;
}
async removeFavoriteById(nodeId: string) {
await this.apiAuth();
return await this.alfrescoJsApi.core.peopleApi.removeFavoriteSite('-me-', nodeId);