[ACS-11051] getChild usage refactored (#5056)

* [ACS-11051] getChild usage refactored

* [ACS-11051] sonar fix 1

* [ACS-11051] test fixes 1

* [ACS-11051] test fixes 2

* [ACS-11051] review fixes 1

* [ACS-11051] review fixes 2
This commit is contained in:
Adam Świderski
2026-02-20 15:06:37 +01:00
committed by GitHub
parent 6c1f3b3188
commit 1218c0fb64
30 changed files with 198 additions and 111 deletions
@@ -80,7 +80,7 @@ test.describe('Edit offline - on Personal Files', () => {
expect(download.suggestedFilename()).toBe(file1);
});
test('XAT-5305] Lock information is displayed', async ({ personalFiles }) => {
test('[XAT-5305] Lock information is displayed', async ({ personalFiles }) => {
expect(await personalFiles.dataTable.isItemPresent(fileLocked2)).toBe(true);
expect(await personalFiles.dataTable.getLockOwner(fileLocked2)).toContain(username);
});
@@ -72,7 +72,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-883] Create a rule with symbols in its name and description', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(testString);
await nodesPage.manageRulesDialog.ruleDescriptionInputLocator.fill(testString);
@@ -84,13 +84,13 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-884] Create a rule and link it to an existing folder', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);
await nodesPage.manageRulesDialog.createRuleButton.click();
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName2Id}/rules` });
await nodesPage.toolbar.clickLinkRulesButton();
await nodesPage.rulesToolbar.clickLinkRulesButton();
await nodesPage.linkRulesDialog.waitForLinkRules();
await nodesPage.linkRulesDialog.getFolderIcon.click();
await nodesPage.linkRulesDialog.getOptionLocator(username).click();
@@ -102,7 +102,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-885] Create a rule in a folder and inherit it in a subfolder (Rule applies to subfolders)', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);
await nodesPage.manageRulesDialog.ruleSubfoldersCheckbox.click();
@@ -114,7 +114,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-886] Create a rule and press cancel', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await expect(nodesPage.manageRulesDialog.createRuleButton).toBeDisabled();
await nodesPage.manageRulesDialog.cancelRuleButton.click();
expect(nodesPage.manageRules.checkIfRuleListEmpty()).toBeTruthy();
@@ -122,7 +122,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-887] Create a disabled rule', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);
await nodesPage.manageRulesDialog.ruleDisableCheckbox.click();
@@ -137,7 +137,7 @@ test.describe('Folder Rules Actions', () => {
const simpleWorkFlow = 'accept reject';
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);
@@ -157,7 +157,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-889] Create a rule which runs when items are deleted or leave a folder', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.manageRulesDialog.whenCreatedCheckbox.click();
await nodesPage.manageRulesDialog.whenDeletedCheckbox.click();
@@ -182,7 +182,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-890] Create a rule which adds multiple aspects when its ran', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.AddAspect, 0);
await nodesPage.actionsDropdown.insertAddAspectActionValues('Classifiable', 0);
@@ -206,7 +206,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-891] Prevent rule creation after clicking on cancel during selecting destination folder', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.AddAspect, 0);
await nodesPage.actionsDropdown.insertAddAspectActionValues('Classifiable', 0);
@@ -219,7 +219,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-892] Prevent rule creation when missing any required field for action', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.AddAspect, 0);
await nodesPage.actionsDropdown.insertAddAspectActionValues('Classifiable', 0);
@@ -230,7 +230,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-893] Removing values from required fields should restore disabled state for Create button', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.AddAspect, 0);
await nodesPage.actionsDropdown.insertAddAspectActionValues('Classifiable', 0);
@@ -241,7 +241,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-894] Create rule with filled required fields and empty optional fields', async ({ nodesPage, personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.AddAspect, 0);
await nodesPage.actionsDropdown.insertAddAspectActionValues('Classifiable', 0);
@@ -255,7 +255,7 @@ test.describe('Folder Rules Actions', () => {
nodesPage
}) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.conditionsDropdown.addCondition(Field.Size, specialChars, 0, Comparator.Equals);
await nodesPage.conditionsDropdown.addCondition(Field.Name, specialChars, 1, Comparator.Equals);
@@ -270,7 +270,7 @@ test.describe('Folder Rules Actions', () => {
test('[XAT-896] Create a rule with multiple groups utilising all available comparators and conditions', async ({ personalFiles, nodesPage }) => {
await personalFiles.navigate({ remoteUrl: `#/nodes/${randomFolderName1Id}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(randomRuleName);
await nodesPage.conditionsDropdown.addConditionGroup(Field.Size, specialChars, 0, Comparator.Equals);
await nodesPage.conditionsDropdown.addConditionGroup(Field.Name, specialChars, 1, Comparator.Equals);
@@ -60,7 +60,7 @@ async function setupTransformationTest(
await nodesApi.createFolder(destinationFolderName);
await personalFiles.navigate({ remoteUrl: `#/nodes/${parentFolderId}/rules` });
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.rulesToolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.ruleNameInputLocator.fill(testString);
await nodesPage.manageRulesDialog.ruleDescriptionInputLocator.fill(testString);
await nodesPage.actionsDropdown.selectAction(ActionType.TransformAndCopyContent, 0);
@@ -48,30 +48,30 @@ test.describe('Sidebar', () => {
test('[XAT-5387] The sidenav can be expanded when search results page is displayed', async ({ personalFiles }) => {
await personalFiles.navigate({ remoteUrl: `#/search;q=test` });
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar expanded').toBe(false);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar expanded').toBeHidden();
await personalFiles.sidenav.expandSideNav();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar not expanded').toBeVisible();
});
test('[XAT-5384] Sidenav state is preserved on page refresh', async ({ personalFiles }) => {
await personalFiles.navigate();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar not expanded').toBeVisible();
await personalFiles.reload();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar not expanded').toBeVisible();
await personalFiles.sidenav.collapseSideNav();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar expanded').toBe(false);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar expanded').toBeHidden();
await personalFiles.reload();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar expanded').toBe(false);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar expanded').toBeHidden();
});
test('[XAT-5382] Sidenav can be collapsed and expanded', async ({ personalFiles }) => {
await personalFiles.navigate();
await personalFiles.sidenav.collapseSideNav();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar expanded').toBe(false);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar expanded').toBeHidden();
await personalFiles.sidenav.expandSideNav();
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar not expanded').toBeVisible();
});
test('[XAT-5386] The sidenav returns to the default state when navigating away from the search results page', async ({
@@ -81,6 +81,6 @@ test.describe('Sidebar', () => {
await personalFiles.navigate({ remoteUrl: `#/search;q=test` });
await searchPage.searchInput.searchCloseButton.click();
await searchPage.sidenav.expandedSidenav.waitFor({ state: 'attached' });
expect(await personalFiles.sidenav.isSidenavExpanded(), 'Sidebar not expanded').toBe(true);
await expect(personalFiles.sidenav.expandedSidenav, 'Sidebar not expanded').toBeVisible();
});
});
@@ -71,7 +71,7 @@ test.describe('Single click on item name', () => {
test('[XAT-4897] Navigate inside the folder when clicking the hyperlink - on Personal Files', async ({ personalFiles }) => {
await personalFiles.navigate();
await personalFiles.dataTable.setPaginationTo50();
await personalFiles.dataTable.goThroughPagesLookingForRowWithName(folder1);
await personalFiles.dataTable.getCellLinkByName(folder1).click();
await personalFiles.dataTable.spinnerWaitForReload();
while ((await personalFiles.breadcrumb.currentItem.innerText()) === 'Personal Files') {
@@ -76,7 +76,7 @@ test.describe('Search - Filters - Categories', () => {
await searchPage.searchFilters.categoriesFilter.click();
await searchPage.searchFiltersCategories.addOptionInput.fill(newSubcategories[0].name);
await searchPage.searchFilters.dropdownOptions.first().click();
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await expect(searchPage.dataTable.getRowByName(fileNamePdf)).toBeHidden();
await expect(searchPage.dataTable.getRowByName(fileNameJpg)).toBeVisible();
@@ -46,10 +46,10 @@ test.describe('Search - Filters - General', () => {
test('[XAT-5575] Search Filters Menu cards have proper titles', async ({ searchPage }) => {
async function checkMenuCardTitle(page: SearchPage, filterLocator: Locator, expectText: string): Promise<void> {
await filterLocator.click();
await expect(page.searchFilters.menuCardTitle).toContainText(expectText);
await page.searchFilters.menuCardClose.click();
await page.searchFilters.menuCardClose.waitFor({ state: 'hidden' });
await expect(page.searchFilters.menuCardClose).toBeHidden();
await expect(page.searchMenuCard.menuCardTitle).toContainText(expectText);
await page.searchMenuCard.menuCardClose.click();
await page.searchMenuCard.menuCardClose.waitFor({ state: 'hidden' });
await expect(page.searchMenuCard.menuCardClose).toBeHidden();
}
const testCases = [
@@ -88,12 +88,12 @@ test.describe('Search - Filters - General', () => {
const filterTextBefore = await searchPage.searchFilters.propertiesFilter.textContent();
await searchPage.searchFilters.propertiesFilter.click();
await searchPage.searchFiltersProperties.fileSizeInput.fill('1000');
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
const filterTextAfter = await searchPage.searchFilters.propertiesFilter.textContent();
await searchPage.searchFilters.propertiesFilter.click();
await searchPage.searchFilters.menuCardClear.click();
await searchPage.searchMenuCard.menuCardClear.click();
await searchPage.searchFiltersProperties.fileSizeInput.waitFor({ state: 'hidden' });
const filterTextCleared = await searchPage.searchFilters.propertiesFilter.textContent();
@@ -105,14 +105,14 @@ test.describe('Search - Filters - General', () => {
const propertiesFilterTextBefore = await searchPage.searchFilters.propertiesFilter.textContent();
await searchPage.searchFilters.propertiesFilter.click();
await searchPage.searchFiltersProperties.fileSizeInput.fill('1000');
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
const propertiesFilterTextAfter = await searchPage.searchFilters.propertiesFilter.textContent();
const logicFilterTextBefore = await searchPage.searchFilters.logicFilter.textContent();
await searchPage.searchFilters.logicFilter.click();
await searchPage.searchFiltersLogic.matchAllInput.fill('test');
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
const logicFilterTextAfter = await searchPage.searchFilters.logicFilter.textContent();
@@ -80,7 +80,7 @@ test.describe('Search - Filters - Logic', () => {
await searchPage.searchFiltersLogic.matchAllInput.fill(
`${logicFile1NameSplit[0]} ${logicFile1NameSplit[1]} ${logicFile1TitleSplit[1]} ${logicFile1DescriptionSplit[1]}`
);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
await expect(searchPage.dataTable.getRowByName(logicFile1.name)).toBeVisible();
@@ -92,7 +92,7 @@ test.describe('Search - Filters - Logic', () => {
await searchPage.searchFiltersLogic.matchAnyInput.fill(
`${logicFile1NameSplit[2]}-${logicFile1NameSplit[3]} ${logicFile1TitleSplit[0]} ${logicFile1DescriptionSplit[0]}`
);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(2);
@@ -106,7 +106,7 @@ test.describe('Search - Filters - Logic', () => {
`${logicFile1NameSplit[0]}-${logicFile1NameSplit[1]} ${logicFile1TitleSplit[0]} ${logicFile1DescriptionSplit[0]}`
);
await searchPage.searchFiltersLogic.excludeInput.fill(`${logicFile1DescriptionSplit[1]}`);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(1);
@@ -117,7 +117,7 @@ test.describe('Search - Filters - Logic', () => {
test('[XAT-5587] should able to filter search result with logic filter with Exact Phrase', async ({ searchPage }) => {
await searchPage.searchFilters.logicFilter.click();
await searchPage.searchFiltersLogic.matchExactInput.fill(logicFile1.name);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(1);
@@ -126,7 +126,7 @@ test.describe('Search - Filters - Logic', () => {
await searchPage.searchFilters.logicFilter.click();
await searchPage.searchFiltersLogic.matchExactInput.fill(logicFile1.title);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(1);
@@ -135,7 +135,7 @@ test.describe('Search - Filters - Logic', () => {
await searchPage.searchFilters.logicFilter.click();
await searchPage.searchFiltersLogic.matchExactInput.fill(logicFile1.description);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(1);
@@ -151,7 +151,7 @@ test.describe('Search - Filters - Logic', () => {
await searchPage.searchFiltersLogic.matchAnyInput.fill(`${logicFile1NameSplit[0]} ${logicFile1TitleSplit[2]}`);
await searchPage.searchFiltersLogic.excludeInput.fill(`${logicFile1NameSplit[3]}`);
await searchPage.searchFiltersLogic.matchExactInput.fill(`${logicFile2NameSplit[1]}-${logicFile2NameSplit[2]}-${logicFile2NameSplit[3]}`);
await searchPage.searchFilters.menuCardApply.click();
await searchPage.searchMenuCard.menuCardApply.click();
await searchPage.dataTable.progressBarWaitForReload();
expect(await searchPage.dataTable.getRowsCount()).toBe(1);
@@ -66,14 +66,14 @@ test.describe('Upload files', () => {
test('[XAT-17778] The upload dialog can be closed', async ({ personalFiles }) => {
await expect(personalFiles.uploadDialog.closeButton, 'Close button was not visible').toBeVisible();
await personalFiles.uploadDialog.closeButton.click();
await expect(personalFiles.uploadDialog.uploadDialog, 'Upload Dialog was visible').toBeHidden();
await expect(personalFiles.uploadDialog.uploadDialogContent, 'Upload Dialog was visible').toBeHidden();
});
test('[XAT-17779] The upload dialog can be minimized and maximized', async ({ personalFiles }) => {
await personalFiles.uploadDialog.minimizeButton.click();
await expect(personalFiles.uploadDialog.uploadDialogMinimized, 'Upload Dialog was not minimized').toBeVisible();
await personalFiles.uploadDialog.minimizeButton.click();
await expect(personalFiles.uploadDialog.uploadDialog, 'Upload Dialog was not maximized').toBeVisible();
await expect(personalFiles.uploadDialog.uploadDialogContent, 'Upload Dialog was not maximized').toBeVisible();
});
test('[XAT-5278] Upload history is expunged on browser refresh / close tab / close browser / log out', async ({ personalFiles, loginPage }) => {
@@ -88,6 +88,6 @@ test.describe('Upload files', () => {
myLibrariesPage
}) => {
await myLibrariesPage.navigate();
await expect(personalFiles.uploadDialog.uploadDialog, 'Upload Dialog was not visible').toBeVisible();
await expect(personalFiles.uploadDialog.uploadDialogContent, 'Upload Dialog was not visible').toBeVisible();
});
});