From 5984b62347da402a48d202289195e9c3d5b386cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 2 Sep 2015 20:43:15 +0200 Subject: [PATCH] FIX: ensure we remove 'category_users' records when a user is deleted --- app/models/user.rb | 3 ++- spec/models/category_user_spec.rb | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 8aa61600b4b..a329f88dc05 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -17,11 +17,12 @@ class User < ActiveRecord::Base has_many :posts has_many :notifications, dependent: :destroy has_many :topic_users, dependent: :destroy + has_many :category_users, dependent: :destroy has_many :topics has_many :user_open_ids, dependent: :destroy has_many :user_actions, dependent: :destroy has_many :post_actions, dependent: :destroy - has_many :user_badges, -> {where('user_badges.badge_id IN (SELECT id FROM badges where enabled)')}, dependent: :destroy + has_many :user_badges, -> { where('user_badges.badge_id IN (SELECT id FROM badges WHERE enabled)') }, dependent: :destroy has_many :badges, through: :user_badges has_many :email_logs, dependent: :delete_all has_many :post_timings diff --git a/spec/models/category_user_spec.rb b/spec/models/category_user_spec.rb index 34927139996..2365f611b5c 100644 --- a/spec/models/category_user_spec.rb +++ b/spec/models/category_user_spec.rb @@ -80,6 +80,19 @@ describe CategoryUser do expect(TopicUser.get(post.topic, user)).to be_blank end + it "is destroyed when a user is deleted" do + user = Fabricate(:user) + category = Fabricate(:category) + + CategoryUser.create!(user: user, category: category, notification_level: CategoryUser.notification_levels[:watching]) + + expect(CategoryUser.where(user_id: user.id).count).to eq(1) + + user.destroy! + + expect(CategoryUser.where(user_id: user.id).count).to eq(0) + end + end end