Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ACS-5511] create library tests update #3516

Merged
merged 2 commits into from
Nov 13, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
268 changes: 140 additions & 128 deletions e2e/playwright/actions/src/tests/create-library.spec.ts
Original file line number Diff line number Diff line change
@@ -23,12 +23,27 @@
*/

import { expect } from '@playwright/test';
import { Utils, ApiClientFactory, getUserState, test, libraryErrors } from '@alfresco/playwright-shared';
import { SiteBodyCreate } from '@alfresco/js-api';
import {
Utils,
ApiClientFactory,
test,
libraryErrors,
LoginPage,
SitesApi,
AdfLibraryDialogComponent,
DataTableComponent,
Breadcrumb,
TrashcanApi
} from '@alfresco/playwright-shared';
import { logger } from '@alfresco/adf-cli/scripts/logger';

test.use({ storageState: getUserState('hruser') });
test.describe('Create Libraries ', () => {
const apiClientFactory = new ApiClientFactory();
let sitesApi: SitesApi;
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
let trashcanApi: TrashcanApi;
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
let libraryDialog: AdfLibraryDialogComponent;
let libraryTable: DataTableComponent;
let libraryBreadcrumb: Breadcrumb;
let randomLibraryName: string;
let randomLibraryId: string;
let randomLibraryDescription: string;
@@ -39,41 +54,61 @@ test.describe('Create Libraries ', () => {
const publicVisibility = 'Public';
const moderatedVisibility = 'Moderated';
const privateVisibility = 'Private';
const deleteAction = 'Delete';
const errorMessageNotPresent = 'Error message is not displayed';

const tabKeyString = 'Tab';
const username = `user-${Utils.random()}`;
const commonLibraryName = `playwright-library-${Utils.random()}`;
const commonLibraryId = `libraryId-${Utils.random()}`;
const commonTrashLibraryName = `playwright-library-${Utils.random()}`;
const commonTrashLibraryId = `libraryId-${Utils.random()}`;
const createdLibrariesIds: string[] = [];

test.beforeAll(async () => {
await apiClientFactory.setUpAcaBackend('hruser');
await apiClientFactory.sites.createSite({ id: commonLibraryId, title: commonLibraryName, visibility: SiteBodyCreate.VisibilityEnum.PUBLIC });
await apiClientFactory.sites.createSite({
id: commonTrashLibraryId,
title: commonTrashLibraryName,
visibility: SiteBodyCreate.VisibilityEnum.PUBLIC
});
await apiClientFactory.sites.deleteSite(commonTrashLibraryId);
try {
await apiClientFactory.setUpAcaBackend('admin');
await apiClientFactory.createUser({ username });
sitesApi = await SitesApi.initialize(username, username);
await sitesApi.createSite(commonLibraryName);
createdLibrariesIds.push(commonLibraryName);
await sitesApi.createSite(commonTrashLibraryName);
await sitesApi.deleteSites([commonTrashLibraryName], false);
} catch (error) {
logger.error(`beforeAll failed : ${error}`);
}
});

test.beforeEach(async ({ myLibrariesPage }) => {
test.beforeEach(async ({ myLibrariesPage, page }) => {
randomLibraryName = `playwright-library-${Utils.random()}`;
randomLibraryId = `libraryId-${Utils.random()}`;
randomLibraryDescription = `libraryDescription-${Utils.random()}`;
await myLibrariesPage.navigate();
libraryDialog = myLibrariesPage.libraryDialog;
const loginPage = new LoginPage(page);
try {
await loginPage.loginUser(
{ username: username, password: username },
{
withNavigation: true,
waitForLoading: true
}
);
await myLibrariesPage.navigate();
await myLibrariesPage.selectCreateLibrary();
} catch (error) {
logger.error(`beforeEach failed : ${error}`);
}
});

test.afterAll(async () => {
await apiClientFactory.sites.deleteSite(commonLibraryId, { permanent: true });
try {
for (const createdLibraryId of createdLibrariesIds) {
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
await apiClientFactory.sites.deleteSite(createdLibraryId, { permanent: true });
}
trashcanApi = await TrashcanApi.initialize(username, username);
await trashcanApi.emptyTrashcan();
} catch (error) {
logger.error(`afterAll failed : ${error}`);
}
});

test('[C280024] Create Library dialog UI', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;

await myLibrariesPage.selectCreateLibrary();

test('[C280024] Create Library dialog UI', async () => {
await expect(libraryDialog.getDialogTitle(libraryDialogTitle)).toBeVisible();
await expect(libraryDialog.getLabelText(libraryNameLabel)).toBeVisible();
await expect(libraryDialog.getLabelText(libraryIdLabel)).toBeVisible();
@@ -86,117 +121,90 @@ test.describe('Create Libraries ', () => {
await expect(libraryDialog.createButton).toBeDisabled();
});

test('[C280025] Create a public library', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await expect(libraryDialog.getLabelText(libraryNameLabel)).toHaveValue(randomLibraryName);
await expect(libraryDialog.getLabelText(libraryIdLabel)).toHaveValue(randomLibraryName);
await libraryDialog.createButton.click();

await myLibrariesPage.navigate();
await libraryTable.goThroughPagesLookingForRowWithName(randomLibraryName);
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, publicVisibility)).toBeVisible();
test.describe('On My Libraries dataTable', () => {
test.beforeEach(async ({ myLibrariesPage }) => {
libraryTable = myLibrariesPage.dataTable;
libraryBreadcrumb = myLibrariesPage.breadcrumb;
});

await libraryTable.performActionInExpandableMenu(randomLibraryName, deleteAction);
});
test('[C280025] Create a public library', async ({ myLibrariesPage }) => {
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await expect(libraryDialog.getLabelText(libraryNameLabel)).toHaveValue(randomLibraryName);
await expect(libraryDialog.getLabelText(libraryIdLabel)).toHaveValue(randomLibraryName);
await libraryDialog.createButton.click();
await expect(libraryBreadcrumb.getItemByTitle(randomLibraryName)).toBeVisible();

test('[C289880] Create a moderated library', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;
await myLibrariesPage.navigate();
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, publicVisibility)).toBeVisible();

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, null, moderatedVisibility);
createdLibrariesIds.push(randomLibraryName);
});

await myLibrariesPage.navigate();
await libraryTable.goThroughPagesLookingForRowWithName(randomLibraryName);
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, moderatedVisibility)).toBeVisible();
test('[C289880] Create a moderated library', async ({ myLibrariesPage }) => {
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, null, moderatedVisibility);
await expect(libraryBreadcrumb.getItemByTitle(randomLibraryName)).toBeVisible();

await libraryTable.performActionInExpandableMenu(randomLibraryName, deleteAction);
});
await myLibrariesPage.navigate();
await libraryTable.spinnerWaitForReload();
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, moderatedVisibility)).toBeVisible();

test('[C289881] Create a private library', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;
createdLibrariesIds.push(randomLibraryId);
});

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, null, privateVisibility);
test('[C289881] Create a private library', async ({ myLibrariesPage }) => {
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, null, privateVisibility);
await expect(libraryBreadcrumb.getItemByTitle(randomLibraryName)).toBeVisible();

await myLibrariesPage.navigate();
await libraryTable.goThroughPagesLookingForRowWithName(randomLibraryName);
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, privateVisibility)).toBeVisible();
await myLibrariesPage.navigate();
await expect(libraryTable.getCellByColumnNameAndRowItem(randomLibraryName, privateVisibility)).toBeVisible();

await libraryTable.performActionInExpandableMenu(randomLibraryName, deleteAction);
});
createdLibrariesIds.push(randomLibraryId);
});

test('[C289882] Create a library with a given ID and description', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;
const libraryViewDetails = myLibrariesPage.acaHeader.viewDetails;
const libraryDetails = myLibrariesPage.libraryDetails;

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, randomLibraryDescription);

await myLibrariesPage.navigate();
await libraryTable.goThroughPagesLookingForRowWithName(randomLibraryName);
await expect(libraryTable.getCellLinkByName(randomLibraryName).and(myLibrariesPage.page.getByTitle(randomLibraryDescription))).toBeVisible();
await libraryTable.getRowByName(randomLibraryName).click();
await libraryViewDetails.click();
expect(await libraryDetails.getNameField('Name').locator('input').inputValue()).toBe(randomLibraryName);
expect(await libraryDetails.getIdField('Library ID').locator('input').inputValue()).toBe(randomLibraryId);
await expect(libraryDetails.getVisibilityField('Visibility').locator('.mat-select-value').getByText(publicVisibility)).toBeVisible();
expect(await libraryDetails.getDescriptionField.inputValue()).toBe(randomLibraryDescription);

await apiClientFactory.sites.deleteSite(randomLibraryId, { permanent: true });
});
test('[C289882] Create a library with a given ID and description', async ({ myLibrariesPage }) => {
const libraryViewDetails = myLibrariesPage.acaHeader.viewDetails;
const libraryDetails = myLibrariesPage.libraryDetails;

test('[C280027] Duplicate library ID', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
await libraryDialog.createLibraryWithNameAndId(randomLibraryName, randomLibraryId, randomLibraryDescription);
await expect(libraryBreadcrumb.getItemByTitle(randomLibraryName)).toBeVisible();

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.getLabelText(libraryIdLabel).clear();
await libraryDialog.getLabelText(libraryIdLabel).fill(commonLibraryId);
await libraryDialog.page.keyboard.press('Tab');
await expect(libraryDialog.getLabelText(libraryIdLabel)).toHaveValue(commonLibraryId);
await myLibrariesPage.navigate();
await expect(libraryTable.getCellLinkByName(randomLibraryName).and(myLibrariesPage.page.getByTitle(randomLibraryDescription))).toBeVisible();
await libraryTable.getRowByName(randomLibraryName).click();
await libraryViewDetails.click();
expect(await libraryDetails.getNameField('Name').locator('input').inputValue()).toBe(randomLibraryName);
expect(await libraryDetails.getIdField('Library ID').locator('input').inputValue()).toBe(randomLibraryId);
await expect(libraryDetails.getVisibilityField('Visibility').locator('.mat-select-value').getByText(publicVisibility)).toBeVisible();
expect(await libraryDetails.getDescriptionField.inputValue()).toBe(randomLibraryDescription);

await expect(libraryDialog.createButton).toBeDisabled();
expect(await libraryDialog.isErrorMessageDisplayed(libraryErrors.libraryIdIsNotAvailable), errorMessageNotPresent).toBe(true);
});
createdLibrariesIds.push(randomLibraryId);
});

test('[C280028] Create library using the ID of a library from the Trashcan', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
test('[C280029] Cancel button', async () => {
await expect(libraryDialog.getDialogTitle(libraryDialogTitle)).toBeVisible();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.cancelButton.click();

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.getLabelText(libraryIdLabel).clear();
await libraryDialog.getLabelText(libraryIdLabel).fill(commonTrashLibraryId);
await libraryDialog.page.keyboard.press('Tab');
await expect(libraryDialog.getDialogTitle(libraryDialogTitle)).toBeHidden();
await expect(libraryTable.getRowByName(randomLibraryName)).toHaveCount(0);
});

await expect(libraryDialog.createButton).toBeEnabled();
await libraryDialog.createButton.click();
await expect(libraryDialog.createButton).toBeDisabled();
expect(await libraryDialog.isErrorMessageDisplayed(libraryErrors.libraryIdIsAlreadyUsed), errorMessageNotPresent).toBe(true);
});
test('[C280030] Create 2 libraries with same name but different IDs', async ({ myLibrariesPage }) => {
const libraryName = commonLibraryName + ' (' + commonLibraryName + ')';
const libraryName2 = commonLibraryName + ' (' + randomLibraryId + ')';

test('[C280029] Cancel button', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;
await libraryDialog.createLibraryWithNameAndId(commonLibraryName, randomLibraryId);
await expect(libraryBreadcrumb.getItemByTitle(commonLibraryName)).toBeVisible();

await myLibrariesPage.selectCreateLibrary();
await expect(libraryDialog.getDialogTitle(libraryDialogTitle)).toBeVisible();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.cancelButton.click();
await myLibrariesPage.navigate();
await expect(libraryTable.getRowByName(libraryName)).toBeVisible();
await expect(libraryTable.getRowByName(libraryName2)).toBeVisible();

await expect(libraryDialog.getDialogTitle(libraryDialogTitle)).toBeHidden();
await expect(libraryTable.getRowByName(randomLibraryName)).toHaveCount(0);
createdLibrariesIds.push(randomLibraryId);
});
});

test('[C280026] Library ID cannot contain special characters', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
test('[C280026] Library ID cannot contain special characters', async () => {
const idsWithSpecialChars = [
'a!a',
'a@a',
@@ -217,34 +225,38 @@ test.describe('Create Libraries ', () => {
'a|a'
];

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);

for (const specialLibraryId of idsWithSpecialChars) {
await libraryDialog.getLabelText(libraryIdLabel).clear();
await libraryDialog.getLabelText(libraryIdLabel).fill(specialLibraryId);
await libraryDialog.page.keyboard.press('Tab');
await libraryDialog.page.keyboard.press(tabKeyString);
await expect(libraryDialog.getLabelText(libraryIdLabel)).toHaveValue(specialLibraryId);
expect(await libraryDialog.isErrorMessageDisplayed(libraryErrors.useNumbersAndLettersOnly), errorMessageNotPresent).toBe(true);
await expect(libraryDialog.createButton).toBeDisabled();
}
});

test('[C280030] Create 2 libraries with same name but different IDs', async ({ myLibrariesPage }) => {
const libraryDialog = myLibrariesPage.libraryDialog;
const libraryTable = myLibrariesPage.dataTable;
const libraryName = commonLibraryName + ' (' + commonLibraryId + ')';
const libraryName2 = commonLibraryName + ' (' + randomLibraryId + ')';
test('[C280027] Duplicate library ID', async () => {
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.getLabelText(libraryIdLabel).clear();
await libraryDialog.getLabelText(libraryIdLabel).fill(commonLibraryName);
await libraryDialog.page.keyboard.press(tabKeyString);
await expect(libraryDialog.getLabelText(libraryIdLabel)).toHaveValue(commonLibraryName);

await myLibrariesPage.selectCreateLibrary();
await libraryDialog.createLibraryWithNameAndId(commonLibraryName, randomLibraryId);
await expect(libraryDialog.createButton).toBeDisabled();
expect(await libraryDialog.isErrorMessageDisplayed(libraryErrors.libraryIdIsNotAvailable), errorMessageNotPresent).toBe(true);
});

await myLibrariesPage.navigate();
await libraryTable.goThroughPagesLookingForRowWithName(libraryName);
await expect(libraryTable.getRowByName(libraryName)).toBeVisible();
await libraryTable.goThroughPagesLookingForRowWithName(libraryName2);
await expect(libraryTable.getRowByName(libraryName2)).toBeVisible();
test('[C280028] Create library using the ID of a library from the Trashcan', async () => {
await libraryDialog.getLabelText(libraryNameLabel).fill(randomLibraryName);
await libraryDialog.getLabelText(libraryIdLabel).clear();
await libraryDialog.getLabelText(libraryIdLabel).fill(commonTrashLibraryName);
await libraryDialog.page.keyboard.press(tabKeyString);

await apiClientFactory.sites.deleteSite(randomLibraryId, { permanent: true });
await expect(libraryDialog.createButton).toBeEnabled();
await libraryDialog.createButton.click();
await expect(libraryDialog.createButton).toBeDisabled();
expect(await libraryDialog.isErrorMessageDisplayed(libraryErrors.libraryIdIsAlreadyUsed), errorMessageNotPresent).toBe(true);
});
});
1 change: 1 addition & 0 deletions projects/aca-playwright-shared/src/api/index.ts
Original file line number Diff line number Diff line change
@@ -32,3 +32,4 @@ export * from './nodes-api';
export * from './sites-api';
export * from './node-content-tree';
export * from './search-api';
export * from './trashcan-api';
63 changes: 63 additions & 0 deletions projects/aca-playwright-shared/src/api/trashcan-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*!
* 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
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/

import { ApiClientFactory } from './api-client-factory';
import { logger } from '@alfresco/adf-cli/scripts/logger';

export class TrashcanApi {
private apiService: ApiClientFactory;

constructor() {
this.apiService = new ApiClientFactory();
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
}
static async initialize(userName: string, password?: string): Promise<TrashcanApi> {
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
const classObj = new TrashcanApi();
await classObj.apiService.setUpAcaBackend(userName, password);
return classObj;
}

/**
* Empties the trashcan. Uses multiple batches 1000 nodes each.
*/
async emptyTrashcan(): Promise<any> {
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
try {
const nodes = await this.apiService.trashCan.listDeletedNodes({
maxItems: 1000
});

if (nodes?.list?.entries && nodes?.list?.entries?.length > 0) {
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
const ids = nodes.list.entries.map((entries) => entries.entry.id);

for (const nodeId of ids) {
await this.apiService.trashCan.deleteDeletedNode(nodeId);
}

await this.emptyTrashcan();
azakrzewski-hy marked this conversation as resolved.
Show resolved Hide resolved
}
} catch (error) {
logger.error('User Actions - emptyTrashcan failed : ', error);
}
}

}

Unchanged files with check annotations Beta

test('[C325141] Title too long', async () => {
await createFolderFromTemplateDialog.getDialogLabel(titleLabel).fill(Utils.string257Long);
await createFolderFromTemplateDialog.page.keyboard.press(tabKeyString);
await expect(createFolderFromTemplateDialog.getDialogLabel(titleLabel)).toHaveValue(Utils.string257Long);

Check failure on line 285 in e2e/playwright/actions/src/tests/create-folder-from-template.spec.ts

GitHub Actions / E2e test suites: Playwright (actions, 1)

[Actions] › src/tests/create-folder-from-template.spec.ts:282:11 › Create folder from template › Personal Files page › Create from template dialog › [C325141] Title too long

1) [Actions] › src/tests/create-folder-from-template.spec.ts:282:11 › Create folder from template › Personal Files page › Create from template dialog › [C325141] Title too long Error: Timed out 5000ms waiting for expect(received).toHaveValue(expected) Expected string: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" Received string: "" Call log: - expect.toHaveValue with timeout 5000ms - waiting for locator('app-create-from-template-dialog label').filter({ hasText: 'Title' }) 283 | await createFolderFromTemplateDialog.getDialogLabel(titleLabel).fill(Utils.string257Long); 284 | await createFolderFromTemplateDialog.page.keyboard.press(tabKeyString); > 285 | await expect(createFolderFromTemplateDialog.getDialogLabel(titleLabel)).toHaveValue(Utils.string257Long); | ^ 286 | expect 287 | .soft(await createFolderFromTemplateDialog.isErrorMessageDisplayed(errorStrings.titleLengthLimitError), errorStrings.errorMessageNotPresent) 288 | .toBe(true); at /home/runner/work/alfresco-content-app/alfresco-content-app/e2e/playwright/actions/src/tests/create-folder-from-template.spec.ts:285:81
expect
.soft(await createFolderFromTemplateDialog.isErrorMessageDisplayed(errorStrings.titleLengthLimitError), errorStrings.errorMessageNotPresent)
.toBe(true);
await personalFiles.navigate();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await personalFiles.reload();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);

Check failure on line 55 in e2e/playwright/navigation/src/tests/sidebar.spec.ts

GitHub Actions / E2e test suites: Playwright (navigation, 5)

[Navigation] › src/tests/sidebar.spec.ts:51:7 › Sidebar › [C269100] sidebar state is preserved on page refresh

1) [Navigation] › src/tests/sidebar.spec.ts:51:7 › Sidebar › [C269100] sidebar state is preserved on page refresh Error: Sidebar not expanded Expected: true Received: false 53 | expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true); 54 | await personalFiles.reload(); > 55 | expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true); | ^ 56 | 57 | await personalFiles.sidenav.collapseSideNav(); 58 | at /home/runner/work/alfresco-content-app/alfresco-content-app/e2e/playwright/navigation/src/tests/sidebar.spec.ts:55:85

Check failure on line 55 in e2e/playwright/navigation/src/tests/sidebar.spec.ts

GitHub Actions / E2e test suites: Playwright (navigation, 5)

[Navigation] › src/tests/sidebar.spec.ts:51:7 › Sidebar › [C269100] sidebar state is preserved on page refresh

1) [Navigation] › src/tests/sidebar.spec.ts:51:7 › Sidebar › [C269100] sidebar state is preserved on page refresh Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Sidebar not expanded Expected: true Received: false 53 | expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true); 54 | await personalFiles.reload(); > 55 | expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true); | ^ 56 | 57 | await personalFiles.sidenav.collapseSideNav(); 58 | at /home/runner/work/alfresco-content-app/alfresco-content-app/e2e/playwright/navigation/src/tests/sidebar.spec.ts:55:85
await personalFiles.sidenav.collapseSideNav();