agenda-libre-ruby/test/controllers/users_controller_test.rb

82 lines
1.7 KiB
Ruby

require 'test_helper'
# Test moderator management controller
class UsersControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
setup do
@user = users(:one)
sign_in users(:one)
end
test 'should get index' do
get users_url
assert_response :success
assert_not_nil assigns(:users)
end
test 'should get new' do
get new_user_url
assert_response :success
end
test 'should create user' do
assert_difference('User.count') do
post users_url, params: {
user: {
email: 'original@example.com',
firstname: @user.firstname,
lastname: @user.lastname,
login: @user.login,
password: 'abcdefghijklmnopqrstuvwxyz'
}
}
end
assert_redirected_to user_path(assigns(:user))
end
test 'should not create user' do
assert_no_difference('User.count') do
post users_url, params: { user: { login: nil } }
end
end
test 'should show user' do
get user_url(@user)
assert_response :success
end
test 'should get edit' do
get edit_user_url(@user)
assert_response :success
end
test 'should update user' do
patch user_url(@user), params: {
user: {
email: @user.email,
firstname: @user.firstname,
lastname: @user.lastname,
login: @user.login
}
}
assert_redirected_to user_path(assigns(:user))
end
test 'should not update user' do
patch user_url(@user), params: { user: { login: nil } }
assert_not_empty assigns(:user).errors
end
test 'should destroy user' do
assert_difference('User.count', -1) do
delete user_url(@user)
end
assert_redirected_to users_path
end
end