X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/964ab3dd90ff1508efc0c77378cde2b3a4da1029..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 520e36ec37..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 @@ -20,4 +27,38 @@ class Arvados::V1::SchemaControllerTest < ActionController::TestCase 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