const verify_attachment_visibility = (document, is_private) => { cy.visit(`/app/${document}`); const assertion = is_private ? "be.checked" : "not.be.checked"; cy.get(".add-attachment-btn").click(); cy.get_open_dialog() .find(".file-upload-area") .selectFile("cypress/fixtures/sample_image.jpg", { action: "drag-drop", }); cy.get_open_dialog().findByRole("checkbox", { name: "Private" }).should(assertion); }; const attach_file = (file, no_of_files = 1) => { let files = []; if (file) { files = [file]; } else if (no_of_files > 1) { // attach n files files = [...Array(no_of_files)].map( (el, idx) => "cypress/fixtures/sample_attachments/attachment-" + (idx + 1) + (idx == 0 ? ".jpg" : ".txt") ); } cy.get(".add-attachment-btn").click(); cy.get_open_dialog().find(".file-upload-area").selectFile(files, { action: "drag-drop", }); cy.get_open_dialog().findByRole("button", { name: "Upload" }).click(); }; context("Sidebar", () => { before(() => { cy.visit("/"); cy.login(); cy.visit("/app"); return cy .window() .its("xhiveframework") .then((xhiveframework) => { return xhiveframework.call("xhiveframework.tests.ui_test_helpers.create_blog_post"); }); }); it("Verify attachment visibility config", () => { cy.call("xhiveframework.tests.ui_test_helpers.create_todo", { description: "Sidebar Attachment ToDo", }).then((todo) => { verify_attachment_visibility(`todo/${todo.message.name}`, true); }); verify_attachment_visibility("blog-post/test-blog-attachment-post", false); }); it("Verify attachment accessibility UX", () => { cy.call("xhiveframework.tests.ui_test_helpers.create_todo_with_attachment_limit", { description: "Sidebar Attachment Access Test ToDo", }).then((todo) => { cy.visit(`/app/todo/${todo.message.name}`); attach_file("cypress/fixtures/sample_image.jpg"); cy.get(".explore-link").should("be.visible"); cy.get(".show-all-btn").should("be.hidden"); // attach 10 images attach_file(null, 10); cy.get(".show-all-btn").should("be.visible"); // attach 1 more image to reach attachment limit attach_file("cypress/fixtures/sample_attachments/attachment-11.txt"); cy.get(".add-attachment-btn").should("be.hidden"); cy.get(".explore-link").should("be.visible"); // test "Show All" button cy.get(".attachment-row").should("have.length", 10); cy.get(".show-all-btn").click({ force: true }); cy.get(".attachment-row").should("have.length", 12); }); }); it('Test for checking "Assigned To" counter value, adding filter and adding & removing an assignment', () => { cy.call("xhiveframework.tests.ui_test_helpers.create_todo", { description: "Sidebar Attachment ToDo", }).then((todo) => { let todo_name = todo.message.name; cy.visit("/app/todo"); cy.click_sidebar_button("Assigned To"); //To check if no filter is available in "Assigned To" dropdown cy.get(".empty-state").should("contain", "No filters found"); //Assigning a doctype to a user cy.visit(`/app/todo/${todo_name}`); cy.get(".add-assignment-btn").click(); cy.get_field("assign_to_me", "Check").click(); cy.wait(1000); cy.get(".modal-footer > .standard-actions > .btn-primary").click(); cy.visit("/app/todo"); cy.click_sidebar_button("Assigned To"); //To check if filter is added in "Assigned To" dropdown after assignment cy.get( ".group-by-field.show > .dropdown-menu > .group-by-item > .dropdown-item" ).should("contain", "1"); //To check if there is no filter added to the listview cy.get(".filter-button").should("contain", "Filter"); //To add a filter to display data into the listview cy.get( ".group-by-field.show > .dropdown-menu > .group-by-item > .dropdown-item" ).click(); //To check if filter is applied cy.click_filter_button().get(".filter-label").should("contain", "1"); cy.get(".fieldname-select-area > .awesomplete > .form-control").should( "have.value", "Assigned To" ); cy.get(".condition").should("have.value", "like"); cy.get(".filter-field > .form-group > .input-with-feedback").should( "have.value", `%${cy.config("testUser")}%` ); cy.click_filter_button(); //To remove the applied filter cy.clear_filters(); //To remove the assignment cy.visit(`/app/todo/${todo_name}`); cy.get(".assignments > .avatar-group > .avatar > .avatar-frame").click(); cy.get(".remove-btn").click({ force: true }); cy.hide_dialog(); cy.visit("/app/todo"); cy.click_sidebar_button("Assigned To"); cy.get(".empty-state").should("contain", "No filters found"); }); }); });