test: Kanban Test fails to remove System Manager role (#20505)

* fix: Kanban Test fails to remove System Manager role

- As there's only one user with System Manager role, role removal is reverted
- Add another user with this role, so that role removal on test user works

* chore: Reuse `create_test_user` util

* fix: user switching in kanban test

---------

Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
This commit is contained in:
Marica 2023-04-02 15:14:40 +05:30 committed by GitHub
parent d35e486124
commit f206b1582e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 11 deletions

View file

@ -98,15 +98,17 @@ context("Kanban Board", () => {
});
it("Checks if Kanban Board edits are blocked for non-System Manager and non-owner of the Board", () => {
// create admin kanban board
cy.call("frappe.tests.ui_test_helpers.create_todo", { description: "Frappe User ToDo" });
cy.switch_to_user("Administrator");
cy.call("frappe.tests.ui_test_helpers.create_admin_kanban");
// remove sys manager
cy.remove_role("frappe@example.com", "System Manager");
cy.switch_to_user("frappe@example.com");
const noSystemManager = "nosysmanager@example.com";
cy.call("frappe.tests.ui_test_helpers.create_test_user", {
username: noSystemManager,
});
cy.remove_role(noSystemManager, "System Manager");
cy.call("frappe.tests.ui_test_helpers.create_todo", { description: "Frappe User ToDo" });
cy.call("frappe.tests.ui_test_helpers.create_admin_kanban");
cy.switch_to_user(noSystemManager);
cy.visit("/app/todo/view/kanban/Admin Kanban");
@ -122,7 +124,8 @@ context("Kanban Board", () => {
// Column actions should be hidden (dropdown for 'Archive' and indicators)
cy.get(".kanban .column-options").should("have.length", 0);
cy.add_role("frappe@example.com", "System Manager");
cy.switch_to_user("Administrator");
cy.call("frappe.client.delete", { doctype: "User", name: noSystemManager });
});
after(() => {

View file

@ -426,12 +426,15 @@ def create_blog_post():
return doc
def create_test_user():
if frappe.db.exists("User", UI_TEST_USER):
@whitelist_for_tests
def create_test_user(username=None):
name = username or UI_TEST_USER
if frappe.db.exists("User", name):
return
user = frappe.new_doc("User")
user.email = UI_TEST_USER
user.email = name
user.first_name = "Frappe"
user.new_password = frappe.local.conf.admin_password
user.send_welcome_email = 0