Commit 42abdf69d59ecf28688af5994ff2e324c50a6d33

Authored by randx
1 parent 83dc5f93

More group tests with spinach

features/admin/groups.feature 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +Feature: Admin Groups
  2 + Background:
  3 + Given I sign in as an admin
  4 + And I visit admin groups page
  5 +
  6 + Scenario: Create a group
  7 + When I click new group link
  8 + And submit form with new group info
  9 + Then I should be redirected to group page
  10 + And I should see newly created group
... ...
features/group/group.feature
... ... @@ -7,3 +7,13 @@ Feature: Groups
7 7 When I visit group page
8 8 Then I should see projects list
9 9 And I should see projects activity feed
  10 +
  11 + Scenario: I should see group issues list
  12 + Given project from group has issues assigned to me
  13 + When I visit group issues page
  14 + Then I should see issues from this group assigned to me
  15 +
  16 + Scenario: I should see group merge requests list
  17 + Given project from group has merge requests assigned to me
  18 + When I visit group merge requests page
  19 + Then I should see merge requests from this group assigned to me
... ...
features/steps/admin/admin_groups.rb 0 → 100644
... ... @@ -0,0 +1,24 @@
  1 +class AdminGroups < Spinach::FeatureSteps
  2 + include SharedAuthentication
  3 + include SharedPaths
  4 + include SharedActiveTab
  5 +
  6 + When 'I click new group link' do
  7 + click_link "New Group"
  8 + end
  9 +
  10 + And 'submit form with new group info' do
  11 + fill_in 'group_name', :with => 'gitlab'
  12 + fill_in 'group_code', :with => 'gitlab'
  13 + click_button "Save group"
  14 + end
  15 +
  16 + Then 'I should see newly created group' do
  17 + page.should have_content "Group: gitlab"
  18 + end
  19 +
  20 + Then 'I should be redirected to group page' do
  21 + current_path.should == admin_group_path(Group.last)
  22 + end
  23 +end
  24 +
... ...
features/steps/group/group.rb
... ... @@ -2,10 +2,6 @@ class Groups &lt; Spinach::FeatureSteps
2 2 include SharedAuthentication
3 3 include SharedPaths
4 4  
5   - When 'I visit group page' do
6   - visit group_path(current_group)
7   - end
8   -
9 5 Then 'I should see projects list' do
10 6 current_user.projects.each do |project|
11 7 page.should have_link project.name
... ... @@ -24,9 +20,43 @@ class Groups &lt; Spinach::FeatureSteps
24 20 page.should have_content 'closed issue'
25 21 end
26 22  
  23 + Then 'I should see issues from this group assigned to me' do
  24 + assigned_to_me(:issues).each do |issue|
  25 + page.should have_content issue.title
  26 + end
  27 + end
  28 +
  29 + Then 'I should see merge requests from this group assigned to me' do
  30 + assigned_to_me(:merge_requests).each do |issue|
  31 + page.should have_content issue.title
  32 + end
  33 + end
  34 +
  35 + Given 'project from group has issues assigned to me' do
  36 + create :issue,
  37 + project: project,
  38 + assignee: current_user,
  39 + author: current_user
  40 + end
  41 +
  42 + Given 'project from group has merge requests assigned to me' do
  43 + create :merge_request,
  44 + project: project,
  45 + assignee: current_user,
  46 + author: current_user
  47 + end
  48 +
27 49 protected
28 50  
29 51 def current_group
30 52 @group ||= Group.first
31 53 end
  54 +
  55 + def project
  56 + current_group.projects.first
  57 + end
  58 +
  59 + def assigned_to_me key
  60 + project.send(key).where(assignee_id: current_user.id)
  61 + end
32 62 end
... ...
features/steps/shared/paths.rb
... ... @@ -6,6 +6,22 @@ module SharedPaths
6 6 end
7 7  
8 8 # ----------------------------------------
  9 + # Group
  10 + # ----------------------------------------
  11 +
  12 + When 'I visit group page' do
  13 + visit group_path(current_group)
  14 + end
  15 +
  16 + When 'I visit group issues page' do
  17 + visit issues_group_path(current_group)
  18 + end
  19 +
  20 + When 'I visit group merge requests page' do
  21 + visit merge_requests_group_path(current_group)
  22 + end
  23 +
  24 + # ----------------------------------------
9 25 # Dashboard
10 26 # ----------------------------------------
11 27  
... ... @@ -85,6 +101,10 @@ module SharedPaths
85 101 visit admin_resque_path
86 102 end
87 103  
  104 + And 'I visit admin groups page' do
  105 + visit admin_groups_path
  106 + end
  107 +
88 108 # ----------------------------------------
89 109 # Generic Project
90 110 # ----------------------------------------
... ...