Files
old-holivud2/spec/features/user_managing_videos_spec.rb
2020-05-31 22:38:19 +02:00

119 lines
3.2 KiB
Ruby

require "rails_helper"
feature "User managing videos" do
let(:current_user) { create(:user) }
let(:project) { create(:project, account: current_user.primary_account) }
let!(:video) do
create(:video,
:with_graphics_only_edl_file,
:with_audio_only_edl_file,
project: project,
name: "Star Wars",
number: "1",
video_editing_system: "adobe_premiere",)
end
before :each do
sign_in current_user
end
scenario "creating a video", js: true do
visit project_videos_path(project)
click_link "Upload New Video"
expect(page).to have_content "Upload Video"
expect(page).to have_link("Avid")
expect(page).to have_link("Adobe Premiere")
click_link "Adobe Premiere"
expect(page).to have_content "Upload Video"
expect(page).to have_selector "#video_file", visible: :all
expect(page).to have_selector "#video_edl_file", visible: :all
expect(page).to have_selector "#video_graphics_only_edl_file", visible: :all
expect(page).to have_selector "#video_audio_only_edl_file", visible: :all
expect(page).to have_link "click here", href: /mailto:info@bigmedia\.ai/
fill_in_video_fields name: "New name", number: "99"
# TODO: Figure out how to test video gets created and shows up in project page
end
scenario "editing a video", js: true do
create(:video,
:with_graphics_only_edl_file,
:with_audio_only_edl_file,
project: project,
name: "Star Wars",
number: "1",
video_editing_system: "adobe_premiere",)
video_data = {
name: "Star Wars",
number: "1",
}
visit project_videos_path(project)
all('a', :text => /Edit/)[1].click
within "#current-edl-file" do
expect(page).to have_content("sample-edl.edl")
end
within "#current-graphics-only-edl-file" do
expect(page).to have_content("sample-edl.edl")
end
within "#current-audio-only-edl-file" do
expect(page).to have_content("sample-edl.edl")
end
expect(page).to have_filled_in_data(video_data)
fill_in_video_fields name: "New name", number: "99"
accept_alert do
click_button "Save Changes"
end
expect(page).to have_content(update_video_notice)
end
scenario "searching for a video", js: true do
create(:video, project: project, name: "First Video")
create(:video, project: project, name: "Second Video")
visit project_videos_path(project)
fill_in "query", with: "First"
click_on "search-button"
expect(page).to have_content("First Video")
expect(page).not_to have_content("Second Video")
fill_in "query", with: "Second"
click_on "search-button"
expect(page).not_to have_content("First Video")
expect(page).to have_content("Second Video")
end
private
def fill_in_video_fields(data)
fill_in "video[name]", with: data[:name]
fill_in "video[number]", with: data[:number]
end
def have_filled_in_data(data)
have_selector("#video_name[value='#{data[:name]}']")
have_selector("#video_number[value='#{data[:number]}']")
end
def create_video_notice
t "videos.update.notice"
end
def update_video_notice
t "videos.update.notice"
end
end