2024-02-25 12:15:55 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require "test_helper"
|
2013-03-26 18:13:03 -04:00
|
|
|
|
2018-04-02 13:51:26 -04:00
|
|
|
class UserNameChangeRequestsControllerTest < ActionDispatch::IntegrationTest
|
2013-03-26 18:13:03 -04:00
|
|
|
context "The user name change requests controller" do
|
|
|
|
setup do
|
2019-06-29 11:45:58 -04:00
|
|
|
@user = create(:privileged_user)
|
2018-04-02 13:51:26 -04:00
|
|
|
@admin = create(:admin_user)
|
2013-03-26 18:13:03 -04:00
|
|
|
end
|
2019-06-29 11:45:58 -04:00
|
|
|
|
2013-03-26 18:13:03 -04:00
|
|
|
context "new action" do
|
|
|
|
should "render" do
|
2018-04-02 13:51:26 -04:00
|
|
|
get_auth new_user_name_change_request_path, @user
|
|
|
|
assert_response :success
|
|
|
|
end
|
2024-04-05 11:33:09 -04:00
|
|
|
|
|
|
|
should "render for a user with a currently invalid username" do
|
|
|
|
@user.update_columns(name: "12345")
|
|
|
|
get_auth new_user_name_change_request_path, @user
|
|
|
|
assert_response :success
|
|
|
|
end
|
2018-04-02 13:51:26 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
context "create action" do
|
|
|
|
should "work" do
|
2024-04-05 11:33:09 -04:00
|
|
|
post_auth user_name_change_requests_path, @user, params: { user_name_change_request: { desired_name: "zun" } }
|
|
|
|
change_request = UserNameChangeRequest.last
|
|
|
|
assert_redirected_to user_name_change_request_path(change_request)
|
|
|
|
assert_equal("zun", @user.reload.name)
|
|
|
|
end
|
|
|
|
|
|
|
|
should "work for a user with a currently invalid name" do
|
|
|
|
@user.update_columns(name: "12345")
|
|
|
|
post_auth user_name_change_requests_path, @user, params: { user_name_change_request: { desired_name: "zun" } }
|
|
|
|
change_request = UserNameChangeRequest.last
|
|
|
|
assert_redirected_to user_name_change_request_path(change_request)
|
|
|
|
assert_equal("zun", @user.reload.name)
|
2013-03-26 18:13:03 -04:00
|
|
|
end
|
|
|
|
end
|
2019-06-29 11:45:58 -04:00
|
|
|
|
2013-03-26 18:13:03 -04:00
|
|
|
context "show action" do
|
2024-04-05 11:33:09 -04:00
|
|
|
setup do
|
|
|
|
as(@user) do
|
|
|
|
@change_request = UserNameChangeRequest.create!(
|
|
|
|
user_id: @user.id,
|
|
|
|
original_name: @user.name,
|
|
|
|
desired_name: "abc",
|
|
|
|
change_reason: "hello",
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-03-26 18:13:03 -04:00
|
|
|
should "render" do
|
2018-04-02 13:51:26 -04:00
|
|
|
get_auth user_name_change_request_path(@change_request), @user
|
2013-03-26 18:13:03 -04:00
|
|
|
assert_response :success
|
|
|
|
end
|
2013-04-17 01:13:14 -04:00
|
|
|
|
|
|
|
context "when the current user is not an admin and does not own the request" do
|
|
|
|
should "fail" do
|
2018-04-02 13:51:26 -04:00
|
|
|
@another_user = create(:user)
|
|
|
|
get_auth user_name_change_request_path(@change_request), @another_user
|
|
|
|
assert_response :forbidden
|
2013-04-17 01:13:14 -04:00
|
|
|
end
|
|
|
|
end
|
2013-03-26 18:13:03 -04:00
|
|
|
end
|
2019-06-29 11:45:58 -04:00
|
|
|
|
2013-03-26 18:13:03 -04:00
|
|
|
context "for actions restricted to admins" do
|
|
|
|
context "index action" do
|
|
|
|
should "render" do
|
2018-04-02 13:51:26 -04:00
|
|
|
get_auth user_name_change_requests_path, @admin
|
2013-03-26 18:13:03 -04:00
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|