Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

154 rader
4.3 KiB

  1. context("Workspace Blocks", () => {
  2. before(() => {
  3. cy.login();
  4. cy.visit("/app");
  5. return cy
  6. .window()
  7. .its("frappe")
  8. .then((frappe) => {
  9. return frappe.xcall("frappe.tests.ui_test_helpers.setup_workflow");
  10. });
  11. });
  12. it("Create Test Page", () => {
  13. cy.intercept({
  14. method: "POST",
  15. url: "api/method/frappe.desk.doctype.workspace.workspace.new_page",
  16. }).as("new_page");
  17. cy.visit("/app/website");
  18. cy.get(".codex-editor__redactor .ce-block");
  19. cy.get('.custom-actions button[data-label="Create%20Workspace"]').click();
  20. cy.fill_field("title", "Test Block Page", "Data");
  21. cy.fill_field("icon", "edit", "Icon");
  22. cy.get_open_dialog().find(".modal-header").click();
  23. cy.get_open_dialog().find(".btn-primary").click();
  24. // check if sidebar item is added in private section
  25. cy.get('.sidebar-item-container[item-name="Test Block Page"]').should(
  26. "have.attr",
  27. "item-public",
  28. "0"
  29. );
  30. cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
  31. cy.wait(300);
  32. cy.get('.sidebar-item-container[item-name="Test Block Page"]').should(
  33. "have.attr",
  34. "item-public",
  35. "0"
  36. );
  37. cy.wait("@new_page");
  38. });
  39. it("Quick List Block", () => {
  40. cy.create_records([
  41. {
  42. doctype: "ToDo",
  43. description: "Quick List ToDo 1",
  44. status: "Open",
  45. },
  46. {
  47. doctype: "ToDo",
  48. description: "Quick List ToDo 2",
  49. status: "Open",
  50. },
  51. {
  52. doctype: "ToDo",
  53. description: "Quick List ToDo 3",
  54. status: "Open",
  55. },
  56. {
  57. doctype: "ToDo",
  58. description: "Quick List ToDo 4",
  59. status: "Open",
  60. },
  61. ]);
  62. cy.intercept({
  63. method: "GET",
  64. url: "api/method/frappe.desk.form.load.getdoctype?**",
  65. }).as("get_doctype");
  66. cy.visit("/app/tools");
  67. cy.get(".codex-editor__redactor .ce-block");
  68. cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
  69. // test quick list creation
  70. cy.get(".ce-block").first().click({ force: true }).type("{enter}");
  71. cy.get(".block-list-container .block-list-item").contains("Quick List").click();
  72. cy.get_open_dialog().find(".modal-header").click();
  73. cy.fill_field("document_type", "ToDo", "Link").blur();
  74. cy.fill_field("label", "ToDo", "Data").blur();
  75. cy.wait("@get_doctype");
  76. cy.get_open_dialog().find(".filter-edit-area").should("contain", "No filters selected");
  77. cy.get_open_dialog().find(".filter-area .add-filter").click();
  78. cy.get_open_dialog()
  79. .find(".fieldname-select-area input")
  80. .type("Workflow State{enter}")
  81. .blur();
  82. cy.get_open_dialog().find(".filter-field .input-with-feedback").type("Pending");
  83. cy.get_open_dialog().find(".modal-header").click();
  84. cy.get_open_dialog().find(".btn-primary").click();
  85. cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
  86. cy.get(".codex-editor__redactor .ce-block");
  87. cy.get(".ce-block .quick-list-widget-box").first().as("todo-quick-list");
  88. cy.get("@todo-quick-list").find(".quick-list-item .status").should("contain", "Pending");
  89. // test quick-list-item
  90. cy.get("@todo-quick-list")
  91. .find(".quick-list-item .title")
  92. .first()
  93. .invoke("attr", "title")
  94. .then((title) => {
  95. cy.get("@todo-quick-list").find(".quick-list-item").contains(title).click();
  96. cy.get_field("description", "Text Editor").should("contain", title);
  97. cy.click_action_button("Approve");
  98. });
  99. cy.go("back");
  100. // test filter-list
  101. cy.get("@todo-quick-list").realHover().find(".widget-control .filter-list").click();
  102. cy.get_open_dialog()
  103. .find(".filter-field .input-with-feedback")
  104. .type("{selectall}Approved");
  105. cy.get_open_dialog().find(".modal-header").click();
  106. cy.get_open_dialog().find(".btn-primary").click();
  107. cy.get("@todo-quick-list").find(".quick-list-item .status").should("contain", "Approved");
  108. // test refresh-list
  109. cy.intercept({
  110. method: "POST",
  111. url: "api/method/frappe.desk.reportview.get",
  112. }).as("refresh-list");
  113. cy.get("@todo-quick-list").realHover().find(".widget-control .refresh-list").click();
  114. cy.wait("@refresh-list");
  115. // test add-new
  116. cy.get("@todo-quick-list").realHover().find(".widget-control .add-new").click();
  117. cy.url().should("include", `/todo/new-todo-1`);
  118. cy.go("back");
  119. // test see-all
  120. cy.get("@todo-quick-list").find(".widget-footer .see-all").click();
  121. cy.open_list_filter();
  122. cy.get('.filter-field input[data-fieldname="workflow_state"]')
  123. .invoke("val")
  124. .should("eq", "Pending");
  125. cy.go("back");
  126. });
  127. });