require "rails_helper" RSpec.describe AudioConfirmation do describe "associations" do it { is_expected.to belong_to(:video) } end describe "validations" do it { is_expected.to validate_presence_of(:time_elapsed) } describe "confirmation_type" do it "validates only original_music and library_music are allowed" do expect(build(:audio_confirmation, confirmation_type: "original_music").valid?).to eq true expect(build(:audio_confirmation, confirmation_type: "library_music").valid?).to eq true expect(build(:audio_confirmation, confirmation_type: "unknown_music").valid?).to eq false end end end describe "#appears_at" do it "returns formatted timecode" do audio_confirmation = build(:audio_confirmation, time_elapsed: "1.039") expect(audio_confirmation.appears_at).to eq "00:00:01:01" end end describe "#presented_source_file_name" do context "when confirmation_type is original_music" do it "returns source_file_name with (O) prefix" do audio_confirmation = build(:audio_confirmation, confirmation_type: "original_music", source_file_name: "source_file_name") expect(audio_confirmation.presented_source_file_name).to eq "(O) source_file_name" end end context "when confirmation_type is library_music" do it "returns source_file_name with (L) prefix" do audio_confirmation = build(:audio_confirmation, confirmation_type: "library_music", source_file_name: "source_file_name") expect(audio_confirmation.presented_source_file_name).to eq "(L) source_file_name" end end end describe "#confirmation_type_library?" do it "returns true when confirmation_type is library" do expect(build(:audio_confirmation, :library)).to be_confirmation_type_library end it "returns false when confirmation_type is not library" do expect(build(:audio_confirmation, :original)).not_to be_confirmation_type_library end end end