551eefa8787baf10e3507a8d6768484de06fb8df
[arvados.git] / services / api / test / functional / arvados / v1 / healthcheck_controller_test.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 require 'test_helper'
6
7 class Arvados::V1::HealthcheckControllerTest < ActionController::TestCase
8   [
9     [false, nil, 404, 'disabled'],
10     [true, nil, 401, 'authorization required'],
11     [true, 'badformatwithnoBearer', 403, 'authorization error'],
12     [true, 'Bearer wrongtoken', 403, 'authorization error'],
13     [true, 'Bearer configuredmanagementtoken', 200, '{"health":"OK"}'],
14   ].each do |enabled, header, error_code, error_msg|
15     test "ping when #{if enabled then 'enabled' else 'disabled' end} with header '#{header}'" do
16       Rails.configuration.ManagementToken = 'configuredmanagementtoken' if enabled
17
18       @request.headers['Authorization'] = header
19       get :ping
20       assert_response error_code
21
22       resp = JSON.parse(@response.body)
23       if error_code == 200
24         assert_equal(JSON.load('{"health":"OK"}'), resp)
25       else
26         assert_equal(error_msg, resp['errors'])
27       end
28     end
29   end
30 end