1 # frozen_string_literal: true
3 require "application_system_test_case"
5 class AccountDeletionTest < ApplicationSystemTestCase
7 @user = create(:user, :display_name => "test user")
11 test "the status is deleted and the personal data removed" do
14 click_on "Delete Account..."
16 click_on "Delete Account"
19 assert_current_path root_path
21 assert_equal "deleted", @user.status
22 assert_equal "user_#{@user.id}", @user.display_name
25 test "the user is signed out after deletion" do
28 click_on "Delete Account..."
30 click_on "Delete Account"
33 assert_content "Log In"
36 test "the user is shown a confirmation flash message" do
39 click_on "Delete Account..."
41 click_on "Delete Account"
44 assert_content "Account Deleted"
47 test "can delete with any delay setting value if the user has no changesets" do
48 with_user_account_deletion_delay(10000) do
52 click_on "Delete Account..."
54 assert_no_content "cannot currently be deleted"
59 test "can delete with delay disabled" do
60 with_user_account_deletion_delay(nil) do
61 create(:changeset, :user => @user)
66 click_on "Delete Account..."
68 assert_no_content "cannot currently be deleted"
73 test "can delete when last changeset is old enough" do
74 with_user_account_deletion_delay(10) do
75 create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
80 click_on "Delete Account..."
82 assert_no_content "cannot currently be deleted"
87 test "can't delete when last changeset isn't old enough" do
88 with_user_account_deletion_delay(10) do
89 create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
94 click_on "Delete Account..."
96 assert_content "cannot currently be deleted"
97 assert_content "in about 1 hour"