test: new test case for renaming JS Object (#38361)
## Description This PR adds a test case for the bug: https://github.com/appsmithorg/appsmith/issues/38207 This PR tests the issue where renaming a JS Object via the context menu caused the focus to shift to another tab in the editor. Changes: - Added test cases to validate that focus remains on the current tab while renaming JS Objects. - Verified the functionality by renaming multiple JS Objects and ensuring the changes are reflected without altering tab focus. ## Automation /ok-to-test tags="@tag.JS" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/12492186342> > Commit: 5611d13c3a8d6fd26598a463b25e370e381323f5 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12492186342&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS` > Spec: > <hr>Wed, 25 Dec 2024 11:16:53 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a method to rename JavaScript objects via the context menu in the JSEditor. - Added a property for referencing the list of JavaScript objects. - **Tests** - Implemented a new test suite to validate the renaming functionality and ensure focus remains on the correct tab during the process. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
parent
0c1a1d8ee4
commit
199233be47
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { jsEditor } from "../../../../support/Objects/ObjectsCore";
|
||||||
|
|
||||||
|
describe(
|
||||||
|
"To test [Bug]: Action redesign: Focus shifts to another tab when renaming a JSObject #38207",
|
||||||
|
{ tags: ["@tag.JS"] },
|
||||||
|
() => {
|
||||||
|
it("1. Validate that focus does not shift to another tab while renaming JS Objects from the context menu", () => {
|
||||||
|
// Create first JS file
|
||||||
|
jsEditor.CreateJSObject("", { prettify: false, toRun: false });
|
||||||
|
|
||||||
|
// Rename the first JS Object
|
||||||
|
jsEditor.RenameJSObjectFromContextMenu("ChangedName1");
|
||||||
|
|
||||||
|
// Validate the new name of the JS Object
|
||||||
|
cy.get(jsEditor.listOfJsObjects).eq(0).contains("ChangedName1");
|
||||||
|
|
||||||
|
// Create second JS file
|
||||||
|
jsEditor.CreateJSObject("", { prettify: false, toRun: false });
|
||||||
|
|
||||||
|
// Create third JS file
|
||||||
|
jsEditor.CreateJSObject("", { prettify: false, toRun: false });
|
||||||
|
|
||||||
|
// Rename the third JS Object
|
||||||
|
jsEditor.RenameJSObjectFromContextMenu("ChangedName3");
|
||||||
|
|
||||||
|
// Validate the new name of the 3rd JS Objcte
|
||||||
|
cy.get(jsEditor.listOfJsObjects).eq(2).contains("ChangedName3");
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
@ -36,6 +36,7 @@ export class JSEditor {
|
||||||
public settingsTriggerLocator = "[data-testid='t--js-settings-trigger']";
|
public settingsTriggerLocator = "[data-testid='t--js-settings-trigger']";
|
||||||
public contextMenuTriggerLocator = "[data-testid='t--more-action-trigger']";
|
public contextMenuTriggerLocator = "[data-testid='t--more-action-trigger']";
|
||||||
public runFunctionSelectLocator = "[data-testid='t--js-function-run']";
|
public runFunctionSelectLocator = "[data-testid='t--js-function-run']";
|
||||||
|
public listOfJsObjects = "[data-testid='t--tabs-container']>div>span";
|
||||||
|
|
||||||
public toolbar = new PluginEditorToolbar(
|
public toolbar = new PluginEditorToolbar(
|
||||||
this.runButtonLocator,
|
this.runButtonLocator,
|
||||||
|
|
@ -230,6 +231,13 @@ export class JSEditor {
|
||||||
PageLeftPane.assertPresence(renameVal);
|
PageLeftPane.assertPresence(renameVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RenameJSObjectFromContextMenu(renameVal: string) {
|
||||||
|
cy.get(this.contextMenuTriggerLocator).click();
|
||||||
|
cy.contains("Rename").should("be.visible").click();
|
||||||
|
cy.get(this._jsObjTxt).clear().type(renameVal, { force: true }).blur();
|
||||||
|
PageLeftPane.assertPresence(renameVal);
|
||||||
|
}
|
||||||
|
|
||||||
public RenameJSObjFromExplorer(entityName: string, renameVal: string) {
|
public RenameJSObjFromExplorer(entityName: string, renameVal: string) {
|
||||||
this.ee.ActionContextMenuByEntityName({
|
this.ee.ActionContextMenuByEntityName({
|
||||||
entityNameinLeftSidebar: entityName,
|
entityNameinLeftSidebar: entityName,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user