-
Notifications
You must be signed in to change notification settings - Fork 37
/
flag_settings_controller_test.rb
95 lines (70 loc) · 2.33 KB
/
flag_settings_controller_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
require 'test_helper'
class FlagSettingsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
setup do
@flag_setting = FlagSetting.first
end
test "should get index" do
get flag_settings_url
assert_response :success
end
test "should get new" do
sign_out :user
assert_raise ActionController::RoutingError do
get new_flag_setting_path
end
sign_in users(:admin_user)
get new_flag_setting_path
assert_response :success
end
test "should create flag_setting" do
sign_out :user
assert_raise ActionController::RoutingError do
post flag_settings_url, params: { flag_setting: { name: @flag_setting.name, value: @flag_setting.value } }
end
sign_in users(:admin_user)
assert_difference("FlagSetting.count") do
post flag_settings_url, params: { flag_setting: { name: "such valid", value: "very setting" } }
end
assert_redirected_to flag_settings_path
end
test "should get edit" do
sign_out :user
assert_raise ActionController::RoutingError do
get edit_flag_setting_url(@flag_setting)
end
sign_in users(:admin_user)
get edit_flag_setting_url(@flag_setting)
assert_response :success
end
test "should update flag_setting" do
sign_out :user
assert_raise ActionController::RoutingError do
patch flag_setting_url(@flag_setting), params: { flag_setting: { name: @flag_setting.name, value: @flag_setting.value } }
end
sign_in users(:admin_user)
patch flag_setting_url(@flag_setting), params: { flag_setting: { name: "valid", value: "also valid" } }
assert_redirected_to flag_settings_path
end
test "should get audit log" do
sign_out :user
get flag_settings_audits_url
assert_response :success
end
test "should get dashboard" do
sign_out :user
get flagging_url
assert_response :success
sign_in users(:admin_user)
get flagging_url
assert_response :success
end
test "should allow smokey to disable flagging" do
sign_out :user
post smokey_disable_url, params: { :key => SmokeDetector.first.access_token }
# Should disable flagging
assert FlagSetting["flagging_enabled"] == "0"
# Should be recorded as System having done it
assert FlagSetting.find_by_name("flagging_enabled").audits.last.user_id == -1
end
end