@@ -49,6 +49,7 @@ describe('Presence micro service', () => {
4949 id : 'random' ,
5050 instanceId : 'random' ,
5151 status : UserStatus . ONLINE ,
52+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
5253 _createdAt : new Date ( ) ,
5354 _updatedAt : new Date ( ) ,
5455 } ,
@@ -64,6 +65,7 @@ describe('Presence micro service', () => {
6465 id : 'random' ,
6566 instanceId : 'random' ,
6667 status : UserStatus . AWAY ,
68+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
6769 _createdAt : new Date ( ) ,
6870 _updatedAt : new Date ( ) ,
6971 } ,
@@ -79,6 +81,7 @@ describe('Presence micro service', () => {
7981 id : 'random' ,
8082 instanceId : 'random' ,
8183 status : UserStatus . ONLINE ,
84+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
8285 _createdAt : new Date ( ) ,
8386 _updatedAt : new Date ( ) ,
8487 } ,
@@ -94,6 +97,7 @@ describe('Presence micro service', () => {
9497 id : 'random' ,
9598 instanceId : 'random' ,
9699 status : UserStatus . ONLINE ,
100+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
97101 _createdAt : new Date ( ) ,
98102 _updatedAt : new Date ( ) ,
99103 } ,
@@ -109,6 +113,7 @@ describe('Presence micro service', () => {
109113 id : 'random' ,
110114 instanceId : 'random' ,
111115 status : UserStatus . AWAY ,
116+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
112117 _createdAt : new Date ( ) ,
113118 _updatedAt : new Date ( ) ,
114119 } ,
@@ -124,6 +129,7 @@ describe('Presence micro service', () => {
124129 id : 'random' ,
125130 instanceId : 'random' ,
126131 status : UserStatus . ONLINE ,
132+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
127133 _createdAt : new Date ( ) ,
128134 _updatedAt : new Date ( ) ,
129135 } ,
@@ -139,6 +145,7 @@ describe('Presence micro service', () => {
139145 id : 'random' ,
140146 instanceId : 'random' ,
141147 status : UserStatus . AWAY ,
148+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
142149 _createdAt : new Date ( ) ,
143150 _updatedAt : new Date ( ) ,
144151 } ,
@@ -156,13 +163,15 @@ describe('Presence micro service', () => {
156163 id : 'random' ,
157164 instanceId : 'random' ,
158165 status : UserStatus . ONLINE ,
166+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
159167 _createdAt : new Date ( ) ,
160168 _updatedAt : new Date ( ) ,
161169 } ,
162170 {
163171 id : 'random' ,
164172 instanceId : 'random' ,
165173 status : UserStatus . AWAY ,
174+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
166175 _createdAt : new Date ( ) ,
167176 _updatedAt : new Date ( ) ,
168177 } ,
@@ -178,13 +187,15 @@ describe('Presence micro service', () => {
178187 id : 'random' ,
179188 instanceId : 'random' ,
180189 status : UserStatus . AWAY ,
190+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
181191 _createdAt : new Date ( ) ,
182192 _updatedAt : new Date ( ) ,
183193 } ,
184194 {
185195 id : 'random' ,
186196 instanceId : 'random' ,
187197 status : UserStatus . ONLINE ,
198+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
188199 _createdAt : new Date ( ) ,
189200 _updatedAt : new Date ( ) ,
190201 } ,
@@ -200,13 +211,15 @@ describe('Presence micro service', () => {
200211 id : 'random' ,
201212 instanceId : 'random' ,
202213 status : UserStatus . AWAY ,
214+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
203215 _createdAt : new Date ( ) ,
204216 _updatedAt : new Date ( ) ,
205217 } ,
206218 {
207219 id : 'random' ,
208220 instanceId : 'random' ,
209221 status : UserStatus . AWAY ,
222+ expiresAt : new Date ( Date . now ( ) + 1000 * 60 ) ,
210223 _createdAt : new Date ( ) ,
211224 _updatedAt : new Date ( ) ,
212225 } ,
@@ -237,4 +250,38 @@ describe('Presence micro service', () => {
237250 statusConnection : UserStatus . OFFLINE ,
238251 } ) ;
239252 } ) ;
253+
254+ test ( 'should return correct status and statusConnection when there are expired connections' , ( ) => {
255+ expect (
256+ processPresenceAndStatus (
257+ [
258+ {
259+ id : 'random' ,
260+ instanceId : 'random' ,
261+ status : UserStatus . ONLINE ,
262+ expiresAt : new Date ( Date . now ( ) - 1000 * 60 ) ,
263+ _createdAt : new Date ( ) ,
264+ _updatedAt : new Date ( ) ,
265+ } ,
266+ ] ,
267+ UserStatus . ONLINE ,
268+ ) ,
269+ ) . toStrictEqual ( { status : UserStatus . OFFLINE , statusConnection : UserStatus . OFFLINE } ) ;
270+
271+ expect (
272+ processPresenceAndStatus (
273+ [
274+ {
275+ id : 'random' ,
276+ instanceId : 'random' ,
277+ status : UserStatus . AWAY ,
278+ expiresAt : new Date ( Date . now ( ) - 1000 * 60 ) ,
279+ _createdAt : new Date ( ) ,
280+ _updatedAt : new Date ( ) ,
281+ } ,
282+ ] ,
283+ UserStatus . ONLINE ,
284+ ) ,
285+ ) . toStrictEqual ( { status : UserStatus . OFFLINE , statusConnection : UserStatus . OFFLINE } ) ;
286+ } ) ;
240287} ) ;
0 commit comments