83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# == Schema Information
 | 
						|
#
 | 
						|
# Table name: issues
 | 
						|
#
 | 
						|
#  id           :integer         not null, primary key
 | 
						|
#  title        :string(255)
 | 
						|
#  assignee_id  :integer
 | 
						|
#  author_id    :integer
 | 
						|
#  project_id   :integer
 | 
						|
#  created_at   :datetime        not null
 | 
						|
#  updated_at   :datetime        not null
 | 
						|
#  closed       :boolean         default(FALSE), not null
 | 
						|
#  position     :integer         default(0)
 | 
						|
#  branch_name  :string(255)
 | 
						|
#  description  :text
 | 
						|
#  milestone_id :integer
 | 
						|
#
 | 
						|
 | 
						|
require 'spec_helper'
 | 
						|
 | 
						|
describe Issue do
 | 
						|
  describe "Associations" do
 | 
						|
    it { should belong_to(:milestone) }
 | 
						|
  end
 | 
						|
 | 
						|
  describe "Mass assignment" do
 | 
						|
    it { should_not allow_mass_assignment_of(:author_id) }
 | 
						|
    it { should_not allow_mass_assignment_of(:project_id) }
 | 
						|
  end
 | 
						|
 | 
						|
  describe "Validation" do
 | 
						|
    it { should ensure_length_of(:description).is_within(0..2000) }
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'modules' do
 | 
						|
    it { should include_module(IssueCommonality) }
 | 
						|
    it { should include_module(Votes) }
 | 
						|
  end
 | 
						|
 | 
						|
  subject { create(:issue) }
 | 
						|
 | 
						|
  describe '#is_being_reassigned?' do
 | 
						|
    it 'returns true if the issue assignee has changed' do
 | 
						|
      subject.assignee = create(:user)
 | 
						|
      subject.is_being_reassigned?.should be_true
 | 
						|
    end
 | 
						|
    it 'returns false if the issue assignee has not changed' do
 | 
						|
      subject.is_being_reassigned?.should be_false
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe '#is_being_closed?' do
 | 
						|
    it 'returns true if the closed attribute has changed and is now true' do
 | 
						|
      subject.closed = true
 | 
						|
      subject.is_being_closed?.should be_true
 | 
						|
    end
 | 
						|
    it 'returns false if the closed attribute has changed and is now false' do
 | 
						|
      issue = create(:closed_issue)
 | 
						|
      issue.closed = false
 | 
						|
      issue.is_being_closed?.should be_false
 | 
						|
    end
 | 
						|
    it 'returns false if the closed attribute has not changed' do
 | 
						|
      subject.is_being_closed?.should be_false
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
  describe '#is_being_reopened?' do
 | 
						|
    it 'returns true if the closed attribute has changed and is now false' do
 | 
						|
      issue = create(:closed_issue)
 | 
						|
      issue.closed = false
 | 
						|
      issue.is_being_reopened?.should be_true
 | 
						|
    end
 | 
						|
    it 'returns false if the closed attribute has changed and is now true' do
 | 
						|
      subject.closed = true
 | 
						|
      subject.is_being_reopened?.should be_false
 | 
						|
    end
 | 
						|
    it 'returns false if the closed attribute has not changed' do
 | 
						|
      subject.is_being_reopened?.should be_false
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |