gitlabhq/spec/models/issue_spec.rb

84 lines
2.4 KiB
Ruby
Raw Normal View History

2012-10-09 10:14:17 +02:00
# == 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
#
2011-10-08 23:36:38 +02:00
require 'spec_helper'
describe Issue do
describe "Associations" do
2012-04-09 00:01:42 +02:00
it { should belong_to(:milestone) }
2011-10-08 23:36:38 +02:00
end
describe "Mass assignment" do
it { should_not allow_mass_assignment_of(:author_id) }
it { should_not allow_mass_assignment_of(:project_id) }
end
2011-10-08 23:36:38 +02:00
describe "Validation" do
it { should ensure_length_of(:description).is_within(0..2000) }
2012-09-05 12:14:24 +02:00
it { should ensure_inclusion_of(:closed).in_array([true, false]) }
2011-10-08 23:36:38 +02:00
end
describe 'modules' do
it { should include_module(IssueCommonality) }
2012-09-08 02:23:49 +02:00
it { should include_module(Votes) }
end
subject { Factory.create(:issue) }
describe '#is_being_reassigned?' do
it 'returns true if the issue assignee has changed' do
subject.assignee = Factory(: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
2011-10-08 23:36:38 +02:00
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 = Factory.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 = Factory.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
2011-10-08 23:36:38 +02:00
end