2024-12-31 14:20:22 +08:00
|
|
|
require "test_helper"
|
|
|
|
|
|
|
|
class UsersControllerTest < ActionDispatch::IntegrationTest
|
2025-01-03 13:48:59 +08:00
|
|
|
def setup
|
|
|
|
@user = users(:michael)
|
|
|
|
@other_user = users(:archer)
|
|
|
|
end
|
2024-12-31 14:20:22 +08:00
|
|
|
test "should get new" do
|
|
|
|
get signup_path
|
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
|
2025-01-05 01:59:05 +08:00
|
|
|
test "should redirect index when not logged in" do
|
|
|
|
get users_path
|
|
|
|
assert_redirected_to login_url
|
|
|
|
end
|
|
|
|
|
2024-12-31 14:20:22 +08:00
|
|
|
test "Should get sign up title" do
|
|
|
|
get signup_path
|
|
|
|
assert_response :success
|
|
|
|
assert_select "title", full_title("Sign up")
|
|
|
|
end
|
2025-01-03 13:48:59 +08:00
|
|
|
|
|
|
|
test "should redirect edit when logged in as wrong user" do
|
|
|
|
log_in_as(@other_user)
|
|
|
|
get edit_user_path(@user)
|
|
|
|
assert flash.empty?
|
|
|
|
assert_redirected_to root_url
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should redirect update when logged in as wrong user" do
|
|
|
|
log_in_as(@other_user)
|
|
|
|
patch user_path(@user), params: { user: { name: @user.name,
|
|
|
|
email: @user.email } }
|
|
|
|
assert flash.empty?
|
|
|
|
assert_redirected_to root_url
|
|
|
|
end
|
2025-01-05 18:27:13 +08:00
|
|
|
|
|
|
|
test "should not allow the admin attribute to be edited via the web" do
|
|
|
|
log_in_as(@other_user)
|
|
|
|
assert_not @other_user.admin?
|
|
|
|
patch user_path(@other_user), params: {
|
|
|
|
user: { password: "password",
|
|
|
|
password_confirmation: "password",
|
|
|
|
admin: true }
|
|
|
|
}
|
|
|
|
assert_not @other_user.reload.admin?
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should redirect destroy when not logged in" do
|
|
|
|
assert_no_difference "User.count" do
|
|
|
|
delete user_path(@user)
|
|
|
|
end
|
|
|
|
assert_redirected_to login_url
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should redirect destroy when logged in as a non-admin" do
|
|
|
|
log_in_as(@other_user)
|
|
|
|
assert_no_difference "User.count" do
|
|
|
|
delete user_path(@user)
|
|
|
|
end
|
|
|
|
assert_redirected_to root_url
|
|
|
|
end
|
2024-12-31 14:20:22 +08:00
|
|
|
end
|