require "rails_helper" RSpec.describe Poll::Question do let(:poll_question) { build(:poll_question) } describe "Concerns" do it_behaves_like "acts as paranoid", :poll_question it_behaves_like "globalizable", :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 it "correctly creates a translation" do I18n.with_locale(:"pt-BR") do poll_question.copy_attributes_from_proposal(proposal) end 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 end