feat: refactor services injection in search and store home components, add direct purchase event tests

This commit is contained in:
2026-07-27 16:26:03 -03:00
parent f063bac527
commit 4f1405f6c1
6 changed files with 61 additions and 22 deletions

View File

@@ -3,6 +3,7 @@ import {
ChangeDetectionStrategy,
Component,
DestroyRef,
Injector,
computed,
inject,
signal,
@@ -28,7 +29,6 @@ import {
ProductListCartEvent,
ProductListBuyEvent,
ProductListComponent,
ProductListItem,
} from '../../../../shared/components/product-list/product-list.component';
interface SearchRouteState {
@@ -46,9 +46,8 @@ interface SearchRouteState {
export class SearchPageComponent {
private readonly minSearchLength = 3;
private readonly cartService = inject(CartService);
private readonly authService = inject(AuthService);
private readonly catalogService = inject(CatalogService);
private readonly checkoutService = inject(CheckoutService);
private readonly injector = inject(Injector);
private readonly destroyRef = inject(DestroyRef);
private readonly route = inject(ActivatedRoute);
private readonly router = inject(Router);
@@ -147,7 +146,7 @@ export class SearchPageComponent {
return;
}
if (!this.authService.user()) {
if (!this.injector.get(AuthService).user()) {
await this.router.navigate(['/login'], {
queryParams: { returnUrl: `/producto/${event.product.id}` },
});
@@ -162,7 +161,7 @@ export class SearchPageComponent {
this.creatingDirectPurchase.set(true);
try {
const purchase = await this.checkoutService.startCheckout(tenant.codigo, {
const purchase = await this.injector.get(CheckoutService).startCheckout(tenant.codigo, {
direct_item: {
catalog_item_id: event.product.id,
variant_id: event.variant ?? null,

View File

@@ -1,6 +1,7 @@
import {
ChangeDetectionStrategy,
Component,
Injector,
OnDestroy,
OnInit,
computed,
@@ -22,7 +23,6 @@ import {
ProductListComponent,
ProductListCartEvent,
ProductListBuyEvent,
ProductListItem,
} from '../../../../shared/components/product-list/product-list.component';
import { HeroBannerComponent } from '../../../../shared/components/hero-banner/hero-banner.component';
import { MainCarouselComponent } from '../../../../shared/components/main-carousel/main-carousel.component';
@@ -46,9 +46,8 @@ import {
})
export class StoreHomePageComponent implements OnInit, OnDestroy {
private readonly cartService = inject(CartService);
private readonly authService = inject(AuthService);
private readonly catalogService = inject(CatalogService);
private readonly checkoutService = inject(CheckoutService);
private readonly injector = inject(Injector);
private readonly route = inject(ActivatedRoute);
private readonly router = inject(Router);
private readonly tenantService = inject(TenantService);
@@ -70,7 +69,8 @@ export class StoreHomePageComponent implements OnInit, OnDestroy {
ngOnInit(): void {
const resolvedData = this.route.snapshot.data['catalogData'] as
StoreHomeCatalogResolvedData | undefined;
| StoreHomeCatalogResolvedData
| undefined;
if (resolvedData) {
this.applyResolvedData(resolvedData);
@@ -134,7 +134,7 @@ export class StoreHomePageComponent implements OnInit, OnDestroy {
return;
}
if (!this.authService.user()) {
if (!this.injector.get(AuthService).user()) {
await this.router.navigate(['/login'], {
queryParams: { returnUrl: `/producto/${event.product.id}` },
});
@@ -149,7 +149,7 @@ export class StoreHomePageComponent implements OnInit, OnDestroy {
this.creatingDirectPurchase.set(true);
try {
const purchase = await this.checkoutService.startCheckout(tenant.codigo, {
const purchase = await this.injector.get(CheckoutService).startCheckout(tenant.codigo, {
direct_item: {
catalog_item_id: event.product.id,
variant_id: event.variant ?? null,