From 2004414d677376079c497e52af1234f701579bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20=C5=9Awiderski?= Date: Thu, 9 Apr 2026 10:01:44 +0200 Subject: [PATCH] [ACS-10621] library-properties cleanup (#5140) * [ACS-10621] library-properties cleanup * [ACS-10621] copilot review fix 1 --- .../src/tests/library-properties.e2e.ts | 25 ++++++------------- .../aca-playwright-shared/src/utils/utils.ts | 8 +++--- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/e2e/playwright/info-drawer/src/tests/library-properties.e2e.ts b/e2e/playwright/info-drawer/src/tests/library-properties.e2e.ts index 8893a29df..c2ddf5aa7 100644 --- a/e2e/playwright/info-drawer/src/tests/library-properties.e2e.ts +++ b/e2e/playwright/info-drawer/src/tests/library-properties.e2e.ts @@ -97,7 +97,7 @@ test.describe('Library properties', () => { await expect(myLibrariesPage.libraryDetails.nameField).toHaveValue(site.name); await expect(myLibrariesPage.libraryDetails.idField).toHaveValue(site.id); - expect((await myLibrariesPage.libraryDetails.visibilityField.textContent()).toUpperCase()).toEqual(site.visibility); + expect(((await myLibrariesPage.libraryDetails.visibilityField.textContent()) ?? '').toUpperCase()).toEqual(site.visibility); await expect(myLibrariesPage.libraryDetails.descriptionField).toHaveValue(site.description); await expect(myLibrariesPage.libraryDetails.editButton).toBeVisible(); }); @@ -151,8 +151,8 @@ test.describe('Library properties', () => { test('[XAT-5549] Cancel editing a site', async ({ myLibrariesPage }) => { await expectSiteToBeDefined(site.name, queriesApi); - const newName = `new-name-${Utils.random}`; - const newDesc = `new desc ${Utils.random}`; + const newName = `new-name-${Utils.random()}`; + const newDesc = `new desc ${Utils.random()}`; await myLibrariesPage.dataTable.getRowByName(site.name).click(); await myLibrariesPage.acaHeader.viewDetails.click(); @@ -196,7 +196,7 @@ test.describe('Library properties', () => { await myLibrariesPage.libraryDetails.editButton.click(); await myLibrariesPage.libraryDetails.nameField.fill(Utils.string257Long); await expect(myLibrariesPage.libraryDetails.errorNameMessage).toBeVisible(); - expect((await myLibrariesPage.libraryDetails.errorNameMessage.textContent()).trim()).toEqual('Use 256 characters or less for title'); + expect(((await myLibrariesPage.libraryDetails.errorNameMessage.textContent()) ?? '').trim()).toEqual('Use 256 characters or less for title'); await expect(myLibrariesPage.libraryDetails.updateButton).toBeDisabled(); }); @@ -211,7 +211,9 @@ test.describe('Library properties', () => { await myLibrariesPage.libraryDetails.editButton.click(); await myLibrariesPage.libraryDetails.descriptionField.fill(Utils.string513Long); await expect(myLibrariesPage.libraryDetails.errorDescriptionMessage).toBeVisible(); - expect((await myLibrariesPage.libraryDetails.errorDescriptionMessage.textContent()).trim()).toEqual('Use 512 characters or less for description'); + expect(((await myLibrariesPage.libraryDetails.errorDescriptionMessage.textContent()) ?? '').trim()).toEqual( + 'Use 512 characters or less for description' + ); await expect(myLibrariesPage.libraryDetails.updateButton).toBeDisabled(); }); }); @@ -220,7 +222,6 @@ test.describe('Non manager', () => { let sitesApi: SitesApi; const username = `user1-${Utils.random()}`; - const user2 = `user2-${Utils.random()}`; const user3 = `user3-${Utils.random()}`; const site = { name: `site1-${Utils.random()}`, @@ -234,12 +235,10 @@ test.describe('Non manager', () => { const apiClientFactory = new ApiClientFactory(); await apiClientFactory.setUpAcaBackend('admin'); await apiClientFactory.createUser({ username }); - await apiClientFactory.createUser({ username: user2 }); await apiClientFactory.createUser({ username: user3 }); sitesApi = await SitesApi.initialize(username, username); await sitesApi.createSite(site.name, site.visibility, site.description, site.id); - await sitesApi.addSiteMember(site.id, user2, SITE_ROLES.SITE_COLLABORATOR.ROLE); await sitesApi.addSiteMember(site.id, user3, SITE_ROLES.SITE_MANAGER.ROLE); } catch (error) { console.error(`beforeAll failed: ${error}`); @@ -250,16 +249,8 @@ test.describe('Non manager', () => { await Utils.deleteNodesSitesEmptyTrashcan(undefined, undefined, 'afterAll failed', sitesApi, [site.id]); }); - test('[XAT-5546] View Details button is not displayed when user is not the library manager', async ({ loginPage, myLibrariesPage }) => { - await loginPage.loginUser({ username: user2, password: user2 }, { withNavigation: true, waitForLoading: true }); - await myLibrariesPage.navigate(); - - await myLibrariesPage.dataTable.getRowByName(site.name).click(); - await expect(myLibrariesPage.acaHeader.viewDetails).toBeHidden(); - }); - test('[XAT-5553] Error notification when editing with no rights', async ({ loginPage, myLibrariesPage }) => { - await loginPage.loginUser({ username: user3, password: user3 }, { withNavigation: true, waitForLoading: true }); + await Utils.tryLoginUser(loginPage, user3, user3); await myLibrariesPage.navigate(); await myLibrariesPage.dataTable.getRowByName(site.name).click(); diff --git a/projects/aca-playwright-shared/src/utils/utils.ts b/projects/aca-playwright-shared/src/utils/utils.ts index 026e0b3b5..85a328ac8 100644 --- a/projects/aca-playwright-shared/src/utils/utils.ts +++ b/projects/aca-playwright-shared/src/utils/utils.ts @@ -64,7 +64,7 @@ export class Utils { try { await loginPage.loginUser({ username, password }, { withNavigation: true, waitForLoading: true }); } catch (error) { - console.error(`${errorMessage}: ${error}`); + throw new Error(`${errorMessage}: ${error}`); } } @@ -88,7 +88,7 @@ export class Utils { try { await nodesApi?.deleteCurrentUserNodes(); await trashcanApi?.emptyTrashcan(); - if (sitesToDelete?.length > 0) { + if (sitesToDelete && sitesToDelete.length > 0) { await sitesApi?.deleteSites(sitesToDelete); } } catch (error) { @@ -98,7 +98,7 @@ export class Utils { static async uploadFileNewVersion(personalFilesPage: PersonalFilesPage, fileFromOS: string, fileType: string): Promise { const fileInput = await personalFilesPage.page.$('#app-upload-file-version'); - await fileInput.setInputFiles(path.join(__dirname, `../resources/test-files/${fileFromOS}.${fileType}`)); + await fileInput?.setInputFiles(path.join(__dirname, `../resources/test-files/${fileFromOS}.${fileType}`)); } static async reloadPageIfRowNotVisible( @@ -120,7 +120,7 @@ export class Utils { errorMessage = 'reloadPageIfDatatableEmpty Error ' ): Promise { try { - if ((await pageContext.dataTable.getEmptyFolderLocator.isVisible()) || (await pageContext.dataTable.emptyListTitle.isVisible())) { + if ((await pageContext.dataTable.getEmptyFolderLocator?.isVisible()) || (await pageContext.dataTable.emptyListTitle?.isVisible())) { await pageContext.page.reload({ waitUntil: 'load' }); } } catch (error) {