2020-08-03 21:52:04 +00:00
require 'rails_helper'
RSpec . describe BroadcastRecordingsController , type : :controller do
render_views
let ( :user ) { create ( :user ) }
let ( :account ) { user . primary_account }
let ( :project ) { create ( :project , account : user . primary_account ) }
before do
sign_in user
2020-08-31 18:19:00 +02:00
stub_mux_live_stream
2020-08-03 21:52:04 +00:00
end
2020-08-31 18:19:00 +02:00
describe " # edit " do
2020-08-03 21:52:04 +00:00
let ( :broadcast ) { create ( :broadcast , project : project , name : " New Broadcast " ) }
let ( :recording ) { create ( :broadcast_recording , broadcast : broadcast ) }
before do
2020-08-20 06:50:51 +02:00
stub_mux_live_stream
2020-08-03 21:52:04 +00:00
end
2020-08-31 18:19:00 +02:00
it " assigns project, broadcast, broadcast recording " do
get :edit , params : { project_id : project , broadcast_id : broadcast , id : recording } , xhr : true
expect ( assigns ( :project ) ) . to have_attributes ( {
id : project . id ,
name : project . name ,
account_id : project . account_id
} )
expect ( assigns ( :broadcast ) ) . to have_attributes ( {
id : broadcast . id ,
name : broadcast . name ,
project_id : project . id
} )
expect ( assigns ( :recording ) ) . to have_attributes ( {
id : recording . id ,
broadcast_id : broadcast . id ,
file_name : " high.mp4 "
} )
end
end
describe " # update " do
let ( :broadcast ) { create ( :broadcast , project : project , name : " New Broadcast " ) }
let ( :recording ) { create ( :broadcast_recording , broadcast : broadcast ) }
let ( :recordings ) { create_list ( :broadcast_recording , 5 , :with_random_asset_uid , broadcast : broadcast ) }
let ( :starred_recordings ) { create_list ( :broadcast_recording , 5 , :with_random_asset_uid , broadcast : broadcast , starred : true ) }
before do
stub_mux_live_stream
end
it " updates the recording's name and description " do
expect ( recording . name ) . to eq ( recording . download_file_name )
expect ( recording . description ) . to eq ( " No description provided for this recording. " )
patch :update , params : { project_id : project , broadcast_id : broadcast , id : recording , broadcast_recording : { name : " Just for fun " , description : " I had fun while making this stream. " } } , xhr : true
recording . reload
expect ( recording . name ) . to eq ( " Just for fun " )
expect ( recording . description ) . to eq ( " I had fun while making this stream. " )
end
end
describe " # destroy " do
let ( :broadcast ) { create ( :broadcast , project : project , name : " New Broadcast " ) }
let ( :recording ) { create ( :broadcast_recording , broadcast : broadcast ) }
2020-08-03 21:52:04 +00:00
it " hides the broadcast recording " do
expect ( recording . hidden ) . to be false
post :destroy , params : { project_id : project , broadcast_id : broadcast , id : recording } , xhr : true
expect ( recording . reload . hidden ) . to be true
end
end
end