From c662c27fc7fdf87fa6120c0798e2dee50237358a Mon Sep 17 00:00:00 2001 From: ncoronel Date: Wed, 22 Jul 2026 11:58:31 -0300 Subject: [PATCH] feat(auth): integrate TenantService to include tenant code in registration payload --- src/app/core/services/auth/auth.service.spec.ts | 6 ++++++ src/app/core/services/auth/auth.service.ts | 9 ++++++++- .../register-page/register-page.component.spec.ts | 12 ++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/app/core/services/auth/auth.service.spec.ts b/src/app/core/services/auth/auth.service.spec.ts index 325551a..3fa671f 100644 --- a/src/app/core/services/auth/auth.service.spec.ts +++ b/src/app/core/services/auth/auth.service.spec.ts @@ -6,6 +6,7 @@ import { HttpTestingController, provideHttpClientTesting } from '@angular/common import { environment } from '../../../../environments/environment'; import { AuthService } from './auth.service'; import { CookieService } from '../cookie/cookie.service'; +import { TenantService } from '../tenant.service'; describe('AuthService', () => { let cookieStore: Record = {}; @@ -132,6 +133,10 @@ describe('AuthService', () => { provideHttpClientTesting(), AuthService, { provide: CookieService, useValue: createCookieServiceStub() }, + { + provide: TenantService, + useValue: { getTenant: () => ({ codigo: 'tenant-test' }) } + }, TransferState ] }); @@ -152,6 +157,7 @@ describe('AuthService', () => { const request = httpController.expectOne(`${environment.url}register`); expect(request.request.method).toBe('POST'); + expect(request.request.body.tenant_codigo).toBe('tenant-test'); request.flush({ message: 'Usuario registrado correctamente.', data: { diff --git a/src/app/core/services/auth/auth.service.ts b/src/app/core/services/auth/auth.service.ts index ce00c09..c68ce5d 100644 --- a/src/app/core/services/auth/auth.service.ts +++ b/src/app/core/services/auth/auth.service.ts @@ -13,6 +13,7 @@ import { UpdateProfilePayload } from './auth.interfaces'; import { CookieService } from '../cookie/cookie.service'; +import { TenantService } from '../tenant.service'; const AUTH_TOKEN_COOKIE_KEY = 'shopit.auth.token'; const AUTH_USER_SSR_STATE_KEY = makeStateKey('shopit.auth.user'); @@ -25,6 +26,7 @@ export class AuthService { private readonly platformId = inject(PLATFORM_ID); private readonly cookieService = inject(CookieService); private readonly transferState = inject(TransferState); + private readonly tenantService = inject(TenantService); private readonly userState = signal(null); private readonly tokenState = signal(null); @@ -41,7 +43,12 @@ export class AuthService { } register(payload: RegisterPayload): Observable { - return this.http.post(`${environment.url}register`, payload); + const tenantCode = this.tenantService.getTenant()?.codigo; + + return this.http.post(`${environment.url}register`, { + ...payload, + ...(tenantCode ? { tenant_codigo: tenantCode } : {}) + }); } updateProfile(payload: UpdateProfilePayload): Observable { diff --git a/src/app/features/store/pages/register-page/register-page.component.spec.ts b/src/app/features/store/pages/register-page/register-page.component.spec.ts index 232b788..c190fb7 100644 --- a/src/app/features/store/pages/register-page/register-page.component.spec.ts +++ b/src/app/features/store/pages/register-page/register-page.component.spec.ts @@ -50,8 +50,8 @@ describe('RegisterPageComponent', () => { component.form.setValue({ nombre_apellido: 'Ada Lovelace', email: 'ada@example.com', - password: 'secret123', - password_confirmation: 'secret123' + password: 'Secret!123', + password_confirmation: 'Secret!123' }); component.onSubmit(); @@ -59,8 +59,8 @@ describe('RegisterPageComponent', () => { expect(authService.register).toHaveBeenCalledWith({ nombre_apellido: 'Ada Lovelace', email: 'ada@example.com', - password: 'secret123', - password_confirmation: 'secret123' + password: 'Secret!123', + password_confirmation: 'Secret!123' }); expect(modalService.openSimple).toHaveBeenCalledWith({ content: 'Tu cuenta fue creada correctamente', @@ -178,8 +178,8 @@ describe('RegisterPageComponent', () => { component.form.setValue({ nombre_apellido: 'Ada Lovelace', email: 'ada@example.com', - password: 'secret123', - password_confirmation: 'secret123' + password: 'Secret!123', + password_confirmation: 'Secret!123' }); component.onSubmit();