diff --git a/apps/chat-e2e/src/tests/chatBarConversation.test.ts b/apps/chat-e2e/src/tests/chatBarConversation.test.ts index 0809f404ff..512d94bf4e 100644 --- a/apps/chat-e2e/src/tests/chatBarConversation.test.ts +++ b/apps/chat-e2e/src/tests/chatBarConversation.test.ts @@ -758,7 +758,7 @@ dialTest( 1, ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderConversations.editFolderNameWithEnter(folderName); + await folderConversations.renameEmptyFolderWithEnter(folderName); await conversations.openEntityDropdownMenu(conversation.name); await conversationDropdownMenu.selectMenuOption(MenuOptions.moveTo); diff --git a/apps/chat-e2e/src/tests/chatBarFolderConversation.test.ts b/apps/chat-e2e/src/tests/chatBarFolderConversation.test.ts index c60813fe71..b95c4795c2 100644 --- a/apps/chat-e2e/src/tests/chatBarFolderConversation.test.ts +++ b/apps/chat-e2e/src/tests/chatBarFolderConversation.test.ts @@ -181,7 +181,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(randomFolderIndex), ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderConversations.editFolderNameWithEnter(newNameWithSpaces); + await folderConversations.renameEmptyFolderWithEnter(newNameWithSpaces); await expect .soft( folderConversations.getFolderByName(newNameWithSpaces.trim()), @@ -393,7 +393,9 @@ dialTest( await dialTest.step( 'Edit folder name using tick button and verify it is renamed', async () => { - await folderConversations.editFolderNameWithTick(newFolderNameToSet); + await folderConversations.renameFolderWithContentWithTick( + newFolderNameToSet, + ); await expect .soft(toast.getElementLocator(), ExpectedMessages.noErrorToastIsShown) .toBeHidden(); diff --git a/apps/chat-e2e/src/tests/folderNameNumeration.test.ts b/apps/chat-e2e/src/tests/folderNameNumeration.test.ts index 21722418e3..ace7c23bb1 100644 --- a/apps/chat-e2e/src/tests/folderNameNumeration.test.ts +++ b/apps/chat-e2e/src/tests/folderNameNumeration.test.ts @@ -115,9 +115,8 @@ dialTest( async () => { await folderConversations.openFolderDropdownMenu(incrementedFolderName); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderConversations.editFolderNameWithTick( + await folderConversations.renameEmptyFolderWithTick( GeneratorUtil.randomString(5), - { isHttpMethodTriggered: false }, ); await chatBar.createNewFolder(); @@ -174,7 +173,7 @@ dialTest( nestedFolders[nestedFolderLevel - 1].name, ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderConversations.editFolderNameWithTick( + await folderConversations.renameFolderWithContentWithTick( expectedDuplicatedFolderName, ); diff --git a/apps/chat-e2e/src/tests/folderPrompts.test.ts b/apps/chat-e2e/src/tests/folderPrompts.test.ts index ffa5b811d3..4df6de4a0a 100644 --- a/apps/chat-e2e/src/tests/folderPrompts.test.ts +++ b/apps/chat-e2e/src/tests/folderPrompts.test.ts @@ -124,7 +124,7 @@ dialTest( 'Select "Rename" option, set new name and verify folder is renamed', async () => { await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithEnter(newName); + await folderPrompts.renameEmptyFolderWithEnter(newName); await promptBarFolderAssertion.assertFolderState( { name: newName }, 'visible', @@ -196,7 +196,7 @@ dialTest( await dialHomePage.waitForPageLoaded(); await folderPrompts.openFolderDropdownMenu(promptInFolder.folders.name); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(newName); + await folderPrompts.renameFolderWithContentWithTick(newName); await expect .soft( folderPrompts.getFolderByName(newName), diff --git a/apps/chat-e2e/src/tests/promptFolderNamesakes.test.ts b/apps/chat-e2e/src/tests/promptFolderNamesakes.test.ts index 29e50afcb5..543af89a18 100644 --- a/apps/chat-e2e/src/tests/promptFolderNamesakes.test.ts +++ b/apps/chat-e2e/src/tests/promptFolderNamesakes.test.ts @@ -41,9 +41,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(1), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(duplicatedFolderName, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(duplicatedFolderName); }); await dialTest.step( @@ -53,7 +51,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(2), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(duplicatedFolderName, { + await folderPrompts.renameEmptyFolderWithTick(duplicatedFolderName, { isHttpMethodTriggered: false, }); const errorMessage = await toast.getElementContent(); @@ -207,9 +205,8 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(3), ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick( + await folderPrompts.renameEmptyFolderWithTick( ExpectedConstants.newFolderWithIndexTitle(2), - { isHttpMethodTriggered: false }, ); }); diff --git a/apps/chat-e2e/src/tests/promptFolderNumeration.test.ts b/apps/chat-e2e/src/tests/promptFolderNumeration.test.ts index b844dc34f1..0e66db4df4 100644 --- a/apps/chat-e2e/src/tests/promptFolderNumeration.test.ts +++ b/apps/chat-e2e/src/tests/promptFolderNumeration.test.ts @@ -163,9 +163,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(folderNumber), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick('Renamed Folder', { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick('Renamed Folder'); await promptBar.createNewFolder(); await expect @@ -211,9 +209,8 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(1), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick( + await folderPrompts.renameEmptyFolderWithTick( ExpectedConstants.newPromptFolderWithIndexTitle(999), - { isHttpMethodTriggered: false }, ); }); @@ -288,9 +285,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(i), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(duplicatedFolderName, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(duplicatedFolderName); await expect( folderPrompts.getFolderByName(duplicatedFolderName, i), ExpectedMessages.folderNameUpdated, diff --git a/apps/chat-e2e/src/tests/promptFoldersSpecialChars.test.ts b/apps/chat-e2e/src/tests/promptFoldersSpecialChars.test.ts index a5ed20fb55..2892a91805 100644 --- a/apps/chat-e2e/src/tests/promptFoldersSpecialChars.test.ts +++ b/apps/chat-e2e/src/tests/promptFoldersSpecialChars.test.ts @@ -81,9 +81,7 @@ dialTest( }); await dialTest.step('Rename it to contain special characters', async () => { - await folderPrompts.editFolderNameWithTick(newNameWithSpecialChars, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(newNameWithSpecialChars); await promptBarFolderAssertion.assertFolderState( { name: newNameWithSpecialChars }, 'visible', @@ -176,9 +174,7 @@ dialTest( async () => { await folderPrompts.openFolderDropdownMenu(expectedName); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(newNameWithEmojis, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(newNameWithEmojis); await promptBarFolderAssertion.assertFolderState( { name: newNameWithEmojis }, 'visible', diff --git a/apps/chat-e2e/src/tests/promptMaximumNameLength.test.ts b/apps/chat-e2e/src/tests/promptMaximumNameLength.test.ts index c04716ce8e..460ffde4cf 100644 --- a/apps/chat-e2e/src/tests/promptMaximumNameLength.test.ts +++ b/apps/chat-e2e/src/tests/promptMaximumNameLength.test.ts @@ -134,18 +134,14 @@ dialTest( ExpectedConstants.newPromptFolderWithIndexTitle(1), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(longName, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(longName); // Rename folder_child await folderPrompts.openFolderDropdownMenu( ExpectedConstants.newPromptFolderWithIndexTitle(2), ); await promptDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(longName, { - isHttpMethodTriggered: false, - }); + await folderPrompts.renameEmptyFolderWithTick(longName); }, ); diff --git a/apps/chat-e2e/src/tests/publishConversationToOrganisation.test.ts b/apps/chat-e2e/src/tests/publishConversationToOrganisation.test.ts index 05682f59a1..6ad69bda18 100644 --- a/apps/chat-e2e/src/tests/publishConversationToOrganisation.test.ts +++ b/apps/chat-e2e/src/tests/publishConversationToOrganisation.test.ts @@ -310,7 +310,7 @@ dialAdminTest( await dialTest.step('Verify folder renaming and max length', async () => { await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await selectFolders.editFolderNameWithTick(newFolderName, { + await selectFolders.renameEmptyFolderWithTick(newFolderName, { isHttpMethodTriggered: false, }); await selectFoldersAssertion.assertFolderState( @@ -406,7 +406,7 @@ dialAdminTest( true, ); //TODO: remove next line when fixed https://github.com/epam/ai-dial-chat/issues/2294 - await selectFolders.editFolderNameWithTick( + await selectFolders.renameEmptyFolderWithTick( GeneratorUtil.randomString(5), { isHttpMethodTriggered: false, diff --git a/apps/chat-e2e/src/tests/publishFolderWithConversation.test.ts b/apps/chat-e2e/src/tests/publishFolderWithConversation.test.ts index 7999afcaa7..cf7d924b9f 100644 --- a/apps/chat-e2e/src/tests/publishFolderWithConversation.test.ts +++ b/apps/chat-e2e/src/tests/publishFolderWithConversation.test.ts @@ -547,7 +547,7 @@ dialAdminTest( 'Create new folder, select it and verify publish path changed', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick(orgFolder, { + await selectFolders.renameEmptyFolderWithTick(orgFolder, { isHttpMethodTriggered: false, }); await selectFolderModal.clickSelectFolderButton({ diff --git a/apps/chat-e2e/src/tests/publishPrompt.test.ts b/apps/chat-e2e/src/tests/publishPrompt.test.ts index 415e4e495e..d8192d36e1 100644 --- a/apps/chat-e2e/src/tests/publishPrompt.test.ts +++ b/apps/chat-e2e/src/tests/publishPrompt.test.ts @@ -87,10 +87,14 @@ dialAdminTest( .getChangePublishToPath() .changeButton.click(); await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithEnter(folderName); + await selectFolders.renameEmptyFolderWithEnter(folderName, { + isHttpMethodTriggered: false, + }); await selectFolders.openFolderDropdownMenu(folderName); await folderDropdownMenu.selectMenuOption(MenuOptions.addNewFolder); - await selectFolders.editFolderNameWithEnter(`${folderName} 2`); + await selectFolders.renameEmptyFolderWithEnter(`${folderName} 2`, { + isHttpMethodTriggered: false, + }); await selectFolders.openFolderDropdownMenu(`${folderName} 2`); await folderDropdownMenu.selectMenuOption(MenuOptions.delete); await confirmationDialog.confirm(); @@ -121,10 +125,14 @@ dialAdminTest( 'User creates folder and rename it under Organization, user renames folder', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithEnter(`${folderName}_rename`); + await selectFolders.renameEmptyFolderWithEnter(`${folderName}_rename`, { + isHttpMethodTriggered: false, + }); await selectFolders.openFolderDropdownMenu(`${folderName}_rename`); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await selectFolders.editFolderNameWithEnter(folderName); + await selectFolders.renameEmptyFolderWithEnter(folderName, { + isHttpMethodTriggered: false, + }); }, ); @@ -143,7 +151,9 @@ dialAdminTest( .getChangePublishToPath() .changeButton.click(); await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithEnter(folderName); + await selectFolders.renameEmptyFolderWithEnter(folderName, { + isHttpMethodTriggered: false, + }); }, ); @@ -514,14 +524,18 @@ dialAdminTest( .getChangePublishToPath() .changeButton.click(); await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithEnter(`${folderNameTemplate} 1`); + await selectFolders.renameEmptyFolderWithEnter( + `${folderNameTemplate} 1`, + { isHttpMethodTriggered: false }, + ); for (let i = 1; i < 4; i++) { await selectFolders.openFolderDropdownMenu( `${folderNameTemplate} ${i}`, ); await folderDropdownMenu.selectMenuOption(MenuOptions.addNewFolder); - await selectFolders.editFolderNameWithEnter( + await selectFolders.renameEmptyFolderWithEnter( `${folderNameTemplate} ${i + 1}`, + { isHttpMethodTriggered: false }, ); } await selectFolders.openFolderDropdownMenu(`${folderNameTemplate} 4`); diff --git a/apps/chat-e2e/src/tests/selectUploadFolder.test.ts b/apps/chat-e2e/src/tests/selectUploadFolder.test.ts index 60ac7b6900..31a5679425 100644 --- a/apps/chat-e2e/src/tests/selectUploadFolder.test.ts +++ b/apps/chat-e2e/src/tests/selectUploadFolder.test.ts @@ -72,7 +72,9 @@ dialTest( await dialTest.step( 'Set new name, hit Enter and verify name is updated, edit mode is closed', async () => { - await selectFolders.editFolderNameWithEnter(updatedFolderName); + await selectFolders.renameEmptyFolderWithEnter(updatedFolderName, { + isHttpMethodTriggered: false, + }); await expect .soft( selectFolders.getEditFolderInput().getElementLocator(), @@ -255,7 +257,7 @@ dialTest( 'Click "Create new folder" icon, set long folder name and verify it is truncated with dots', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick(longFolderName, { + await selectFolders.renameEmptyFolderWithTick(longFolderName, { isHttpMethodTriggered: false, }); const folderNameOverflowProp = await selectFolders @@ -296,7 +298,7 @@ dialTest( async () => { await selectFolders.openFolderDropdownMenu(longFolderName); await folderDropdownMenu.selectMenuOption(MenuOptions.addNewFolder); - await selectFolders.editFolderNameWithTick(longFolderName, { + await selectFolders.renameEmptyFolderWithTick(longFolderName, { isHttpMethodTriggered: false, }); const childFolderNameOverflowProp = await selectFolders @@ -376,7 +378,7 @@ dialTest( 'Click "Create new folder" again and edit name to "New folder 999"', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick( + await selectFolders.renameEmptyFolderWithTick( ExpectedConstants.newFolderWithIndexTitle(updateFoldeNameIndex), { isHttpMethodTriggered: false }, ); @@ -521,7 +523,7 @@ dialTest( 2, ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await selectFolders.editFolderNameWithTick(newChildFolderName, { + await selectFolders.renameEmptyFolderWithTick(newChildFolderName, { isHttpMethodTriggered: false, }); await expect @@ -543,7 +545,7 @@ dialTest( ExpectedConstants.newFolderWithIndexTitle(1), ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await selectFolders.editFolderNameWithTick(newParentFolderName, { + await selectFolders.renameEmptyFolderWithTick(newParentFolderName, { isHttpMethodTriggered: false, }); //TODO: remove next line when fixed https://github.com/epam/ai-dial-chat/issues/1551 @@ -602,7 +604,7 @@ dialTest( 'Click "Create new folder" again, set new folder name with end dot, confirm and verify error toast is shown', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick( + await selectFolders.renameEmptyFolderWithTick( `${GeneratorUtil.randomString(10)}.`, { isHttpMethodTriggered: false }, ); @@ -620,7 +622,7 @@ dialTest( 'Create new folder, set name to already existing one, confirm and verify error message is shown', async () => { await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick( + await selectFolders.renameEmptyFolderWithTick( ExpectedConstants.newFolderWithIndexTitle(1), { isHttpMethodTriggered: false }, ); @@ -673,7 +675,7 @@ dialTest( async () => { const nameWithSpaces = GeneratorUtil.randomArrayElement(['', ' ']); await selectFolderModal.newFolderButton.click(); - await selectFolders.editFolderNameWithTick(nameWithSpaces, { + await selectFolders.renameEmptyFolderWithTick(nameWithSpaces, { isHttpMethodTriggered: false, }); await expect diff --git a/apps/chat-e2e/src/tests/sharedChatIcons.test.ts b/apps/chat-e2e/src/tests/sharedChatIcons.test.ts index 24501bccdc..f3936ca064 100644 --- a/apps/chat-e2e/src/tests/sharedChatIcons.test.ts +++ b/apps/chat-e2e/src/tests/sharedChatIcons.test.ts @@ -764,7 +764,10 @@ dialTest( nestedFolders[nestedLevel - 2].name, ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderConversations.editFolderNameWithEnter(newFolderName); + await folderConversations.renameFolderWithContentWithEnter( + newFolderName, + { isHttpMethodTriggered: false }, + ); expect .soft( diff --git a/apps/chat-e2e/src/tests/sharedFilesAttachments.test.ts b/apps/chat-e2e/src/tests/sharedFilesAttachments.test.ts index 85aa710b54..2668a73dcc 100644 --- a/apps/chat-e2e/src/tests/sharedFilesAttachments.test.ts +++ b/apps/chat-e2e/src/tests/sharedFilesAttachments.test.ts @@ -666,6 +666,8 @@ dialSharedWithMeTest( await additionalShareUserDialHomePage.waitForPageLoaded(); await additionalShareUserSharedWithMeConversations.selectConversation( conversationWithTwoRequestsWithAttachments.name, + undefined, + { isHttpMethodTriggered: true }, ); await additionalShareUserChatMessages.expandChatMessageAttachment( @@ -695,6 +697,8 @@ dialSharedWithMeTest( async () => { await additionalShareUserSharedWithMeConversations.selectConversation( conversationWithTwoResponsesWithAttachments.name, + undefined, + { isHttpMethodTriggered: true }, ); await additionalShareUserChatMessages.expandChatMessageAttachment( @@ -734,6 +738,8 @@ dialSharedWithMeTest( await additionalShareUserSharedWithMeConversations.selectConversation( user1ConversationInFolder.name, + undefined, + { isHttpMethodTriggered: true }, ); await additionalShareUserChatMessages.expandChatMessageAttachment( diff --git a/apps/chat-e2e/src/tests/sharedPromptFolderIcons.test.ts b/apps/chat-e2e/src/tests/sharedPromptFolderIcons.test.ts index 003b4c2751..edb72bd931 100644 --- a/apps/chat-e2e/src/tests/sharedPromptFolderIcons.test.ts +++ b/apps/chat-e2e/src/tests/sharedPromptFolderIcons.test.ts @@ -137,7 +137,7 @@ dialTest( nestedFolders[sharedFolderIndex].name, ); await folderDropdownMenu.selectMenuOption(MenuOptions.rename); - await folderPrompts.editFolderNameWithTick(newFolderName, { + await folderPrompts.renameEmptyFolderWithTick(newFolderName, { isHttpMethodTriggered: false, }); await confirmationDialogAssertion.assertConfirmationMessage( diff --git a/apps/chat-e2e/src/ui/webElements/chatMessages.ts b/apps/chat-e2e/src/ui/webElements/chatMessages.ts index 175154929d..a28a0b46c2 100644 --- a/apps/chat-e2e/src/ui/webElements/chatMessages.ts +++ b/apps/chat-e2e/src/ui/webElements/chatMessages.ts @@ -189,37 +189,32 @@ export class ChatMessages extends BaseElement { attachmentTitle: string, { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, ) { - const isCollapsed = - await this.getCollapsedChatMessageAttachment(message).isVisible(); - if (isCollapsed) { - const messageAttachment = this.getChatMessageAttachment( - message, - attachmentTitle, + await this.getCollapsedChatMessageAttachment(message).waitFor(); + const messageAttachment = this.getChatMessageAttachment( + message, + attachmentTitle, + ); + if (isApiStorageType && isHttpMethodTriggered) { + const respPromise = this.page.waitForResponse( + (resp) => + resp.request().method() === 'GET' && + resp.url().includes(attachmentTitle), + { timeout: config.use!.actionTimeout! * 2 }, ); - if (isApiStorageType && isHttpMethodTriggered) { - const respPromise = this.page.waitForResponse( - (resp) => - resp.request().method() === 'GET' && - resp.url().includes(attachmentTitle), - { timeout: config.use!.actionTimeout! * 2 }, - ); - await messageAttachment.click(); - return respPromise; - } await messageAttachment.click(); + return respPromise; } + await messageAttachment.click(); } public async collapseChatMessageAttachment( message: string | number, attachmentTitle: string, ) { - const isExpanded = await this.getChatMessage(message) + await this.getChatMessage(message) .locator(ChatSelectors.attachmentExpanded) - .isVisible(); - if (isExpanded) { - await this.getChatMessageAttachment(message, attachmentTitle).click(); - } + .waitFor(); + await this.getChatMessageAttachment(message, attachmentTitle).click(); } public async getChatMessageAttachmentUrl(message: string | number) { diff --git a/apps/chat-e2e/src/ui/webElements/entityTree/folders.ts b/apps/chat-e2e/src/ui/webElements/entityTree/folders.ts index c23c58b705..d9c83bf9a6 100644 --- a/apps/chat-e2e/src/ui/webElements/entityTree/folders.ts +++ b/apps/chat-e2e/src/ui/webElements/entityTree/folders.ts @@ -205,25 +205,103 @@ export class Folders extends BaseElement { return this.folderDotsMenu(name, index); } - public async editFolderNameWithEnter(newName: string) { - await this.editFolderName(newName); - await this.page.keyboard.press(keys.enter); + public async renameEmptyFolderWithEnter( + newName: string, + { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, + ) { + await this.renameEmptyFolder( + newName, + () => this.page.keyboard.press(keys.enter), + { isHttpMethodTriggered }, + ); } - public async editFolderNameWithTick( + public async renameFolderWithContentWithEnter( + newName: string, + { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, + ) { + await this.renameFolderWithContent( + newName, + () => this.page.keyboard.press(keys.enter), + { isHttpMethodTriggered }, + ); + } + + public async renameEmptyFolderWithTick( + newName: string, + { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, + ) { + const folderInputActions = this.getEditFolderInputActions(); + await this.renameEmptyFolder( + newName, + () => folderInputActions.clickTickButton(), + { + isHttpMethodTriggered, + }, + ); + } + + public async renameFolderWithContentWithTick( newName: string, { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, ) { - await this.editFolderName(newName); const folderInputActions = this.getEditFolderInputActions(); + await this.renameFolderWithContent( + newName, + () => folderInputActions.clickTickButton(), + { isHttpMethodTriggered }, + ); + } + + //listing API is triggered if to rename folder on side panel + //no API is triggered if to rename folder in 'Manage Attachments' or 'Change path' modals + public async renameEmptyFolder( + newName: string, + method: () => Promise, + { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, + ) { + await this.editFolderName(newName); if (isHttpMethodTriggered && isApiStorageType) { const respPromise = this.page.waitForResponse((resp) => - resp.url().includes(API.moveHost), + resp.url().includes(API.listingHost), ); - await folderInputActions.clickTickButton(); + await method(); return respPromise; } - await folderInputActions.clickTickButton(); + await method(); + } + + //3 API calls are triggered if to rename folder with content + //if shared folder is renamed, confirmation popup is prompted + public async renameFolderWithContent( + newName: string, + method: () => Promise, + { isHttpMethodTriggered = true }: { isHttpMethodTriggered?: boolean } = {}, + ) { + await this.editFolderName(newName); + if (isApiStorageType && isHttpMethodTriggered) { + const hostsMap = new Map([ + [API.listingHost, 'GET'], + [API.moveHost, 'POST'], + ['/api/', 'PUT'], + ]); + const responses = []; + for (const [host, method] of hostsMap) { + const resp = this.page.waitForResponse( + (response) => + response.url().includes(host) && + response.request().method() === method && + response.status() === 200, + ); + responses.push(resp); + } + await method(); + for (const resp of responses) { + await resp; + } + } else { + await method(); + } } public async editFolderName(newName: string) {