diff options
Diffstat (limited to 'spec/requests/admin/version_check_controller_spec.rb')
-rw-r--r-- | spec/requests/admin/version_check_controller_spec.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/spec/requests/admin/version_check_controller_spec.rb b/spec/requests/admin/version_check_controller_spec.rb new file mode 100644 index 00000000000..7e2f33d5bc5 --- /dev/null +++ b/spec/requests/admin/version_check_controller_spec.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Admin::VersionCheckController, :enable_admin_mode do + let(:admin) { create(:admin) } + + before do + sign_in(admin) + end + + describe 'GET #version_check' do + context 'when VersionCheck.response is nil' do + before do + allow_next_instance_of(VersionCheck) do |instance| + allow(instance).to receive(:response).and_return(nil) + end + get admin_version_check_path + end + + it 'returns nil' do + expect(response).to have_gitlab_http_status(:ok) + expect(json_response).to be_nil + end + + it 'sets no-cache headers' do + expect(response.headers['Cache-Control']).to eq('max-age=0, private, must-revalidate') + end + end + + context 'when VersionCheck.response is valid' do + before do + allow_next_instance_of(VersionCheck) do |instance| + allow(instance).to receive(:response).and_return({ "severity" => "success" }) + end + + get admin_version_check_path + end + + it 'returns the valid data' do + expect(response).to have_gitlab_http_status(:ok) + expect(json_response).to eq({ "severity" => "success" }) + end + + it 'sets proper cache headers' do + expect(response.headers['Cache-Control']).to eq('max-age=60, private') + end + end + end +end |