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
 |