Files
old-holivud2/spec/features/user_manages_project_directories_spec.rb
2020-07-29 05:15:02 +00:00

115 lines
3.1 KiB
Ruby

require "rails_helper"
RSpec.feature "User manages project custom folders", type: :feature do
let(:user) { create(:user, :manager) }
let(:project) { create(:project, members: user, account: user.primary_account) }
before do
sign_in(user)
end
scenario "creating a new folder" do
visit new_project_directory_path(project)
fill_in "Name", with: "Actors"
select "Videos", from: "Category"
click_on "Create Folder"
expect(page).to have_content("The folder has been created")
end
scenario "updating a folder" do
dir = create(:directory)
visit edit_project_directory_path(project, dir)
fill_in "Name", with: "New Actors"
select "Videos", from: "Category"
click_on "Update Folder"
expect(page).to have_content("The folder has been updated")
end
scenario "deleting an existing folder", js: true do
create(:directory, project: project)
visit project_path(project)
expect(page).to have_content("Payrolls")
click_on "button"
accept_alert do
click_on "Delete Folder"
end
expect(page).to have_content("The folder has been deleted")
end
scenario "adding files to a folder", js: true do
dir = create(:directory)
visit new_file_project_directory_path(project, dir)
expect(page).to have_content("UPLOAD NEW FILES")
expect do
click_button "Upload Files"
end.not_to raise_exception
expect(page).to have_content("UPLOAD NEW FILES")
expect(page).not_to have_content("The folder has been updated")
drop_file Rails.root.join(file_fixture("person_photo.png")), type: :dropzone
click_button "Upload Files"
expect(page).to have_content("The folder has been updated")
expect(page).to have_content("person_photo.png")
end
scenario "folder's show page should show uploaded files", js: true do
dir_with_files = create(:directory, :with_files)
visit project_directory_path(project, dir_with_files)
expect(page).to have_content("location_photo.png")
end
scenario "Listed file should have a manage button", js: true do
dir_with_files = create(:directory, :with_files)
visit project_directory_path(project, dir_with_files)
expect(page).to have_content("location_photo.png")
click_on "Manage"
expect(page).to have_link("Download File")
expect(page).to have_link("Delete File")
end
scenario "searching for a file", js: true do
dir_with_many_files = create(:directory, :many_files, project: project)
visit project_directory_path(project, dir_with_many_files)
within "form" do
fill_in "Search Files", with: "location"
click_on "button"
end
expect(page).to have_content("location_photo.png")
expect(page).not_to have_content("material_photo.png")
expect(page).not_to have_content("person_photo.png")
expect(page).to have_field("Search Files", with: "location")
end
scenario "User can delete a file", js: true do
dir_with_files = create(:directory, :with_files)
visit project_directory_path(project, dir_with_files)
click_on "Manage"
accept_alert do
click_on "Delete File"
end
expect(page).to have_content("File deleted successfully")
end
end