69 lines
1.6 KiB
Ruby
69 lines
1.6 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe Admin::TaskRequestsController, type: :controller do
|
|
render_views
|
|
|
|
let!(:current_user) { create(:user, :admin) }
|
|
|
|
before do
|
|
sign_in(current_user)
|
|
end
|
|
|
|
describe "#index" do
|
|
it "returns a successful response" do
|
|
get :index
|
|
|
|
expect(response).to be_successful
|
|
end
|
|
end
|
|
|
|
describe "#edit" do
|
|
let(:task_request) { create(:task_request) }
|
|
|
|
it "returns a successful response" do
|
|
get :edit, params: { id: task_request }
|
|
|
|
expect(response).to be_successful
|
|
end
|
|
|
|
it "assigns task request" do
|
|
get :edit, params: { id: task_request }
|
|
|
|
expect(assigns(:task_request)).to eq task_request
|
|
end
|
|
end
|
|
|
|
describe "#update" do
|
|
let(:task_request) { create(:task_request) }
|
|
|
|
it "redirects to task requests page" do
|
|
patch :update, params: { id: task_request, task_request: update_params }
|
|
|
|
expect(response).to be_redirect
|
|
expect(response).to redirect_to admin_task_requests_path
|
|
end
|
|
|
|
it "sets a flash notice" do
|
|
patch :update, params: { id: task_request, task_request: update_params }
|
|
|
|
expect(flash.notice).to eq "The task request has been updated successfully"
|
|
end
|
|
|
|
it "updates task request" do
|
|
patch :update, params: { id: task_request, task_request: update_params }
|
|
|
|
expect(task_request.reload.status).to eq("completed")
|
|
expect(task_request.reload.deliverable_url).to eq("example.com/deliverables")
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def update_params
|
|
{
|
|
status: "completed",
|
|
deliverable_url: "example.com/deliverables"
|
|
}
|
|
end
|
|
end
|