Initial commit
This commit is contained in:
68
spec/models/audio_analysis_spec.rb
Normal file
68
spec/models/audio_analysis_spec.rb
Normal file
@@ -0,0 +1,68 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe AudioAnalysis, type: :model do
|
||||
let(:video) { build(:video, :with_audio_only_edl_file, audio_analysis_uid: "123abc") }
|
||||
|
||||
subject { AudioAnalysis.new(video) }
|
||||
|
||||
describe "#to_hash" do
|
||||
it "includes edl" do
|
||||
allow(ENV).to receive(:[])
|
||||
allow(ENV).to receive(:[]).with("AWS_BUCKET").and_return("mybucket")
|
||||
|
||||
expect(subject.to_hash).to include({
|
||||
edl_bucket_name: "mybucket",
|
||||
edl_object_name: video.audio_only_edl_file.key,
|
||||
})
|
||||
end
|
||||
|
||||
it "includes acquired media audio file infos" do
|
||||
create(:acquired_media_release, project: video.project, file_infos: [
|
||||
build(:file_info, id: 1, filename: "acquired_media_1.mp3", content_type: "audio/mp3"),
|
||||
build(:file_info, id: 2, filename: "acquired_media_2.aif", content_type: "audio/aif"),
|
||||
build(:file_info, id: 3, filename: "acquired_media_3.wav", content_type: "audio/wav"),
|
||||
build(:file_info, id: 4, filename: "acquired_media_4.mov", content_type: "video/mov"),
|
||||
build(:file_info, id: 5, filename: "acquired_media_4.mp4", content_type: "video/mp4"),
|
||||
])
|
||||
|
||||
expect(subject.to_hash).to have_key(:acquired_audio)
|
||||
expect(subject.to_hash[:acquired_audio]).to include(id: 1, filename: "acquired_media_1.mp3")
|
||||
expect(subject.to_hash[:acquired_audio]).to include(id: 2, filename: "acquired_media_2.aif")
|
||||
expect(subject.to_hash[:acquired_audio]).to include(id: 3, filename: "acquired_media_3.wav")
|
||||
expect(subject.to_hash[:acquired_audio]).not_to include(id: 4, filename: "acquired_media_4.mov")
|
||||
expect(subject.to_hash[:acquired_audio]).not_to include(id: 5, filename: "acquired_media_5.mp4")
|
||||
end
|
||||
|
||||
it "includes music release file infos" do
|
||||
create(:music_release,
|
||||
project: video.project,
|
||||
file_infos: [
|
||||
build(:file_info, id: 1, filename: "original_music_1.mp3"),
|
||||
build(:file_info, id: 2, filename: "original_music_2.mp3"),
|
||||
],
|
||||
composers: build_list(:composer, 1),
|
||||
publishers: build_list(:publisher, 1),
|
||||
)
|
||||
|
||||
expect(subject.to_hash).to have_key(:original_music)
|
||||
expect(subject.to_hash[:original_music]).to include(id: 1, filename: "original_music_1.mp3",
|
||||
composers: "Beethoven, Affiliation, 100.0",
|
||||
publishers: "Jingle Punks, Affiliation, 100.0")
|
||||
expect(subject.to_hash[:original_music]).to include(id: 2, filename: "original_music_2.mp3",
|
||||
composers: "Beethoven, Affiliation, 100.0",
|
||||
publishers: "Jingle Punks, Affiliation, 100.0")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#results" do
|
||||
it "returns response from API request using audio analysis uid" do
|
||||
response = double("response", results: [])
|
||||
edl_event_gateway = double("edl_event_gateway", fps: 29.97, edl_offset_seconds: 0)
|
||||
allow(EdlEventGateway).to receive(:new).and_return(edl_event_gateway)
|
||||
allow(BrayniacAI::AudioRecognition).to receive(:find).and_return(response)
|
||||
|
||||
expect(subject.results).to eq(response.results)
|
||||
expect(BrayniacAI::AudioRecognition).to have_received(:find).with(video.audio_analysis_uid, params: { fps: 29.97, edl_offset_seconds: 0 })
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user