Merge branch '8784-dir-listings'
[arvados.git] / services / api / test / functional / database_controller_test.rb
index 1953aa1034169dc62aaffdea78361e810dcf934a..ef1d0c6d05e6486e40a3e6456eac99f074d7a24f 100644 (file)
@@ -1,36 +1,40 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'test_helper'
 
 class DatabaseControllerTest < ActionController::TestCase
   include CurrentApiClient
 
-  teardown do
-    restore_configuration
-    # We made configuration changes here that affect routing.
-    Rails.application.reload_routes!
-  end
-
   test "reset fails with non-admin token" do
     authorize_with :active
     post :reset
     assert_response 403
   end
 
-  test "reset fails when not in test mode" do
+  test "route not found when not in test mode" do
     authorize_with :admin
-    env_was = ENV['RAILS_ENV']
-    ENV['RAILS_ENV'] = 'development'
-    post :reset
-    assert_response 403
-    ENV['RAILS_ENV'] = env_was
+    env_was = Rails.env
+    begin
+      Rails.env = 'production'
+      Rails.application.reload_routes!
+      assert_raises ActionController::UrlGenerationError do
+        post :reset
+      end
+    ensure
+      Rails.env = env_was
+      Rails.application.reload_routes!
+    end
   end
 
-  test "reset fails when not configured" do
-    Rails.configuration.enable_remote_database_reset = false
-    Rails.application.reload_routes!
-    authorize_with :admin
-    assert_raise ActionController::RoutingError do
-      post :reset
+  test "reset fails when a non-test-fixture user exists" do
+    act_as_system_user do
+      User.create!(uuid: 'abcde-tpzed-123451234512345', email: 'bar@example.net')
     end
+    authorize_with :admin
+    post :reset
+    assert_response 403
   end
 
   test "reset succeeds with admin token" do