Move edit account action to show

This commit is contained in:
Anton Khorev 2025-02-17 02:35:09 +03:00
parent 9929c1b585
commit d1de8462d6
25 changed files with 75 additions and 71 deletions

View file

@ -5,8 +5,8 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
# test all routes which lead to this controller
def test_routes
assert_routing(
{ :path => "/account/edit", :method => :get },
{ :controller => "accounts", :action => "edit" }
{ :path => "/account", :method => :get },
{ :controller => "accounts", :action => "show" }
)
assert_routing(
{ :path => "/account", :method => :put },
@ -16,9 +16,12 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
{ :path => "/account", :method => :delete },
{ :controller => "accounts", :action => "destroy" }
)
get "/account/edit"
assert_redirected_to "/account"
end
def test_account
def test_show_and_update
# Get a user to work with - note that this user deliberately
# conflicts with uppercase_user in the email and display name
# fields to test that we can change other fields without any
@ -28,14 +31,14 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
# Make sure that you are redirected to the login page when
# you are not logged in
get edit_account_path
assert_redirected_to login_path(:referer => "/account/edit")
get account_path
assert_redirected_to login_path(:referer => account_path)
# Make sure we get the page when we are logged in as the right user
session_for(user)
get edit_account_path
get account_path
assert_response :success
assert_template :edit
assert_template :show
assert_select "form#accountForm" do |form|
assert_equal "post", form.attr("method").to_s
assert_select "input[name='_method']", true
@ -45,9 +48,9 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
# Updating the description using GET should fail
user.description = "new description"
user.preferred_editor = "default"
get edit_account_path, :params => { :user => user.attributes }
get account_path, :params => { :user => user.attributes }
assert_response :success
assert_template :edit
assert_template :show
assert_not_equal user.description, User.find(user.id).description
# Adding external authentication should redirect to the auth provider
@ -60,7 +63,7 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name)
patch account_path, :params => { :user => new_attributes }
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_display_name"
@ -68,17 +71,17 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name.upcase)
patch account_path, :params => { :user => new_attributes }
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_display_name"
# Changing name to one that doesn't exist should work
new_attributes = user.attributes.dup.merge(:display_name => "new tester")
patch account_path, :params => { :user => new_attributes }
assert_redirected_to edit_account_path
assert_redirected_to account_path
follow_redirect!
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", /^User information updated successfully/
assert_select "form#accountForm > div > input#user_display_name[value=?]", "new tester"
@ -93,7 +96,7 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
end
end
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_new_email"
@ -105,7 +108,7 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
end
end
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_new_email"
@ -116,10 +119,10 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
patch account_path, :params => { :user => user.attributes }
end
end
assert_redirected_to edit_account_path
assert_redirected_to account_path
follow_redirect!
assert_response :success
assert_template :edit
assert_template :show
assert_select ".alert-success", /^User information updated successfully/
assert_select "form#accountForm > div > input#user_new_email[value=?]", user.new_email
email = ActionMailer::Base.deliveries.first
@ -127,19 +130,19 @@ class AccountsControllerTest < ActionDispatch::IntegrationTest
assert_equal user.new_email, email.to.first
end
def test_private_account
def test_show_private_account
user = create(:user, :data_public => false)
# Make sure that you are redirected to the login page when
# you are not logged in
get edit_account_path
assert_redirected_to login_path(:referer => "/account/edit")
get account_path
assert_redirected_to login_path(:referer => account_path)
# Make sure we get the page when we are logged in as the right user
session_for(user)
get edit_account_path
get account_path
assert_response :success
assert_template :edit
assert_template :show
assert_select "form#accountForm" do |form|
assert_equal "post", form.attr("method").to_s
assert_select "input[name='_method']", true