test(e2e): replace forced clicks with actionability checks

This commit is contained in:
Abhimanyu Saharan
2026-02-25 03:01:15 +05:30
parent 33b705a935
commit 8b7c728f32

View File

@@ -235,20 +235,26 @@ describe("/boards/:id task board", () => {
// Open create task flow. // Open create task flow.
// Board page uses an icon-only button with aria-label="New task". // Board page uses an icon-only button with aria-label="New task".
cy.get('button[aria-label="New task"]').click({ force: true }); cy.get('button[aria-label="New task"]')
.should("be.visible")
.and("not.be.disabled")
.click();
cy.contains('[role="dialog"]', "New task") cy.contains('[role="dialog"]', "New task")
.should("be.visible") .should("be.visible")
.within(() => { .within(() => {
cy.contains("label", "Title").parent().find("input").type("New task"); cy.contains("label", "Title").parent().find("input").type("New task");
cy.contains("button", /^Create task$/).click({ force: true }); cy.contains("button", /^Create task$/)
.should("be.visible")
.and("not.be.disabled")
.click();
}); });
cy.wait(["@createTask"]); cy.wait(["@createTask"]);
cy.contains("New task").should("be.visible"); cy.contains("New task").should("be.visible");
// Open edit task dialog. // Open edit task dialog.
cy.contains("Inbox task").click({ force: true }); cy.contains("Inbox task").scrollIntoView().should("be.visible").click();
cy.wait(["@taskComments"]); cy.wait(["@taskComments"]);
cy.contains(/task detail/i).should("be.visible"); cy.contains(/task detail/i).should("be.visible");
openEditTaskDialog(); openEditTaskDialog();
@@ -258,13 +264,16 @@ describe("/boards/:id task board", () => {
cy.contains("label", "Status") cy.contains("label", "Status")
.parent() .parent()
.within(() => { .within(() => {
cy.get('[role="combobox"]').first().click({ force: true }); cy.get('[role="combobox"]').first().should("be.visible").click();
}); });
}); });
cy.contains("In progress").click({ force: true }); cy.contains("In progress").should("be.visible").click();
cy.contains("button", /save changes/i).click({ force: true }); cy.contains("button", /save changes/i)
.should("be.visible")
.and("not.be.disabled")
.click();
cy.wait(["@updateTask"]); cy.wait(["@updateTask"]);
cy.get('[aria-label="Edit task"]').should("not.exist"); cy.get('[aria-label="Edit task"]').should("not.exist");
@@ -274,11 +283,17 @@ describe("/boards/:id task board", () => {
// Delete task via delete dialog. // Delete task via delete dialog.
cy.get('[aria-label="Edit task"]').within(() => { cy.get('[aria-label="Edit task"]').within(() => {
cy.contains("button", /^Delete task$/).click({ force: true }); cy.contains("button", /^Delete task$/)
.should("be.visible")
.and("not.be.disabled")
.click();
}); });
cy.get('[aria-label="Delete task"]').should("be.visible"); cy.get('[aria-label="Delete task"]').should("be.visible");
cy.get('[aria-label="Delete task"]').within(() => { cy.get('[aria-label="Delete task"]').within(() => {
cy.contains("button", /^Delete task$/).click({ force: true }); cy.contains("button", /^Delete task$/)
.should("be.visible")
.and("not.be.disabled")
.click();
}); });
cy.wait(["@deleteTask"]); cy.wait(["@deleteTask"]);