Skip to content

Commit

Permalink
Test the versions and capabilities api in various statuses
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
gravitystorm committed May 29, 2024
1 parent f2aaec4 commit 0bbfe92
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
70 changes: 70 additions & 0 deletions test/controllers/api/capabilities_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,75 @@ def test_capabilities_json
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
12 changes: 12 additions & 0 deletions test/controllers/api/versions_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,17 @@ def test_no_version_in_root_element
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

0 comments on commit 0bbfe92

Please sign in to comment.