This is a mistake I made in commit f2ef27d3. Back then I thought we
needed to keep Globalize.locale and I18n.locale in sync, but the truth
is it automatically happens when setting Globalize.locale to nil.
So now we can use I18n.with_locale (at least in the tests) and forget
about Globalize, which will make it easier to switch to Mobility in the
future.
80 lines
2.3 KiB
Ruby
80 lines
2.3 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe Poll::Question, type: :model do
|
|
let(:poll_question) { build(:poll_question) }
|
|
|
|
describe "Concerns" do
|
|
it_behaves_like "acts as paranoid", :poll_question
|
|
end
|
|
|
|
describe "#poll_question_id" do
|
|
it "is invalid if a poll is not selected" do
|
|
poll_question.poll_id = nil
|
|
expect(poll_question).not_to be_valid
|
|
end
|
|
|
|
it "is valid if a poll is selected" do
|
|
poll_question.poll_id = 1
|
|
expect(poll_question).to be_valid
|
|
end
|
|
end
|
|
|
|
describe "#copy_attributes_from_proposal" do
|
|
before { create_list(:geozone, 3) }
|
|
let(:proposal) { create(:proposal) }
|
|
|
|
it "copies the attributes from the proposal" do
|
|
poll_question.copy_attributes_from_proposal(proposal)
|
|
expect(poll_question.author).to eq(proposal.author)
|
|
expect(poll_question.author_visible_name).to eq(proposal.author.name)
|
|
expect(poll_question.proposal_id).to eq(proposal.id)
|
|
expect(poll_question.title).to eq(proposal.title)
|
|
end
|
|
|
|
context "locale with non-underscored name" do
|
|
before { I18n.locale = :"pt-BR" }
|
|
|
|
it "correctly creates a translation" do
|
|
poll_question.copy_attributes_from_proposal(proposal)
|
|
translation = poll_question.translations.first
|
|
|
|
expect(poll_question.title).to eq(proposal.title)
|
|
expect(translation.title).to eq(proposal.title)
|
|
expect(translation.locale).to eq(:"pt-BR")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#enum_type" do
|
|
|
|
it "returns nil if not has votation_type association" do
|
|
expect(poll_question.votation_type).to be_nil
|
|
expect(poll_question.enum_type).to be_nil
|
|
end
|
|
|
|
it "returns enum_type from votation_type association" do
|
|
question = create(:poll_question_answer_couples_open)
|
|
|
|
expect(question.votation_type).not_to be_nil
|
|
expect(question.enum_type).to eq("answer_couples_open")
|
|
end
|
|
|
|
end
|
|
|
|
describe "#max_votes" do
|
|
|
|
it "returns nil if not has votation_type association" do
|
|
expect(poll_question.votation_type).to be_nil
|
|
expect(poll_question.max_votes).to be_nil
|
|
end
|
|
|
|
it "returns max_votes from votation_type association" do
|
|
question = create(:poll_question_answer_couples_open)
|
|
|
|
expect(question.votation_type).not_to be_nil
|
|
expect(question.max_votes).to eq(5)
|
|
end
|
|
|
|
end
|
|
end
|