test "the status is deleted and the personal data removed" do
visit edit_account_path
- click_link "Delete Account..."
+ click_on "Delete Account..."
accept_confirm do
- click_link "Delete Account"
+ click_on "Delete Account"
end
assert_current_path root_path
test "the user is signed out after deletion" do
visit edit_account_path
- click_link "Delete Account..."
+ click_on "Delete Account..."
accept_confirm do
- click_link "Delete Account"
+ click_on "Delete Account"
end
assert_content "Log In"
test "the user is shown a confirmation flash message" do
visit edit_account_path
- click_link "Delete Account..."
+ click_on "Delete Account..."
accept_confirm do
- click_link "Delete Account"
+ click_on "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_on "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_on "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_on "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_on "Delete Account..."
+
+ assert_content "cannot currently be deleted"
+ assert_content "in about 1 hour"
+ end
+ end
+ end
end