Commit 42abdf69d59ecf28688af5994ff2e324c50a6d33
1 parent
83dc5f93
Exists in
master
and in
4 other branches
More group tests with spinach
Showing
5 changed files
with
98 additions
and
4 deletions
Show diff stats
... | ... | @@ -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 | ... | ... |
... | ... | @@ -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 < 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 < 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 | # ---------------------------------------- | ... | ... |