summaryrefslogtreecommitdiff
path: root/spec/features/user_sorts_things_spec.rb
blob: 0295f588326097cc8cf4d7aa49e1c0c18dabad73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require "spec_helper"

# The main goal of this spec is not to check whether the sorting UI works, but
# to check if the sorting option set by user is being kept persisted while going through pages.
# The `it`s are named here by convention `starting point -> some pages -> final point`.
# All those specs are moved out to this spec intentionally to keep them all in one place.
describe "User sorts things" do
  include Spec::Support::Helpers::Features::SortingHelpers
  include DashboardHelper

  set(:project) { create(:project_empty_repo, :public) }
  set(:current_user) { create(:user) } # Using `current_user` instead of just `user` because of the hardoced call in `assigned_mrs_dashboard_path` which is used below.
  set(:issue) { create(:issue, project: project, author: current_user) }
  set(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: current_user) }

  before do
    project.add_developer(current_user)
    sign_in(current_user)
  end

  it "issues -> project home page -> issues" do
    sort_option = "Last updated"

    visit(project_issues_path(project))

    sort_by(sort_option)

    visit(project_path(project))
    visit(project_issues_path(project))

    expect(find(".issues-filters")).to have_content(sort_option)
  end

  it "issues -> merge requests" do
    sort_option = "Last updated"

    visit(project_issues_path(project))

    sort_by(sort_option)

    visit(project_merge_requests_path(project))

    expect(find(".issues-filters")).to have_content(sort_option)
  end

  it "merge requests -> dashboard merge requests" do
    sort_option = "Last updated"

    visit(project_merge_requests_path(project))

    sort_by(sort_option)

    visit(assigned_mrs_dashboard_path)

    expect(find(".issues-filters")).to have_content(sort_option)
  end
end