109 lines
3.3 KiB
Ruby
109 lines
3.3 KiB
Ruby
require "rails_helper"
|
|
|
|
feature "Admin managing task requests" do
|
|
let(:current_user) { create(:user, admin: true, email: "user@test.com") }
|
|
let(:project) { create(:project, account: current_user.primary_account, name: "Test Project") }
|
|
|
|
before do
|
|
sign_in current_user
|
|
end
|
|
|
|
scenario "admin should see View action for task request in Manage dropdown", js: true do
|
|
create(:task_request)
|
|
visit admin_task_requests_path
|
|
|
|
click_on 'Manage'
|
|
expect(page).to have_content 'View'
|
|
end
|
|
|
|
scenario "admin can open detail view of task request", js: true do
|
|
task_request = create(:task_request, :with_files)
|
|
visit admin_task_requests_path
|
|
|
|
click_on 'Manage'
|
|
click_link 'View'
|
|
switch_to_window(windows.last)
|
|
|
|
expect(page).to have_content 'Account Name'
|
|
expect(page).to have_content task_request.project.account.name
|
|
|
|
expect(page).to have_content 'Project Name'
|
|
expect(page).to have_content task_request.project.name
|
|
|
|
expect(page).to have_content 'Description'
|
|
expect(page).to have_content task_request.description
|
|
|
|
expect(page).to have_content 'Created At'
|
|
expect(page).to have_content task_request.created_at
|
|
|
|
expect(page).to have_content 'User Email'
|
|
expect(page).to have_content task_request.user_email
|
|
|
|
expect(page).to have_content 'Deadline'
|
|
expect(page).to have_content task_request.deadline
|
|
|
|
expect(page).to have_content 'Time Allowed'
|
|
expect(page).to have_content task_request.time_allowed
|
|
|
|
expect(page).to have_content 'Additional Notes'
|
|
expect(page).to have_content task_request.additional_notes
|
|
|
|
expect(page).to have_content 'Status'
|
|
expect(page).to have_content task_request.status
|
|
|
|
expect(page).to have_content 'Files'
|
|
task_request.files.each do |file|
|
|
expect(page).to have_link file.blob.filename
|
|
end
|
|
end
|
|
|
|
scenario "no files attached label is shown if there are no files attached to the task request", js:true do
|
|
create(:task_request)
|
|
visit admin_task_requests_path
|
|
|
|
click_on 'Manage'
|
|
click_link 'View'
|
|
switch_to_window(windows.last)
|
|
|
|
expect(page).to have_content 'No files attached'
|
|
end
|
|
|
|
scenario "task requests table is visible" do
|
|
visit admin_task_requests_path
|
|
|
|
expect(page).to have_content "Task ID"
|
|
expect(page).to have_content "Account Name"
|
|
expect(page).to have_content "Project Name"
|
|
expect(page).to have_content "Created On"
|
|
expect(page).to have_content "Deadline"
|
|
expect(page).to have_content "Time Allowed"
|
|
expect(page).to have_content "Status"
|
|
end
|
|
|
|
scenario "sees list of task requests" do
|
|
visit admin_task_requests_path
|
|
|
|
expect(page).to have_content no_task_requests_label
|
|
|
|
task_request = create(:task_request)
|
|
|
|
visit admin_task_requests_path
|
|
|
|
expect(page).not_to have_content no_task_requests_label
|
|
|
|
expect(page).to have_content task_request.id
|
|
expect(page).to have_content task_request.project.account.name
|
|
expect(page).to have_content task_request.project.name
|
|
expect(page).to have_content task_request.created_at.try(:strftime, '%D')
|
|
expect(page).to have_content task_request.deadline.try(:strftime, '%D')
|
|
expect(page).to have_content task_request.time_allowed
|
|
expect(page).to have_content task_request.status.capitalize
|
|
end
|
|
|
|
private
|
|
|
|
def no_task_requests_label
|
|
"Task requests will appear here"
|
|
end
|
|
end
|