+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require 'test_helper'
class ApplicationControllerTest < ActionController::TestCase
assert_response 404
end
- test "requesting to the API server includes client_session_id param" do
- got_query = nil
+ test "requesting to the API server includes X-Request-Id header" do
+ got_header = nil
stub_api_calls
- stub_api_client.stubs(:post).with do |url, query, opts={}|
- got_query = query
+ stub_api_client.stubs(:post).with do |url, query, header={}|
+ got_header = header
true
end.returns fake_api_response('{}', 200, {})
test_uuid = "zzzzz-j7d0g-zzzzzzzzzzzzzzz"
get(:show, {id: test_uuid})
- assert_includes got_query, 'current_request_id'
- assert_match /\d{10}-\d{9}/, got_query['current_request_id']
+ assert_not_nil got_header
+ assert_includes got_header, 'X-Request-Id'
+ assert_match /^req-[0-9a-zA-Z]{20}$/, got_header["X-Request-Id"]
+ end
+
+ test "current request_id is nil after a request" do
+ @controller = NodesController.new
+ get(:index, {}, session_for(:active))
+ assert_nil Thread.current[:request_id]
end
- test "current_request_id is nil after a request" do
+ test "X-Request-Id header" do
@controller = NodesController.new
get(:index, {}, session_for(:active))
- assert_nil Thread.current[:current_request_id]
+ assert_match /^req-[0-9a-zA-Z]{20}$/, response.headers['X-Request-Id']
end
[".navbar .login-menu a",
get(:show, {id: test_uuid})
login_link = css_select(css_selector).first
assert_not_nil(login_link, "failed to select login link")
- login_href = URI.unescape(login_link.attributes["href"])
+ login_href = URI.unescape(login_link.attributes["href"].value)
# The parameter needs to include the full URL to work.
assert_includes(login_href, "://")
assert_match(/[\?&]return_to=[^&]*\/projects\/#{test_uuid}(&|$)/,