diff --git a/src/app/shared/components/product-list/product-list.component.html b/src/app/shared/components/product-list/product-list.component.html index e13ec77..e4ad662 100644 --- a/src/app/shared/components/product-list/product-list.component.html +++ b/src/app/shared/components/product-list/product-list.component.html @@ -53,6 +53,8 @@ class="product-list" [class.product-list--row]="effectiveLayout() === 'row'" [class.product-list--column]="effectiveLayout() !== 'row'" + [class.product-list--adaptive]="groupLayout() !== 'simple_vertical'" + [class.product-list--simple-vertical]="groupLayout() === 'simple_vertical'" > @for (item of itemData(); track item.id; let index = $index) { { }; } - it('renders every row product at full available width', async () => { + it('renders row products in the adaptive grid', async () => { const fixture = await render('row'); const element = fixture.nativeElement as HTMLElement; expect(element.querySelector('.product-list--row')).not.toBeNull(); + expect(element.querySelector('.product-list--adaptive')).not.toBeNull(); expect(element.querySelectorAll('app-product-row-card')).toHaveLength(2); expect(element.querySelector('app-product-column-with-image')).toBeNull(); }); @@ -143,9 +144,19 @@ describe('ProductListComponent', () => { const element = fixture.nativeElement as HTMLElement; expect(element.querySelectorAll('app-product-row-card')).toHaveLength(2); + expect(element.querySelector('.product-list--adaptive')).not.toBeNull(); expect(element.querySelector('app-paginator')).toBeNull(); }); + it('keeps simple vertical groups to one full-width item per row', async () => { + const fixture = await render('column_with_image', items, 'simple_vertical'); + const element = fixture.nativeElement as HTMLElement; + + expect(element.querySelector('.product-list--simple-vertical')).not.toBeNull(); + expect(element.querySelector('.product-list--adaptive')).toBeNull(); + expect(element.querySelectorAll('app-product-column-with-image')).toHaveLength(2); + }); + it('renders carousel groups with the reusable carousel', async () => { const fixture = await render('column_with_image', items, 'carousel'); const element = fixture.nativeElement as HTMLElement;