Files
old-holivud2/spec/services/video_analysis_service_spec.rb
2020-05-31 22:38:19 +02:00

75 lines
2.3 KiB
Ruby

require "rails_helper"
RSpec.describe VideoAnalysisService do
let(:project) { create(:project) }
let(:video_analysis) { VideoAnalysis.new(video, false) }
let(:audio_analysis) { AudioAnalysis.new(video) }
let(:edl_event_gateway) { instance_double(EdlEventGateway, edl_events: []) }
before :each do
allow(EdlEventGateway).to receive(:new).and_return(edl_event_gateway)
end
describe "#presenter" do
context "when video has graphics only EDL" do
let(:video) { create(:video, :with_graphics_only_edl_file, project: project, edl_timecode_start: "01:00:55:00") }
it "fetches all edl events" do
subject.presenter(video, video_analysis, audio_analysis)
expect(EdlEventGateway).to have_received(:new).with(
instance_of(FilesForRequest),
"00:00:00:00",
nil,
)
end
context "when edl_timecode_start not present" do
it "fetches offset then all graphics EDL events" do
video.edl_timecode_start = nil
allow(EdlEventGateway).to receive(:new).and_return(instance_double(EdlEventGateway, edl_timecode_start: "01:00:55:00", edl_events: []))
subject.presenter(video, video_analysis, audio_analysis)
expect(EdlEventGateway).to have_received(:new).with(
instance_of(FilesForRequest),
"00:00:00:00",
"00:00:00:00",
)
expect(EdlEventGateway).to have_received(:new).with(
instance_of(GraphicsFilesForRequest),
"00:00:00:00",
nil,
)
end
end
context "when edl_timecode_start present" do
it "fetches all graphics EDL events using edl_timecode_start" do
subject.presenter(video, video_analysis, audio_analysis)
expect(EdlEventGateway).to have_received(:new).with(
instance_of(GraphicsFilesForRequest),
"00:00:00:00",
nil,
)
end
end
end
context "when video missing graphics only EDL" do
let(:video) { create(:video, project: project) }
it "does not fetch all graphics EDL events" do
subject.presenter(video, video_analysis, audio_analysis)
expect(EdlEventGateway).not_to have_received(:new).with(
instance_of(GraphicsFilesForRequest),
"00:00:00:00",
nil
)
end
end
end
end