Implement ClientConfigurationsController for mobile client path config.

This commit is contained in:
Denis Švara
2026-02-24 11:25:07 +01:00
parent d17acd39ef
commit db9f67589c
2 changed files with 62 additions and 0 deletions
@@ -0,0 +1,47 @@
require "test_helper"
class ClientConfigurationsControllerTest < ActionDispatch::IntegrationTest
test "android" do
assert_ok "/client_configurations/android_v1.json"
end
test "ios" do
assert_ok "/client_configurations/ios_v1.json"
end
test "bad platform" do
assert_no_route "/client_configurations/blackberry_v1.json"
end
test "bad version" do
assert_no_route "/client_configurations/android_va.json"
end
test "nonexistent version" do
assert_missing "/client_configurations/android_v2000.json"
assert_missing "/client_configurations/ios_v2000.json"
end
private
def assert_ok(url, cache_control: { public: true, max_age: "60" })
get url
assert_response :ok
assert_kind_of Hash, response.parsed_body["settings"]
assert_kind_of Array, response.parsed_body["rules"]
assert_equal cache_control, response.cache_control
end
def assert_no_route(url)
without_action_dispatch_exception_handling do
assert_raises(ActionController::RoutingError) { get url }
end
end
def assert_missing(url)
without_action_dispatch_exception_handling do
assert_raises(ActionView::MissingTemplate) { get url }
end
end
end