Commit 60c6649a9ac231aabb9361bb8b9a14c60771afb3

Authored by Dmitriy Zaporozhets
1 parent 6b941cf9

tests for merge request index/show

spec/factories.rb
@@ -34,6 +34,12 @@ Factory.add(:issue, Issue) do |obj| @@ -34,6 +34,12 @@ Factory.add(:issue, Issue) do |obj|
34 obj.title = Faker::Lorem.sentence 34 obj.title = Faker::Lorem.sentence
35 end 35 end
36 36
  37 +Factory.add(:merge_request, MergeRequest) do |obj|
  38 + obj.title = Faker::Lorem.sentence
  39 + obj.source_branch = "master"
  40 + obj.target_branch = "master"
  41 +end
  42 +
37 Factory.add(:snippet, Snippet) do |obj| 43 Factory.add(:snippet, Snippet) do |obj|
38 obj.title = Faker::Lorem.sentence 44 obj.title = Faker::Lorem.sentence
39 obj.file_name = Faker::Lorem.sentence 45 obj.file_name = Faker::Lorem.sentence
spec/requests/merge_requests_spec.rb
1 require 'spec_helper' 1 require 'spec_helper'
2 2
3 describe "MergeRequests" do 3 describe "MergeRequests" do
  4 + let(:project) { Factory :project }
  5 +
  6 + before do
  7 + login_as :user
  8 + project.add_access(@user, :read, :write)
  9 + @merge_request = Factory :merge_request,
  10 + :author => @user,
  11 + :assignee => @user,
  12 + :project => project
  13 + end
  14 +
4 describe "GET /merge_requests" do 15 describe "GET /merge_requests" do
5 - it "works! (now write some real specs)" do  
6 - # Run the generator again with the --webrat flag if you want to use webrat methods/matchers  
7 - get merge_requests_path  
8 - response.status.should be(200) 16 + before do
  17 + visit project_merge_requests_path(project)
  18 + end
  19 +
  20 + subject { page }
  21 +
  22 + it { should have_content(@merge_request.title) }
  23 + it { should have_content(@merge_request.target_branch) }
  24 + it { should have_content(@merge_request.source_branch) }
  25 + it { should have_content(@merge_request.assignee.name) }
  26 + end
  27 +
  28 + describe "GET /merge_request/:id" do
  29 + before do
  30 + visit project_merge_request_path(project, @merge_request)
  31 + end
  32 +
  33 + subject { page }
  34 +
  35 + it { should have_content(@merge_request.title) }
  36 + it { should have_content(@merge_request.target_branch) }
  37 + it { should have_content(@merge_request.source_branch) }
  38 + it { should have_content(@merge_request.assignee.name) }
  39 +
  40 + describe "Close merge request" do
  41 + before { click_link "Close" }
  42 +
  43 + it { should have_content(@merge_request.title) }
  44 + it "Show page should inform user that merge request closed" do
  45 + within ".merge-request-show-holder h3" do
  46 + page.should have_content "Closed"
  47 + end
  48 + end
9 end 49 end
10 end 50 end
11 end 51 end
spec/requests/projects_security_spec.rb
@@ -122,5 +122,14 @@ describe "Projects" do @@ -122,5 +122,14 @@ describe "Projects" do
122 it { project_snippets_path(@project).should be_denied_for :user } 122 it { project_snippets_path(@project).should be_denied_for :user }
123 it { project_snippets_path(@project).should be_denied_for :visitor } 123 it { project_snippets_path(@project).should be_denied_for :visitor }
124 end 124 end
  125 +
  126 + describe "GET /project_code/merge_requests" do
  127 + it { project_merge_requests_path(@project).should be_allowed_for @u1 }
  128 + it { project_merge_requests_path(@project).should be_allowed_for @u3 }
  129 + it { project_merge_requests_path(@project).should be_denied_for :admin }
  130 + it { project_merge_requests_path(@project).should be_denied_for @u2 }
  131 + it { project_merge_requests_path(@project).should be_denied_for :user }
  132 + it { project_merge_requests_path(@project).should be_denied_for :visitor }
  133 + end
125 end 134 end
126 end 135 end