gitlab-org--gitlab-foss/spec/controllers/projects/feature_flags_clients_controller_spec.rb

57 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