Initial commit
This commit is contained in:
71
spec/jobs/analyze_video_job_spec.rb
Normal file
71
spec/jobs/analyze_video_job_spec.rb
Normal file
@@ -0,0 +1,71 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe AnalyzeVideoJob do
|
||||
describe ".perform_now" do
|
||||
it "calls API with video data" do
|
||||
video = build_stubbed(:video)
|
||||
video_analysis = instance_double(VideoAnalysis, "video_analysis")
|
||||
expect(VideoAnalysis).to receive(:new).with(video, false).and_return(video_analysis)
|
||||
|
||||
mock_facial_recognition_create_api_call
|
||||
mock_video_update(video)
|
||||
|
||||
AnalyzeVideoJob.perform_now video
|
||||
|
||||
expect(BrayniacAI::FacialRecognition).to(
|
||||
have_received(:create!).
|
||||
with(video_analysis)
|
||||
)
|
||||
end
|
||||
|
||||
it "calls API with video data and reanalysis flag" do
|
||||
video = build_stubbed(:video)
|
||||
video_analysis = instance_double(VideoAnalysis, "video_analysis")
|
||||
expect(VideoAnalysis).to receive(:new).with(video, true).and_return(video_analysis)
|
||||
|
||||
mock_facial_recognition_create_api_call
|
||||
mock_video_update(video)
|
||||
|
||||
AnalyzeVideoJob.perform_now video, reanalysis: true
|
||||
|
||||
expect(BrayniacAI::FacialRecognition).to(
|
||||
have_received(:create!).
|
||||
with(video_analysis)
|
||||
)
|
||||
end
|
||||
|
||||
it "saves data about the analysis" do
|
||||
video = build_stubbed(:video)
|
||||
mock_facial_recognition_create_api_call(job_uid: "123abc")
|
||||
mock_video_update(video)
|
||||
|
||||
freeze_time do
|
||||
AnalyzeVideoJob.perform_now video
|
||||
|
||||
expect(video).to(
|
||||
have_received(:update!).
|
||||
with({
|
||||
analysis_uid: "123abc",
|
||||
analysis_started_at: Time.zone.now,
|
||||
analysis_status: :pending
|
||||
})
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def mock_facial_recognition_create_api_call(job_uid: "test")
|
||||
double("response", job_id: job_uid).tap do |api_response|
|
||||
allow(BrayniacAI::FacialRecognition).to(
|
||||
receive(:create!).
|
||||
and_return(api_response)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def mock_video_update(video)
|
||||
allow(video).to receive(:update!)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user