From 2deaab9b2447cb1b32df14d2c694d8b42830157e Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 14 Nov 2024 14:41:55 +0000 Subject: [PATCH 1/2] test(user): write tests for isInvitationTokenValid --- packages/backend/src/models/user.test.js | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index c70e9a17..185fafcb 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -792,4 +792,40 @@ describe('User model', () => { vi.useRealTimers(); }); + + describe('isInvitationTokenValid', () => { + it('should return truen when invitationTokenSentAt is within the next four hours', async () => { + vi.useFakeTimers(); + + const date = new Date(2024, 10, 14, 14, 30, 0, 0); + vi.setSystemTime(date); + + const user = new User(); + user.invitationTokenSentAt = '2024-11-14T13:31:00.000Z'; + + expect(user.isInvitationTokenValid()).toBe(true); + + vi.useRealTimers(); + }); + + it('should return false when there is no invitationTokenSentAt', async () => { + const user = new User(); + + expect(user.isInvitationTokenValid()).toBe(false); + }); + + it('should return false when invitationTokenSentAt is older than seventy two hours', async () => { + vi.useFakeTimers(); + + const date = new Date(2024, 10, 14, 14, 30, 0, 0); + vi.setSystemTime(date); + + const user = new User(); + user.invitationTokenSentAt = '2024-11-11T14:20:00.000Z'; + + expect(user.isInvitationTokenValid()).toBe(false); + + vi.useRealTimers(); + }); + }); }); From b02c1545b7ac7c77a1d0d7b01c5669466900b202 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 21 Nov 2024 13:35:42 +0000 Subject: [PATCH 2/2] test(user): use luxon DateTime with zone over Date --- packages/backend/src/models/user.test.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index 185fafcb..bea8f869 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -797,7 +797,11 @@ describe('User model', () => { it('should return truen when invitationTokenSentAt is within the next four hours', async () => { vi.useFakeTimers(); - const date = new Date(2024, 10, 14, 14, 30, 0, 0); + const date = DateTime.fromObject( + { year: 2024, month: 11, day: 14, hour: 14, minute: 30 }, + { zone: 'UTC+0' } + ); + vi.setSystemTime(date); const user = new User(); @@ -817,7 +821,11 @@ describe('User model', () => { it('should return false when invitationTokenSentAt is older than seventy two hours', async () => { vi.useFakeTimers(); - const date = new Date(2024, 10, 14, 14, 30, 0, 0); + const date = DateTime.fromObject( + { year: 2024, month: 11, day: 14, hour: 14, minute: 30 }, + { zone: 'UTC+0' } + ); + vi.setSystemTime(date); const user = new User();