From b3117f4c24e1818dd4325c61401d8c70f85e9a31 Mon Sep 17 00:00:00 2001 From: Hafiz Shafruddin Date: Tue, 27 Jul 2021 17:13:11 +1000 Subject: [PATCH 1/3] add Close() --- redisstore.go | 4 ++++ redisstore_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/redisstore.go b/redisstore.go index 19e548e..89ee887 100644 --- a/redisstore.go +++ b/redisstore.go @@ -128,6 +128,10 @@ func (s *RedisStore) Serializer(ss SessionSerializer) { s.serializer = ss } +func (s *RedisStore) Close() { + s.Close() +} + // save writes session in Redis func (s *RedisStore) save(ctx context.Context, session *sessions.Session) error { diff --git a/redisstore_test.go b/redisstore_test.go index d9e911b..cd47989 100644 --- a/redisstore_test.go +++ b/redisstore_test.go @@ -129,3 +129,30 @@ func TestDelete(t *testing.T) { t.Fatal("failed to delete session: ", err) } } + +func TestClose(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + cmd := client.Ping(context.Background()) + err := cmd.Err() + if err != nil { + t.Fatal("connection is not opened") + } + + _, err = NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + err = client.Close() + if err != nil { + t.Fatal("failed to close") + } + + cmd = client.Ping(context.Background()) + if cmd.Err() == nil { + t.Fatal("connection is properly closed") + } +} \ No newline at end of file From 5ee56f32b91f723340f2aeaf6284bb89508760cc Mon Sep 17 00:00:00 2001 From: Hafiz Shafruddin Date: Tue, 27 Jul 2021 17:18:06 +1000 Subject: [PATCH 2/3] fix close to use universal store --- redisstore.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redisstore.go b/redisstore.go index 89ee887..5c15955 100644 --- a/redisstore.go +++ b/redisstore.go @@ -128,8 +128,8 @@ func (s *RedisStore) Serializer(ss SessionSerializer) { s.serializer = ss } -func (s *RedisStore) Close() { - s.Close() +func (s *RedisStore) Close() error { + return s.client.Close() } // save writes session in Redis From 89c87e8da20ccca01075f8f2ae097191c215b740 Mon Sep 17 00:00:00 2001 From: Hafiz Shafruddin Date: Tue, 27 Jul 2021 17:19:39 +1000 Subject: [PATCH 3/3] fix Close() unit test --- redisstore_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redisstore_test.go b/redisstore_test.go index cd47989..9b6d949 100644 --- a/redisstore_test.go +++ b/redisstore_test.go @@ -141,12 +141,12 @@ func TestClose(t *testing.T) { t.Fatal("connection is not opened") } - _, err = NewRedisStore(context.Background(), client) + store, err := NewRedisStore(context.Background(), client) if err != nil { t.Fatal("failed to create redis store", err) } - err = client.Close() + err = store.Close() if err != nil { t.Fatal("failed to close") }