Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
Auth0 Error angular durante la prueba unitaria: valor inesperado 'AuthModule' importado por el módulo 'DynamicTestModule'. Agregue una anotación @NgModule

Estamos en el proceso de migrar para usar Jest over Karma en nuestra aplicación Angular 12 y estamos recibiendo un error generalizado en nuestros archivos de especificaciones que usan Auth0:

Unexpected value 'AuthModule' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.

Parte extraña: nuestra prueba unitaria actual con Karma funciona a la perfección sin errores

Especificación de ejemplo:

 beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ AuthModule.forRoot(mockAuth0Config), HttpClientTestingModule ], declarations: [ MyComponent ] }).compileComponents(); }));

La biblioteca de Auth0 me parece buena (no es un componente o servicio, de hecho es un "Módulo" que usa la interfaz ModuleWithProviders :

ingrese la descripción de la imagen aquí

Todos los demás problemas con los que me he encontrado son cuando los componentes o servicios se importan incorrectamente, lo que no es el caso aquí.

Además, AuthModule.forRoot({...}) se usa en las imports de nuestro app.module.ts muy bien y es la base para usar Auth0 con Angular, que funciona sin problemas en producción.

El error anterior solo ocurre cuando se ejecutan nuestras pruebas existentes en Jest.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La solución a la que llegué fue omitir Auth0 por completo y crear un módulo Auth0 simulado que imita las mismas funciones y parámetros.

 @NgModule({ imports: [], exports: [] }) export class AuthModuleMock { /** * Mock forRoot method * @param config The optional configuration for the SDK. */ static forRoot(config ?: AuthConfig) : ModuleWithProviders<AuthModule> { return { ngModule: AuthModule, providers: [ AuthService, AuthGuard, { provide: AuthConfigService, useValue: config }, { provide : Auth0ClientService, useFactory: () : any => { return; }, deps : [ AuthClientConfig ] } ] }; } }

Estos son ellos importados en los archivos .spec en lugar del AuthModule proporcionado por Auth0

 beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ AuthModuleMock.forRoot(mockAuth0Config), HttpClientTestingModule ], declarations: [ MyComponent ] }).compileComponents(); }));
over 4 years ago · Santiago Trujillo Report

0

Use preset: jest-preset-angular en jest.config o vuelva a generar esas bibliotecas/módulos compartidos con la nueva configuración y mueva los códigos fuente antiguos a la nueva biblioteca generada.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!