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"