mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
[ACS-7267] The rest of list-views tests migrated to Playwright (#3711)
This commit is contained in:
2
.github/workflows/pull-request.yml
vendored
2
.github/workflows/pull-request.yml
vendored
@@ -99,8 +99,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
e2e-suites:
|
||||
- name: "listViews"
|
||||
id: 1
|
||||
- name: "search"
|
||||
id: 2
|
||||
- name: "deleteActions"
|
||||
|
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
import { expect } from '@playwright/test';
|
||||
import { ApiClientFactory, LoginPage, Utils, test } from '@alfresco/playwright-shared';
|
||||
import { ApiClientFactory, Utils, test, SIDEBAR_LABELS, SearchPage, PersonalFilesPage } from '@alfresco/playwright-shared';
|
||||
|
||||
test.describe('Empty list views', () => {
|
||||
const username = `user-${Utils.random()}`;
|
||||
@@ -34,15 +34,8 @@ test.describe('Empty list views', () => {
|
||||
await apiClientFactory.createUser({ username });
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
const loginPage = new LoginPage(page);
|
||||
await loginPage.loginUser(
|
||||
{ username, password: username },
|
||||
{
|
||||
withNavigation: true,
|
||||
waitForLoading: true
|
||||
}
|
||||
);
|
||||
test.beforeEach(async ({ loginPage }) => {
|
||||
await Utils.tryLoginUser(loginPage, username, username, 'beforeEach failed');
|
||||
});
|
||||
|
||||
test('[C217099] empty My Libraries', async ({ myLibrariesPage }) => {
|
||||
@@ -75,4 +68,86 @@ test.describe('Empty list views', () => {
|
||||
expect(await personalFiles.dataTable.isEmpty(), 'list is not empty').toBe(true);
|
||||
expect(await personalFiles.dataTable.emptySearchText.innerText()).toContain('Your search returned 0 results');
|
||||
});
|
||||
|
||||
test('[C290020] Empty Search results - Libraries', async ({ searchPage }) => {
|
||||
await searchPage.sidenav.openPanel(SIDEBAR_LABELS.MY_LIBRARIES);
|
||||
/* cspell:disable-next-line */
|
||||
await searchPage.searchWithin('qwertyuiop', 'files');
|
||||
|
||||
expect(await searchPage.dataTable.isEmpty()).toBeTruthy();
|
||||
expect(await searchPage.dataTable.emptySearchText.textContent()).toContain('Your search returned 0 results');
|
||||
});
|
||||
|
||||
async function openEmptyTab(searchPage: SearchPage, tab: string, emptyStateTitle: string, emptyStateSubtitle: string) {
|
||||
await searchPage.sidenav.openPanel(tab);
|
||||
expect(await searchPage.dataTable.isEmpty()).toBeTruthy();
|
||||
expect(await searchPage.dataTable.getEmptyStateTitle()).toContain(emptyStateTitle);
|
||||
expect(await searchPage.dataTable.getEmptyStateSubtitle()).toContain(emptyStateSubtitle);
|
||||
}
|
||||
|
||||
[
|
||||
{
|
||||
tab: SIDEBAR_LABELS.FAVORITE_LIBRARIES,
|
||||
id: 'C289911',
|
||||
emptyStateTitle: `No Favorite Libraries`,
|
||||
emptyStateSubtitle: 'Favorite a library that you want to find easily later.'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.RECENT_FILES,
|
||||
id: 'C213169',
|
||||
emptyStateTitle: 'No recent files',
|
||||
emptyStateSubtitle: 'Items you uploaded or edited in the last 30 days are shown here.'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.FAVORITES,
|
||||
id: 'C280133',
|
||||
emptyStateTitle: 'No favorite files or folders',
|
||||
emptyStateSubtitle: 'Favorite items that you want to easily find later.'
|
||||
}
|
||||
].forEach((testCase) => {
|
||||
test(`[${testCase.id}] empty ${testCase.tab}`, async ({ searchPage }) => {
|
||||
await openEmptyTab(searchPage, testCase.tab, testCase.emptyStateTitle, testCase.emptyStateSubtitle);
|
||||
});
|
||||
});
|
||||
|
||||
async function checkPaginationForTabs(searchPage: SearchPage, tab: string, personalFiles: PersonalFilesPage) {
|
||||
await searchPage.sidenav.openPanel(tab);
|
||||
expect(await personalFiles.pagination.isRangePresent()).toBeFalsy();
|
||||
expect(await personalFiles.pagination.isMaxItemsPresent()).toBeFalsy();
|
||||
expect(await personalFiles.pagination.isCurrentPagePresent()).toBeFalsy();
|
||||
expect(await personalFiles.pagination.isTotalPagesPresent()).toBeFalsy();
|
||||
expect(await personalFiles.pagination.isPreviousButtonPresent()).toBeFalsy();
|
||||
expect(await personalFiles.pagination.isNextButtonPresent()).toBeFalsy();
|
||||
}
|
||||
|
||||
[
|
||||
{
|
||||
tab: SIDEBAR_LABELS.FAVORITES,
|
||||
id: 'C280111'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.MY_LIBRARIES,
|
||||
id: 'C280084'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.FAVORITE_LIBRARIES,
|
||||
id: 'C291873'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.PERSONAL_FILES,
|
||||
id: 'C280075'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.RECENT_FILES,
|
||||
id: 'C280102'
|
||||
},
|
||||
{
|
||||
tab: SIDEBAR_LABELS.TRASH,
|
||||
id: 'C280120'
|
||||
}
|
||||
].forEach((testCase) => {
|
||||
test(`[${testCase.id}] ${testCase.tab} - pagination controls not displayed`, async ({ searchPage, personalFiles }) => {
|
||||
await checkPaginationForTabs(searchPage, testCase.tab, personalFiles);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -1,133 +0,0 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { AdminActions, BrowsingPage, LoginPage, Utils } from '@alfresco/aca-testing-shared';
|
||||
|
||||
describe('Empty list views', () => {
|
||||
const username = `user-${Utils.random()}`;
|
||||
const loginPage = new LoginPage();
|
||||
const page = new BrowsingPage();
|
||||
const { dataTable, pagination, toolbar } = page;
|
||||
const { searchInput } = page.pageLayoutHeader;
|
||||
const adminApiActions = new AdminActions();
|
||||
|
||||
beforeAll(async () => {
|
||||
await adminApiActions.createUser({ username });
|
||||
await loginPage.loginWith(username);
|
||||
});
|
||||
|
||||
it('[C289911] empty Favorite Libraries', async () => {
|
||||
await page.goToFavoriteLibraries();
|
||||
expect(await dataTable.isEmpty()).toBe(true, 'list is not empty');
|
||||
expect(await dataTable.getEmptyStateTitle()).toContain(`No Favorite Libraries`);
|
||||
expect(await dataTable.getEmptyStateSubtitle()).toContain('Favorite a library that you want to find easily later.');
|
||||
});
|
||||
|
||||
it('[C213169] empty Recent Files', async () => {
|
||||
await page.clickRecentFiles();
|
||||
expect(await dataTable.isEmpty()).toBe(true, 'list is not empty');
|
||||
expect(await dataTable.getEmptyStateTitle()).toContain('No recent files');
|
||||
expect(await dataTable.getEmptyStateSubtitle()).toContain('Items you uploaded or edited in the last 30 days are shown here.');
|
||||
});
|
||||
|
||||
it('[C280133] empty Favorites', async () => {
|
||||
await page.clickFavorites();
|
||||
expect(await dataTable.isEmpty()).toBe(true, 'list is not empty');
|
||||
expect(await dataTable.getEmptyStateTitle()).toContain('No favorite files or folders');
|
||||
expect(await dataTable.getEmptyStateSubtitle()).toContain('Favorite items that you want to easily find later.');
|
||||
});
|
||||
|
||||
it('[C280111] Favorites - pagination controls not displayed', async () => {
|
||||
await page.clickFavorites();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C280084] My Libraries - pagination controls not displayed', async () => {
|
||||
await page.goToMyLibraries();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C291873] Favorite Libraries - pagination controls not displayed', async () => {
|
||||
await page.goToFavoriteLibraries();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C280075] Personal Files - pagination controls not displayed', async () => {
|
||||
await page.clickPersonalFiles();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C280102] Recent Files - pagination controls not displayed', async () => {
|
||||
await page.clickRecentFiles();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C280120] Trash - pagination controls not displayed', async () => {
|
||||
await page.clickTrash();
|
||||
expect(await pagination.isRangePresent()).toBe(false, 'Range is present');
|
||||
expect(await pagination.isMaxItemsPresent()).toBe(false, 'Max items is present');
|
||||
expect(await pagination.isCurrentPagePresent()).toBe(false, 'Current page is present');
|
||||
expect(await pagination.isTotalPagesPresent()).toBe(false, 'Total pages is present');
|
||||
expect(await pagination.isPreviousButtonPresent()).toBe(false, 'Previous button is present');
|
||||
expect(await pagination.isNextButtonPresent()).toBe(false, 'Next button is present');
|
||||
});
|
||||
|
||||
it('[C290020] Empty Search results - Libraries', async () => {
|
||||
await page.goToMyLibraries();
|
||||
await toolbar.clickSearchIconButton();
|
||||
await searchInput.clickSearchButton();
|
||||
await searchInput.checkLibraries();
|
||||
/* cspell:disable-next-line */
|
||||
await searchInput.searchForLibrary('qwertyuiop');
|
||||
await dataTable.waitForBody();
|
||||
|
||||
expect(await dataTable.isEmpty()).toBe(true, 'list is not empty');
|
||||
expect(await dataTable.emptySearchText.getText()).toContain('Your search returned 0 results');
|
||||
});
|
||||
});
|
@@ -174,4 +174,20 @@ export class PaginationComponent extends BaseComponent {
|
||||
async isMaxItemsPresent(): Promise<boolean> {
|
||||
return this.maxItems.isVisible();
|
||||
}
|
||||
|
||||
async isCurrentPagePresent(): Promise<boolean> {
|
||||
return this.currentPage.isVisible();
|
||||
}
|
||||
|
||||
async isTotalPagesPresent(): Promise<boolean> {
|
||||
return this.totalPages.isVisible();
|
||||
}
|
||||
|
||||
async isPreviousButtonPresent(): Promise<boolean> {
|
||||
return this.previousButton.isVisible();
|
||||
}
|
||||
|
||||
async isNextButtonPresent(): Promise<boolean> {
|
||||
return this.nextButton.isVisible();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user