docbrown/spec/requests/delayed_job_spec.rb
Andy Zhao 36a21cd0f2 Add tech admin role and allow tech admins to view /delayed_job (#2343)
* Add tech support role

* Add tech support permission method

* Enabled /delayed_job for tech support users

* Fix typo oops

* Add tests for tech support viewing /delayed_job

* Fix typo again...

* Rename tech role to tech admin
2019-04-08 18:00:59 -04:00

59 lines
1.5 KiB
Ruby

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) }
let(:tech_admin) do
user = create(:user)
user.add_role :tech_admin
user
end
describe "GET /delayed_job" do
context "when not logged in" do
it "raises 404" do
expect do
get "/delayed_job"
end.to raise_error(ActiveRecord::RecordNotFound)
end
end
context "when logged in" do
it "raises 404" do
login_as user
expect do
get "/delayed_job"
end.to raise_error(ActiveRecord::RecordNotFound)
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
context "when logged in as a tech support member" do
before { login_as tech_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