Merge branch '8784-dir-listings'
[arvados.git] / services / api / test / functional / database_controller_test.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 require 'test_helper'
6
7 class DatabaseControllerTest < ActionController::TestCase
8   include CurrentApiClient
9
10   test "reset fails with non-admin token" do
11     authorize_with :active
12     post :reset
13     assert_response 403
14   end
15
16   test "route not found when not in test mode" do
17     authorize_with :admin
18     env_was = Rails.env
19     begin
20       Rails.env = 'production'
21       Rails.application.reload_routes!
22       assert_raises ActionController::UrlGenerationError do
23         post :reset
24       end
25     ensure
26       Rails.env = env_was
27       Rails.application.reload_routes!
28     end
29   end
30
31   test "reset fails when a non-test-fixture user exists" do
32     act_as_system_user do
33       User.create!(uuid: 'abcde-tpzed-123451234512345', email: 'bar@example.net')
34     end
35     authorize_with :admin
36     post :reset
37     assert_response 403
38   end
39
40   test "reset succeeds with admin token" do
41     new_uuid = nil
42     act_as_system_user do
43       new_uuid = Specimen.create.uuid
44     end
45     assert_not_empty Specimen.where(uuid: new_uuid)
46     authorize_with :admin
47     post :reset
48     assert_response 200
49     assert_empty Specimen.where(uuid: new_uuid)
50   end
51 end