Fix/validate access token user not found (#8484)

# Description
Closes #7244 

See details about implementation:
https://github.com/twentyhq/twenty/issues/7244#issuecomment-2473845859
and
https://github.com/twentyhq/twenty/issues/7244#issuecomment-2473905514

# Changes
- return a `USER_NOT_FOUND` error instead of `INVALID_INPUT` error
- tweak unit tests to correctly test `AuthExceptionCode`, as it wasn't
properly tested; it was actually a _false positive_. This is because
[`toThrow`](https://jestjs.io/docs/expect#tothrowerror) from jest only
checks the `message`, and not any other method / attributes from the
`Error`. It's a know behaviour and not considered a bug, see
https://github.com/jestjs/jest/issues/13232#issuecomment-1252392845
This commit is contained in:
Nicolas Rouanne
2024-11-13 18:50:30 +01:00
committed by GitHub
parent 898006f89d
commit cde96cf526
2 changed files with 7 additions and 2 deletions

View File

@@ -151,8 +151,13 @@ describe('JwtAuthStrategy', () => {
);
await expect(strategy.validate(payload as JwtPayload)).rejects.toThrow(
new AuthException('User not found', AuthExceptionCode.INVALID_INPUT),
new AuthException('User not found', expect.any(String)),
);
try {
await strategy.validate(payload as JwtPayload);
} catch (e) {
expect(e.code).toBe(AuthExceptionCode.USER_NOT_FOUND);
}
});
it('should be truthy if type is ACCESS, no jti, and user exist', async () => {

View File

@@ -113,7 +113,7 @@ export class JwtAuthStrategy extends PassportStrategy(Strategy, 'jwt') {
if (!user) {
throw new AuthException(
'User not found',
AuthExceptionCode.INVALID_INPUT,
AuthExceptionCode.USER_NOT_FOUND,
);
}