songtianlun
978c44b682
- Implemented edit and update actions in UsersController - Created edit user view and form partial - Updated user model validation to allow nil password - Modified header to link to user settings - Added integration tests for successful and unsuccessful edits This commit introduces the ability for users to edit their profile information, including name and email. It also includes validation updates to allow users to update their profiles without changing their password. Integration tests ensure that both successful and unsuccessful edit attempts are handled correctly.
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
require "test_helper"
|
|
|
|
class UsersEditTest < ActionDispatch::IntegrationTest
|
|
def setup
|
|
@user = users(:michael)
|
|
end
|
|
|
|
test "successful edit" do
|
|
get edit_user_path(@user)
|
|
assert_template 'users/edit'
|
|
name = "Foo Bae"
|
|
email = "foo@bar.com"
|
|
patch user_path(@user), params: { user: { name: name,
|
|
email: email,
|
|
password: "",
|
|
password_confirmation: "" } }
|
|
assert_not flash.empty?
|
|
assert_redirected_to @user
|
|
@user.reload
|
|
assert_equal name, @user.name
|
|
assert_equal email, @user.email
|
|
end
|
|
|
|
test "unsuccessful edit" do
|
|
get edit_user_path(@user)
|
|
assert_template 'users/edit'
|
|
patch user_path(@user), params: { user: { name: "",
|
|
email: "foo@invalid",
|
|
password: "foo",
|
|
password_confirmation: "bar"
|
|
} }
|
|
assert_template 'users/edit'
|
|
end
|
|
end
|