Refactoring: Allow re-usage of existing DB connection instead of creating/resetting existing one.

This commit is contained in:
Thorsten Eckel 2018-12-03 12:34:56 +01:00
parent 7ffa03731e
commit 030f80e3eb
2 changed files with 10 additions and 1 deletions

View file

@ -12,7 +12,12 @@ class Sessions::Event::Base
return if !self.class.instance_variable_get(:@database_connection)
ActiveRecord::Base.establish_connection
if ActiveRecord::Base.connected?
@reused_connection = true
else
@reused_connection = false
ActiveRecord::Base.establish_connection
end
end
def self.inherited(subclass)
@ -138,6 +143,7 @@ class Sessions::Event::Base
def destroy
return if !@is_web_socket
return if !self.class.instance_variable_get(:@database_connection)
return if @reused_connection
ActiveRecord::Base.remove_connection
end

View file

@ -58,6 +58,9 @@ class ChatTest < ActiveSupport::TestCase
# with websockets
assert(User.first)
# make sure to emulate unconnected WS env
ActiveRecord::Base.remove_connection
message = Sessions::Event.run(
event: 'login',
payload: {},