Skip to content

Commit df63907

Browse files
committed
clean up userPreferences test
1 parent bf9626e commit df63907

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

server/controllers/user.controller/__tests__/userPreferences.test.ts

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ import { NextFunction as MockNext } from 'jest-express/lib/next';
44
import { User } from '../../../models/user';
55
import { updatePreferences, updateCookieConsent } from '../userPreferences';
66
import { createMockUser, mockUserPreferences } from '../__testUtils__';
7-
import { AppThemeOptions, CookieConsentOptions } from '../../../types';
7+
import {
8+
AppThemeOptions,
9+
CookieConsentOptions,
10+
PublicUser
11+
} from '../../../types';
812

913
jest.mock('../../../models/user');
1014

@@ -14,6 +18,7 @@ describe('user.controller > user preferences', () => {
1418
let request: any;
1519
let response: any;
1620
let next: MockNext;
21+
let mockUser: PublicUser & Record<string, any>;
1722

1823
beforeEach(() => {
1924
request = new MockRequest();
@@ -29,11 +34,11 @@ describe('user.controller > user preferences', () => {
2934

3035
describe('updatePreferences', () => {
3136
it('saves user preferences when user exists', async () => {
32-
const saveMock = jest.fn().mockResolvedValue({});
33-
const mockUser = createMockUser({
37+
mockUser = createMockUser({
3438
preferences: { ...mockUserPreferences, theme: AppThemeOptions.LIGHT },
35-
save: saveMock
39+
save: jest.fn().mockResolvedValue(null)
3640
});
41+
3742
User.findById = jest
3843
.fn()
3944
.mockReturnValue({ exec: jest.fn().mockResolvedValue(mockUser) });
@@ -51,7 +56,7 @@ describe('user.controller > user preferences', () => {
5156
theme: AppThemeOptions.DARK,
5257
notifications: true
5358
});
54-
expect(saveMock).toHaveBeenCalled();
59+
expect(mockUser.save).toHaveBeenCalled();
5560
expect(response.json).toHaveBeenCalledWith(mockUser.preferences);
5661
});
5762
it('returns 404 when no user is found', async () => {
@@ -68,11 +73,11 @@ describe('user.controller > user preferences', () => {
6873
expect(response.json).toHaveBeenCalledWith({ error: 'User not found' });
6974
});
7075
it('returns 500 if saving preferences fails', async () => {
71-
const saveMock = jest.fn().mockRejectedValue(new Error('DB error'));
72-
const mockUser = createMockUser({
76+
mockUser = createMockUser({
7377
preferences: { ...mockUserPreferences, theme: AppThemeOptions.LIGHT },
74-
save: saveMock
78+
save: jest.fn().mockRejectedValue(new Error('DB error'))
7579
});
80+
7681
User.findById = jest
7782
.fn()
7883
.mockReturnValue({ exec: jest.fn().mockResolvedValue(mockUser) });
@@ -89,10 +94,9 @@ describe('user.controller > user preferences', () => {
8994

9095
describe('updateCookieConsent', () => {
9196
it('updates cookieConsent when user exists', async () => {
92-
const saveMock = jest.fn().mockResolvedValue({});
93-
const mockUser = createMockUser({
97+
mockUser = createMockUser({
9498
cookieConsent: CookieConsentOptions.ALL,
95-
save: saveMock
99+
save: jest.fn().mockResolvedValue(null)
96100
});
97101
User.findById = jest
98102
.fn()
@@ -105,7 +109,7 @@ describe('user.controller > user preferences', () => {
105109

106110
expect(User.findById).toHaveBeenCalledWith('user1');
107111
expect(mockUser.cookieConsent).toBe(CookieConsentOptions.ESSENTIAL);
108-
expect(saveMock).toHaveBeenCalled();
112+
expect(mockUser.save).toHaveBeenCalled();
109113
expect(response.json).toHaveBeenCalledWith({
110114
...mockBaseUser,
111115
cookieConsent: CookieConsentOptions.ESSENTIAL
@@ -128,10 +132,9 @@ describe('user.controller > user preferences', () => {
128132
});
129133

130134
it('returns 500 if saving cookieConsent fails', async () => {
131-
const saveMock = jest.fn().mockRejectedValue(new Error('DB error'));
132-
const mockUser = createMockUser({
135+
mockUser = createMockUser({
133136
cookieConsent: CookieConsentOptions.ALL,
134-
save: saveMock
137+
save: jest.fn().mockRejectedValue(new Error('DB error'))
135138
});
136139

137140
User.findById = jest

server/controllers/user.controller/userPreferences.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { saveUser } from './helpers';
1212
* - Method: `PUT`
1313
* - Endpoint: `/preferences`
1414
* - Authenticated: `true`
15-
* - Controller: `UserController.updatePreferences`
15+
* - Id: `UserController.updatePreferences`
1616
*
1717
* Description:
1818
* - Update user preferences, such as AppTheme

0 commit comments

Comments
 (0)