1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Profiles::SlacksController, feature_category: :integrations do
let_it_be(:user) { create(:user) }
before do
sign_in(user)
allow(subject).to receive(:current_user).and_return(user)
end
describe 'GET edit' do
before do
get :edit
end
it 'renders' do
expect(response).to render_template :edit
end
it 'assigns projects' do
expect(assigns[:projects]).to eq []
end
it 'assigns disabled_projects' do
expect(assigns[:disabled_projects]).to eq []
end
end
describe 'GET slack_link' do
let_it_be(:project) { create(:project) }
context 'when user is not a maintainer of the project' do
before do
project.add_developer(user)
end
it 'renders 404' do
get :slack_link, params: { project_id: project.id }
expect(response).to have_gitlab_http_status(:not_found)
expect(response.body).to be_blank
end
end
context 'when user is a maintainer of the project' do
before do
project.add_maintainer(user)
end
it 'renders slack link' do
allow(controller).to receive(:add_to_slack_link).and_return('mock_redirect_link')
get :slack_link, params: { project_id: project.id }
expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to eq({ 'add_to_slack_link' => 'mock_redirect_link' })
end
end
end
end
|