From e31b3c06ac07c56ce769b657583880a7bd184baa Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 18 Sep 2019 17:35:29 +0300 Subject: [PATCH] Clear expired EPP sessions Fixes #711 --- lib/tasks/epp/clear_expired_sessions.rake | 7 +++++++ test/tasks/epp/clear_expired_sessions_test.rb | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 lib/tasks/epp/clear_expired_sessions.rake create mode 100644 test/tasks/epp/clear_expired_sessions_test.rb diff --git a/lib/tasks/epp/clear_expired_sessions.rake b/lib/tasks/epp/clear_expired_sessions.rake new file mode 100644 index 0000000000..296b463d93 --- /dev/null +++ b/lib/tasks/epp/clear_expired_sessions.rake @@ -0,0 +1,7 @@ +namespace :epp do + desc 'Clear expired EPP sessions' + + task clear_expired_sessions: :environment do + Epp::ExpiredSessions.new(EppSession.expired).clear + end +end diff --git a/test/tasks/epp/clear_expired_sessions_test.rb b/test/tasks/epp/clear_expired_sessions_test.rb new file mode 100644 index 0000000000..bd6c5c14f8 --- /dev/null +++ b/test/tasks/epp/clear_expired_sessions_test.rb @@ -0,0 +1,20 @@ +require 'test_helper' + +class EppClearExpiredSessionsTaskTest < ActiveSupport::TestCase + def test_clears_expired_epp_sessions + idle_timeout = 0.second + EppSession.idle_timeout = idle_timeout + session = epp_sessions(:api_bestnames) + session.update!(updated_at: Time.zone.now - idle_timeout - 1.second) + + run_task + + assert_nil EppSession.find_by(session_id: session.session_id) + end + + private + + def run_task + Rake::Task['epp:clear_expired_sessions'].execute + end +end