access-to-side-bar.spec.ts 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. context('Access to sidebar', () => {
  2. const ssPrefix = 'access-to-sidebar-';
  3. beforeEach(() => {
  4. // login
  5. cy.fixture("user-admin.json").then(user => {
  6. cy.login(user.username, user.password);
  7. });
  8. // collapse sidebar
  9. cy.collapseSidebar(false);
  10. });
  11. it('Successfully show/collapse sidebar', () => {
  12. cy.visit('/');
  13. cy.screenshot(`${ssPrefix}-1-sidebar-shown`, {capture: 'viewport'});
  14. cy.getByTestid('grw-navigation-resize-button').click({force: true});
  15. cy.screenshot(`${ssPrefix}-2-sidebar-collapsed`, {capture: 'viewport'});
  16. });
  17. it('Successully change side bar size of recent changes', () => {
  18. cy.visit('/');
  19. cy.getByTestid('grw-sidebar-nav-primary-recent-changes').click();
  20. cy.collapseSidebar(false);
  21. cy.get('#grw-sidebar-contents-wrapper').within(() => {
  22. cy.get('#recentChangesResize').click({force: true});
  23. cy.screenshot(`${ssPrefix}size-1-current-sidebar-size`);
  24. cy.get('#recentChangesResize').click({force: true});
  25. cy.screenshot(`${ssPrefix}size-2-switch-sidebar-size`);
  26. });
  27. });
  28. it('Successfully access page from sidebar ', () => {
  29. cy.visit('/');
  30. cy.screenshot(`${ssPrefix}recent-changes-1-page-list`);
  31. cy.get('.list-group-item').eq(0).within(() => {
  32. cy.get('span.grw-page-path-hierarchical-link').find('a').click();
  33. })
  34. cy.screenshot(`${ssPrefix}recent-changes-2-open-first-page`);
  35. cy.visit('/Sandbox');
  36. // Add tag
  37. cy.get('#edit-tags-btn-wrapper-for-tooltip > a').click({force: true});
  38. cy.get('#edit-tag-modal').should('be.visible');
  39. cy.get('#edit-tag-modal').within(() => {
  40. cy.get('.rbt-input-main').type('test');
  41. cy.get('#tag-typeahead-asynctypeahead').should('be.visible');
  42. cy.get('#tag-typeahead-asynctypeahead-item-0').should('be.visible');
  43. cy.get('a#tag-typeahead-asynctypeahead-item-0').click({force: true})
  44. });
  45. cy.get('#edit-tag-modal').within(() => {
  46. cy.get('div.modal-footer > button').click();
  47. });
  48. cy.visit('/Sandbox');
  49. cy.get('.grw-taglabels-container > form > a').contains('test').click();
  50. cy.getByTestid('search-result-base').should('be.visible');
  51. cy.getByTestid('search-result-list').should('be.visible');
  52. cy.getByTestid('search-result-content').should('be.visible');
  53. cy.screenshot(`${ssPrefix}recent-changes-3-click-on-tag-results`, {capture: 'viewport'});
  54. });
  55. it('Successfully create a custom sidebar page', () => {
  56. const content = '# HELLO \n ## Hello\n ### Hello';
  57. cy.visit('/');
  58. cy.getByTestid('grw-sidebar-nav-primary-custom-sidebar').click();
  59. cy.screenshot(`${ssPrefix}custom-sidebar-1-click-on-custom-sidebar`)
  60. cy.get('.grw-sidebar-content-header.h5').should('be.visible').find('a').click();
  61. cy.get('.CodeMirror textarea').type(content, {force: true});
  62. cy.screenshot(`${ssPrefix}custom-sidebar-2-custom-sidebar-editor`);
  63. cy.get('.dropup > .btn-submit').click();
  64. cy.get('body').should('not.have.class', 'on-edit');
  65. cy.screenshot(`${ssPrefix}custom-sidebar-3-custom-sidebar-created`);
  66. });
  67. it('Successfully performed page operation from "page tree"', () => {
  68. cy.visit('/');
  69. cy.getByTestid('grw-sidebar-nav-primary-page-tree').click();
  70. cy.screenshot(`${ssPrefix}page-tree-1-access-to-page-tree`);
  71. cy.get('.grw-pagetree-triangle-btn').eq(0).click();
  72. cy.screenshot(`${ssPrefix}page-tree-2-hide-page-tree-item`);
  73. cy.get('.grw-pagetree-triangle-btn').eq(0).click();
  74. cy.get('.grw-pagetree-item-children').eq(0).within(() => {
  75. cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
  76. });
  77. cy.screenshot(`${ssPrefix}page-tree-3-click-three-dots-menu`);
  78. cy.get('.dropdown-menu.show').should('be.visible').within(() => {
  79. cy.getByTestid('add-remove-bookmark-btn').click();
  80. });
  81. cy.screenshot(`${ssPrefix}page-tree-4-add-bookmark`);
  82. cy.get('.grw-pagetree-item-children').eq(0).within(() => {
  83. cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
  84. });
  85. cy.get('.dropdown-menu.show').should('be.visible').within(() => {
  86. cy.getByTestid('open-page-duplicate-modal-btn').click();
  87. });
  88. cy.getByTestid('page-duplicate-modal').should('be.visible').within(() => {
  89. cy.get('.rbt-input-main').type('_test');
  90. cy.screenshot(`${ssPrefix}page-tree-5-duplicate-page`);
  91. cy.get('.modal-header > button').click();
  92. });
  93. cy.get('.grw-pagetree-item-children').eq(0).within(() => {
  94. cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
  95. });
  96. cy.get('.dropdown-menu.show').should('be.visible').within(() => {
  97. cy.getByTestid('open-page-move-rename-modal-btn').click();
  98. });
  99. cy.get('.grw-pagetree-item-children').eq(0).within(() => {
  100. cy.get('.flex-fill > input').type('_newname');
  101. });
  102. cy.screenshot(`${ssPrefix}page-tree-6-rename-page`);
  103. cy.get('body').click(0,0);
  104. cy.get('.grw-pagetree-item-children').eq(0).within(() => {
  105. cy.getByTestid('open-page-item-control-btn').find('button').eq(0).invoke('css','display','block').click()
  106. });
  107. cy.get('.dropdown-menu.show').should('be.visible').within(() => {
  108. cy.getByTestid('open-page-delete-modal-btn').click();
  109. });
  110. cy.getByTestid('page-delete-modal').should('be.visible').within(() => {
  111. cy.screenshot(`${ssPrefix}page-tree-7-delete-page`);
  112. cy.get('.modal-header > button').click();
  113. });
  114. });
  115. it('Successfully performed page operation from "Tags" ', () => {
  116. cy.visit('/');
  117. cy.getByTestid('grw-sidebar-nav-primary-tags').click();
  118. cy.screenshot(`${ssPrefix}tags-1-access-to-tags`);
  119. cy.get('.grw-container-convertible > div > .btn-primary').click({force: true});
  120. cy.screenshot(`${ssPrefix}tags-2-check-all-tags`);
  121. cy.getByTestid('grw-tags-list').within(() => {
  122. cy.get('ul').find('a').contains('test').click();
  123. });
  124. cy.screenshot(`${ssPrefix}tags-3-page-list-with-tag`);
  125. cy.getByTestid('search-result-list').within(() => {
  126. cy.get('.list-group-item').each(($row) => {
  127. if($row.find('a').text() === '/Sandbox'){
  128. cy.wrap($row).within(() => {
  129. cy.getByTestid('open-page-item-control-btn').click();
  130. });
  131. }
  132. });
  133. });
  134. cy.screenshot(`${ssPrefix}tags-4-tags-click-three-dots-menu`);
  135. cy.getByTestid('search-result-list').within(() => {
  136. cy.get('.list-group-item').each(($row) => {
  137. if($row.find('a').text() === '/Sandbox'){
  138. cy.wrap($row).within(() => {
  139. cy.getByTestid('open-page-duplicate-modal-btn').click();
  140. });
  141. }
  142. });
  143. });
  144. cy.getByTestid('page-duplicate-modal').should('be.visible').within(() => {
  145. cy.get('.rbt-input-main').type('_screen');
  146. }).screenshot(`${ssPrefix}tags-5-duplicate-page-from-tags`);
  147. cy.getByTestid('page-duplicate-modal').should('be.visible').within(() => {
  148. cy.get('.modal-header > button').click();
  149. });
  150. cy.getByTestid('search-result-list').within(() => {
  151. cy.get('.list-group-item').each(($row) => {
  152. if($row.find('a').text() === '/Sandbox'){
  153. cy.wrap($row).within(() => {
  154. cy.getByTestid('open-page-item-control-btn').click();
  155. });
  156. }
  157. });
  158. });
  159. cy.getByTestid('search-result-list').within(() => {
  160. cy.get('.list-group-item').each(($row) => {
  161. if($row.find('a').text() === '/Sandbox'){
  162. cy.wrap($row).within(() => {
  163. cy.getByTestid('open-page-move-rename-modal-btn').click();
  164. });
  165. }
  166. });
  167. });
  168. cy.getByTestid('page-rename-modal').should('be.visible').within(() => {
  169. cy.get('.rbt-input-main').clear().type('/vrt', {force: true});
  170. }).screenshot(`${ssPrefix}tags-6-rename-page-from-tag`);
  171. cy.getByTestid('page-rename-modal').should('be.visible').within(() => {
  172. cy.get('.modal-header > button').click();
  173. });
  174. cy.getByTestid('search-result-list').within(() => {
  175. cy.get('.list-group-item').each(($row) => {
  176. if($row.find('a').text() === '/Sandbox'){
  177. cy.wrap($row).within(() => {
  178. cy.getByTestid('open-page-item-control-btn').click();
  179. });
  180. }
  181. });
  182. });
  183. cy.getByTestid('search-result-list').within(() => {
  184. cy.get('.list-group-item').each(($row) => {
  185. if($row.find('a').text() === '/Sandbox'){
  186. cy.wrap($row).within(() => {
  187. cy.getByTestid('open-page-delete-modal-btn').click();
  188. });
  189. }
  190. });
  191. });
  192. cy.getByTestid('page-delete-modal').should('be.visible').screenshot(`${ssPrefix}tags-7-delete-page-from-tag`);
  193. cy.getByTestid('page-delete-modal').should('be.visible').within(() => {
  194. cy.get('.modal-header > button').click();
  195. });
  196. });
  197. it('Successfully access to My Drafts page', () => {
  198. cy.visit('/');
  199. cy.get('.grw-sidebar-nav-secondary-container').within(() => {
  200. cy.get('a[href*="/me/drafts"]').click();
  201. });
  202. cy.screenshot(`${ssPrefix}access-to-drafts-page`);
  203. });
  204. it('Successfully access to Growi Docs page', () => {
  205. cy.visit('/');
  206. cy.get('.grw-sidebar-nav-secondary-container').within(() => {
  207. cy.get('a[href*="https://docs.growi.org"]').then(($a) => {
  208. const url = $a.prop('href')
  209. cy.request(url).its('body').should('include', '</html>');
  210. });
  211. });
  212. });
  213. it('Successfully access to trash page', () => {
  214. cy.visit('/');
  215. cy.get('.grw-sidebar-nav-secondary-container').within(() => {
  216. cy.get('a[href*="/trash"]').click();
  217. });
  218. cy.screenshot(`${ssPrefix}access-to-trash-page`);
  219. });
  220. });