100 lines
2.4 KiB
Ruby
100 lines
2.4 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require "rails_helper"
|
||
|
|
||
|
describe FeedbackController, type: :controller do
|
||
|
before do
|
||
|
stub_const("APP_CONFIG", {
|
||
|
'hostname' => 'example.com',
|
||
|
'https' => true,
|
||
|
'items_per_page' => 5,
|
||
|
'canny' => {
|
||
|
'sso': 'sso',
|
||
|
'feature_board': 'feature',
|
||
|
'bug_board': 'bug'
|
||
|
}
|
||
|
})
|
||
|
end
|
||
|
|
||
|
describe "#consent" do
|
||
|
context "user signed in without consent" do
|
||
|
let(:user) { FactoryBot.create(:user) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "renders the consent template" do
|
||
|
get :consent
|
||
|
expect(response).to render_template(:consent)
|
||
|
end
|
||
|
|
||
|
it "sets the consent role" do
|
||
|
post :consent, params: { consent: 'true' }
|
||
|
expect(user.has_role?(:canny_consent)).to eq(true)
|
||
|
expect(response).to redirect_to(feedback_bugs_path)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "user signed in with consent" do
|
||
|
let(:user) { FactoryBot.create(:user, roles: [:canny_consent]) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "redirects away from the consent page" do
|
||
|
get :consent
|
||
|
expect(response).to redirect_to(feedback_bugs_path)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "#features" do
|
||
|
subject { get :features }
|
||
|
|
||
|
context "user signed in with consent" do
|
||
|
let(:user) { FactoryBot.create(:user, roles: [:canny_consent]) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "renders the features template" do
|
||
|
subject
|
||
|
expect(response).to render_template(:features)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "user signed in without consent" do
|
||
|
let(:user) { FactoryBot.create(:user) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "redirects to the consent page" do
|
||
|
subject
|
||
|
expect(response).to redirect_to(feedback_consent_path)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "#bugs" do
|
||
|
subject { get :bugs }
|
||
|
|
||
|
context "user signed in with consent" do
|
||
|
let(:user) { FactoryBot.create(:user, roles: [:canny_consent]) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "renders the bugs template" do
|
||
|
subject
|
||
|
expect(response).to render_template(:bugs)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "user signed in without consent" do
|
||
|
let(:user) { FactoryBot.create(:user) }
|
||
|
|
||
|
before(:each) { sign_in(user) }
|
||
|
|
||
|
it "redirects to the consent page" do
|
||
|
subject
|
||
|
expect(response).to redirect_to(feedback_consent_path)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|