Skip to content
Snippets Groups Projects
merge_request_spec.rb 1.99 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    # == Schema Information
    #
    # Table name: merge_requests
    #
    
    #  id            :integer          not null, primary key
    #  target_branch :string(255)      not null
    #  source_branch :string(255)      not null
    #  project_id    :integer          not null
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    #  author_id     :integer
    #  assignee_id   :integer
    #  title         :string(255)
    
    #  closed        :boolean          default(FALSE), not null
    #  created_at    :datetime         not null
    #  updated_at    :datetime         not null
    #  st_commits    :text(2147483647)
    #  st_diffs      :text(2147483647)
    #  merged        :boolean          default(FALSE), not null
    
    #  merge_status  :integer          default(1), not null
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    #  milestone_id  :integer
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    #
    
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    require 'spec_helper'
    
    describe MergeRequest do
    
      describe "Validation" do
        it { should validate_presence_of(:target_branch) }
        it { should validate_presence_of(:source_branch) }
      end
    
    
      describe "Mass assignment" do
        it { should_not allow_mass_assignment_of(:author_id) }
        it { should_not allow_mass_assignment_of(:project_id) }
      end
    
    
        it { should include_module(Issuable) }
    
      describe "#mr_and_commit_notes" do
    
      end
    
    
      describe "#mr_and_commit_notes" do
    
        let!(:merge_request) { create(:merge_request) }
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
          merge_request.stub(:commits) { [merge_request.project.repository.commit] }
    
          create(:note, commit_id: merge_request.commits.first.id, noteable_type: 'Commit')
    
          create(:note, noteable: merge_request)
    
        end
    
        it "should include notes for commits" do
          merge_request.commits.should_not be_empty
          merge_request.mr_and_commit_notes.count.should == 2
        end
      end
    
      subject { create(:merge_request) }
    
    
      describe '#is_being_reassigned?' do
        it 'returns true if the merge_request assignee has changed' do
    
          subject.assignee = create(:user)
    
          subject.is_being_reassigned?.should be_true
        end
        it 'returns false if the merge request assignee has not changed' do
          subject.is_being_reassigned?.should be_false
        end
      end
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    end