mirror of
https://github.com/frappe/frappe.git
synced 2024-06-03 02:50:49 +00:00
95 lines
3.6 KiB
JavaScript
95 lines
3.6 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";
|
|
import doctype_to_link from "../fixtures/doctype_to_link";
|
|
const doctype_to_link_name = doctype_to_link.name;
|
|
const child_table_doctype_name = child_table_doctype.name;
|
|
|
|
context("Dashboard links", () => {
|
|
before(() => {
|
|
cy.visit("/login");
|
|
cy.login();
|
|
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);
|
|
cy.insert_doc("DocType", doctype_to_link, true);
|
|
return cy
|
|
.window()
|
|
.its("frappe")
|
|
.then((frappe) => {
|
|
return frappe.xcall("frappe.tests.ui_test_helpers.update_child_table", {
|
|
name: child_table_doctype_name,
|
|
});
|
|
});
|
|
});
|
|
|
|
it("Adding a new contact, checking for the counter on the dashboard and deleting the created contact", () => {
|
|
cy.visit("/app/contact");
|
|
cy.clear_filters();
|
|
|
|
cy.visit("/app/user");
|
|
cy.get(".list-row-col > .level-item > .ellipsis").eq(0).click({ force: true });
|
|
|
|
//To check if initially the dashboard contains only the "Contact" link and there is no counter
|
|
cy.get('[data-doctype="Contact"]').should("contain", "Contact");
|
|
|
|
//Adding a new contact
|
|
cy.get('.document-link-badge[data-doctype="Contact"]').click();
|
|
cy.wait(300);
|
|
cy.findByRole("button", { name: "Add Contact" }).should("be.visible");
|
|
cy.findByRole("button", { name: "Add Contact" }).click();
|
|
cy.get('[data-doctype="Contact"][data-fieldname="first_name"]').type("Admin");
|
|
cy.findByRole("button", { name: "Save" }).click();
|
|
cy.visit("/app/user");
|
|
cy.get(".list-row-col > .level-item > .ellipsis").eq(0).click({ force: true });
|
|
|
|
//To check if the counter for contact doc is "1" after adding the contact
|
|
cy.get('[data-doctype="Contact"] > .count').should("contain", "1");
|
|
cy.get('[data-doctype="Contact"]').contains("Contact").click();
|
|
|
|
//Deleting the newly created contact
|
|
cy.visit("/app/contact");
|
|
cy.get(".list-subject > .select-like > .list-row-checkbox").eq(0).click({ force: true });
|
|
cy.findByRole("button", { name: "Actions" }).click();
|
|
cy.get('.actions-btn-group [data-label="Delete"]').click();
|
|
cy.findByRole("button", { name: "Yes" }).click({ delay: 700 });
|
|
|
|
//To check if the counter from the "Contact" doc link is removed
|
|
cy.wait(700);
|
|
cy.visit("/app/user");
|
|
cy.get(".list-row-col > .level-item > .ellipsis").eq(0).click({ force: true });
|
|
cy.get('[data-doctype="Contact"]').should("contain", "Contact");
|
|
});
|
|
|
|
it("Report link in dashboard", () => {
|
|
cy.visit("/app/user");
|
|
cy.visit("/app/user/Administrator");
|
|
cy.get('[data-doctype="Contact"]').should("contain", "Contact");
|
|
cy.findByText("Connections");
|
|
cy.window()
|
|
.its("cur_frm")
|
|
.then((cur_frm) => {
|
|
cur_frm.dashboard.data.reports = [
|
|
{
|
|
label: "Reports",
|
|
items: ["Website Analytics"],
|
|
},
|
|
];
|
|
cur_frm.dashboard.render_report_links();
|
|
cy.get('[data-report="Website Analytics"]').contains("Website Analytics").click();
|
|
cy.findByText("Website Analytics");
|
|
});
|
|
});
|
|
|
|
it("check if child table is populated with linked field on creation from dashboard link", () => {
|
|
cy.new_form(doctype_to_link_name);
|
|
cy.fill_field("title", "Test Linking");
|
|
cy.findByRole("button", { name: "Save" }).click();
|
|
|
|
cy.get(".document-link .btn-new").click();
|
|
cy.get(
|
|
'.frappe-control[data-fieldname="child_table"] .rows .data-row .col[data-fieldname="doctype_to_link"]'
|
|
).should("contain.text", "Test Linking");
|
|
});
|
|
});
|