/spec/features/projects/wiki/user_views_wiki_pages_spec.rb

https://gitlab.com/tnir/gitlab-ce · Ruby · 89 lines · 73 code · 15 blank · 1 comment · 0 complexity · 228bee58eb7ade8bd4cf7075b13c8dfe MD5 · raw file

  1. # frozen_string_literal: true
  2. require 'spec_helper'
  3. describe 'User views wiki pages' do
  4. include WikiHelpers
  5. let(:user) { create(:user) }
  6. let(:project) { create(:project, :wiki_repo, namespace: user.namespace) }
  7. let!(:wiki_page1) do
  8. create(:wiki_page, wiki: project.wiki, title: '3 home', content: '3')
  9. end
  10. let!(:wiki_page2) do
  11. create(:wiki_page, wiki: project.wiki, title: '1 home', content: '1')
  12. end
  13. let!(:wiki_page3) do
  14. create(:wiki_page, wiki: project.wiki, title: '2 home', content: '2')
  15. end
  16. let(:pages) do
  17. page.find('.wiki-pages-list').all('li').map { |li| li.find('a') }
  18. end
  19. before do
  20. project.add_maintainer(user)
  21. sign_in(user)
  22. visit(project_wikis_pages_path(project))
  23. end
  24. context 'ordered by title' do
  25. let(:pages_ordered_by_title) { [wiki_page2, wiki_page3, wiki_page1] }
  26. context 'asc' do
  27. it 'pages are displayed in direct order' do
  28. pages.each.with_index do |page_title, index|
  29. expect(page_title.text).to eq(pages_ordered_by_title[index].title)
  30. end
  31. end
  32. end
  33. context 'desc' do
  34. before do
  35. page.within('.wiki-sort-dropdown') do
  36. page.find('.rspec-reverse-sort').click
  37. end
  38. end
  39. it 'pages are displayed in reversed order' do
  40. pages.reverse_each.with_index do |page_title, index|
  41. expect(page_title.text).to eq(pages_ordered_by_title[index].title)
  42. end
  43. end
  44. end
  45. end
  46. context 'ordered by created_at' do
  47. let(:pages_ordered_by_created_at) { [wiki_page1, wiki_page2, wiki_page3] }
  48. before do
  49. page.within('.wiki-sort-dropdown') do
  50. click_button('Title')
  51. click_link('Created date')
  52. end
  53. end
  54. context 'asc' do
  55. it 'pages are displayed in direct order' do
  56. pages.each.with_index do |page_title, index|
  57. expect(page_title.text).to eq(pages_ordered_by_created_at[index].title)
  58. end
  59. end
  60. end
  61. context 'desc' do
  62. before do
  63. page.within('.wiki-sort-dropdown') do
  64. page.find('.rspec-reverse-sort').click
  65. end
  66. end
  67. it 'pages are displayed in reversed order' do
  68. pages.reverse_each.with_index do |page_title, index|
  69. expect(page_title.text).to eq(pages_ordered_by_created_at[index].title)
  70. end
  71. end
  72. end
  73. end
  74. end