Test the versions and capabilities api in various statuses

These both need to keep working, even when the rest of the api is
unavailable, since that's how we communicate that status with the
api clients.
This commit is contained in:
Andy Allan 2024-05-29 14:45:35 +01:00
parent f2aaec4735
commit 0bbfe922ea
2 changed files with 82 additions and 0 deletions

View file

@ -71,5 +71,75 @@ module Api
assert_equal "online", js["api"]["status"]["gpx"]
assert_equal Settings.imagery_blacklist.length, js["policy"]["imagery"]["blacklist"].length
end
def test_capabilities_api_readonly
with_settings(:status => "api_readonly") do
get api_capabilities_path
assert_response :success
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "status[database='online']", :count => 1
assert_select "status[api='readonly']", :count => 1
assert_select "status[gpx='online']", :count => 1
end
end
end
end
def test_capabilities_api_offline
with_settings(:status => "api_offline") do
get api_capabilities_path
assert_response :success
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "status[database='online']", :count => 1
assert_select "status[api='offline']", :count => 1
assert_select "status[gpx='online']", :count => 1
end
end
end
end
def test_capabilities_database_readonly
with_settings(:status => "database_readonly") do
get api_capabilities_path
assert_response :success
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "status[database='readonly']", :count => 1
assert_select "status[api='readonly']", :count => 1
assert_select "status[gpx='readonly']", :count => 1
end
end
end
end
def test_capabilities_database_offline
with_settings(:status => "database_offline") do
get api_capabilities_path
assert_response :success
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "status[database='offline']", :count => 1
assert_select "status[api='offline']", :count => 1
assert_select "status[gpx='offline']", :count => 1
end
end
end
end
def test_capabilities_gpx_offline
with_settings(:status => "gpx_offline") do
get api_capabilities_path
assert_response :success
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "status[database='online']", :count => 1
assert_select "status[api='online']", :count => 1
assert_select "status[gpx='offline']", :count => 1
end
end
end
end
end
end

View file

@ -46,5 +46,17 @@ module Api
assert_response :success
assert_select "osm[version]", :count => 0
end
def test_versions_available_while_offline
with_settings(:status => "api_offline") do
get api_versions_path
assert_response :success
assert_select "osm[generator='#{Settings.generator}']", :count => 1 do
assert_select "api", :count => 1 do
assert_select "version", Settings.api_version
end
end
end
end
end
end