diff --git a/cypress/integration/permissions.js b/cypress/integration/permissions.js index 7a13239771..4e371cc17f 100644 --- a/cypress/integration/permissions.js +++ b/cypress/integration/permissions.js @@ -1,16 +1,7 @@ context("Permissions API", () => { before(() => { cy.visit("/login"); - - cy.login("Administrator"); - cy.call("frappe.tests.ui_test_helpers.add_remove_role", { - action: "remove", - user: "frappe@example.com", - role: "System Manager", - }); - cy.call("logout"); - - cy.login("frappe@example.com"); + cy.remove_role("frappe@example.com", "System Manager"); cy.visit("/app"); }); @@ -44,14 +35,7 @@ context("Permissions API", () => { }); after(() => { - cy.call("logout"); - - cy.login("Administrator"); - cy.call("frappe.tests.ui_test_helpers.add_remove_role", { - action: "add", - user: "frappe@example.com", - role: "System Manager", - }); + cy.add_role("frappe@example.com", "System Manager"); cy.call("logout"); }); }); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 5862d85564..0a25ff5cab 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -371,6 +371,11 @@ Cypress.Commands.add("update_doc", (doctype, docname, args) => { }); }); +Cypress.Commands.add("switch_to_user", (user) => { + cy.call("logout"); + cy.login(user); +}); + Cypress.Commands.add("add_role", (user, role) => { cy.window() .its("frappe") @@ -391,8 +396,7 @@ Cypress.Commands.add("remove_role", (user, role) => { const add_remove_role = (action, user, role, session_user) => { if (session_user !== "Administrator") { - cy.call("logout"); - cy.login("Administrator"); + cy.switch_to_user("Administrator"); } cy.call("frappe.tests.ui_test_helpers.add_remove_role", { @@ -402,8 +406,7 @@ const add_remove_role = (action, user, role, session_user) => { }); if (session_user !== "Administrator") { - cy.call("logout"); - cy.login(session_user); + cy.switch_to_user(session_user); } }; diff --git a/frappe/tests/ui_test_helpers.py b/frappe/tests/ui_test_helpers.py index 05d3dedad6..16a5688cec 100644 --- a/frappe/tests/ui_test_helpers.py +++ b/frappe/tests/ui_test_helpers.py @@ -581,6 +581,40 @@ def create_kanban(): ).insert() +@whitelist_for_tests +def create_todo(description): + frappe.get_doc({"doctype": "ToDo", "description": description}).insert() + + +@whitelist_for_tests +def create_admin_kanban(): + if not frappe.db.exists("Kanban Board", "Admin Kanban"): + frappe.get_doc( + { + "doctype": "Kanban Board", + "name": "Admin Kanban", + "owner": "Administrator", + "kanban_board_name": "Admin Kanban", + "reference_doctype": "ToDo", + "field_name": "status", + "private": 0, + "show_labels": 0, + "columns": [ + { + "column_name": "Open", + "status": "Active", + "indicator": "Gray", + }, + { + "column_name": "Closed", + "status": "Active", + "indicator": "Gray", + }, + ], + } + ).insert() + + @whitelist_for_tests def add_remove_role(action, user, role): user_doc = frappe.get_doc("User", user)