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 34 obj.title = Faker::Lorem.sentence
35 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 43 Factory.add(:snippet, Snippet) do |obj|
38 44 obj.title = Faker::Lorem.sentence
39 45 obj.file_name = Faker::Lorem.sentence
... ...
spec/requests/merge_requests_spec.rb
1 1 require 'spec_helper'
2 2  
3 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 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 49 end
10 50 end
11 51 end
... ...
spec/requests/projects_security_spec.rb
... ... @@ -122,5 +122,14 @@ describe "Projects" do
122 122 it { project_snippets_path(@project).should be_denied_for :user }
123 123 it { project_snippets_path(@project).should be_denied_for :visitor }
124 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 134 end
126 135 end
... ...