Initial commit
This commit is contained in:
203
spec/controllers/unreleased_appearances_controller_spec.rb
Normal file
203
spec/controllers/unreleased_appearances_controller_spec.rb
Normal file
@@ -0,0 +1,203 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe VideoAnalyses::UnreleasedAppearancesController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, account: user.primary_account) }
|
||||
let!(:video) { create(:video, project: project) }
|
||||
|
||||
before :each do
|
||||
sign_in user
|
||||
end
|
||||
|
||||
render_views
|
||||
|
||||
describe "#new" do
|
||||
let(:edl_event_gateway) { instance_double(EdlEventGateway) }
|
||||
|
||||
before :each do
|
||||
allow(EdlEventGateway).to receive(:new).and_return(edl_event_gateway)
|
||||
allow(edl_event_gateway).to receive(:edl_events).and_return(build_list(:edl_event, 1))
|
||||
end
|
||||
|
||||
it "sets unreleased_appearance, edl_events_data" do
|
||||
get :new, params: {
|
||||
unreleased_appearance: { time_elapsed: "1", notes: "great work" },
|
||||
video_id: video,
|
||||
}, xhr: true
|
||||
|
||||
expect(response).to be_successful
|
||||
expect(assigns(:unreleased_appearance)).to have_attributes({
|
||||
video_id: video.id,
|
||||
time_elapsed: "1",
|
||||
notes: "great work",
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
})
|
||||
expect(assigns(:edl_events_data)).to eq({
|
||||
edl_events: build_list(:edl_event, 1),
|
||||
edl_attributes: {
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
},
|
||||
info_message: "An EDL event was found. Data is shown below",
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
describe "#create" do
|
||||
it "creates unreleased_appearance" do
|
||||
expect {
|
||||
post :create, params: {
|
||||
unreleased_appearance: {
|
||||
time_elapsed: "1",
|
||||
notes: "great work",
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
note_category: "other",
|
||||
},
|
||||
video_id: video,
|
||||
}, xhr: true
|
||||
}.to change(UnreleasedAppearance, :count).from(0).to(1)
|
||||
end
|
||||
|
||||
it "sets unreleased_appearances_data" do
|
||||
post :create, params: {
|
||||
unreleased_appearance: {
|
||||
time_elapsed: "1",
|
||||
notes: "great work",
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
note_category: "other",
|
||||
},
|
||||
video_id: video,
|
||||
}, xhr: true
|
||||
|
||||
expect(assigns(:unreleased_appearances_data).unreleased_appearances.first).to have_attributes(
|
||||
notes: "great work",
|
||||
time_elapsed: "1",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
note_category: "other",
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#edit" do
|
||||
let(:edl_gateway) { double(:edl_gateway) }
|
||||
|
||||
before :each do
|
||||
allow(EdlEventGateway).to receive(:new).and_return(edl_gateway)
|
||||
allow(edl_gateway).to receive(:edl_events).and_return(build_list(:edl_event, 1))
|
||||
end
|
||||
|
||||
it "sets unreleased_appearance, edl_events_data" do
|
||||
unreleased_appearance = create(:unreleased_appearance, video: video)
|
||||
|
||||
get :edit, params: { id: unreleased_appearance }, xhr: true
|
||||
|
||||
expect(EdlEventGateway).to have_received(:new).with(
|
||||
instance_of(FilesForRequest),
|
||||
"00:00:01:13",
|
||||
"00:00:01:13",
|
||||
)
|
||||
|
||||
expect(response).to be_successful
|
||||
expect(assigns(:unreleased_appearance)).to eq unreleased_appearance
|
||||
expect(assigns(:edl_events_data)).to eq({
|
||||
edl_events: build_list(:edl_event, 1),
|
||||
edl_attributes: {
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
},
|
||||
info_message: "An EDL event was found. Data is shown below",
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
describe "#update" do
|
||||
let(:edl_gateway) { double(:edl_gateway) }
|
||||
|
||||
before :each do
|
||||
allow(EdlEventGateway).to receive(:new).and_return(edl_gateway)
|
||||
allow(edl_gateway).to receive(:edl_events).and_return(build_list(:edl_event, 1))
|
||||
end
|
||||
|
||||
it "sets unreleased_appearances_data" do
|
||||
unreleased_appearance = create(:unreleased_appearance, video: video)
|
||||
|
||||
put :update, params: {
|
||||
id: unreleased_appearance,
|
||||
unreleased_appearance: {
|
||||
notes: "notes",
|
||||
time_elapsed: "time_elapsed",
|
||||
channel: "V",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
note_category: "other",
|
||||
}
|
||||
}, xhr: true
|
||||
|
||||
expect(response).to be_successful
|
||||
expect(assigns(:unreleased_appearances_data).unreleased_appearances.first).to have_attributes(
|
||||
notes: "notes",
|
||||
time_elapsed: "time_elapsed",
|
||||
timecode_in: "timecode_in",
|
||||
timecode_out: "timecode_out",
|
||||
duration: "duration",
|
||||
source_file_name: "source_file_name",
|
||||
clip_name: "clip_name",
|
||||
description: "description",
|
||||
note_category: "other",
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#destroy" do
|
||||
let!(:unreleased_appearance) { create(:unreleased_appearance) }
|
||||
|
||||
it "sets unreleased_appearances_data" do
|
||||
delete :destroy, params: { id: unreleased_appearance.id }, xhr: true
|
||||
|
||||
expect(assigns(:unreleased_appearances_data).unreleased_appearances).to eq([])
|
||||
end
|
||||
|
||||
it "destroys given unreleased_appearance" do
|
||||
expect {
|
||||
delete :destroy, params: { id: unreleased_appearance.id }, xhr: true
|
||||
}.to change(UnreleasedAppearance, :count).from(1).to(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user