Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5655daa

Browse files
authored
Merge branch 'develop' into pr05/migrate_userPreferences_redux_final
2 parents 0896481 + 396a1e4 commit 5655daa

File tree

9 files changed

+617
-174
lines changed

9 files changed

+617
-174
lines changed

‎server/controllers/user.controller/__tests__/apiKey.test.ts‎

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ import { last } from 'lodash';
22
import { Request as MockRequest } from 'jest-express/lib/request';
33
import { Response as MockResponse } from 'jest-express/lib/response';
44
import { NextFunction as MockNext } from 'jest-express/lib/next';
5+
import { Request, Response } from 'express';
56
import { Types } from 'mongoose';
67

78
import { User } from '../../../models/user';
89
import { createApiKey, removeApiKey } from '../apiKey';
9-
import type { ApiKeyDocument } from '../../../types';
10+
import type { ApiKeyDocument,RemoveApiKeyRequestParams } from '../../../types';
1011
import { createMockUser } from '../__testUtils__';
1112

1213
jest.mock('../../../models/user');
1314

1415
describe('user.controller > api key', () => {
15-
let request: any;
16-
let response: any;
16+
let request: MockRequest;
17+
let response: MockResponse;
1718
let next: MockNext;
1819

1920
beforeEach(() => {
@@ -34,7 +35,11 @@ describe('user.controller > api key', () => {
3435

3536
User.findById = jest.fn().mockResolvedValue(null);
3637

37-
await createApiKey(request, response, next);
38+
await createApiKey(
39+
(request as unknown) as Request,
40+
(response as unknown) as Response,
41+
next
42+
);
3843

3944
expect(response.status).toHaveBeenCalledWith(404);
4045
expect(response.json).toHaveBeenCalledWith({
@@ -49,7 +54,11 @@ describe('user.controller > api key', () => {
4954
const user = new User();
5055
User.findById = jest.fn().mockResolvedValue(user);
5156

52-
await createApiKey(request, response, next);
57+
await createApiKey(
58+
(request as unknown) as Request,
59+
(response as unknown) as Response,
60+
next
61+
);
5362

5463
expect(response.status).toHaveBeenCalledWith(400);
5564
expect(response.json).toHaveBeenCalledWith({
@@ -67,7 +76,11 @@ describe('user.controller > api key', () => {
6776
User.findById = jest.fn().mockResolvedValue(user);
6877
user.save = jest.fn();
6978

70-
await createApiKey(request, response, next);
79+
await createApiKey(
80+
(request as unknown) as Request,
81+
(response as unknown) as Response,
82+
next
83+
);
7184

7285
const lastKey = last(user.apiKeys);
7386

@@ -89,7 +102,11 @@ describe('user.controller > api key', () => {
89102

90103
User.findById = jest.fn().mockResolvedValue(null);
91104

92-
await removeApiKey(request, response, next);
105+
await removeApiKey(
106+
(request as unknown) as Request<RemoveApiKeyRequestParams>,
107+
(response as unknown) as Response,
108+
next
109+
);
93110

94111
expect(response.status).toHaveBeenCalledWith(404);
95112
expect(response.json).toHaveBeenCalledWith({
@@ -105,7 +122,11 @@ describe('user.controller > api key', () => {
105122

106123
User.findById = jest.fn().mockResolvedValue(user);
107124

108-
await removeApiKey(request, response, next);
125+
await removeApiKey(
126+
(request as unknown) as Request<RemoveApiKeyRequestParams>,
127+
(response as unknown) as Response,
128+
next
129+
);
109130

110131
expect(response.status).toHaveBeenCalledWith(404);
111132
expect(response.json).toHaveBeenCalledWith({
@@ -135,7 +156,11 @@ describe('user.controller > api key', () => {
135156

136157
User.findById = jest.fn().mockResolvedValue(user);
137158

138-
await removeApiKey(request, response, next);
159+
await removeApiKey(
160+
(request as unknown) as Request<RemoveApiKeyRequestParams>,
161+
(response as unknown) as Response,
162+
next
163+
);
139164

140165
expect(user.apiKeys.pull).toHaveBeenCalledWith({ _id: 'id1' });
141166
expect(user.save).toHaveBeenCalled();

‎server/controllers/user.controller/__tests__/authManagement/3rdPartyManagement.test.ts‎

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Request as MockRequest } from 'jest-express/lib/request';
22
import { Response as MockResponse } from 'jest-express/lib/response';
33
import { NextFunction as MockNext } from 'jest-express/lib/next';
4+
import { Request, Response } from 'express';
45
import { unlinkGithub, unlinkGoogle } from '../../authManagement';
56
import { saveUser } from '../../helpers';
67
import { createMockUser } from '../../__testUtils__';
@@ -12,8 +13,8 @@ jest.mock('../../helpers', () => ({
1213
jest.mock('../../../../utils/mail');
1314

1415
describe('user.controller > auth management > 3rd party auth', () => {
15-
let request: any;
16-
let response: any;
16+
let request: MockRequest;
17+
let response: MockResponse;
1718
let next: MockNext;
1819

1920
beforeEach(() => {
@@ -31,7 +32,11 @@ describe('user.controller > auth management > 3rd party auth', () => {
3132
describe('unlinkGithub', () => {
3233
describe('and when there is no user in the request', () => {
3334
beforeEach(async () => {
34-
await unlinkGithub(request, response, next);
35+
await unlinkGithub(
36+
(request as unknown) as Request,
37+
(response as unknown) as Response,
38+
next
39+
);
3540
});
3641
it('does not call saveUser', () => {
3742
expect(saveUser).not.toHaveBeenCalled();
@@ -52,7 +57,11 @@ describe('user.controller > auth management > 3rd party auth', () => {
5257

5358
beforeEach(async () => {
5459
request.user = user;
55-
await unlinkGithub(request, response, next);
60+
await unlinkGithub(
61+
(request as unknown) as Request,
62+
(response as unknown) as Response,
63+
next
64+
);
5665
});
5766
it('removes the users github property', () => {
5867
expect(user.github).toBeUndefined();
@@ -69,7 +78,11 @@ describe('user.controller > auth management > 3rd party auth', () => {
6978
describe('unlinkGoogle', () => {
7079
describe('and when there is no user in the request', () => {
7180
beforeEach(async () => {
72-
await unlinkGoogle(request, response, next);
81+
await unlinkGoogle(
82+
(request as unknown) as Request,
83+
(response as unknown) as Response,
84+
next
85+
);
7386
});
7487
it('does not call saveUser', () => {
7588
expect(saveUser).not.toHaveBeenCalled();
@@ -90,7 +103,11 @@ describe('user.controller > auth management > 3rd party auth', () => {
90103

91104
beforeEach(async () => {
92105
request.user = user;
93-
await unlinkGoogle(request, response, next);
106+
await unlinkGoogle(
107+
(request as unknown) as Request,
108+
(response as unknown) as Response,
109+
next
110+
);
94111
});
95112
it('removes the users google property', () => {
96113
expect(user.google).toBeUndefined();

‎server/controllers/user.controller/__tests__/authManagement/passwordManagement.test.ts‎

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Request as MockRequest } from 'jest-express/lib/request';
22
import { Response as MockResponse } from 'jest-express/lib/response';
33
import { NextFunction as MockNext } from 'jest-express/lib/next';
4+
import { Request, Response } from 'express';
45
import { User } from '../../../../models/user';
56
import {
67
resetPasswordInitiate,
@@ -11,7 +12,10 @@ import { generateToken } from '../../helpers';
1112
import { createMockUser } from '../../__testUtils__';
1213

1314
import { mailerService } from '../../../../utils/mail';
14-
import { UserDocument } from '../../../../types';
15+
import {
16+
ResetOrUpdatePasswordRequestParams,
17+
UserDocument
18+
} from '../../../../types';
1519

1620
jest.mock('../../../../models/user');
1721
jest.mock('../../../../utils/mail');
@@ -21,8 +25,8 @@ jest.mock('../../helpers', () => ({
2125
}));
2226

2327
describe('user.controller > auth management > password management', () => {
24-
let request: any;
25-
let response: any;
28+
let request: MockRequest;
29+
let response: MockResponse;
2630
let next: MockNext;
2731
let mockToken: string;
2832
let mockUser: Partial<UserDocument>;
@@ -52,7 +56,11 @@ describe('user.controller > auth management > password management', () => {
5256
it('calls User.findByEmail with the correct email', async () => {
5357
User.findByEmail = jest.fn().mockResolvedValue({});
5458
request.body = { email: 'email@gmail.com' };
55-
await resetPasswordInitiate(request, response, next);
59+
await resetPasswordInitiate(
60+
(request as unknown) as Request,
61+
(response as unknown) as Response,
62+
next
63+
);
5664

5765
expect(User.findByEmail).toHaveBeenCalledWith('email@gmail.com');
5866
});
@@ -71,7 +79,11 @@ describe('user.controller > auth management > password management', () => {
7179
request.body = { email: 'test@example.com' };
7280
request.headers.host = 'localhost:3000';
7381

74-
await resetPasswordInitiate(request, response, next);
82+
await resetPasswordInitiate(
83+
(request as unknown) as Request,
84+
(response as unknown) as Response,
85+
next
86+
);
7587
});
7688
it('sets a resetPasswordToken with an expiry of 1h to the user', () => {
7789
expect(mockUser.resetPasswordToken).toBe(mockToken);
@@ -107,12 +119,20 @@ describe('user.controller > auth management > password management', () => {
107119
request.headers.host = 'localhost:3000';
108120
});
109121
it('does not send the reset password email', async () => {
110-
await resetPasswordInitiate(request, response, next);
122+
await resetPasswordInitiate(
123+
(request as unknown) as Request,
124+
(response as unknown) as Response,
125+
next
126+
);
111127

112128
expect(mailerService.send).not.toHaveBeenCalledWith();
113129
});
114130
it('returns a success message that does not indicate if the user exists, for security purposes', async () => {
115-
await resetPasswordInitiate(request, response, next);
131+
await resetPasswordInitiate(
132+
(request as unknown) as Request,
133+
(response as unknown) as Response,
134+
next
135+
);
116136

117137
expect(response.json).toHaveBeenCalledWith({
118138
success: true,
@@ -136,7 +156,11 @@ describe('user.controller > auth management > password management', () => {
136156
request.body = { email: 'test@example.com' };
137157
request.headers.host = 'localhost:3000';
138158

139-
await resetPasswordInitiate(request, response, next);
159+
await resetPasswordInitiate(
160+
(request as unknown) as Request,
161+
(response as unknown) as Response,
162+
next
163+
);
140164

141165
expect(response.json).toHaveBeenCalledWith({
142166
success: false
@@ -155,7 +179,11 @@ describe('user.controller > auth management > password management', () => {
155179

156180
request.params = { token: 'some-token' };
157181

158-
await validateResetPasswordToken(request, response, next);
182+
await validateResetPasswordToken(
183+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
184+
(response as unknown) as Response,
185+
next
186+
);
159187

160188
expect(User.findOne).toHaveBeenCalledWith({
161189
resetPasswordToken: 'some-token',
@@ -171,7 +199,11 @@ describe('user.controller > auth management > password management', () => {
171199

172200
request.params = { token: 'invalid-token' };
173201

174-
await validateResetPasswordToken(request, response, next);
202+
await validateResetPasswordToken(
203+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
204+
(response as unknown) as Response,
205+
next
206+
);
175207
});
176208
it('returns a 401', () => {
177209
expect(response.status).toHaveBeenCalledWith(401);
@@ -198,7 +230,11 @@ describe('user.controller > auth management > password management', () => {
198230

199231
request.params = { token: 'valid-token' };
200232

201-
await validateResetPasswordToken(request, response, next);
233+
await validateResetPasswordToken(
234+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
235+
(response as unknown) as Response,
236+
next
237+
);
202238
});
203239
it('returns a success response', () => {
204240
expect(response.json).toHaveBeenCalledWith({ success: true });
@@ -217,7 +253,11 @@ describe('user.controller > auth management > password management', () => {
217253

218254
request.params = { token: 'some-token' };
219255

220-
await updatePassword(request, response, next);
256+
await updatePassword(
257+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
258+
(response as unknown) as Response,
259+
next
260+
);
221261

222262
expect(User.findOne).toHaveBeenCalledWith({
223263
resetPasswordToken: 'some-token',
@@ -233,7 +273,11 @@ describe('user.controller > auth management > password management', () => {
233273

234274
request.params = { token: 'invalid-token' };
235275

236-
await updatePassword(request, response, next);
276+
await updatePassword(
277+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
278+
(response as unknown) as Response,
279+
next
280+
);
237281
});
238282
it('returns a 401', () => {
239283
expect(response.status).toHaveBeenCalledWith(401);
@@ -272,7 +316,11 @@ describe('user.controller > auth management > password management', () => {
272316
cb(null);
273317
});
274318

275-
await updatePassword(request, response, next);
319+
await updatePassword(
320+
(request as unknown) as Request<ResetOrUpdatePasswordRequestParams>,
321+
(response as unknown) as Response,
322+
next
323+
);
276324
});
277325
it('calls user.save with the updated password and removes the reset password token', () => {
278326
expect(mockUser.password).toBe('newpassword');

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /