Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / components / containers / payments / PaymentSwitcher.test.tsx
blobf99e4e6ece110c98567d60a6e1539a8a78ecdb2d
1 import { ChargebeeEnabled } from '@proton/shared/lib/interfaces';
3 import { isChargebeeEnabled } from './PaymentSwitcher';
5 describe('isChargebeeEnabled', () => {
6     const mockGetUser = jest.fn();
8     beforeEach(() => {
9         jest.resetAllMocks();
10     });
12     it.each([ChargebeeEnabled.CHARGEBEE_ALLOWED, ChargebeeEnabled.CHARGEBEE_FORCED, ChargebeeEnabled.INHOUSE_FORCED])(
13         'returns chargebeeUser when user is logged in %s',
14         async (ChargebeeUser) => {
15             mockGetUser.mockResolvedValue({ ChargebeeUser });
16             const { result } = await isChargebeeEnabled('UID', mockGetUser, false);
17             expect(result).toEqual(ChargebeeUser);
18         }
19     );
21     it('returns CHARGEBEE_FORCED when user is not logged in', async () => {
22         const { result } = await isChargebeeEnabled(undefined, mockGetUser, false);
23         expect(result).toEqual(ChargebeeEnabled.CHARGEBEE_FORCED);
24     });
26     it('returns CHARGEBEE_FORCED when user is logged in and ChargebeeUser is CHARGEBEE_FORCED', async () => {
27         mockGetUser.mockResolvedValue({ ChargebeeUser: ChargebeeEnabled.CHARGEBEE_FORCED });
28         const { result } = await isChargebeeEnabled('UID', mockGetUser, false);
29         expect(result).toEqual(ChargebeeEnabled.CHARGEBEE_FORCED);
30     });
32     it('returns INHOUSE_FORCED when user is logged in and ChargebeeUser is INHOUSE_FORCED', async () => {
33         mockGetUser.mockResolvedValue({ ChargebeeUser: ChargebeeEnabled.INHOUSE_FORCED });
34         const { result } = await isChargebeeEnabled('UID', mockGetUser, false);
35         expect(result).toEqual(ChargebeeEnabled.INHOUSE_FORCED);
36     });
38     it('returns INHOUSE_FORCED when user is logged in and isAccountLite is true', async () => {
39         mockGetUser.mockResolvedValue({ ChargebeeUser: ChargebeeEnabled.CHARGEBEE_ALLOWED });
40         const { result } = await isChargebeeEnabled('UID', mockGetUser, true);
41         expect(result).toEqual(ChargebeeEnabled.INHOUSE_FORCED);
42     });
44     // todo: should it be CHARGEBEE_FORCED?
45     it('returns INHOUSE_FORCED when user is not logged in and isAccountLite is true', async () => {
46         const { result } = await isChargebeeEnabled(undefined, mockGetUser, true);
47         expect(result).toEqual(ChargebeeEnabled.INHOUSE_FORCED);
48     });
50     it('returns CHARGEBEE_FORCED when user is CHARGEBEE_FORCED and the app is AccountLite', async () => {
51         mockGetUser.mockResolvedValue({ ChargebeeUser: ChargebeeEnabled.CHARGEBEE_FORCED });
52         const { result } = await isChargebeeEnabled('UID', mockGetUser, true);
53         expect(result).toEqual(ChargebeeEnabled.CHARGEBEE_FORCED);
54     });
55 });