You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

257 lines
8.6 KiB

  1. context("Workspace 2.0", () => {
  2. before(() => {
  3. cy.visit("/login");
  4. cy.login();
  5. });
  6. it("Navigate to page from sidebar", () => {
  7. cy.visit("/app/build");
  8. cy.get(".codex-editor__redactor .ce-block");
  9. cy.get('.sidebar-item-container[item-name="Settings"]').first().click();
  10. cy.location("pathname").should("eq", "/app/settings");
  11. });
  12. it("Create Private Page", () => {
  13. cy.intercept({
  14. method: "POST",
  15. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.new_page",
  16. }).as("new_page");
  17. cy.get(".codex-editor__redactor .ce-block");
  18. cy.get('.custom-actions button[data-label="Create%20Workspace"]').click();
  19. cy.fill_field("title", "Test Private Page", "Data");
  20. cy.fill_field("icon", "edit", "Icon");
  21. cy.get_open_dialog().find(".modal-header").click();
  22. cy.get_open_dialog().find(".btn-primary").click();
  23. // check if sidebar item is added in pubic section
  24. cy.get('.sidebar-item-container[item-name="Test Private Page"]').should(
  25. "have.attr",
  26. "item-public",
  27. "0"
  28. );
  29. cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
  30. cy.wait(300);
  31. cy.get('.sidebar-item-container[item-name="Test Private Page"]').should(
  32. "have.attr",
  33. "item-public",
  34. "0"
  35. );
  36. cy.wait("@new_page");
  37. });
  38. it("Create Child Page", () => {
  39. cy.intercept({
  40. method: "POST",
  41. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.new_page",
  42. }).as("new_page");
  43. cy.get(".codex-editor__redactor .ce-block");
  44. cy.get('.custom-actions button[data-label="Create%20Workspace"]').click();
  45. cy.fill_field("title", "Test Child Page", "Data");
  46. cy.fill_field("parent", "Test Private Page", "Select");
  47. cy.fill_field("icon", "edit", "Icon");
  48. cy.get_open_dialog().find(".modal-header").click();
  49. cy.get_open_dialog().find(".btn-primary").click();
  50. // check if sidebar item is added in pubic section
  51. cy.get('.sidebar-item-container[item-name="Test Child Page"]').should(
  52. "have.attr",
  53. "item-public",
  54. "0"
  55. );
  56. cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
  57. cy.wait(300);
  58. cy.get('.sidebar-item-container[item-name="Test Child Page"]').should(
  59. "have.attr",
  60. "item-public",
  61. "0"
  62. );
  63. cy.wait("@new_page");
  64. });
  65. it("Duplicate Page", () => {
  66. cy.intercept({
  67. method: "POST",
  68. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.duplicate_page",
  69. }).as("page_duplicated");
  70. cy.get(".codex-editor__redactor .ce-block");
  71. cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
  72. cy.get('.sidebar-item-container[item-name="Test Private Page"]').as("sidebar-item");
  73. cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
  74. cy.get("@sidebar-item").find(".dropdown-btn").first().click();
  75. cy.get("@sidebar-item")
  76. .find(".dropdown-list .dropdown-item")
  77. .contains("Duplicate")
  78. .first()
  79. .click({ force: true });
  80. cy.get_open_dialog().fill_field("title", "Duplicate Page", "Data");
  81. cy.click_modal_primary_button("Duplicate");
  82. cy.wait("@page_duplicated");
  83. });
  84. it("Drag Sidebar Item", () => {
  85. cy.intercept({
  86. method: "POST",
  87. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.sort_pages",
  88. }).as("page_sorted");
  89. cy.get('.sidebar-item-container[item-name="Duplicate Page"]').as("sidebar-item");
  90. cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
  91. cy.get("@sidebar-item").find(".drag-handle").first().move({ deltaX: 0, deltaY: 100 });
  92. cy.get('.sidebar-item-container[item-name="Build"]').as("sidebar-item");
  93. cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
  94. cy.get("@sidebar-item").find(".drag-handle").first().move({ deltaX: 0, deltaY: 100 });
  95. cy.wait("@page_sorted");
  96. });
  97. it("Edit Page Detail", () => {
  98. cy.intercept({
  99. method: "POST",
  100. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.update_page",
  101. }).as("page_updated");
  102. cy.get('.sidebar-item-container[item-name="Test Private Page"]').as("sidebar-item");
  103. cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
  104. cy.get("@sidebar-item").find(".dropdown-btn").first().click();
  105. cy.get("@sidebar-item")
  106. .find(".dropdown-list .dropdown-item")
  107. .contains("Edit")
  108. .first()
  109. .click({ force: true });
  110. cy.get_open_dialog().fill_field("title", " 1", "Data");
  111. cy.get_open_dialog().find('input[data-fieldname="is_public"]').check();
  112. cy.click_modal_primary_button("Update");
  113. cy.get(
  114. '.standard-sidebar-section:first .sidebar-item-container[item-name="Test Private Page"]'
  115. ).should("not.exist");
  116. cy.get(
  117. '.standard-sidebar-section:last .sidebar-item-container[item-name="Test Private Page 1"]'
  118. ).should("exist");
  119. cy.wait("@page_updated");
  120. });
  121. it("Add New Block", () => {
  122. cy.get('.sidebar-item-container[item-name="Duplicate Page"]').as("sidebar-item");
  123. cy.get("@sidebar-item").find(".standard-sidebar-item").first().click();
  124. cy.get(".ce-block").click().type("{enter}");
  125. cy.get(".block-list-container .block-list-item").contains("Heading").click();
  126. cy.get(":focus").type("Header");
  127. cy.get(".ce-block:last").find(".ce-header").should("exist");
  128. cy.get(".ce-block:last").click().type("{enter}");
  129. cy.get(".block-list-container .block-list-item").contains("Text").click();
  130. cy.get(":focus").type("Paragraph text");
  131. cy.get(".ce-block:last").find(".ce-paragraph").should("exist");
  132. });
  133. it("Delete A Block", () => {
  134. cy.get(":focus").click();
  135. cy.get(".paragraph-control .setting-btn").click();
  136. cy.get(".paragraph-control .dropdown-item").contains("Delete").click();
  137. cy.get(".ce-block:last").find(".ce-paragraph").should("not.exist");
  138. });
  139. it("Shrink and Expand A Block", () => {
  140. cy.get(":focus").click();
  141. cy.get(".ce-block:last .setting-btn").click();
  142. cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
  143. cy.get(".ce-block:last").should("have.class", "col-xs-11");
  144. cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
  145. cy.get(".ce-block:last").should("have.class", "col-xs-10");
  146. cy.get(".ce-block:last .dropdown-item").contains("Shrink").click();
  147. cy.get(".ce-block:last").should("have.class", "col-xs-9");
  148. cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
  149. cy.get(".ce-block:last").should("have.class", "col-xs-10");
  150. cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
  151. cy.get(".ce-block:last").should("have.class", "col-xs-11");
  152. cy.get(".ce-block:last .dropdown-item").contains("Expand").click();
  153. cy.get(".ce-block:last").should("have.class", "col-xs-12");
  154. cy.get('.standard-actions .btn-primary[data-label="Save"]').click();
  155. });
  156. it("Hide/Unhide Workspaces", () => {
  157. // hide
  158. cy.intercept({
  159. method: "POST",
  160. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.hide_page",
  161. }).as("hide_page");
  162. cy.get(".codex-editor__redactor .ce-block");
  163. cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
  164. cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
  165. .find(".sidebar-item-control .setting-btn")
  166. .click();
  167. cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
  168. .find('.dropdown-item[title="Hide Workspace"]')
  169. .click({ force: true });
  170. cy.wait(300);
  171. cy.get('.standard-actions .btn-secondary[data-label="Discard"]').click();
  172. cy.get('.sidebar-item-container[item-name="Duplicate Page"]').should("not.be.visible");
  173. cy.wait("@hide_page");
  174. // unhide
  175. cy.intercept({
  176. method: "POST",
  177. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.unhide_page",
  178. }).as("unhide_page");
  179. cy.get(".codex-editor__redactor .ce-block");
  180. cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
  181. cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
  182. .find('[title="Unhide Workspace"]')
  183. .click({ force: true });
  184. cy.wait(300);
  185. cy.get('.standard-actions .btn-secondary[data-label="Discard"]').click();
  186. cy.get('.sidebar-item-container[item-name="Duplicate Page"]').should("be.visible");
  187. cy.wait("@unhide_page");
  188. });
  189. it("Delete Duplicate Page", () => {
  190. cy.intercept({
  191. method: "POST",
  192. url: "api/method/xhiveframework.desk.doctype.workspace.workspace.delete_page",
  193. }).as("page_deleted");
  194. cy.get(".codex-editor__redactor .ce-block");
  195. cy.get(".standard-actions .btn-secondary[data-label=Edit]").click();
  196. cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
  197. .find(".sidebar-item-control .setting-btn")
  198. .click();
  199. cy.get('.sidebar-item-container[item-name="Duplicate Page"]')
  200. .find('.dropdown-item[title="Delete Workspace"]')
  201. .click({ force: true });
  202. cy.wait(300);
  203. cy.get(".modal-footer > .standard-actions > .btn-modal-primary:visible").first().click();
  204. cy.get('.sidebar-item-container[item-name="Duplicate Page"]').should("not.exist");
  205. cy.wait("@page_deleted");
  206. });
  207. });