From 9ba2041f7b83dcd8621d1de7b90aa8e02a922d78 Mon Sep 17 00:00:00 2001 From: ncoronel Date: Tue, 18 Aug 2026 14:18:20 -0300 Subject: [PATCH] feat(hero-banner): update image handling to support responsive images and refactor template feat(cart): enhance editing logic and add tests for editable state feat(tenant): modify HeroConfig to include responsive image type --- src/app/core/services/tenant.interface.ts | 7 ++- .../store-home-page.component.spec.ts | 3 +- .../components/cart/cart.component.html | 4 +- .../components/cart/cart.component.spec.ts | 48 +++++++++++++++++++ .../shared/components/cart/cart.component.ts | 7 ++- .../hero-banner/hero-banner.component.html | 17 ++++--- .../hero-banner/hero-banner.component.scss | 9 ++++ .../hero-banner/hero-banner.component.spec.ts | 22 +++++++++ .../hero-banner/hero-banner.component.ts | 12 +++++ 9 files changed, 115 insertions(+), 14 deletions(-) diff --git a/src/app/core/services/tenant.interface.ts b/src/app/core/services/tenant.interface.ts index 3874649..34c6f33 100644 --- a/src/app/core/services/tenant.interface.ts +++ b/src/app/core/services/tenant.interface.ts @@ -20,13 +20,18 @@ export interface WebsiteType { } export interface HeroConfig { - background_image_id?: string | null; + background_image_id?: string | ResponsiveImage | null; title_html?: string | null; description_html?: string | null; button_text?: string | null; button_href?: string | null; } +export interface ResponsiveImage { + desktop: string; + mobile: string; +} + export interface AdditionalInfoConfig { description?: string | null; } diff --git a/src/app/features/store/pages/store-home-page/store-home-page.component.spec.ts b/src/app/features/store/pages/store-home-page/store-home-page.component.spec.ts index 4f1cad2..70ddd41 100644 --- a/src/app/features/store/pages/store-home-page/store-home-page.component.spec.ts +++ b/src/app/features/store/pages/store-home-page/store-home-page.component.spec.ts @@ -254,9 +254,10 @@ describe('StoreHomePageComponent', () => { const hero = (fixture.nativeElement as HTMLElement).querySelector( 'app-hero-banner .hero-banner', ) as HTMLElement; + const heroImage = hero.querySelector('img'); expect(hero).not.toBeNull(); - expect(hero.style.backgroundImage).toContain('https://example.com/hero.jpg'); + expect(heroImage?.getAttribute('src')).toBe('https://example.com/hero.jpg'); expect(hero.textContent).toContain('Fiesta Fútbol Infantil'); expect(hero.textContent).toContain('Viví una jornada inolvidable de fútbol infantil.'); expect(hero.textContent).toContain('Rosario, Santa Fe'); diff --git a/src/app/shared/components/cart/cart.component.html b/src/app/shared/components/cart/cart.component.html index 469dd86..6249c7a 100644 --- a/src/app/shared/components/cart/cart.component.html +++ b/src/app/shared/components/cart/cart.component.html @@ -6,7 +6,7 @@

{{ title() }}

- @if (!readonly() && allowEditing() && items().length > 0) { + @if (!readonly() && editable() && allowEditing() && items().length > 0) {