8784: Fix test for latest firefox.
[arvados.git] / services / api / test / integration / database_reset_test.rb
1 require 'test_helper'
2
3 class DatabaseResetTest < ActionDispatch::IntegrationTest
4   slow_test "reset fails when Rails.env != 'test'" do
5     rails_env_was = Rails.env
6     begin
7       Rails.env = 'production'
8       Rails.application.reload_routes!
9       post '/database/reset', {}, auth(:admin)
10       assert_response 404
11     ensure
12       Rails.env = rails_env_was
13       Rails.application.reload_routes!
14     end
15   end
16
17   test "reset fails with non-admin token" do
18     post '/database/reset', {}, auth(:active)
19     assert_response 403
20   end
21
22   slow_test "database reset doesn't break basic CRUD operations" do
23     active_auth = auth(:active)
24     admin_auth = auth(:admin)
25
26     authorize_with :admin
27     post '/database/reset', {}, admin_auth
28     assert_response :success
29
30     post '/arvados/v1/specimens', {specimen: '{}'}, active_auth
31     assert_response :success
32     new_uuid = json_response['uuid']
33
34     get '/arvados/v1/specimens/'+new_uuid, {}, active_auth
35     assert_response :success
36
37     put('/arvados/v1/specimens/'+new_uuid,
38         {specimen: '{"properties":{}}'}, active_auth)
39     assert_response :success
40
41     delete '/arvados/v1/specimens/'+new_uuid, {}, active_auth
42     assert_response :success
43
44     get '/arvados/v1/specimens/'+new_uuid, {}, active_auth
45     assert_response 404
46   end
47
48   slow_test "roll back database change" do
49     active_auth = auth(:active)
50     admin_auth = auth(:admin)
51
52     old_uuid = specimens(:owned_by_active_user).uuid
53     authorize_with :admin
54     post '/database/reset', {}, admin_auth
55     assert_response :success
56
57     delete '/arvados/v1/specimens/' + old_uuid, {}, active_auth
58     assert_response :success
59     post '/arvados/v1/specimens', {specimen: '{}'}, active_auth
60     assert_response :success
61     new_uuid = json_response['uuid']
62
63     # Reset to fixtures.
64     post '/database/reset', {}, admin_auth
65     assert_response :success
66
67     # New specimen should disappear. Old specimen should reappear.
68     get '/arvados/v1/specimens/'+new_uuid, {}, active_auth
69     assert_response 404
70     get '/arvados/v1/specimens/'+old_uuid, {}, active_auth
71     assert_response :success
72   end
73 end