From 54fa3471425c333f5cbcf4cfa9bb69afbebcbf49 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Fri, 15 Nov 2024 13:44:49 +0000 Subject: [PATCH] test(user): write tests for hasActiveSubscription --- packages/backend/src/models/user.test.js | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/backend/src/models/user.test.js b/packages/backend/src/models/user.test.js index 848ef4ee..2c432d08 100644 --- a/packages/backend/src/models/user.test.js +++ b/packages/backend/src/models/user.test.js @@ -26,6 +26,7 @@ import { createPermission } from '../../test/factories/permission.js'; import { createFlow } from '../../test/factories/flow.js'; import { createStep } from '../../test/factories/step.js'; import { createExecution } from '../../test/factories/execution.js'; +import { createSubscription } from '../../test/factories/subscription.js'; describe('User model', () => { it('tableName should return correct name', () => { @@ -1004,4 +1005,33 @@ describe('User model', () => { vi.useRealTimers(); }); }); + + describe('hasActiveSubscription', () => { + it('should return true if current subscription is valid', async () => { + const user = await createUser(); + await createSubscription({ userId: user.id, status: 'active' }); + + expect(await user.hasActiveSubscription()).toBe(true); + }); + + it('should return false if current subscription is not valid', async () => { + const user = await createUser(); + + await createSubscription({ + userId: user.id, + status: 'deleted', + cancellationEffectiveDate: DateTime.now().minus({ day: 1 }).toString(), + }); + + expect(await user.hasActiveSubscription()).toBe(false); + }); + + it('should return false if Automatisch is not a cloud installation', async () => { + const user = new User(); + + vi.spyOn(appConfig, 'isCloud', 'get').mockReturnValue(false); + + expect(await user.hasActiveSubscription()).toBe(false); + }); + }); });