Commit 4c61c467385ca889bc273a171bcd1ebfb9e739e9

Authored by Dmitriy Zaporozhets
1 parent 5953582b

Add tests to Dashboard#merge_requests filter

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/views/shared/_filter.html.haml
1 1 = form_tag filter_path(entity), method: 'get' do
2   - %fieldset
  2 + %fieldset.scope-filter
3 3 %ul.nav.nav-pills.nav-stacked
4 4 %li{class: ("active" if params[:scope].blank?)}
5 5 = link_to filter_path(entity, scope: nil) do
... ... @@ -11,7 +11,7 @@
11 11 = link_to filter_path(entity, scope: 'all') do
12 12 All
13 13  
14   - %fieldset
  14 + %fieldset.status-filter
15 15 %ul.nav.nav-pills.nav-stacked
16 16 %li{class: ("active" if params[:status].blank?)}
17 17 = link_to filter_path(entity, status: nil) do
... ...
features/dashboard/merge_requests.feature
... ... @@ -2,7 +2,17 @@ Feature: Dashboard Merge Requests
2 2 Background:
3 3 Given I sign in as a user
4 4 And I have authored merge requests
  5 + And I have assigned merge requests
  6 + And I have other merge requests
5 7 And I visit dashboard merge requests page
6 8  
7   - Scenario: I should see projects list
8   - Then I should see my merge requests
  9 + Scenario: I should see assigned merge_requests
  10 + Then I should see merge requests assigned to me
  11 +
  12 + Scenario: I should see authored merge_requests
  13 + When I click "Authored by me" link
  14 + Then I should see merge requests authored by me
  15 +
  16 + Scenario: I should see all merge_requests
  17 + When I click "All" link
  18 + Then I should see all merge requests
... ...
features/steps/dashboard/dashboard_merge_requests.rb
... ... @@ -2,28 +2,73 @@ class DashboardMergeRequests &lt; Spinach::FeatureSteps
2 2 include SharedAuthentication
3 3 include SharedPaths
4 4  
5   - Then 'I should see my merge requests' do
6   - merge_requests = @user.merge_requests
7   - merge_requests.each do |mr|
8   - page.should have_content(mr.title[0..10])
9   - page.should have_content(mr.target_project.name)
10   - page.should have_content(mr.source_project.name)
  5 + step 'I should see merge requests assigned to me' do
  6 + should_see(assigned_merge_request)
  7 + should_not_see(authored_merge_request)
  8 + should_not_see(other_merge_request)
  9 + end
  10 +
  11 + step 'I should see merge requests authored by me' do
  12 + should_see(authored_merge_request)
  13 + should_not_see(assigned_merge_request)
  14 + should_not_see(other_merge_request)
  15 + end
  16 +
  17 + step 'I should see all merge requests' do
  18 + should_see(authored_merge_request)
  19 + should_see(assigned_merge_request)
  20 + should_see(other_merge_request)
  21 + end
  22 +
  23 + step 'I have authored merge requests' do
  24 + authored_merge_request
  25 + end
  26 +
  27 + step 'I have assigned merge requests' do
  28 + assigned_merge_request
  29 + end
  30 +
  31 + step 'I have other merge requests' do
  32 + other_merge_request
  33 + end
  34 +
  35 + step 'I click "Authored by me" link' do
  36 + within ".scope-filter" do
  37 + click_link 'Authored by me'
  38 + end
  39 + end
  40 +
  41 + step 'I click "All" link' do
  42 + within ".scope-filter" do
  43 + click_link 'All'
11 44 end
12 45 end
13 46  
14   - And 'I have authored merge requests' do
15   - project1_source = create :project
16   - project1_target= create :project
17   - project2_source = create :project
18   - project2_target = create :project
  47 + def should_see(merge_request)
  48 + page.should have_content(merge_request.title[0..10])
  49 + end
19 50  
  51 + def should_not_see(merge_request)
  52 + page.should_not have_content(merge_request.title[0..10])
  53 + end
20 54  
21   - project1_source.team << [@user, :master]
22   - project1_target.team << [@user, :master]
23   - project2_source.team << [@user, :master]
24   - project2_target.team << [@user, :master]
  55 + def assigned_merge_request
  56 + @assigned_merge_request ||= create :merge_request, assignee: current_user, target_project: project
  57 + end
  58 +
  59 + def authored_merge_request
  60 + @authored_merge_request ||= create :merge_request, author: current_user, target_project: project
  61 + end
  62 +
  63 + def other_merge_request
  64 + @other_merge_request ||= create :merge_request, target_project: project
  65 + end
25 66  
26   - merge_request1 = create :merge_request, author: @user, source_project: project1_source, target_project: project1_target
27   - merge_request2 = create :merge_request, author: @user, source_project: project2_source, target_project: project2_target
  67 + def project
  68 + @project ||= begin
  69 + project =create :project_with_code
  70 + project.team << [current_user, :master]
  71 + project
  72 + end
28 73 end
29 74 end
... ...