43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
#  This api is for internal use only for the purpose of source code paths mapping to E2E specs.
 | 
						|
 | 
						|
module API
 | 
						|
  module Internal
 | 
						|
    class Coverage < ::API::Base
 | 
						|
      feature_category :code_testing
 | 
						|
      urgency :low
 | 
						|
 | 
						|
      before do
 | 
						|
        authenticated_as_admin!
 | 
						|
      end
 | 
						|
 | 
						|
      namespace 'internal' do
 | 
						|
        namespace 'coverage' do
 | 
						|
          desc 'Source code paths coverage mapping' do
 | 
						|
            success code: 200, message: 'Success'
 | 
						|
            failure [
 | 
						|
              { code: 401, message: 'Unauthorized' }
 | 
						|
            ]
 | 
						|
          end
 | 
						|
 | 
						|
          get do
 | 
						|
            # Fetch only runtime coverage data which is tracked during E2E spec execution
 | 
						|
            # skip hash check due to hash mismatch on some environments which results in empty coverage data
 | 
						|
            ::Coverband.configuration.store.coverage(::Coverband::RUNTIME_TYPE, skip_hash_check: true).keys
 | 
						|
          end
 | 
						|
 | 
						|
          delete do
 | 
						|
            ::Coverband.configuration.store.clear!
 | 
						|
 | 
						|
            status 200
 | 
						|
            {
 | 
						|
              message: "Cleared source code paths coverage mapping"
 | 
						|
            }
 | 
						|
          end
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |