gitlab-org--gitlab-foss/spec/models/issue_spec.rb

77 lines
2.4 KiB
Ruby
Raw Normal View History

2011-10-08 17:36:38 -04:00
require 'spec_helper'
describe Issue do
describe "Associations" do
it { should belong_to(:project) }
it { should belong_to(:author) }
it { should belong_to(:assignee) }
2012-04-08 18:01:42 -04:00
it { should belong_to(:milestone) }
2011-10-08 17:36:38 -04:00
end
describe "Validation" do
it { should validate_presence_of(:title) }
it { should validate_presence_of(:author_id) }
it { should validate_presence_of(:project_id) }
it { should validate_presence_of(:assignee_id) }
end
describe "Scope" do
2011-10-08 17:36:38 -04:00
it { Issue.should respond_to :closed }
it { Issue.should respond_to :opened }
end
it { Factory.create(:issue,
:author => Factory(:user),
:assignee => Factory(:user),
2012-04-08 18:29:15 -04:00
:project => Factory.create(:project)).should be_valid }
2011-10-08 17:36:38 -04:00
2012-03-14 09:31:31 -04:00
describe "plus 1" do
let(:project) { Factory(:project) }
subject {
Factory.create(:issue,
:author => Factory(:user),
:assignee => Factory(:user),
:project => project)
}
it "with no notes has a 0/0 score" do
subject.upvotes.should == 0
end
it "should recognize non-+1 notes" do
subject.notes << Factory(:note, note: "No +1 here", project: Factory(:project, path: 'plusone', code: 'plusone'))
subject.should have(1).note
subject.notes.first.upvote?.should be_false
subject.upvotes.should == 0
end
it "should recognize a single +1 note" do
subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone'))
subject.upvotes.should == 1
end
it "should recognize a multiple +1 notes" do
subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone'))
subject.notes << Factory(:note, note: "+1 I want this", project: Factory(:project, path: 'plustwo', code: 'plustwo'))
subject.upvotes.should == 2
end
end
2011-10-08 17:36:38 -04:00
end
# == 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
# updated_at :datetime
# closed :boolean default(FALSE), not null
2011-10-17 11:31:21 -04:00
# position :integer default(0)
2011-11-10 17:08:20 -05:00
# critical :boolean default(FALSE), not null
2011-12-18 09:09:16 -05:00
# branch_name :string(255)
2011-10-08 17:36:38 -04:00
#