Commit 2f6603e58174e5aff35fbc0ce6a9616dc77b077a
1 parent
ab344f31
Exists in
master
and in
4 other branches
A bit of spinach tests
Showing
11 changed files
with
116 additions
and
95 deletions
Show diff stats
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +Feature: Admin Projects | ||
2 | + Background: | ||
3 | + Given I sign in as an admin | ||
4 | + And there are projects in system | ||
5 | + | ||
6 | + Scenario: Projects list | ||
7 | + When I visit admin projects page | ||
8 | + Then I should see all projects | ||
9 | + | ||
10 | + Scenario: Projects show | ||
11 | + When I visit admin projects page | ||
12 | + And I click on first project | ||
13 | + Then I should see project details |
features/project/project.feature
1 | Feature: Projects | 1 | Feature: Projects |
2 | Background: | 2 | Background: |
3 | - Given I signin as a user | 3 | + Given I sign in as a user |
4 | And I own project "Shop" | 4 | And I own project "Shop" |
5 | + And project "Shop" has push event | ||
5 | And I visit project "Shop" page | 6 | And I visit project "Shop" page |
6 | 7 | ||
7 | - # @wip | ||
8 | - # Scenario: I should see project activity | 8 | + Scenario: I should see project activity |
9 | + When I visit project "Shop" page | ||
10 | + Then I should see project "Shop" activity feed | ||
9 | 11 | ||
10 | - # @wip | ||
11 | - # Scenario: I edit project | 12 | + Scenario: I visit edit project |
13 | + When I visit edit project "Shop" page | ||
14 | + Then I should see project settings | ||
15 | + | ||
16 | + Scenario: I edit project | ||
17 | + When I visit edit project "Shop" page | ||
18 | + And change project settings | ||
19 | + And I save project | ||
20 | + Then I should see project with new settings | ||
12 | 21 | ||
13 | # @wip | 22 | # @wip |
14 | # Scenario: I visit attachments | 23 | # Scenario: I visit attachments |
@@ -0,0 +1,24 @@ | @@ -0,0 +1,24 @@ | ||
1 | +class AdminProjects < Spinach::FeatureSteps | ||
2 | + include SharedAuthentication | ||
3 | + include SharedPaths | ||
4 | + include SharedAdmin | ||
5 | + | ||
6 | + And 'I should see all projects' do | ||
7 | + Project.all.each do |p| | ||
8 | + page.should have_content p.name_with_namespace | ||
9 | + end | ||
10 | + end | ||
11 | + | ||
12 | + And 'I click on first project' do | ||
13 | + click_link Project.first.name_with_namespace | ||
14 | + end | ||
15 | + | ||
16 | + Then 'I should see project details' do | ||
17 | + project = Project.first | ||
18 | + current_path.should == admin_project_path(project) | ||
19 | + | ||
20 | + page.should have_content(project.name_with_namespace) | ||
21 | + page.should have_content(project.creator.name) | ||
22 | + page.should have_content('Add new team member') | ||
23 | + end | ||
24 | +end |
features/steps/dashboard/dashboard.rb
1 | class Dashboard < Spinach::FeatureSteps | 1 | class Dashboard < Spinach::FeatureSteps |
2 | include SharedAuthentication | 2 | include SharedAuthentication |
3 | include SharedPaths | 3 | include SharedPaths |
4 | + include SharedProject | ||
4 | 5 | ||
5 | Then 'I should see "New Project" link' do | 6 | Then 'I should see "New Project" link' do |
6 | page.should have_link "New Project" | 7 | page.should have_link "New Project" |
@@ -10,11 +11,6 @@ class Dashboard < Spinach::FeatureSteps | @@ -10,11 +11,6 @@ class Dashboard < Spinach::FeatureSteps | ||
10 | page.should have_link "Shop" | 11 | page.should have_link "Shop" |
11 | end | 12 | end |
12 | 13 | ||
13 | - Then 'I should see project "Shop" activity feed' do | ||
14 | - project = Project.find_by_name("Shop") | ||
15 | - page.should have_content "#{@user.name} pushed new branch new_design at #{project.name}" | ||
16 | - end | ||
17 | - | ||
18 | Then 'I should see last push widget' do | 14 | Then 'I should see last push widget' do |
19 | page.should have_content "You pushed to new_design" | 15 | page.should have_content "You pushed to new_design" |
20 | page.should have_link "Create Merge Request" | 16 | page.should have_link "Create Merge Request" |
@@ -59,11 +55,6 @@ class Dashboard < Spinach::FeatureSteps | @@ -59,11 +55,6 @@ class Dashboard < Spinach::FeatureSteps | ||
59 | page.should have_content "John Doe left project at Shop" | 55 | page.should have_content "John Doe left project at Shop" |
60 | end | 56 | end |
61 | 57 | ||
62 | - And 'I own project "Shop"' do | ||
63 | - @project = create :project, name: 'Shop' | ||
64 | - @project.team << [@user, :master] | ||
65 | - end | ||
66 | - | ||
67 | And 'I have group with projects' do | 58 | And 'I have group with projects' do |
68 | @group = create(:group) | 59 | @group = create(:group) |
69 | @project = create(:project, group: @group) | 60 | @project = create(:project, group: @group) |
@@ -72,32 +63,6 @@ class Dashboard < Spinach::FeatureSteps | @@ -72,32 +63,6 @@ class Dashboard < Spinach::FeatureSteps | ||
72 | @project.team << [current_user, :master] | 63 | @project.team << [current_user, :master] |
73 | end | 64 | end |
74 | 65 | ||
75 | - And 'project "Shop" has push event' do | ||
76 | - @project = Project.find_by_name("Shop") | ||
77 | - | ||
78 | - data = { | ||
79 | - before: "0000000000000000000000000000000000000000", | ||
80 | - after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", | ||
81 | - ref: "refs/heads/new_design", | ||
82 | - user_id: @user.id, | ||
83 | - user_name: @user.name, | ||
84 | - repository: { | ||
85 | - name: @project.name, | ||
86 | - url: "localhost/rubinius", | ||
87 | - description: "", | ||
88 | - homepage: "localhost/rubinius", | ||
89 | - private: true | ||
90 | - } | ||
91 | - } | ||
92 | - | ||
93 | - @event = Event.create( | ||
94 | - project: @project, | ||
95 | - action: Event::Pushed, | ||
96 | - data: data, | ||
97 | - author_id: @user.id | ||
98 | - ) | ||
99 | - end | ||
100 | - | ||
101 | Then 'I should see groups list' do | 66 | Then 'I should see groups list' do |
102 | Group.all.each do |group| | 67 | Group.all.each do |group| |
103 | page.should have_link group.name | 68 | page.should have_link group.name |
@@ -112,5 +77,4 @@ class Dashboard < Spinach::FeatureSteps | @@ -112,5 +77,4 @@ class Dashboard < Spinach::FeatureSteps | ||
112 | Then 'I should see 1 project at group list' do | 77 | Then 'I should see 1 project at group list' do |
113 | page.find('span.last_activity/span').should have_content('1') | 78 | page.find('span.last_activity/span').should have_content('1') |
114 | end | 79 | end |
115 | - | ||
116 | end | 80 | end |
features/steps/project/project.rb
@@ -2,4 +2,17 @@ class Projects < Spinach::FeatureSteps | @@ -2,4 +2,17 @@ class Projects < Spinach::FeatureSteps | ||
2 | include SharedAuthentication | 2 | include SharedAuthentication |
3 | include SharedProject | 3 | include SharedProject |
4 | include SharedPaths | 4 | include SharedPaths |
5 | + | ||
6 | + And 'change project settings' do | ||
7 | + fill_in 'project_name', with: 'NewName' | ||
8 | + uncheck 'project_issues_enabled' | ||
9 | + end | ||
10 | + | ||
11 | + And 'I save project' do | ||
12 | + click_button 'Save' | ||
13 | + end | ||
14 | + | ||
15 | + Then 'I should see project with new settings' do | ||
16 | + find_field('project_name').value.should == 'NewName' | ||
17 | + end | ||
5 | end | 18 | end |
features/steps/shared/paths.rb
@@ -165,6 +165,11 @@ module SharedPaths | @@ -165,6 +165,11 @@ module SharedPaths | ||
165 | visit project_path(project) | 165 | visit project_path(project) |
166 | end | 166 | end |
167 | 167 | ||
168 | + When 'I visit edit project "Shop" page' do | ||
169 | + project = Project.find_by_name("Shop") | ||
170 | + visit edit_project_path(project) | ||
171 | + end | ||
172 | + | ||
168 | Given 'I visit project branches page' do | 173 | Given 'I visit project branches page' do |
169 | visit branches_project_repository_path(@project) | 174 | visit branches_project_repository_path(@project) |
170 | end | 175 | end |
features/steps/shared/project.rb
@@ -13,6 +13,44 @@ module SharedProject | @@ -13,6 +13,44 @@ module SharedProject | ||
13 | @project.team << [@user, :master] | 13 | @project.team << [@user, :master] |
14 | end | 14 | end |
15 | 15 | ||
16 | + And 'project "Shop" has push event' do | ||
17 | + @project = Project.find_by_name("Shop") | ||
18 | + | ||
19 | + data = { | ||
20 | + before: "0000000000000000000000000000000000000000", | ||
21 | + after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", | ||
22 | + ref: "refs/heads/new_design", | ||
23 | + user_id: @user.id, | ||
24 | + user_name: @user.name, | ||
25 | + repository: { | ||
26 | + name: @project.name, | ||
27 | + url: "localhost/rubinius", | ||
28 | + description: "", | ||
29 | + homepage: "localhost/rubinius", | ||
30 | + private: true | ||
31 | + } | ||
32 | + } | ||
33 | + | ||
34 | + @event = Event.create( | ||
35 | + project: @project, | ||
36 | + action: Event::Pushed, | ||
37 | + data: data, | ||
38 | + author_id: @user.id | ||
39 | + ) | ||
40 | + end | ||
41 | + | ||
42 | + Then 'I should see project "Shop" activity feed' do | ||
43 | + project = Project.find_by_name("Shop") | ||
44 | + page.should have_content "#{@user.name} pushed new branch new_design at #{project.name}" | ||
45 | + end | ||
46 | + | ||
47 | + Then 'I should see project settings' do | ||
48 | + current_path.should == edit_project_path(@project) | ||
49 | + page.should have_content("Project name is") | ||
50 | + page.should have_content("Advanced settings:") | ||
51 | + page.should have_content("Features:") | ||
52 | + end | ||
53 | + | ||
16 | def current_project | 54 | def current_project |
17 | @project ||= Project.first | 55 | @project ||= Project.first |
18 | end | 56 | end |
spec/requests/projects_spec.rb
@@ -3,59 +3,6 @@ require 'spec_helper' | @@ -3,59 +3,6 @@ require 'spec_helper' | ||
3 | describe "Projects" do | 3 | describe "Projects" do |
4 | before { login_as :user } | 4 | before { login_as :user } |
5 | 5 | ||
6 | - describe "GET /projects/show" do | ||
7 | - before do | ||
8 | - @project = create(:project, namespace: @user.namespace) | ||
9 | - @project.team << [@user, :reporter] | ||
10 | - | ||
11 | - visit project_path(@project) | ||
12 | - end | ||
13 | - | ||
14 | - it "should be correct path" do | ||
15 | - current_path.should == project_path(@project) | ||
16 | - end | ||
17 | - end | ||
18 | - | ||
19 | - describe "GET /projects/:id/edit" do | ||
20 | - before do | ||
21 | - @project = create(:project) | ||
22 | - @project.team << [@user, :master] | ||
23 | - | ||
24 | - visit edit_project_path(@project) | ||
25 | - end | ||
26 | - | ||
27 | - it "should be correct path" do | ||
28 | - current_path.should == edit_project_path(@project) | ||
29 | - end | ||
30 | - | ||
31 | - it "should have labels for new project" do | ||
32 | - page.should have_content("Project name is") | ||
33 | - page.should have_content("Advanced settings:") | ||
34 | - page.should have_content("Features:") | ||
35 | - end | ||
36 | - end | ||
37 | - | ||
38 | - describe "PUT /projects/:id" do | ||
39 | - before do | ||
40 | - @project = create(:project, namespace: @user.namespace) | ||
41 | - @project.team << [@user, :master] | ||
42 | - | ||
43 | - visit edit_project_path(@project) | ||
44 | - | ||
45 | - fill_in 'project_name', with: 'Awesome' | ||
46 | - click_button "Save" | ||
47 | - @project = @project.reload | ||
48 | - end | ||
49 | - | ||
50 | - it "should be correct path" do | ||
51 | - current_path.should == edit_project_path(@project) | ||
52 | - end | ||
53 | - | ||
54 | - it "should show project" do | ||
55 | - page.should have_content("Awesome") | ||
56 | - end | ||
57 | - end | ||
58 | - | ||
59 | describe "DELETE /projects/:id" do | 6 | describe "DELETE /projects/:id" do |
60 | before do | 7 | before do |
61 | @project = create(:project, namespace: @user.namespace) | 8 | @project = create(:project, namespace: @user.namespace) |