From 41622678b04527bcbca50721573751eaa9d959f0 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 14 Nov 2024 15:11:20 +0000 Subject: [PATCH 1/2] test(user): write test for startTrialPeriod --- packages/backend/src/models/user.js | 4 ++-- packages/backend/src/models/user.test.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/models/user.js b/packages/backend/src/models/user.js index 61e6048c..a2558dc1 100644 --- a/packages/backend/src/models/user.js +++ b/packages/backend/src/models/user.js @@ -407,7 +407,7 @@ class User extends Base { } } - async startTrialPeriod() { + startTrialPeriod() { this.trialExpiryDate = DateTime.now().plus({ days: 30 }).toISODate(); } @@ -590,7 +590,7 @@ class User extends Base { await this.generateHash(); if (appConfig.isCloud) { - await this.startTrialPeriod(); + this.startTrialPeriod(); } } diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index f28957f7..d6570918 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -856,4 +856,19 @@ describe('User model', () => { expect(user.password).toBe(undefined); }); }); + + it('startTrialPeriod should assign trialExpiryDate 30 days from now', () => { + vi.useFakeTimers(); + + const date = new Date(2024, 10, 14, 16, 0, 0, 0); + vi.setSystemTime(date); + + const user = new User(); + + user.startTrialPeriod(); + + expect(user.trialExpiryDate).toBe('2024-12-14'); + + vi.useRealTimers(); + }); }); From 741866e74210d229ac9e574aab51b7c749ac6426 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 21 Nov 2024 13:38:03 +0000 Subject: [PATCH 2/2] test(user): use luxon DateTime with zone over Date --- packages/backend/src/models/user.test.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index d6570918..cf1d5ae3 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -860,7 +860,11 @@ describe('User model', () => { it('startTrialPeriod should assign trialExpiryDate 30 days from now', () => { vi.useFakeTimers(); - const date = new Date(2024, 10, 14, 16, 0, 0, 0); + const date = DateTime.fromObject( + { year: 2024, month: 11, day: 14, hour: 16 }, + { zone: 'UTC+0' } + ); + vi.setSystemTime(date); const user = new User();