Initial commit
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe Public::AcquiredMediaReleasesController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
render_views
|
||||
|
||||
describe "#create" do
|
||||
it "logs analytics" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, acquired_media_release: acquired_media_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(TrackAnalyticsJob)
|
||||
.with(nil, nil, :track_create_native_release, release_type: "AcquiredMediaRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
||||
)
|
||||
end
|
||||
|
||||
it "displays validation errors" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
sign_in(user)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, acquired_media_release: { name: "" } }
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match /Name can't be blank/
|
||||
expect(body).to match />can't be blank</
|
||||
end
|
||||
|
||||
it "responds with success " do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, acquired_media_release: acquired_media_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "runs set tags for releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, acquired_media_release: acquired_media_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(SetTagsForReleasableJob)
|
||||
.with(TalentRelease.last)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs attach contract to releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, acquired_media_release: acquired_media_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(AttachContractToReleasableJob)
|
||||
.with(TalentRelease.last)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def acquired_media_release_params
|
||||
attributes_for(:acquired_media_release_with_file_infos, :native).except(:signature).merge(signature_param)
|
||||
end
|
||||
|
||||
def signature_param
|
||||
file = file_fixture("signature.png")
|
||||
data_uri = Base64Image.from_image(file).data_uri
|
||||
|
||||
{ signature_base64: data_uri }
|
||||
end
|
||||
end
|
||||
132
spec/controllers/public/appearance_releases_controller_spec.rb
Normal file
132
spec/controllers/public/appearance_releases_controller_spec.rb
Normal file
@@ -0,0 +1,132 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Public::AppearanceReleasesController do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
render_views
|
||||
|
||||
before :each do
|
||||
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
||||
end
|
||||
|
||||
describe "#create" do
|
||||
it "logs analytics" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: {
|
||||
account_id: project.account.to_param,
|
||||
project_id: project,
|
||||
contract_template_id: contract_template,
|
||||
appearance_release: appearance_release_params
|
||||
}
|
||||
}.to(
|
||||
have_enqueued_job(TrackAnalyticsJob)
|
||||
.with(nil, nil, :track_create_native_release, release_type: "AppearanceRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
||||
)
|
||||
end
|
||||
|
||||
it "displays validation errors" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
sign_in(user)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: { person_address: "Albuquerque" } }
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match /Person first name can't be blank/
|
||||
expect(body).to match /Person last name can't be blank/
|
||||
expect(body).to match /Photo is not attached/
|
||||
expect(body).to match />can't be blank</
|
||||
end
|
||||
|
||||
it "responds with success " do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: appearance_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "responds with success when guardian photo is attached for minor" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: minor_appearance_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "responds with success when guardian photo is not attached for minor" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: minor_appearance_release_params(false) }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "runs headshots job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: {
|
||||
account_id: project.account.to_param,
|
||||
project_id: project,
|
||||
contract_template_id: contract_template,
|
||||
appearance_release: appearance_release_params
|
||||
}
|
||||
}.to(
|
||||
have_enqueued_job(AddHeadshotCollectionUidToProjectJob)
|
||||
.with(project)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs set tags for releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: {
|
||||
account_id: project.account.to_param,
|
||||
project_id: project,
|
||||
contract_template_id: contract_template,
|
||||
appearance_release: appearance_release_params
|
||||
}
|
||||
}.to(
|
||||
have_enqueued_job(SetTagsForReleasableJob)
|
||||
.with(AppearanceRelease.last)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs attach contract to releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: {
|
||||
account_id: project.account.to_param,
|
||||
project_id: project,
|
||||
contract_template_id: contract_template,
|
||||
appearance_release: appearance_release_params
|
||||
}
|
||||
}.to(
|
||||
have_enqueued_job(AttachContractToReleasableJob)
|
||||
.with(AppearanceRelease.last)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def appearance_release_params
|
||||
attributes_for(:appearance_release, :native).except(:signature).merge(signature_param)
|
||||
end
|
||||
|
||||
def minor_appearance_release_params(with_guardian_photo = true)
|
||||
minor_type = with_guardian_photo ? :minor_with_guardian_photo : :minor
|
||||
attributes_for(:appearance_release, minor_type).merge(signature_param)
|
||||
end
|
||||
|
||||
def signature_param
|
||||
file = file_fixture("signature.png")
|
||||
data_uri = Base64Image.from_image(file).data_uri
|
||||
|
||||
{ signature_base64: data_uri }
|
||||
end
|
||||
end
|
||||
110
spec/controllers/public/broadcasts_controller_spec.rb
Normal file
110
spec/controllers/public/broadcasts_controller_spec.rb
Normal file
@@ -0,0 +1,110 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Public::BroadcastsController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:account) { user.primary_account }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
before do
|
||||
allow(MuxLiveStream).to receive(:new).and_return(double(id: "id", key: "key", playback_id: "playback_id"))
|
||||
end
|
||||
|
||||
describe "#show" do
|
||||
let(:broadcast) { create(:broadcast, project: project, name: "Broadcast") }
|
||||
|
||||
it "responds successfully" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response).to be_successful
|
||||
expect(assigns(:broadcast)).to eq(broadcast)
|
||||
end
|
||||
|
||||
it "renders zoom meeting button" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response.body).to have_link("Video Conference", href: broadcast_zoom_meeting_url(broadcast.token))
|
||||
end
|
||||
|
||||
it "doesn't render share url" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response.body).not_to have_button "Copy Share URL"
|
||||
expect(response.body).not_to have_xpath "//input[@value='#{broadcast_url(broadcast.token)}']"
|
||||
end
|
||||
|
||||
it "assigns required variables" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(assigns(:conference_url)).to eq broadcast_zoom_meeting_url(broadcast.token)
|
||||
expect(assigns(:broadcast)).to eq broadcast
|
||||
end
|
||||
|
||||
context "when there are no multi-view broadcasts" do
|
||||
it "renders the view dropdown with just the current broadcast" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response.body).to have_content "Switch View"
|
||||
expect(response.body).to have_selector(".dropdown-menu .dropdown-item.active", text: "Broadcast")
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are multi-view broadcasts" do
|
||||
it "renders the view dropdown with all the broadcasts" do
|
||||
other_broadcast = create(:broadcast, project: project, name: "Some Other Broadcast")
|
||||
|
||||
get :show, params: { token: broadcast.token, multi_view_tokens: [broadcast.token, other_broadcast.token] }
|
||||
|
||||
expect(response.body).to have_content "Switch View"
|
||||
expect(response.body).to have_selector(".dropdown-menu .dropdown-item.active", text: "Broadcast")
|
||||
expect(response.body).to have_selector(".dropdown-menu a.dropdown-item", text: "Some Other Broadcast")
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are no recordings for the current broadcast" do
|
||||
it "renders the view dropdown with a message" do
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response.body).to have_content "Switch View"
|
||||
expect(response.body).to have_selector(".dropdown-menu .dropdown-item", text: "Recordings will appear here")
|
||||
end
|
||||
end
|
||||
|
||||
context "when there are recordings available" do
|
||||
it "renders the view dropdown with the recordings" do
|
||||
recording = create(:broadcast_recording, broadcast: broadcast)
|
||||
|
||||
get :show, params: { token: broadcast.token }
|
||||
|
||||
expect(response.body).to have_content "Switch View"
|
||||
expect(response.body).to have_selector(".dropdown-menu a.dropdown-item", text: recording.download_file_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#update" do
|
||||
let!(:broadcast) { create(:broadcast, :with_stream, skip_create_callback: true, project: project ) }
|
||||
|
||||
it "uploads files to broadcast" do
|
||||
patch :update, params: { token: broadcast.token, broadcast: file_params }, xhr: true
|
||||
|
||||
expect(broadcast.files.count).to eq(1)
|
||||
expect(broadcast.files.first.filename).to eq("contract.pdf")
|
||||
end
|
||||
end
|
||||
|
||||
after do
|
||||
# Set the callback again or it will affect other test cases where the callback is required
|
||||
Broadcast.set_callback(:create, :after, :create_mux_live_stream)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def file_params
|
||||
path = Rails.root.join("spec", "fixtures", "files", "contract.pdf")
|
||||
contract_file = Rack::Test::UploadedFile.new(path, "application/pdf")
|
||||
|
||||
{ files: [contract_file] }
|
||||
end
|
||||
end
|
||||
86
spec/controllers/public/location_releases_controller_spec.rb
Normal file
86
spec/controllers/public/location_releases_controller_spec.rb
Normal file
@@ -0,0 +1,86 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Public::LocationReleasesController do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
render_views
|
||||
|
||||
describe "#create" do
|
||||
it "logs analytics" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, location_release: location_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(TrackAnalyticsJob)
|
||||
.with(nil, nil, :track_create_native_release, release_type: "LocationRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
||||
)
|
||||
end
|
||||
|
||||
it "displays validation errors" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
sign_in(user)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, location_release: { person_address_city: "Albuquerque", filming_started_on: '02/02/02', filming_ended_on: '01/01/02' } }
|
||||
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match /Name can't be blank/
|
||||
expect(body).to match />can't be blank</
|
||||
# expect(body).to match /must be after the filming started on date/
|
||||
end
|
||||
|
||||
it "renders a success page" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, location_release: location_release_params, filming_started_on: '01/02/20', filming_ended_on: '03/18/20' }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "runs set tags for releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, location_release: location_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(SetTagsForReleasableJob)
|
||||
.with(LocationRelease.last)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs attach contract to releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, location_release: location_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(AttachContractToReleasableJob)
|
||||
.with(LocationRelease.last)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def location_release_params
|
||||
attributes_for(:location_release, :native).except(:signature).merge(signature_param).merge(person_address_params)
|
||||
end
|
||||
|
||||
def person_address_params
|
||||
{
|
||||
person_address_street1: "123 Broadway",
|
||||
person_address_city: "New York",
|
||||
person_address_state: "NY",
|
||||
person_address_zip: "10001",
|
||||
person_address_country: "United States"
|
||||
}
|
||||
end
|
||||
|
||||
def signature_param
|
||||
file = file_fixture("signature.png")
|
||||
data_uri = Base64Image.from_image(file).data_uri
|
||||
|
||||
{ signature_base64: data_uri }
|
||||
end
|
||||
end
|
||||
74
spec/controllers/public/material_releases_controller_spec.rb
Normal file
74
spec/controllers/public/material_releases_controller_spec.rb
Normal file
@@ -0,0 +1,74 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Public::MaterialReleasesController do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
render_views
|
||||
|
||||
describe "#create" do
|
||||
it "logs analytics" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, material_release: material_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(TrackAnalyticsJob)
|
||||
.with(nil, nil, :track_create_native_release, release_type: "MaterialRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
||||
)
|
||||
end
|
||||
|
||||
it "displays validation errors" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
sign_in(user)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, material_release: { person_address_city: "Albuquerque" } }
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match /Person first name can't be blank/
|
||||
expect(body).to match /Person last name can't be blank/
|
||||
expect(body).to match />can't be blank</
|
||||
end
|
||||
|
||||
it "renders a confirmation page" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
post :create, params: { account_id: user.primary_account, project_id: project, contract_template_id: contract_template, material_release: material_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "runs set tags for releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, material_release: material_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(SetTagsForReleasableJob)
|
||||
.with(MaterialRelease.last)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs attach contract to releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, material_release: material_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(AttachContractToReleasableJob)
|
||||
.with(MaterialRelease.last)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def material_release_params
|
||||
attributes_for(:material_release, :native).except(:signature).merge(signature_param)
|
||||
end
|
||||
|
||||
def signature_param
|
||||
file = file_fixture("signature.png")
|
||||
data_uri = Base64Image.from_image(file).data_uri
|
||||
|
||||
{ signature_base64: data_uri }
|
||||
end
|
||||
end
|
||||
115
spec/controllers/public/talent_releases_controller_spec.rb
Normal file
115
spec/controllers/public/talent_releases_controller_spec.rb
Normal file
@@ -0,0 +1,115 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe Public::TalentReleasesController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
|
||||
render_views
|
||||
|
||||
describe "#create" do
|
||||
it "logs analytics" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: talent_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(TrackAnalyticsJob)
|
||||
.with(nil, nil, :track_create_native_release, release_type: "TalentRelease", account: project.account, user_agent: "Rails Testing", user_ip: "0.0.0.0")
|
||||
)
|
||||
end
|
||||
|
||||
it "displays validation errors" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
sign_in(user)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, talent_release: { person_address_city: "Albuquerque" } }
|
||||
body = CGI.unescape_html(response.body)
|
||||
expect(body).to match /Person first name can't be blank/
|
||||
expect(body).to match /Person last name can't be blank/
|
||||
expect(body).to match /Photos must be included/
|
||||
expect(body).to match />can't be blank</
|
||||
end
|
||||
|
||||
it "responds with success " do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, talent_release: talent_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "responds with success when guardian photo is attached for minor" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: minor_appearance_release_params }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "responds with success when guardian photo is not attached for minor" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: minor_appearance_release_params(false) }
|
||||
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "runs headshots job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: talent_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(AddHeadshotCollectionUidToProjectJob)
|
||||
.with(project)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs set tags for releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: talent_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(SetTagsForReleasableJob)
|
||||
.with(TalentRelease.last)
|
||||
)
|
||||
end
|
||||
|
||||
it "runs attach contract to releasable job" do
|
||||
contract_template = create(:contract_template, project: project)
|
||||
|
||||
expect {
|
||||
post :create, params: { account_id: project.account.to_param, project_id: project, contract_template_id: contract_template, talent_release: talent_release_params }
|
||||
}.to(
|
||||
have_enqueued_job(AttachContractToReleasableJob)
|
||||
.with(TalentRelease.last)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def talent_release_params
|
||||
attributes_for(:talent_release, :native).except(:signature).merge(signature_param, photos_param)
|
||||
end
|
||||
|
||||
def minor_appearance_release_params(with_guardian_photo = true)
|
||||
minor_type = with_guardian_photo ? :minor_with_guardian_photo : :minor
|
||||
attributes_for(:talent_release, minor_type).merge(signature_param, photos_param)
|
||||
end
|
||||
|
||||
def photos_param
|
||||
path = Rails.root.join("spec", "fixtures", "files", "person_photo.png")
|
||||
photo = Rack::Test::UploadedFile.new(path, "image/png")
|
||||
|
||||
{ photos: [photo] }
|
||||
end
|
||||
|
||||
def signature_param
|
||||
file = file_fixture("signature.png")
|
||||
data_uri = Base64Image.from_image(file).data_uri
|
||||
|
||||
{ signature_base64: data_uri }
|
||||
end
|
||||
end
|
||||
26
spec/controllers/public/zoom_meetings_controller_spec.rb
Normal file
26
spec/controllers/public/zoom_meetings_controller_spec.rb
Normal file
@@ -0,0 +1,26 @@
|
||||
require 'rails_helper'
|
||||
require 'zoom_gateway'
|
||||
|
||||
RSpec.describe Public::ZoomMeetingsController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:account) { user.primary_account }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
let(:broadcast) { create(:broadcast, name: "Broadcast", project: project) }
|
||||
|
||||
let(:meeting_start_url) { "http://meeting_start_url" }
|
||||
let(:meeting_hash) { HashWithIndifferentAccess.new(start_url: meeting_start_url) }
|
||||
|
||||
before :each do
|
||||
allow_any_instance_of(ZoomGateway).to receive(:find_meeting).and_return(meeting_hash)
|
||||
allow_any_instance_of(ZoomGateway).to receive(:create_meeting).and_return("meeting_id")
|
||||
allow_any_instance_of(ZoomGateway).to receive(:create_host).and_return("host_id")
|
||||
allow(MuxLiveStream).to receive(:new).and_return OpenStruct.new(id: 'id', key: 'key', playback_id: 'playback_id')
|
||||
end
|
||||
|
||||
describe "#show" do
|
||||
it "redirects to meeting start url" do
|
||||
get :show, params: { broadcast_token: broadcast.token }
|
||||
expect(response).to redirect_to(meeting_start_url)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user