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

215 lines
7.2 KiB
JavaScript

context("Workspace 2.0", () => {
before(() => {
cy.visit("/login");
cy.login();
});
it("Navigate to page from sidebar", () => {
cy.visit("/app/build");
cy.get(".codex-editor__redactor .ce-block");
cy.get('.sidebar-item-container[item-name="Settings"]').first().click();
cy.location("pathname").should("eq", "/app/settings");
});
it("Create Private Page", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.new_page",
}).as("new_page");
cy.get(".codex-editor__redactor .ce-block");
cy.get('.custom-actions button[data-label="Create%20Workspace"]').click();
cy.fill_field("title", "Test Private Page", "Data");
cy.fill_field("icon", "edit", "Icon");
cy.get_open_dialog().find(".modal-header").click();
cy.get_open_dialog().find(".btn-primary").click();
// check if sidebar item is added in pubic section
cy.get('.sidebar-item-container[item-name="Test Private Page"]').should(
"have.attr",
"item-public",
"0"
);
cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
cy.wait(300);
cy.get('.sidebar-item-container[item-name="Test Private Page"]').should(
"have.attr",
"item-public",
"0"
);
cy.wait("@new_page");
});
it("Create Child Page", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.new_page",
}).as("new_page");
cy.get(".codex-editor__redactor .ce-block");
cy.get('.custom-actions button[data-label="Create%20Workspace"]').click();
cy.fill_field("title", "Test Child Page", "Data");
cy.fill_field("parent", "Test Private Page", "Select");
cy.fill_field("icon", "edit", "Icon");
cy.get_open_dialog().find(".modal-header").click();
cy.get_open_dialog().find(".btn-primary").click();
// check if sidebar item is added in pubic section
cy.get('.sidebar-item-container[item-name="Test Child Page"]').should(
"have.attr",
"item-public",
"0"
);
cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
cy.wait(300);
cy.get('.sidebar-item-container[item-name="Test Child Page"]').should(
"have.attr",
"item-public",
"0"
);
cy.wait("@new_page");
});
it("Duplicate Page", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.duplicate_page",
}).as("page_duplicated");
cy.get(".codex-editor__redactor .ce-block");
cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
cy.get('.sidebar-item-container[item-name="Test Private Page"]').as("sidebar-item");
cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
cy.get("@sidebar-item").find(".dropdown-btn").first().click();
cy.get("@sidebar-item")
.find(".dropdown-list .dropdown-item")
.contains("Duplicate")
.first()
.click({ force: true });
cy.get_open_dialog().fill_field("title", "Duplicate Page", "Data");
cy.click_modal_primary_button("Duplicate");
cy.wait("@page_duplicated");
});
it("Drag Sidebar Item", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.sort_pages",
}).as("page_sorted");
cy.get('.sidebar-item-container[item-name="Duplicate Page"]').as("sidebar-item");
cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
cy.get("@sidebar-item").find(".drag-handle").first().move({ deltaX: 0, deltaY: 100 });
cy.get('.sidebar-item-container[item-name="Build"]').as("sidebar-item");
cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
cy.get("@sidebar-item").find(".drag-handle").first().move({ deltaX: 0, deltaY: 100 });
cy.wait("@page_sorted");
});
it("Edit Page Detail", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.update_page",
}).as("page_updated");
cy.get('.sidebar-item-container[item-name="Test Private Page"]').as("sidebar-item");
cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
cy.get("@sidebar-item").find(".dropdown-btn").first().click();
cy.get("@sidebar-item")
.find(".dropdown-list .dropdown-item")
.contains("Edit")
.first()
.click({ force: true });
cy.get_open_dialog().fill_field("title", " 1", "Data");
cy.get_open_dialog().find('input[data-fieldname="is_public"]').check();
cy.click_modal_primary_button("Update");
cy.get(
'.standard-sidebar-section:first .sidebar-item-container[item-name="Test Private Page"]'
).should("not.exist");
cy.get(
'.standard-sidebar-section:last .sidebar-item-container[item-name="Test Private Page 1"]'
).should("exist");
cy.wait("@page_updated");
});
it("Add New Block", () => {
cy.get('.sidebar-item-container[item-name="Duplicate Page"]').as("sidebar-item");
cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
cy.get(".ce-block").click().type("{enter}");
cy.get(".block-list-container .block-list-item").contains("Heading").click();
cy.get(":focus").type("Header");
cy.get(".ce-block:last").find(".ce-header").should("exist");
cy.get(".ce-block:last").click().type("{enter}");
cy.get(".block-list-container .block-list-item").contains("Text").click();
cy.get(":focus").type("Paragraph text");
cy.get(".ce-block:last").find(".ce-paragraph").should("exist");
});
it("Delete A Block", () => {
cy.get(":focus").click();
cy.get(".paragraph-control .setting-btn").click();
cy.get(".paragraph-control .dropdown-item").contains("Delete").click();
cy.get(".ce-block:last").find(".ce-paragraph").should("not.exist");
});
it("Shrink and Expand A Block", () => {
cy.get(":focus").click();
cy.get(".ce-block:last .setting-btn").click();
cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
cy.get(".ce-block:last").should("have.class", "col-xs-11");
cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
cy.get(".ce-block:last").should("have.class", "col-xs-10");
cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
cy.get(".ce-block:last").should("have.class", "col-xs-9");
cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
cy.get(".ce-block:last").should("have.class", "col-xs-10");
cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
cy.get(".ce-block:last").should("have.class", "col-xs-11");
cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
cy.get(".ce-block:last").should("have.class", "col-xs-12");
cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
});
it("Delete Duplicate Page", () => {
cy.intercept({
method: "POST",
url: "api/method/frappe.desk.doctype.workspace.workspace.delete_page",
}).as("page_deleted");
cy.get(".codex-editor__redactor .ce-block");
cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
.find(".sidebar-item-control .setting-btn")
.click();
cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
.find('.dropdown-item[title="Delete Workspace"]')
.click({ force: true });
cy.wait(300);
cy.get(".modal-footer > .standard-actions > .btn-modal-primary:visible").first().click();
cy.get('.sidebar-item-container[item-name="Duplicate Page"]').should("not.exist");
cy.wait("@page_deleted");
});
});