@@ -5,8 +5,10 @@ const redisV3 = require("redis-v3")
5
5
const redisV4 = require ( "redis-v4" )
6
6
const ioRedis = require ( "ioredis" )
7
7
const redisMock = require ( "redis-mock" )
8
+ const MockDate = require ( "mockdate" )
8
9
9
10
let RedisStore = require ( "../" ) ( session )
11
+ MockDate . set ( "2000-11-22" )
10
12
11
13
let p =
12
14
( ctx , method ) =>
@@ -70,11 +72,34 @@ test("redis-mock client", async (t) => {
70
72
test ( "teardown" , redisSrv . disconnect )
71
73
72
74
async function lifecycleTest ( store , t ) {
73
- let res = await p ( store , "set" ) ( "123" , { foo : "bar" } )
75
+ await p ( store , "set" ) ( "123" , { foo : "bar3" } )
76
+ let res = await p ( store , "get" ) ( "123" )
77
+ t . same ( res , { foo : "bar3" , lastModified : 974851200000 } , "get value 1" )
78
+ await p ( store , "set" ) ( "123" , {
79
+ foo : "bar3" ,
80
+ luke : "skywalker" ,
81
+ obi : "wan" ,
82
+ lastModified : 974851000000 ,
83
+ } )
84
+ await p ( store , "set" ) ( "123" , {
85
+ luke : "skywalker" ,
86
+ lastModified : 974851000000 ,
87
+ } )
88
+ res = await p ( store , "get" ) ( "123" )
89
+ t . same (
90
+ res ,
91
+ { foo : "bar3" , luke : "skywalker" , obi : "wan" , lastModified : 974851200000 } ,
92
+ "get merged value"
93
+ )
94
+
95
+ res = await p ( store , "clear" ) ( )
96
+ t . ok ( res >= 1 , "cleared key" )
97
+
98
+ res = await p ( store , "set" ) ( "123" , { foo : "bar" } )
74
99
t . equal ( res , "OK" , "set value" )
75
100
76
101
res = await p ( store , "get" ) ( "123" )
77
- t . same ( res , { foo : "bar" } , "get value" )
102
+ t . same ( res , { foo : "bar" , lastModified : 974851200000 } , "get value" )
78
103
79
104
res = await p ( store . client , "ttl" ) ( "sess:123" )
80
105
t . ok ( res >= 86399 , "check one day ttl" )
@@ -108,20 +133,29 @@ async function lifecycleTest(store, t) {
108
133
t . same (
109
134
res ,
110
135
[
111
- { id : "123" , foo : "bar" } ,
112
- { id : "456" , cookie : { expires } } ,
136
+ { id : "123" , foo : "bar" , lastModified : 974851200000 } ,
137
+ { id : "456" , cookie : { expires } , lastModified : 974851200000 } ,
113
138
] ,
114
139
"stored two keys data"
115
140
)
116
141
117
142
res = await p ( store , "destroy" ) ( "456" )
118
143
t . equal ( res , 1 , "destroyed one" )
119
144
145
+ res = await p ( store , "get" ) ( "456" )
146
+ t . equal ( res , undefined , "tombstoned one" )
147
+
148
+ res = await p ( store , "set" ) ( "456" , { a : "new hope" } )
149
+ t . equal ( res , undefined , "tombstoned set" )
150
+
151
+ res = await p ( store , "get" ) ( "456" )
152
+ t . equal ( res , undefined , "tombstoned two" )
153
+
120
154
res = await p ( store , "length" ) ( )
121
155
t . equal ( res , 1 , "one key remains" )
122
156
123
157
res = await p ( store , "clear" ) ( )
124
- t . equal ( res , 1 , "cleared remaining key" )
158
+ t . equal ( res , 2 , "cleared remaining key" )
125
159
126
160
res = await p ( store , "length" ) ( )
127
161
t . equal ( res , 0 , "no key remains" )
0 commit comments