2
0
mirror of https://github.com/frappe/frappe.git synced 2024-06-13 12:42:23 +00:00
frappe/cypress/integration/control_data.js
2022-08-04 14:51:01 +05:30

146 lines
5.3 KiB
JavaScript

context("Data Control", () => {
before(() => {
cy.login();
cy.visit("/app/doctype");
return cy
.window()
.its("frappe")
.then((frappe) => {
return frappe.xcall("frappe.tests.ui_test_helpers.create_doctype", {
name: "Test Data Control",
fields: [
{
label: "Name",
fieldname: "name1",
fieldtype: "Data",
options: "Name",
in_list_view: 1,
reqd: 1,
},
{
label: "Email-ID",
fieldname: "email",
fieldtype: "Data",
options: "Email",
in_list_view: 1,
reqd: 1,
},
{
label: "Phone No.",
fieldname: "phone",
fieldtype: "Data",
options: "Phone",
in_list_view: 1,
reqd: 1,
},
],
});
});
});
it("check custom formatters", () => {
cy.visit(`/app/doctype/User`);
cy.get(
'[data-fieldname="fields"] .grid-row[data-idx="2"] [data-fieldname="fieldtype"] .static-area'
).should("have.text", "🔵 Section Break");
});
it('Verifying data control by inputting different patterns for "Name" field', () => {
cy.new_form("Test Data Control");
//Checking the URL for the new form of the doctype
cy.location("pathname").should("eq", "/app/test-data-control/new-test-data-control-1");
cy.get(".title-text").should("have.text", "New Test Data Control");
cy.get('.frappe-control[data-fieldname="name1"]')
.find("label")
.should("have.class", "reqd");
cy.get('.frappe-control[data-fieldname="email"]')
.find("label")
.should("have.class", "reqd");
cy.get('.frappe-control[data-fieldname="phone"]')
.find("label")
.should("have.class", "reqd");
//Checking if the status is "Not Saved" initially
cy.get(".indicator-pill").should("have.text", "Not Saved");
//Inputting data in the field
cy.fill_field("name1", "@@###", "Data");
cy.fill_field("email", "test@example.com", "Data");
cy.fill_field("phone", "9834280031", "Data");
//Checking if the border color of the field changes to red
cy.get('.frappe-control[data-fieldname="name1"]').should("have.class", "has-error");
cy.save();
//Checking for the error message
cy.get(".modal-title").should("have.text", "Message");
cy.get(".msgprint").should("have.text", "@@### is not a valid Name");
cy.hide_dialog();
cy.get_field("name1", "Data").clear({ force: true });
cy.fill_field("name1", "Komal{}/!", "Data");
cy.get('.frappe-control[data-fieldname="name1"]').should("have.class", "has-error");
cy.save();
cy.get(".modal-title").should("have.text", "Message");
cy.get(".msgprint").should("have.text", "Komal{}/! is not a valid Name");
cy.hide_dialog();
});
it('Verifying data control by inputting different patterns for "Email" field', () => {
cy.get_field("name1", "Data").clear({ force: true });
cy.fill_field("name1", "Komal", "Data");
cy.get_field("email", "Data").clear({ force: true });
cy.fill_field("email", "komal", "Data");
cy.get('.frappe-control[data-fieldname="email"]').should("have.class", "has-error");
cy.save();
cy.get(".modal-title").should("have.text", "Message");
cy.get(".msgprint").should("have.text", "komal is not a valid Email Address");
cy.hide_dialog();
cy.get_field("email", "Data").clear({ force: true });
cy.fill_field("email", "komal@test", "Data");
cy.get('.frappe-control[data-fieldname="email"]').should("have.class", "has-error");
cy.save();
cy.get(".modal-title").should("have.text", "Message");
cy.get(".msgprint").should("have.text", "komal@test is not a valid Email Address");
cy.hide_dialog();
});
it('Verifying data control by inputting different patterns for "Phone" field', () => {
cy.get_field("email", "Data").clear({ force: true });
cy.fill_field("email", "komal@test.com", "Data");
cy.get_field("phone", "Data").clear({ force: true });
cy.fill_field("phone", "komal", "Data");
cy.get('.frappe-control[data-fieldname="phone"]').should("have.class", "has-error");
cy.findByRole("button", { name: "Save" }).click({ force: true });
cy.get(".modal-title").should("have.text", "Message");
cy.get(".msgprint").should("have.text", "komal is not a valid Phone Number");
cy.hide_dialog();
});
it("Inputting correct data and saving the doc", () => {
//Inputting the data as expected and saving the document
cy.get_field("name1", "Data").clear({ force: true });
cy.get_field("email", "Data").clear({ force: true });
cy.get_field("phone", "Data").clear({ force: true });
cy.fill_field("name1", "Komal", "Data");
cy.fill_field("email", "komal@test.com", "Data");
cy.fill_field("phone", "9432380001", "Data");
cy.findByRole("button", { name: "Save" }).click({ force: true });
//Checking if the fields contains the data which has been filled in
cy.location("pathname").should("not.be", "/app/test-data-control/new-test-data-control-1");
cy.get_field("name1").should("have.value", "Komal");
cy.get_field("email").should("have.value", "komal@test.com");
cy.get_field("phone").should("have.value", "9432380001");
});
it("Deleting the doc", () => {
//Deleting the inserted document
cy.go_to_list("Test Data Control");
cy.get(".list-row-checkbox").eq(0).click({ force: true });
cy.get(".actions-btn-group > .btn").contains("Actions").click();
cy.get('.actions-btn-group > .dropdown-menu [data-label="Delete"]').click();
cy.click_modal_primary_button("Yes");
});
});