Estoy tratando de probar un método de Efectos en Angular (NGRX) usando Jest. El archivo importa la biblioteca BigDecimal. Cuando ejecuto las pruebas, obtengo Cannot read property 'getPrettyValue' of undefined] , undefined se referiría al uso de BigDecimal. He intentado varias formas de importar BigDecimal en el archivo, pero aún no estoy definido, incluso cuando importo la biblioteca en el archivo de especificaciones. El uso de BigDecimal se mantiene en el archivo de servicio y solo el método que estoy probando hace referencia a él. ¿Podría haber algún problema con mi banco de pruebas o necesito definir la lib en un archivo de configuración en alguna parte? Aquí está mi configuración de banco de pruebas:
beforeEach(() => { TestBed.configureTestingModule({ imports: [NxModule.forRoot(), HttpClientModule], providers: [ ControllerEffects, DataPersistence, provideMockActions(() => actions), provideMockStore(), { provide: ControllerService, useValue: { getResponse: jest.fn() } } ], declarations: [] }); service = TestBed.inject(ControllerService); effects = TestBed.inject(ControllerEffects); });Y la prueba que está fallando debido a este error:
it('should dispatch loadSuccess', () => { expect(service).toBeTruthy(); actions = hot('-a-|', { a: ControllerActions.loadAll({ IdFilter: ['id'] }) }); const outcome = controllerActions.loadControllerSuccess({ controller: pos }); const response = cold('-a|', { a: { data: pos, status: { code: 'SUCCESS' } } }); const expected = cold('--b|', { b: outcome }); service.getResponse = jest.fn(() => response); expect(effects.loadAll$).toBeObservable(expected); });la referencia a BigDecimal en el archivo de efectos devuelve el valor formateado:
import BigDecimal from 'js-big-decimal'; method(input): string { return { valueString: BigDecimal.getPrettyValue(input.valueString, 3, ',') } }Cualquier ayuda es muy apreciada, ya he pasado mucho tiempo en esto.