es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede encontrar el módulo ‘swiper_angular’ en la prueba unitaria (jest) después de actualizar Swiper 6 a 7.

Me estoy encontrando con un problema en mis pruebas unitarias después de actualizar Swiper de 6 a 7. Estoy utilizando Angular 12 y Swiper 7.3.1. Antes de actualizarlo, las pruebas unitarias funcionaban bien (versión Swiper 6.5.9).

Estoy utilizando el módulo SwiperModule en mis pruebas de la siguiente manera:

import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import { of } from 'rxjs';
import { SwiperComponent, SwiperModule } from 'swiper/angular';

import { TeaserWrapperContainerComponent } from './teaser-wrapper-container.component';
import { InterfaceState } from '@migrosonline/shared-deps-all/core/interface/interface.store';


describe('TeaserWrapperContainerComponent', () => {
    let component: TeaserWrapperContainerComponent;
    let fixture: ComponentFixture<teaserwrappercontainercomponent>;

    const mockedSwiperComponent = {
        swiperRef: {
            slideNext: jest.fn(),
            slidePrev: jest.fn(),
            destroy: jest.fn(),
            update: jest.fn()
        }
    } as unknown as SwiperComponent;

    beforeEach(
        waitForAsync(() => {
            mockedInterfaceService.prototype.select = jest.fn();

            TestBed.configureTestingModule({
                declarations: [TeaserWrapperContainerComponent],
                imports: [SwiperModule],
                providers: [{ provide: InterfaceService, useClass: mockedInterfaceService }],
                schemas: [CUSTOM_ELEMENTS_SCHEMA]
            }).compileComponents();
        })
    );

    beforeEach(() => {
        fixture = TestBed.createComponent(TeaserWrapperContainerComponent);
        component = fixture.componentInstance;
        component.teaserGroupSliderRef = mockedSwiperComponent;
    });

    it('should create', () => {
        fixture.detectChanges();

        expect(component).toBeTruthy();
    });

});

Y el error que obtengo es el siguiente:

Cannot find module 'swiper_angular' from 'src/lib/shared/teaser/teaser-wrapper-container/teaser-wrapper-container.component.spec.ts'

      3 | import { of } from 'rxjs';
    > 4 | import { SwiperComponent, SwiperModule } from 'swiper/angular';

Agradecería cualquier idea/comentario/sugerencia.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error es causado por la incapacidad del archivo de prueba para encontrar el módulo swiper/angular después de la actualización de la versión 6 a la versión 7 de Swiper. Esto podría deberse a cambios en la estructura del archivo de Swiper o convenciones de nomenclatura.

    Para solucionar esto, podrías intentar los siguientes pasos:

    1. Verifica que hayas instalado la última versión de Swiper.
    2. Verifica que la ruta de importación para el SwiperModule sea correcta en tu archivo de prueba. Debería ser import { SwiperComponent, SwiperModule } from 'swiper/angular';

    3. Asegúrate de que el módulo swiper esté incluido en tu archivo package.json, y que su versión coincida con la versión que estás usando.

    4. Considera revisar la documentación de Swiper para conocer los cambios y actualizaciones específicos de la versión en las declaraciones de importación.

    5. Si es necesario, podrías intentar desinstalar y luego reinstalar el paquete de swiper, y luego volver a ejecutar tus pruebas.

    Si el problema persiste, también podrías intentar buscar ayuda en el foro de la comunidad de Swiper o contactar a su equipo de soporte para obtener ayuda adicional.

Comments are closed.