58 lines
1.4 KiB
Ruby
58 lines
1.4 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
|
||
|
RSpec.describe Projects::FeatureFlagsClientsController do
|
||
|
include Gitlab::Routing
|
||
|
|
||
|
let_it_be(:project) { create(:project) }
|
||
|
let_it_be(:user) { create(:user) }
|
||
|
|
||
|
describe 'POST reset_token.json' do
|
||
|
subject(:reset_token) do
|
||
|
post :reset_token,
|
||
|
params: { namespace_id: project.namespace, project_id: project },
|
||
|
format: :json
|
||
|
end
|
||
|
|
||
|
before do
|
||
|
sign_in(user)
|
||
|
end
|
||
|
|
||
|
context 'when user is a project maintainer' do
|
||
|
before do
|
||
|
project.add_maintainer(user)
|
||
|
end
|
||
|
|
||
|
context 'and feature flags client exist' do
|
||
|
it 'regenerates feature flags client token' do
|
||
|
project.create_operations_feature_flags_client!
|
||
|
expect { reset_token }.to change { project.reload.feature_flags_client_token }
|
||
|
|
||
|
expect(json_response['token']).to eq(project.feature_flags_client_token)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'but feature flags client does not exist' do
|
||
|
it 'returns 404' do
|
||
|
reset_token
|
||
|
|
||
|
expect(response).to have_gitlab_http_status(:not_found)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when user is not a project maintainer' do
|
||
|
before do
|
||
|
project.add_developer(user)
|
||
|
end
|
||
|
|
||
|
it 'returns 404' do
|
||
|
reset_token
|
||
|
|
||
|
expect(response).to have_gitlab_http_status(:not_found)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|