No puedo resolver una biblioteca externa a través de node_modules en una prueba en angular 2. ¿Me estoy perdiendo algo?
Tengo un servicio que importa una biblioteca de node_modules:
import {Injectable} from '@angular/core'; import Lib from 'lib'; @Injectable() export class Service { stuff() { return Lib.doStuff(); } }Cuando ejecuto la aplicación, se define Lib y puedo usar la biblioteca.
Cuando ejecuto una prueba en esa clase, la librería no está definida.
describe('tests', () => { let service: Service; beforeEach(() => service = new Service()); it('test', () => { service.stuff(); }); });La prueba en sí funciona. Si pruebo un valor de retorno codificado, funciona, por lo que las configuraciones generales parecen estar bien.
Uso un esqueleto de proyecto creado con angular-cli. Algunas versiones:
@angular/cli: 1.0.0 node: 6.10.2 os: linux x64 @angular/common: 4.0.2 @angular/compiler: 4.0.2 @angular/core: 4.0.2 @angular/forms: 4.0.2 @angular/http: 4.0.2 @angular/platform-browser: 4.0.2 @angular/platform-browser-dynamic: 4.0.2 @angular/router: 4.0.2 @angular/cli: 1.0.0 @angular/compiler-cli: 4.0.2Soy bastante nuevo en angular, así que no tengo idea de lo que sucede detrás de las cortinas. Espero que todas las importaciones se resuelvan.
¿No es ese el caso?
solo puede usar import Lib from 'lib' si su lib export default el símbolo Lib, si no, necesita usar uno de los formularios como:
import * as Lib from 'lib'o
import {Lib} from 'lib'Obtenga más información sobre la importación en Mozilla Developer Network