Enable delayed_job web interface for admins (#1967)

* Enable delayed_job web interface for admins

* Fix delayed_job web interface spec descs
This commit is contained in:
Anna Buianova 2019-03-04 21:12:42 +03:00 committed by Ben Halpern
parent 7f37d88ce7
commit 7e568921a8
3 changed files with 43 additions and 3 deletions

View file

@ -35,6 +35,7 @@ gem "counter_culture", "~> 2.1"
gem "csv_shaper", "~> 1.3"
gem "dalli", "~> 2.7"
gem "delayed_job_active_record", "~> 4.1"
gem "delayed_job_web", "~> 1.4"
gem "devise", "~> 4.6"
gem "draper", "~> 3.0"
gem "email_validator", "~> 1.6"
@ -108,7 +109,6 @@ group :development do
gem "brakeman", "~> 4.4", require: false
gem "bullet", "~> 5.9"
gem "bundler-audit", "~> 0.6"
gem "delayed_job_web", "~> 1.4"
gem "derailed_benchmarks", "~> 1.3"
gem "guard", "~> 2.15", require: false
gem "guard-livereload", "~> 2.5", require: false

View file

@ -7,8 +7,8 @@ Rails.application.routes.draw do
registrations: "registrations"
}
if Rails.env.development?
match "/delayed_job" => DelayedJobWeb, :anchor => false, :via => %i[get post]
authenticated :user, ->(user) { user.admin? } do
mount DelayedJobWeb, at: "/delayed_job"
end
devise_scope :user do

View file

@ -0,0 +1,40 @@
require "rails_helper"
RSpec.describe "Delayed Job web interface", type: :request do
let(:user) { create(:user) }
let(:super_admin) { create(:user, :super_admin) }
let(:article) { create(:article, user_id: user.id) }
describe "GET /delayed_job" do
context "when not logged in" do
it "raises 404" do
expect do
get "/delayed_job"
end.to raise_error(ActionController::RoutingError)
end
end
context "when logged in" do
it "raises 404" do
login_as user
expect do
get "/delayed_job"
end.to raise_error(ActionController::RoutingError)
end
end
context "when logged in as a super admin" do
before { login_as super_admin }
it "redirects to overview" do
get "/delayed_job"
expect(response).to redirect_to("/delayed_job/overview")
end
it "renders overview" do
get "/delayed_job/overview"
expect(response.body).to include "Overview"
end
end
end
end