45726e5a646f8aea9f7b8d855ab880cde1135d74
[arvados.git] / apps / workbench / test / controllers / 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 HealthcheckControllerTest < ActionController::TestCase
8   reset_api_fixtures :after_each_test, false
9   reset_api_fixtures :after_suite, false
10
11   [
12     [false, nil, 404, 'disabled'],
13     [true, nil, 401, 'authorization required'],
14     [true, 'badformatwithnoBearer', 403, 'authorization error'],
15     [true, 'Bearer wrongtoken', 403, 'authorization error'],
16     [true, 'Bearer configuredmanagementtoken', 200, '{"health":"OK"}'],
17   ].each do |enabled, header, error_code, error_msg|
18     test "ping when #{if enabled then 'enabled' else 'disabled' end} with header '#{header}'" do
19       Rails.configuration.ManagementToken = 'configuredmanagementtoken' if enabled
20
21       @request.headers['Authorization'] = header
22       get :ping
23       assert_response error_code
24
25       resp = JSON.parse(@response.body)
26       if error_code == 200
27         assert_equal(JSON.load('{"health":"OK"}'), resp)
28       else
29         assert_equal(resp['errors'], error_msg)
30       end
31     end
32   end
33 end