require "rails_helper" feature "User managing task requests" do let(:current_user) { create(:user) } let(:project) { create(:project, account: current_user.primary_account) } before :each do sign_in current_user end scenario "task requests table is visible" do visit project_task_requests_path(project) 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 project_task_requests_path(project) expect(page).to have_content no_task_requests_label task_request = create(:task_request, project: project) visit project_task_requests_path(project) expect(page).not_to have_content no_task_requests_label 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 scenario "user does not see open deliverable action in manage dropdown if task status is not completed" do task_request = create(:task_request, project: project) visit project_task_requests_path(project) click_on manage_button expect(page).not_to have_content open_deliverable_action_label end scenario "user can click deliverable action in manage dropdown if task status is completed", js: true do create(:task_request, project: project, status: "completed", deliverable_url: "/") visit project_task_requests_path(project) click_on manage_button expect(page).to have_content open_deliverable_action_label click_link open_deliverable_action_label switch_to_window(windows.last) expect(page).to have_content add_new_project_label end private def no_task_requests_label "Task requests will appear here" end def manage_button t "task_requests.task_request.actions.manage" end def open_deliverable_action_label t "task_requests.task_request.actions.open_deliverable" end def add_new_project_label t "projects.index.actions.new" end end