* Action to request account deletion by email * Confirmation page for user destroy * Remove some of the old destroy user code * System tests for user destroy * Moved user destroy tokens to redis * Change tests according to the new user destroy token storage (in redis) * Added info about the link to user delete confirmation email * Remove blank like from schema.rb * Delete user destroy token on user delete * Update confirm user destroy js
37 lines
1,010 B
Ruby
37 lines
1,010 B
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe Users::Delete, type: :service do
|
|
let(:user) { create(:user) }
|
|
|
|
it "deletes user" do
|
|
described_class.call(user)
|
|
expect(User.find_by(id: user.id)).to be_nil
|
|
end
|
|
|
|
it "busts user profile page" do
|
|
allow(CacheBuster).to receive(:bust)
|
|
described_class.new(user).call
|
|
expect(CacheBuster).to have_received(:bust).with("/#{user.username}")
|
|
end
|
|
|
|
it "deletes user's follows" do
|
|
create(:follow, follower: user)
|
|
create(:follow, followable: user)
|
|
|
|
expect do
|
|
described_class.call(user)
|
|
end.to change(Follow, :count).by(-2)
|
|
end
|
|
|
|
it "deletes user's articles" do
|
|
article = create(:article, user: user)
|
|
described_class.call(user)
|
|
expect(Article.find_by(id: article.id)).to be_nil
|
|
end
|
|
|
|
it "deletes the destroy token" do
|
|
allow(RedisRailsCache).to receive(:delete).and_call_original
|
|
described_class.call(user)
|
|
expect(RedisRailsCache).to have_received(:delete).with("user-destroy-token-#{user.id}")
|
|
end
|
|
end
|