99 lines
2.4 KiB
Ruby
99 lines
2.4 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class AccountDeletionTest < ApplicationSystemTestCase
|
|
def setup
|
|
@user = create(:user, :display_name => "test user")
|
|
sign_in_as(@user)
|
|
end
|
|
|
|
test "the status is deleted and the personal data removed" do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
accept_confirm do
|
|
click_link "Delete Account"
|
|
end
|
|
|
|
assert_current_path root_path
|
|
@user.reload
|
|
assert_equal "deleted", @user.status
|
|
assert_equal "user_#{@user.id}", @user.display_name
|
|
end
|
|
|
|
test "the user is signed out after deletion" do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
accept_confirm do
|
|
click_link "Delete Account"
|
|
end
|
|
|
|
assert_content "Log In"
|
|
end
|
|
|
|
test "the user is shown a confirmation flash message" do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
accept_confirm do
|
|
click_link "Delete Account"
|
|
end
|
|
|
|
assert_content "Account Deleted"
|
|
end
|
|
|
|
test "can delete with any delay setting value if the user has no changesets" do
|
|
with_user_account_deletion_delay(10000) do
|
|
travel 1.hour do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
|
|
assert_no_content "cannot currently be deleted"
|
|
end
|
|
end
|
|
end
|
|
|
|
test "can delete with delay disabled" do
|
|
with_user_account_deletion_delay(nil) do
|
|
create(:changeset, :user => @user)
|
|
|
|
travel 1.hour do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
|
|
assert_no_content "cannot currently be deleted"
|
|
end
|
|
end
|
|
end
|
|
|
|
test "can delete when last changeset is old enough" do
|
|
with_user_account_deletion_delay(10) do
|
|
create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
|
|
|
|
travel 12.hours do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
|
|
assert_no_content "cannot currently be deleted"
|
|
end
|
|
end
|
|
end
|
|
|
|
test "can't delete when last changeset isn't old enough" do
|
|
with_user_account_deletion_delay(10) do
|
|
create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
|
|
|
|
travel 10.hours do
|
|
visit edit_account_path
|
|
|
|
click_link "Delete Account..."
|
|
|
|
assert_content "cannot currently be deleted"
|
|
assert_content "in about 1 hour"
|
|
end
|
|
end
|
|
end
|
|
end
|