Merge pull request #4621 from nhidtran/enhancement/4423

Enhancement/4423: remove the usage of res.send() for res.json()
This commit is contained in:
Patrik Oldsberg
2021-03-01 17:54:09 +01:00
committed by GitHub
11 changed files with 46 additions and 28 deletions
@@ -173,6 +173,7 @@ describe('OAuthAdapter', () => {
const mockResponse = ({
cookie: jest.fn().mockReturnThis(),
send: jest.fn().mockReturnThis(),
status: jest.fn().mockReturnThis(),
} as unknown) as express.Response;
await oauthProvider.logout(mockRequest, mockResponse);
@@ -200,12 +201,13 @@ describe('OAuthAdapter', () => {
} as unknown) as express.Request;
const mockResponse = ({
send: jest.fn().mockReturnThis(),
json: jest.fn().mockReturnThis(),
status: jest.fn().mockReturnThis(),
} as unknown) as express.Response;
await oauthProvider.refresh(mockRequest, mockResponse);
expect(mockResponse.send).toHaveBeenCalledTimes(1);
expect(mockResponse.send).toHaveBeenCalledWith({
expect(mockResponse.json).toHaveBeenCalledTimes(1);
expect(mockResponse.json).toHaveBeenCalledWith({
...mockResponseData,
backstageIdentity: {
id: mockResponseData.backstageIdentity.id,
@@ -230,6 +232,7 @@ describe('OAuthAdapter', () => {
const mockResponse = ({
send: jest.fn().mockReturnThis(),
status: jest.fn().mockReturnThis(),
} as unknown) as express.Response;
await oauthProvider.refresh(mockRequest, mockResponse);
@@ -155,7 +155,7 @@ export class OAuthAdapter implements AuthProviderRouteHandlers {
// remove refresh token cookie before logout
this.removeRefreshTokenCookie(res);
}
res.send('logout!');
res.status(200).send('logout!');
}
async refresh(req: express.Request, res: express.Response): Promise<void> {
@@ -165,9 +165,11 @@ export class OAuthAdapter implements AuthProviderRouteHandlers {
}
if (!this.handlers.refresh || this.options.disableRefresh) {
res.send(
`Refresh token not supported for provider: ${this.options.providerId}`,
);
res
.status(400)
.send(
`Refresh token not supported for provider: ${this.options.providerId}`,
);
return;
}
@@ -198,7 +200,7 @@ export class OAuthAdapter implements AuthProviderRouteHandlers {
this.setRefreshTokenCookie(res, response.providerInfo.refreshToken);
}
res.send(response);
res.status(200).json(response);
} catch (error) {
res.status(401).send(`${error.message}`);
}
@@ -77,7 +77,6 @@ describe('AwsALBAuthProvider', () => {
getEntityByName: jest.fn(),
};
const mockResponseSend = jest.fn();
const mockRequest = ({
header: jest.fn(() => {
return 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImZvbyIsImlzcyI6ImZvbyJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.T2BNS4G-6RoiFnXc8Q8TiwdWzTpNitY8jcsGM3N3-Yo';
@@ -89,8 +88,10 @@ describe('AwsALBAuthProvider', () => {
}),
} as unknown) as express.Request;
const mockResponse = ({
end: jest.fn(),
header: () => jest.fn(),
send: mockResponseSend,
json: jest.fn().mockReturnThis(),
status: jest.fn(),
} as unknown) as express.Response;
describe('should transform to type OAuthResponse', () => {
@@ -107,7 +108,7 @@ describe('AwsALBAuthProvider', () => {
await provider.refresh(mockRequest, mockResponse);
expect(mockResponseSend.mock.calls[0][0]).toEqual({
expect(mockResponse.json).toHaveBeenCalledWith({
backstageIdentity: {
id: 'foo',
idToken: '',
@@ -129,7 +130,7 @@ describe('AwsALBAuthProvider', () => {
await provider.refresh(mockRequestWithoutJwt, mockResponse);
expect(mockResponseSend.mock.calls[0][0]).toEqual(401);
expect(mockResponse.status).toHaveBeenCalledWith(401);
});
it('JWT is invalid', async () => {
@@ -145,7 +146,7 @@ describe('AwsALBAuthProvider', () => {
await provider.refresh(mockRequest, mockResponse);
expect(mockResponseSend.mock.calls[0][0]).toEqual(401);
expect(mockResponse.status).toHaveBeenCalledWith(401);
});
it('issuer is invalid', async () => {
@@ -158,8 +159,7 @@ describe('AwsALBAuthProvider', () => {
jwtMock.verify.mockReturnValueOnce({});
await provider.refresh(mockRequest, mockResponse);
expect(mockResponseSend.mock.calls[0][0]).toEqual(401);
expect(mockResponse.status).toHaveBeenCalledWith(401);
});
it('identity resolution callback rejects', async () => {
@@ -173,7 +173,8 @@ describe('AwsALBAuthProvider', () => {
await provider.refresh(mockRequest, mockResponse);
expect(mockResponseSend.mock.calls[0][0]).toEqual(401);
expect(mockResponse.status).toHaveBeenCalledWith(401);
expect(mockResponse.end).toHaveBeenCalledTimes(1);
});
});
});
@@ -78,13 +78,15 @@ export class AwsAlbAuthProvider implements AuthProviderRouteHandlers {
payload,
this.catalogClient,
);
res.send(resolvedEntity);
res.json(resolvedEntity);
} catch (e) {
this.logger.error('exception occurred during JWT processing', e);
res.send(401);
res.status(401);
res.end();
}
} else {
res.send(401);
res.status(401);
res.end();
}
}