11906: added api ping tests
authorradhika <radhika@curoverse.com>
Tue, 18 Jul 2017 15:21:16 +0000 (11:21 -0400)
committerradhika <radhika@curoverse.com>
Tue, 18 Jul 2017 15:21:16 +0000 (11:21 -0400)
Arvados-DCO-1.1-Signed-off-by: Radhika Chippada <radhika@curoverse.com>

services/api/test/functional/arvados/v1/healthcheck_controller_test.rb [new file with mode: 0644]

diff --git a/services/api/test/functional/arvados/v1/healthcheck_controller_test.rb b/services/api/test/functional/arvados/v1/healthcheck_controller_test.rb
new file mode 100644 (file)
index 0000000..10d493b
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+require 'test_helper'
+
+class Arvados::V1::HealthcheckControllerTest < ActionController::TestCase
+  [
+    [false, nil, 404, 'disabled'],
+    [true, nil, 401, 'authorization required'],
+    [true, 'badformatwithnoBearer', 403, 'authorization error'],
+    [true, 'Bearer wrongtoken', 403, 'authorization error'],
+    [true, 'Bearer configuredmanagementtoken', 200, '{"health":"OK"}'],
+  ].each do |enabled, header, error_code, error_msg|
+    test "ping when #{if enabled then 'enabled' else 'disabled' end} with header '#{header}'" do
+      Rails.configuration.management_token = 'configuredmanagementtoken' if enabled
+
+      @request.headers['Authorization'] = header
+      get :ping
+      assert_response error_code
+
+      resp = JSON.parse(@response.body)
+      if error_code == 200
+        assert_equal(JSON.load('{"health":"OK"}'), resp)
+      else
+        assert_includes(resp['errors'], error_msg)
+      end
+    end
+  end
+end