diaspora/spec/models/poll_spec.rb
2017-08-26 03:16:05 +02:00

42 lines
1.5 KiB
Ruby

describe Poll, type: :model do
let(:status) { FactoryGirl.create(:status_message) }
let(:poll) { Poll.new(question: "What do you think about apples?", status_message: status) }
describe "validation" do
it "should not create a poll when it has less than two answers" do
poll.poll_answers.build(answer: "1").poll = poll
expect(poll).not_to be_valid
end
it "should create a poll when it has more than two answers" do
poll.poll_answers.build(answer: "1").poll = poll
poll.poll_answers.build(answer: "2").poll = poll
expect(poll).to be_valid
end
it "should not create a poll when question in blank" do
poll.question = " "
poll.valid?
expect(poll.errors).to have_key(:question)
end
end
describe "poll_participation" do
it "should return the answer object after a user voted in a poll" do
answer = poll.poll_answers.build(answer: "1")
answer.poll = poll
poll.poll_answers.build(answer: "2").poll = poll
poll.save
participation = poll.poll_participations.create(poll_answer: answer, author: alice.person)
expect(poll.participation_answer(alice)).to eql(participation)
end
it "should return nil if a user did not participate in a poll" do
answer = poll.poll_answers.build(answer: "1")
answer.poll = poll
poll.poll_answers.build(answer: "2").poll = poll
poll.save
expect(poll.participation_answer(alice)).to eql(nil)
end
end
end