Initial commit
This commit is contained in:
43
spec/channels/projects_channel_spec.rb
Normal file
43
spec/channels/projects_channel_spec.rb
Normal file
@@ -0,0 +1,43 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe ProjectsChannel, type: :channel do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
before do
|
||||
stub_connection current_user: user
|
||||
end
|
||||
|
||||
it "successfully subscribes to project stream" do
|
||||
subscribe id: project.id
|
||||
expect(subscription).to be_confirmed
|
||||
expect(subscription).to have_stream_for(project)
|
||||
end
|
||||
|
||||
describe ".broadcast_video_analysis_update" do
|
||||
it "broadcasts to the project channel" do
|
||||
video = create(:video, project: project)
|
||||
content = ApplicationController.render partial: "video_analyses/video_status_updated", locals: { video: video }
|
||||
|
||||
expect {
|
||||
ProjectsChannel.broadcast_video_analysis_update(video)
|
||||
}.to have_broadcasted_to(project).with(event: "video_status_update", content: content)
|
||||
end
|
||||
end
|
||||
|
||||
describe ".conference_recording_ready" do
|
||||
it "broadcasts to the project channel" do
|
||||
recording_file = Rack::Test::UploadedFile.new(Rails.root.join("spec", "fixtures", "files", "video_file.mp4"), "video/mp4")
|
||||
zoom_meeting = create(:zoom_meeting, project: project, recording: recording_file)
|
||||
video_url = 'http://url.to.video/video.mp4'
|
||||
allow(zoom_meeting.recording).to receive(:service_url).and_return(video_url)
|
||||
|
||||
expect {
|
||||
ProjectsChannel.conference_recording_ready(project, zoom_meeting.recording)
|
||||
}.to have_broadcasted_to(project).with { |data|
|
||||
expect(data['content']).to include(video_url)
|
||||
expect(data['event']).to eq('conference_recording_ready')
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user