Sha256: 1e7c4078abd7d28b8302788f8d50af995e230bb32d19ab5964d4abae1e806483
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
require 'spec_helper' def fixture_file_upload(path, mime_type) Rack::Test::UploadedFile.new(Pathname.new(file_fixture_path).join(path), mime_type, false) end describe Rapidfire::Questions::MultiFile do describe "Validations" do it { is_expected.to validate_presence_of(:survey) } it { is_expected.to validate_presence_of(:question_text) } end describe "Associations" do it { is_expected.to belong_to(:survey) } end if "#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}" >= "5.2" describe "validate_answer" do let(:question) { FactoryBot.create(:q_multifile, validation_rules: validation_rules) } let(:answer) { FactoryBot.build(:answer, question: question, files: files) } before { answer.valid? } context "when there are no validation rules" do let(:validation_rules) { {} } let(:files) { [] } it "answer should pass validations" do expect(answer.errors).to be_empty end end context "when question needs a file attachment" do let(:validation_rules) { { presence: "1" } } context "when answer is empty" do let(:files) { [] } it "fails validations" do expect(answer.errors).not_to be_empty end it "says answer should be present" do expect(answer.errors[:files]).to include("can't be blank") end end context "when answer is not empty" do let(:files) do [fixture_file_upload("one.txt", "text/plain"), fixture_file_upload("two.txt", "text/plain")] end it "passes validations" do expect(answer.errors).to be_empty end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rapidfire-8.0.0 | spec/models/rapidfire/questions/multi_file_spec.rb |