seitime-frappe/cypress/integration/list_view.js
2025-11-14 23:05:13 +05:30

82 lines
2.2 KiB
JavaScript

context("List View", () => {
before(() => {
cy.login();
cy.visit("/desk/website");
return cy
.window()
.its("frappe")
.then((frappe) => {
return frappe.xcall("frappe.tests.ui_test_helpers.setup_workflow");
});
});
it("Keep checkbox checked after Refresh", { scrollBehavior: false }, () => {
cy.go_to_list("ToDo");
cy.clear_filters();
cy.get(".list-header-subject .list-subject .list-check-all").click();
cy.get("button[data-original-title='Reload List']").click();
cy.get(".list-row-container .list-row-checkbox:checked").should("be.visible");
});
it('enables "Actions" button', { scrollBehavior: false }, () => {
const actions = [
"Approve",
"Reject",
"Export",
"Assign To",
"Clear Assignment",
"Apply Assignment Rule",
"Add Tags",
"Print",
];
cy.go_to_list("ToDo");
cy.clear_filters();
cy.get(".list-header-subject .list-subject .list-check-all").click();
cy.findByRole("button", { name: "Actions" }).click();
cy.get(".dropdown-menu li:visible .dropdown-item")
.should("have.length", 8)
.each((el, index) => {
cy.wrap(el).contains(actions[index]);
})
.then((elements) => {
cy.intercept({
method: "POST",
url: "api/method/frappe.model.workflow.bulk_workflow_approval",
}).as("bulk-approval");
cy.wrap(elements).contains("Approve").click();
cy.wait("@bulk-approval");
cy.hide_dialog();
cy.reload();
cy.clear_filters();
cy.get(".list-row-container:visible").should("contain", "Approved");
});
});
it("Adds a button to each list view row", () => {
// Get a ToDo with a reference name
cy.call("frappe.client.get_value", {
doctype: "ToDo",
filters: {
reference_name: ["is", "set"],
},
fieldname: "name",
}).then((r) => {
const todo_name = r.message.name;
cy.go_to_list("ToDo");
// Check if the 'Open' button is present in the ToDo list view
cy.get(`.btn-default[data-name="${todo_name}"]`)
.scrollIntoView({ inline: "center", block: "nearest" })
.should("be.visible")
.click();
cy.window()
.its("cur_frm")
.then((frm) => {
// Routes to the reference document
expect(frm.doc.doctype).to.equal("ToDo");
expect(frm.doc.name).to.not.equal(todo_name);
});
});
});
});