docbrown/spec/models/poll_skip_spec.rb

29 lines
963 B
Ruby

require "rails_helper"
RSpec.describe PollSkip, type: :model do
let_it_be(:article) { create(:article, featured: true) }
let_it_be(:user) { create(:user) }
let_it_be(:poll) { create(:poll, article: article) }
describe "validations" do
context "when checking against poll" do
before do
create(:poll_skip, user: user, poll: poll)
end
it "is unique across poll and user" do
expect(build(:poll_skip, user: user, poll: poll)).not_to be_valid
end
it "is valid if it belongs to the same user but to a different poll" do
second_poll = create(:poll, article: article)
expect(build(:poll_skip, user: user, poll: second_poll)).to be_valid
end
end
it "is unique across user and poll votes for the poll" do
create(:poll_vote, user: user, poll: poll, poll_option: poll.poll_options.last)
expect(build(:poll_skip, user: user, poll: poll)).not_to be_valid
end
end
end