enable user to click on deliverable url of completed task request
This commit is contained in:
@@ -22,4 +22,8 @@ class TaskRequestPolicy < ApplicationPolicy
|
||||
def cancel?
|
||||
true
|
||||
end
|
||||
|
||||
def open_deliverable?
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
<% if policy(task_request).edit? %>
|
||||
<%= link_to fa_icon("pencil fw", text: "Edit"), [:edit, task_request.project, task_request], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
<% if policy(task_request).open_deliverable? && task_request.status == "completed" %>
|
||||
<%= link_to fa_icon("external-link fw", text: t(".actions.open_deliverable")), task_request.deliverable_url, class: "dropdown-item", target: '_blank' %>
|
||||
<% end %>
|
||||
<% if policy(task_request).cancel? && !task_request.cancelled? %>
|
||||
<%= link_to fa_icon("ban fw", text: "Cancel"), [:cancel, task_request.project, task_request], class: "dropdown-item", method: :post %>
|
||||
<% end %>
|
||||
|
||||
@@ -959,6 +959,7 @@ en:
|
||||
task_request:
|
||||
actions:
|
||||
manage: Manage
|
||||
open_deliverable: Open Deliverable
|
||||
update:
|
||||
notice: Task request updated successfully.
|
||||
user_mailer:
|
||||
|
||||
@@ -182,3 +182,8 @@ es:
|
||||
photos:
|
||||
guardian_photo:
|
||||
heading: Guardian Photo (ES)
|
||||
task_requests:
|
||||
task_request:
|
||||
actions:
|
||||
manage: Manage (ES)
|
||||
open_deliverable: Open Deliverable (ES)
|
||||
|
||||
73
spec/features/user_managing_task_requests_spec.rb
Normal file
73
spec/features/user_managing_task_requests_spec.rb
Normal file
@@ -0,0 +1,73 @@
|
||||
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
|
||||
Reference in New Issue
Block a user