2
0
mirror of https://github.com/frappe/frappe.git synced 2024-06-03 02:30:49 +00:00
frappe/cypress/integration/grid_search.js
2022-08-04 14:51:01 +05:30

134 lines
4.9 KiB
JavaScript

import doctype_with_child_table from "../fixtures/doctype_with_child_table";
import child_table_doctype from "../fixtures/child_table_doctype";
import child_table_doctype_1 from "../fixtures/child_table_doctype_1";
const doctype_with_child_table_name = doctype_with_child_table.name;
context("Grid Search", () => {
before(() => {
cy.visit("/login");
cy.login();
cy.visit("/app/website");
cy.insert_doc("DocType", child_table_doctype, true);
cy.insert_doc("DocType", child_table_doctype_1, true);
cy.insert_doc("DocType", doctype_with_child_table, true);
return cy
.window()
.its("frappe")
.then((frappe) => {
return frappe.xcall(
"frappe.tests.ui_test_helpers.insert_doctype_with_child_table_record",
{
name: doctype_with_child_table_name,
}
);
});
});
it("Test search row visibility", () => {
cy.window()
.its("frappe")
.then((frappe) => {
frappe.model.user_settings.save("Doctype With Child Table", "GridView", {
"Child Table Doctype 1": [
{ fieldname: "data", columns: 2 },
{ fieldname: "barcode", columns: 1 },
{ fieldname: "check", columns: 1 },
{ fieldname: "rating", columns: 2 },
{ fieldname: "duration", columns: 2 },
{ fieldname: "date", columns: 2 },
],
});
});
cy.visit(`/app/doctype-with-child-table/Test Grid Search`);
cy.get('.frappe-control[data-fieldname="child_table_1"]').as("table");
cy.get("@table").find(".grid-row-check:last").click();
cy.get("@table").find(".grid-footer").contains("Delete").click();
cy.get(".grid-heading-row .grid-row .search").should("not.exist");
});
it("test search field for different fieldtypes", () => {
cy.visit(`/app/doctype-with-child-table/Test Grid Search`);
cy.get('.frappe-control[data-fieldname="child_table_1"]').as("table");
// Index Column
cy.get("@table").find(".grid-heading-row .row-index.search input").type("3");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 2);
cy.get("@table").find(".grid-heading-row .row-index.search input").clear();
// Data Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Data"]')
.type("Data");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 1);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Data"]').clear();
// Barcode Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Barcode"]')
.type("092");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 4);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Barcode"]').clear();
// Check Column
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Check"]').type("1");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 9);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Check"]').clear();
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Check"]').type("0");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 11);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Check"]').clear();
// Rating Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Rating"]')
.type("3");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 3);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Rating"]').clear();
// Duration Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Duration"]')
.type("3d");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 3);
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Duration"]')
.clear();
// Date Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Date"]')
.type("2022");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 4);
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Date"]').clear();
});
it("test with multiple filter", () => {
cy.get('.frappe-control[data-fieldname="child_table_1"]').as("table");
// Data Column
cy.get("@table").find('.grid-heading-row .search input[data-fieldtype="Data"]').type("a");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 10);
// Barcode Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Barcode"]')
.type("0");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 8);
// Duration Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Duration"]')
.type("d");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 5);
// Date Column
cy.get("@table")
.find('.grid-heading-row .search input[data-fieldtype="Date"]')
.type("02-");
cy.get("@table").find(".grid-body .rows .grid-row").should("have.length", 2);
});
});