X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e102a3b3100577137def302ecd0f810bc46b808a..d25dedaec8ea386c18b7f61c08a3097ba3c4f26c:/services/api/test/functional/arvados/v1/schema_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/schema_controller_test.rb b/services/api/test/functional/arvados/v1/schema_controller_test.rb index 816834b207..7101821746 100644 --- a/services/api/test/functional/arvados/v1/schema_controller_test.rb +++ b/services/api/test/functional/arvados/v1/schema_controller_test.rb @@ -2,6 +2,13 @@ require 'test_helper' class Arvados::V1::SchemaControllerTest < ActionController::TestCase + setup do forget end + teardown do forget end + def forget + Rails.cache.delete 'arvados_v1_rest_discovery' + AppVersion.forget + end + test "should get fresh discovery document" do MAX_SCHEMA_AGE = 60 get :index @@ -13,4 +20,45 @@ class Arvados::V1::SchemaControllerTest < ActionController::TestCase "discovery document was generated >#{MAX_SCHEMA_AGE}s ago") end + test "discovery document has defaultTrashLifetime" do + get :index + assert_response :success + discovery_doc = JSON.parse(@response.body) + assert_includes discovery_doc, 'defaultTrashLifetime' + assert_equal discovery_doc['defaultTrashLifetime'], Rails.application.config.default_trash_lifetime + end + + test "discovery document has source_version" do + get :index + assert_response :success + discovery_doc = JSON.parse(@response.body) + assert_match(/^[0-9a-f]+(-modified)?$/, discovery_doc['source_version']) + end + + test "discovery document overrides source_version with config" do + Rails.configuration.source_version = 'aaa888fff' + get :index + assert_response :success + discovery_doc = JSON.parse(@response.body) + assert_equal 'aaa888fff', discovery_doc['source_version'] + end + + test "empty disable_api_methods" do + get :index + assert_response :success + discovery_doc = JSON.parse(@response.body) + assert_equal('POST', + discovery_doc['resources']['jobs']['methods']['create']['httpMethod']) + end + + test "non-empty disable_api_methods" do + Rails.configuration.disable_api_methods = + ['jobs.create', 'pipeline_instances.create', 'pipeline_templates.create'] + get :index + assert_response :success + discovery_doc = JSON.parse(@response.body) + ['jobs', 'pipeline_instances', 'pipeline_templates'].each do |r| + refute_includes(discovery_doc['resources'][r]['methods'].keys(), 'create') + end + end end