@rapidraptor/auth-server 0.2.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,38 @@ import { SessionService, TokenRevokedError } from './sessionService.js';
3
3
  import { SessionCache } from './sessionCache.js';
4
4
  import { FirestoreSync } from './firestoreSync.js';
5
5
  import { SessionValidationStatus } from '@rapidraptor/auth-shared';
6
+ const SESSION_ID_1 = '550e8400-e29b-41d4-a716-446655440001';
7
+ const inactivityTimeout = 24 * 60 * 60 * 1000; // 24 hours
8
+ function createQueryChain(getFn) {
9
+ const chain = {
10
+ where: vi.fn(),
11
+ orderBy: vi.fn(),
12
+ limit: vi.fn(),
13
+ get: getFn,
14
+ };
15
+ chain.where.mockReturnValue(chain);
16
+ chain.orderBy.mockReturnValue(chain);
17
+ chain.limit.mockReturnValue(chain);
18
+ return chain;
19
+ }
20
+ function createSessionDoc(overrides) {
21
+ const sessionId = overrides.sessionId ?? SESSION_ID_1;
22
+ const userId = overrides.userId ?? 'user1';
23
+ const now = overrides.createdAt ?? new Date();
24
+ const lastActivityAt = overrides.lastActivityAt ?? now;
25
+ const expiresAt = overrides.expiresAt ?? new Date(now.getTime() + inactivityTimeout);
26
+ return {
27
+ id: sessionId,
28
+ ref: { delete: vi.fn() },
29
+ data: () => ({
30
+ sessionId,
31
+ userId,
32
+ createdAt: { toDate: () => now },
33
+ lastActivityAt: { toDate: () => lastActivityAt },
34
+ expiresAt: { toDate: () => expiresAt },
35
+ }),
36
+ };
37
+ }
6
38
  describe('SessionService', () => {
7
39
  let sessionService;
8
40
  let cache;
@@ -16,10 +48,9 @@ describe('SessionService', () => {
16
48
  let mockLogoutsCollection;
17
49
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
50
  let mockLogoutDoc;
19
- const inactivityTimeout = 24 * 60 * 60 * 1000; // 24 hours
51
+ let mockQueryGet;
20
52
  beforeEach(() => {
21
53
  cache = new SessionCache(inactivityTimeout);
22
- // Create a proper mock Firestore with batch method
23
54
  const mockBatch = {
24
55
  set: vi.fn(),
25
56
  commit: vi.fn().mockResolvedValue(undefined),
@@ -34,11 +65,10 @@ describe('SessionService', () => {
34
65
  set: vi.fn(),
35
66
  delete: vi.fn(),
36
67
  };
68
+ mockQueryGet = vi.fn().mockResolvedValue({ empty: true, docs: [] });
37
69
  mockCollection = {
38
70
  doc: vi.fn(() => mockDoc),
39
- where: vi.fn(() => ({
40
- get: vi.fn(),
41
- })),
71
+ where: vi.fn(() => createQueryChain(mockQueryGet)),
42
72
  };
43
73
  mockLogoutDoc = {
44
74
  get: vi.fn(),
@@ -61,6 +91,7 @@ describe('SessionService', () => {
61
91
  describe('validateSession', () => {
62
92
  it('should return VALID for valid cached session', async () => {
63
93
  const session = {
94
+ sessionId: SESSION_ID_1,
64
95
  userId: 'user1',
65
96
  createdAt: new Date(),
66
97
  lastActivityAt: new Date(),
@@ -73,70 +104,49 @@ describe('SessionService', () => {
73
104
  });
74
105
  it('should return EXPIRED for expired cached session and check Firestore', async () => {
75
106
  const expiredSession = {
107
+ sessionId: SESSION_ID_1,
76
108
  userId: 'user1',
77
109
  createdAt: new Date(Date.now() - inactivityTimeout),
78
110
  lastActivityAt: new Date(Date.now() - inactivityTimeout),
79
111
  expiresAt: new Date(Date.now() - 1000),
80
112
  };
81
113
  cache.set('user1', expiredSession);
82
- mockDoc.get.mockResolvedValue({
83
- exists: true,
84
- data: () => ({
85
- userId: 'user1',
86
- createdAt: { toDate: () => expiredSession.createdAt },
87
- lastActivityAt: { toDate: () => expiredSession.lastActivityAt },
88
- expiresAt: { toDate: () => expiredSession.expiresAt },
89
- }),
114
+ mockQueryGet.mockResolvedValueOnce({
115
+ empty: false,
116
+ docs: [createSessionDoc({ userId: 'user1', expiresAt: expiredSession.expiresAt })],
90
117
  });
91
118
  const status = await sessionService.validateSession('user1');
92
119
  expect(status).toBe(SessionValidationStatus.EXPIRED);
93
120
  });
94
121
  it('should return NOT_FOUND when Firestore document does not exist', async () => {
95
- mockDoc.get.mockResolvedValue({
96
- exists: false,
97
- });
122
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
98
123
  const status = await sessionService.validateSession('user1');
99
124
  expect(status).toBe(SessionValidationStatus.NOT_FOUND);
100
125
  });
101
126
  it('should return VALID when Firestore document exists and is not expired', async () => {
102
127
  const now = new Date();
103
128
  const expiresAt = new Date(now.getTime() + inactivityTimeout);
104
- const firestoreTimestamp = {
105
- toDate: () => now,
106
- };
107
- mockDoc.get.mockResolvedValue({
108
- exists: true,
109
- data: () => ({
110
- userId: 'user1',
111
- createdAt: firestoreTimestamp,
112
- lastActivityAt: firestoreTimestamp,
113
- expiresAt: { toDate: () => expiresAt },
114
- }),
129
+ mockQueryGet.mockResolvedValueOnce({
130
+ empty: false,
131
+ docs: [createSessionDoc({ userId: 'user1', createdAt: now, lastActivityAt: now, expiresAt })],
115
132
  });
116
133
  const status = await sessionService.validateSession('user1');
117
134
  expect(status).toBe(SessionValidationStatus.VALID);
118
135
  expect(cache.get('user1')).toBeTruthy();
136
+ expect(cache.get('user1')?.sessionId).toBe(SESSION_ID_1);
119
137
  });
120
138
  it('should return EXPIRED when Firestore document exists but is expired', async () => {
121
- const now = new Date();
122
- const expiredTime = new Date(now.getTime() - 1000);
123
- const firestoreTimestamp = {
124
- toDate: () => expiredTime,
125
- };
126
- mockDoc.get.mockResolvedValue({
127
- exists: true,
128
- data: () => ({
129
- userId: 'user1',
130
- createdAt: firestoreTimestamp,
131
- lastActivityAt: firestoreTimestamp,
132
- expiresAt: { toDate: () => expiredTime },
133
- }),
139
+ const expiredTime = new Date(Date.now() - 1000);
140
+ mockQueryGet.mockResolvedValueOnce({
141
+ empty: false,
142
+ docs: [createSessionDoc({ userId: 'user1', expiresAt: expiredTime })],
134
143
  });
135
144
  const status = await sessionService.validateSession('user1');
136
145
  expect(status).toBe(SessionValidationStatus.EXPIRED);
137
146
  });
138
147
  it('should return DATA_INTEGRITY_ERROR when cached session userId mismatch', async () => {
139
148
  const session = {
149
+ sessionId: SESSION_ID_1,
140
150
  userId: 'user2', // Mismatch
141
151
  createdAt: new Date(),
142
152
  lastActivityAt: new Date(),
@@ -145,22 +155,12 @@ describe('SessionService', () => {
145
155
  cache.set('user1', session);
146
156
  const status = await sessionService.validateSession('user1');
147
157
  expect(status).toBe(SessionValidationStatus.DATA_INTEGRITY_ERROR);
148
- expect(cache.get('user1')).toBeNull(); // Should be cleared
158
+ expect(cache.get('user1')).toBeNull();
149
159
  });
150
160
  it('should return DATA_INTEGRITY_ERROR when Firestore document userId mismatch', async () => {
151
- const now = new Date();
152
- const expiresAt = new Date(now.getTime() + inactivityTimeout);
153
- const firestoreTimestamp = {
154
- toDate: () => now,
155
- };
156
- mockDoc.get.mockResolvedValue({
157
- exists: true,
158
- data: () => ({
159
- userId: 'user2', // Mismatch with document ID
160
- createdAt: firestoreTimestamp,
161
- lastActivityAt: firestoreTimestamp,
162
- expiresAt: { toDate: () => expiresAt },
163
- }),
161
+ mockQueryGet.mockResolvedValueOnce({
162
+ empty: false,
163
+ docs: [createSessionDoc({ userId: 'user2' })],
164
164
  });
165
165
  const status = await sessionService.validateSession('user1');
166
166
  expect(status).toBe(SessionValidationStatus.DATA_INTEGRITY_ERROR);
@@ -169,6 +169,7 @@ describe('SessionService', () => {
169
169
  describe('isSessionValid', () => {
170
170
  it('should return true for valid session', async () => {
171
171
  const session = {
172
+ sessionId: SESSION_ID_1,
172
173
  userId: 'user1',
173
174
  createdAt: new Date(),
174
175
  lastActivityAt: new Date(),
@@ -179,32 +180,29 @@ describe('SessionService', () => {
179
180
  expect(isValid).toBe(true);
180
181
  });
181
182
  it('should return false for invalid session', async () => {
182
- mockDoc.get.mockResolvedValue({
183
- exists: false,
184
- });
183
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
185
184
  const isValid = await sessionService.isSessionValid('user1');
186
185
  expect(isValid).toBe(false);
187
186
  });
188
187
  });
189
188
  describe('ensureSession', () => {
190
189
  it('should create new session if it does not exist', async () => {
191
- // Mock Firestore to return no document (session doesn't exist)
192
- mockDoc.get.mockResolvedValue({
193
- exists: false,
194
- });
190
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
195
191
  const wasCreated = await sessionService.ensureSession('user1');
196
192
  expect(wasCreated).toBe(true);
197
193
  expect(cache.get('user1')).toBeTruthy();
194
+ expect(cache.get('user1')?.sessionId).toBeDefined();
195
+ expect(mockCollection.doc).toHaveBeenCalledWith(expect.stringMatching(/^[0-9a-f-]{36}$/i));
198
196
  expect(mockDoc.set).toHaveBeenCalled();
199
197
  });
200
198
  it('should return false if session already exists and is valid', async () => {
201
199
  const session = {
200
+ sessionId: SESSION_ID_1,
202
201
  userId: 'user1',
203
202
  createdAt: new Date(),
204
203
  lastActivityAt: new Date(),
205
204
  expiresAt: new Date(Date.now() + inactivityTimeout),
206
205
  };
207
- // Set valid session in cache
208
206
  cache.set('user1', session);
209
207
  const wasCreated = await sessionService.ensureSession('user1');
210
208
  expect(wasCreated).toBe(false);
@@ -212,91 +210,65 @@ describe('SessionService', () => {
212
210
  });
213
211
  it('should throw error if session exists but is expired', async () => {
214
212
  const expiredSession = {
213
+ sessionId: SESSION_ID_1,
215
214
  userId: 'user1',
216
215
  createdAt: new Date(Date.now() - inactivityTimeout),
217
216
  lastActivityAt: new Date(Date.now() - inactivityTimeout),
218
217
  expiresAt: new Date(Date.now() - 1000),
219
218
  };
220
- // Set expired session in cache
221
219
  cache.set('user1', expiredSession);
222
- // Mock Firestore to return expired session
223
- mockDoc.get.mockResolvedValue({
224
- exists: true,
225
- data: () => ({
226
- userId: 'user1',
227
- createdAt: { toDate: () => expiredSession.createdAt },
228
- lastActivityAt: { toDate: () => expiredSession.lastActivityAt },
229
- expiresAt: { toDate: () => expiredSession.expiresAt },
230
- }),
220
+ mockQueryGet.mockResolvedValueOnce({
221
+ empty: false,
222
+ docs: [createSessionDoc({ userId: 'user1', expiresAt: expiredSession.expiresAt })],
231
223
  });
232
224
  await expect(sessionService.ensureSession('user1')).rejects.toThrow('Session has expired. Please logout and login again.');
233
- // Verify session was NOT recreated
234
225
  expect(mockDoc.set).not.toHaveBeenCalled();
235
226
  });
236
227
  it('should recreate session if data integrity issue detected (userId mismatch)', async () => {
237
- // Mock Firestore to return document with mismatched userId
238
- mockDoc.get.mockResolvedValue({
239
- exists: true,
240
- data: () => ({
241
- userId: 'different-user', // Mismatch with document ID
242
- createdAt: { toDate: () => new Date() },
243
- lastActivityAt: { toDate: () => new Date() },
244
- expiresAt: { toDate: () => new Date(Date.now() + inactivityTimeout) },
245
- }),
228
+ mockQueryGet.mockResolvedValueOnce({
229
+ empty: false,
230
+ docs: [createSessionDoc({ userId: 'different-user' })],
246
231
  });
247
232
  const wasCreated = await sessionService.ensureSession('user1');
248
233
  expect(wasCreated).toBe(true);
249
234
  expect(cache.get('user1')).toBeTruthy();
250
- // Verify new session was created with correct userId
251
- const newSession = cache.get('user1');
252
- expect(newSession.userId).toBe('user1');
235
+ expect(cache.get('user1').userId).toBe('user1');
253
236
  expect(mockDoc.set).toHaveBeenCalled();
254
237
  });
255
238
  it('should throw error if token was issued before logout', async () => {
256
- // Mock logout record exists
257
239
  const loggedOutAt = new Date();
258
- const tokenIssuedAt = new Date(loggedOutAt.getTime() - 1000); // 1 second before logout
240
+ const tokenIssuedAt = new Date(loggedOutAt.getTime() - 1000);
259
241
  mockLogoutDoc.get.mockResolvedValue({
260
242
  exists: true,
261
243
  data: () => ({
262
244
  userId: 'user1',
263
245
  loggedOutAt: { toDate: () => loggedOutAt },
264
- expiresAt: { toDate: () => new Date(loggedOutAt.getTime() + 3600000) }, // 1 hour TTL, still valid
246
+ expiresAt: { toDate: () => new Date(loggedOutAt.getTime() + 3600000) },
265
247
  }),
266
248
  });
267
- // Mock Firestore to return no document (session doesn't exist)
268
- mockDoc.get.mockResolvedValue({
269
- exists: false,
270
- });
249
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
271
250
  await expect(sessionService.ensureSession('user1', tokenIssuedAt)).rejects.toThrow(TokenRevokedError);
272
251
  expect(mockDoc.set).not.toHaveBeenCalled();
273
252
  });
274
253
  it('should create session if token was issued after logout', async () => {
275
- // Mock logout record exists but token was issued after
276
254
  const loggedOutAt = new Date();
277
- const tokenIssuedAt = new Date(loggedOutAt.getTime() + 1000); // 1 second after logout
255
+ const tokenIssuedAt = new Date(loggedOutAt.getTime() + 1000);
278
256
  mockLogoutDoc.get.mockResolvedValue({
279
257
  exists: true,
280
258
  data: () => ({
281
259
  userId: 'user1',
282
260
  loggedOutAt: { toDate: () => loggedOutAt },
283
- expiresAt: { toDate: () => new Date(loggedOutAt.getTime() + 3600000) }, // 1 hour TTL, still valid
261
+ expiresAt: { toDate: () => new Date(loggedOutAt.getTime() + 3600000) },
284
262
  }),
285
263
  });
286
- // Mock Firestore to return no document (session doesn't exist)
287
- mockDoc.get.mockResolvedValue({
288
- exists: false,
289
- });
264
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
290
265
  const wasCreated = await sessionService.ensureSession('user1', tokenIssuedAt);
291
266
  expect(wasCreated).toBe(true);
292
267
  expect(cache.get('user1')).toBeTruthy();
293
268
  expect(mockDoc.set).toHaveBeenCalled();
294
269
  });
295
270
  it('should work without tokenIssuedAt parameter (backward compatibility)', async () => {
296
- // Mock Firestore to return no document (session doesn't exist)
297
- mockDoc.get.mockResolvedValue({
298
- exists: false,
299
- });
271
+ mockQueryGet.mockResolvedValueOnce({ empty: true, docs: [] });
300
272
  const wasCreated = await sessionService.ensureSession('user1');
301
273
  expect(wasCreated).toBe(true);
302
274
  expect(cache.get('user1')).toBeTruthy();
@@ -305,9 +277,10 @@ describe('SessionService', () => {
305
277
  });
306
278
  describe('updateLastActivity', () => {
307
279
  it('should update cache immediately and queue Firestore write', async () => {
308
- const originalTime = new Date(Date.now() - 1000); // Set time 1 second ago
309
- const originalExpiresAt = new Date(Date.now() + inactivityTimeout); // Set expiresAt in the future (valid)
280
+ const originalTime = new Date(Date.now() - 1000);
281
+ const originalExpiresAt = new Date(Date.now() + inactivityTimeout);
310
282
  const session = {
283
+ sessionId: SESSION_ID_1,
311
284
  userId: 'user1',
312
285
  createdAt: originalTime,
313
286
  lastActivityAt: originalTime,
@@ -318,29 +291,20 @@ describe('SessionService', () => {
318
291
  await sessionService.updateLastActivity('user1');
319
292
  const updatedSession = cache.get('user1');
320
293
  expect(updatedSession).toBeTruthy();
321
- // Verify that lastActivityAt was updated (should be more recent)
322
294
  expect(updatedSession.lastActivityAt.getTime()).toBeGreaterThanOrEqual(originalTime.getTime());
323
- // Verify expiresAt was also updated (should be in the future now)
324
295
  expect(updatedSession.expiresAt.getTime()).toBeGreaterThan(Date.now());
325
- expect(updatedSession.expiresAt.getTime()).toBeGreaterThanOrEqual(originalExpiresAt.getTime());
326
296
  expect(queueWriteSpy).toHaveBeenCalled();
327
297
  });
328
298
  it('should load session from Firestore if not in cache', async () => {
329
299
  const now = new Date();
330
300
  const expiresAt = new Date(now.getTime() + inactivityTimeout);
331
- mockDoc.get.mockResolvedValue({
332
- exists: true,
333
- data: () => ({
334
- userId: 'user1',
335
- createdAt: { toDate: () => now },
336
- lastActivityAt: { toDate: () => now },
337
- expiresAt: { toDate: () => expiresAt },
338
- }),
301
+ mockQueryGet.mockResolvedValueOnce({
302
+ empty: false,
303
+ docs: [createSessionDoc({ userId: 'user1', createdAt: now, lastActivityAt: now, expiresAt })],
339
304
  });
340
305
  const queueWriteSpy = vi.spyOn(firestoreSync, 'queueWrite');
341
306
  await sessionService.updateLastActivity('user1');
342
307
  expect(cache.get('user1')).toBeTruthy();
343
- // Verify the session was loaded and updated
344
308
  const updatedSession = cache.get('user1');
345
309
  expect(updatedSession).toBeTruthy();
346
310
  expect(updatedSession.lastActivityAt.getTime()).toBeGreaterThanOrEqual(now.getTime());
@@ -350,16 +314,18 @@ describe('SessionService', () => {
350
314
  describe('clearSession', () => {
351
315
  it('should clear cache, store logout timestamp, and delete from Firestore', async () => {
352
316
  const session = {
317
+ sessionId: SESSION_ID_1,
353
318
  userId: 'user1',
354
319
  createdAt: new Date(),
355
320
  lastActivityAt: new Date(),
356
321
  expiresAt: new Date(Date.now() + inactivityTimeout),
357
322
  };
358
323
  cache.set('user1', session);
324
+ const mockDeleteDoc = createSessionDoc({ userId: 'user1' });
325
+ mockQueryGet.mockResolvedValueOnce({ empty: false, docs: [mockDeleteDoc] });
359
326
  await sessionService.clearSession('user1');
360
327
  expect(cache.get('user1')).toBeNull();
361
- expect(mockDoc.delete).toHaveBeenCalled();
362
- // Verify logout timestamp was stored
328
+ expect(mockDeleteDoc.ref.delete).toHaveBeenCalled();
363
329
  expect(mockFirestore.collection).toHaveBeenCalledWith('user_logouts');
364
330
  expect(mockLogoutDoc.set).toHaveBeenCalledWith(expect.objectContaining({
365
331
  userId: 'user1',
@@ -1 +1 @@
1
- {"version":3,"file":"sessionService.test.js","sourceRoot":"","sources":["../../src/session/sessionService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionService.test.js","sourceRoot":"","sources":["../../src/session/sessionService.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rapidraptor/auth-server",
3
- "version": "0.2.3",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "description": "Server-side authentication library for Node.js/Express applications",
6
6
  "main": "./dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "test": "vitest"
31
31
  },
32
32
  "dependencies": {
33
- "@rapidraptor/auth-shared": "^0.2.3",
33
+ "@rapidraptor/auth-shared": "^1.0.0",
34
34
  "firebase-admin": "^12.0.0",
35
35
  "jose": "^5.2.0"
36
36
  },