42 lines
1 KiB
Ruby
42 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe API::Geo do
|
|
include WorkhorseHelpers
|
|
|
|
describe 'GET /geo/proxy' do
|
|
subject { get api('/geo/proxy'), headers: workhorse_headers }
|
|
|
|
include_context 'workhorse headers'
|
|
|
|
let(:non_proxy_response_schema) do
|
|
{
|
|
'type' => 'object',
|
|
'additionalProperties' => false,
|
|
'required' => %w(geo_enabled),
|
|
'properties' => {
|
|
'geo_enabled' => { 'type' => 'boolean' }
|
|
}
|
|
}
|
|
end
|
|
|
|
context 'with valid auth' do
|
|
it 'returns empty data' do
|
|
subject
|
|
|
|
expect(response).to have_gitlab_http_status(:ok)
|
|
expect(json_response).to match_schema(non_proxy_response_schema)
|
|
expect(json_response['geo_enabled']).to be_falsey
|
|
end
|
|
end
|
|
|
|
it 'rejects requests that bypassed gitlab-workhorse' do
|
|
workhorse_headers.delete(Gitlab::Workhorse::INTERNAL_API_REQUEST_HEADER)
|
|
|
|
subject
|
|
|
|
expect(response).to have_gitlab_http_status(:forbidden)
|
|
end
|
|
end
|
|
end
|