feat(carousel): enhance image loading strategy and improve product display in carousel
This commit is contained in:
@@ -41,6 +41,29 @@ describe('MainCarouselComponent', () => {
|
||||
expect(images[0].classList).toContain('main-carousel__image--active');
|
||||
});
|
||||
|
||||
it('carga las imágenes secuencialmente y prioriza la imagen visible', () => {
|
||||
const images = fixture.nativeElement.querySelectorAll(
|
||||
'.main-carousel__image',
|
||||
) as NodeListOf<HTMLImageElement>;
|
||||
|
||||
expect(images[0].getAttribute('src')).toBe('/images/one.webp');
|
||||
expect(images[0].getAttribute('fetchpriority')).toBe('high');
|
||||
expect(images[1].getAttribute('src')).toBeNull();
|
||||
expect(images[2].getAttribute('src')).toBeNull();
|
||||
|
||||
images[0].dispatchEvent(new Event('load'));
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(images[1].getAttribute('src')).toBe('/images/two.webp');
|
||||
expect(images[1].getAttribute('fetchpriority')).toBe('low');
|
||||
expect(images[2].getAttribute('src')).toBeNull();
|
||||
|
||||
images[1].dispatchEvent(new Event('load'));
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(images[2].getAttribute('src')).toBe('/images/three.webp');
|
||||
});
|
||||
|
||||
it('avanza automáticamente entre las imágenes', () => {
|
||||
fixture.destroy();
|
||||
vi.useFakeTimers();
|
||||
@@ -48,10 +71,18 @@ describe('MainCarouselComponent', () => {
|
||||
try {
|
||||
fixture = TestBed.createComponent(TestHostComponent);
|
||||
fixture.detectChanges();
|
||||
const images = fixture.nativeElement.querySelectorAll(
|
||||
'.main-carousel__image',
|
||||
) as NodeListOf<HTMLImageElement>;
|
||||
|
||||
images[0].dispatchEvent(new Event('load'));
|
||||
fixture.detectChanges();
|
||||
images[1].dispatchEvent(new Event('load'));
|
||||
fixture.detectChanges();
|
||||
|
||||
vi.advanceTimersByTime(1000);
|
||||
fixture.detectChanges();
|
||||
|
||||
const images = fixture.nativeElement.querySelectorAll('.main-carousel__image');
|
||||
expect(images[1].classList).toContain('main-carousel__image--active');
|
||||
} finally {
|
||||
fixture.destroy();
|
||||
|
||||
Reference in New Issue
Block a user