74 lines
2.2 KiB
Ruby
74 lines
2.2 KiB
Ruby
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
|