From e79379f9315125c79aada2eec2e2bc79c3b04225 Mon Sep 17 00:00:00 2001 From: Szymon Kurcab Date: Fri, 12 Jan 2018 17:41:15 +0100 Subject: [PATCH 1/2] Add dependencies removal when user is destoryed --- app/models/casino/user.rb | 6 +++--- spec/model/user_spec.rb | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 spec/model/user_spec.rb diff --git a/app/models/casino/user.rb b/app/models/casino/user.rb index 2bd2a72b..58732f91 100644 --- a/app/models/casino/user.rb +++ b/app/models/casino/user.rb @@ -2,9 +2,9 @@ class CASino::User < ActiveRecord::Base serialize :extra_attributes, Hash - has_many :ticket_granting_tickets - has_many :two_factor_authenticators - has_many :login_attempts + has_many :ticket_granting_tickets, dependent: :destroy + has_many :two_factor_authenticators, dependent: :destroy + has_many :login_attempts, dependent: :destroy def active_two_factor_authenticator self.two_factor_authenticators.where(active: true).first diff --git a/spec/model/user_spec.rb b/spec/model/user_spec.rb new file mode 100644 index 00000000..75a38953 --- /dev/null +++ b/spec/model/user_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' +require 'useragent' + +describe CASino::User do + let(:user) { FactoryGirl.create :user } + + let!(:ticket_granting_ticket) { FactoryGirl.create :ticket_granting_ticket, user: user } + let!(:two_factor_authenticator) { FactoryGirl.create :two_factor_authenticator, user: user } + let!(:login_attempt) { FactoryGirl.create :login_attempt, user: user } + + subject { user } + + describe '#destroy' do + before(:each) do + CASino::ServiceTicket::SingleSignOutNotifier.any_instance.stub(:notify).and_return(false) + end + + it 'deletes depending ticket-granting-ticket' do + lambda { + user.destroy + }.should change(CASino::TicketGrantingTicket, :count).by(-1) + end + + it 'deletes depending two-factor-authenticator' do + lambda { + user.destroy + }.should change(CASino::TwoFactorAuthenticator, :count).by(-1) + end + + it 'deletes depending login-attempt' do + lambda { + user.destroy + }.should change(CASino::LoginAttempt, :count).by(-1) + end + end +end From 3ed59e5be044fcc4025aba8d75b529b5cc11ea9c Mon Sep 17 00:00:00 2001 From: Szymon Kurcab Date: Fri, 12 Jan 2018 17:43:49 +0100 Subject: [PATCH 2/2] Remove redundant code --- spec/model/user_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/model/user_spec.rb b/spec/model/user_spec.rb index 75a38953..d0945cc0 100644 --- a/spec/model/user_spec.rb +++ b/spec/model/user_spec.rb @@ -1,5 +1,4 @@ require 'spec_helper' -require 'useragent' describe CASino::User do let(:user) { FactoryGirl.create :user }