fix: align auth success status contract

This commit is contained in:
2026-08-24 00:50:48 +03:00
parent c77b3cf782
commit 9bd3400264
3 changed files with 37 additions and 6 deletions
+21
View File
@@ -0,0 +1,21 @@
import { HTTP_CODE_METADATA } from '@nestjs/common/constants';
jest.mock('./auth.service', () => ({
AuthService: class AuthService {},
}));
import { AuthController } from './auth.controller';
describe('AuthController response statuses', () => {
it.each(['register', 'login', 'refresh'] as const)(
'%s explicitly returns HTTP 200',
(handler) => {
// Nest stores @HttpCode metadata on the unbound handler function.
const handlerTarget = Object.getOwnPropertyDescriptor(
AuthController.prototype,
handler,
)?.value as object;
expect(Reflect.getMetadata(HTTP_CODE_METADATA, handlerTarget)).toBe(200);
},
);
});
+3
View File
@@ -49,6 +49,7 @@ export class AuthController {
constructor(private readonly auth: AuthService) {}
@Post('register')
@HttpCode(200)
@ApiOkResponse({ type: AuthenticationDto })
async register(
@Body() credentials: CredentialsDto,
@@ -61,6 +62,7 @@ export class AuthController {
}
@Post('login')
@HttpCode(200)
@ApiOkResponse({ type: AuthenticationDto })
async login(
@Body() credentials: CredentialsDto,
@@ -73,6 +75,7 @@ export class AuthController {
}
@Post('refresh')
@HttpCode(200)
@ApiOkResponse({ type: AuthenticationDto })
async refresh(
@Req() request: Request,
+13 -6
View File
@@ -34,7 +34,7 @@ describe('Authentication (e2e)', () => {
const registration = await agent
.post('/api/v1/auth/register')
.send({ email: ' User@Example.com ', password: 'a secure password' })
.expect(201);
.expect(200);
const authentication = registration.body as Authentication;
expect(authentication.user.email).toBe('user@example.com');
@@ -49,7 +49,7 @@ describe('Authentication (e2e)', () => {
);
const firstCookie = registration.headers['set-cookie'][0];
await agent.post('/api/v1/auth/refresh').expect(201);
await agent.post('/api/v1/auth/refresh').expect(200);
await request(app.getHttpServer())
.post('/api/v1/auth/refresh')
.set('Cookie', firstCookie)
@@ -63,7 +63,14 @@ describe('Authentication (e2e)', () => {
await request(app.getHttpServer())
.post('/api/v1/auth/register')
.send({ email: 'user@example.com', password: 'a secure password' })
.expect(201);
.expect(200);
await request(app.getHttpServer())
.post('/api/v1/auth/login')
.send({ email: 'user@example.com', password: 'a secure password' })
.expect(200)
.expect(({ body }: { body: unknown }) =>
expect((body as Authentication).user.email).toBe('user@example.com'),
);
await request(app.getHttpServer())
.post('/api/v1/auth/register')
.send({ email: 'USER@example.com', password: 'a secure password' })
@@ -84,7 +91,7 @@ describe('Authentication (e2e)', () => {
const registration = await request(app.getHttpServer())
.post('/api/v1/auth/register')
.send({ email: 'connection@example.com', password: 'a secure password' })
.expect(201);
.expect(200);
const accessToken = (registration.body as Authentication).accessToken;
await request(app.getHttpServer())
@@ -103,7 +110,7 @@ describe('Authentication (e2e)', () => {
const registration = await request(app.getHttpServer())
.post('/api/v1/auth/register')
.send({ email: 'accounts@example.com', password: 'a secure password' })
.expect(201);
.expect(200);
const accessToken = (registration.body as Authentication).accessToken;
await request(app.getHttpServer())
@@ -122,7 +129,7 @@ describe('Authentication (e2e)', () => {
const registration = await request(app.getHttpServer())
.post('/api/v1/auth/register')
.send({ email: 'portfolio@example.com', password: 'a secure password' })
.expect(201);
.expect(200);
const accessToken = (registration.body as Authentication).accessToken;
await request(app.getHttpServer())