GOOGLE ADS

lunes, 25 de abril de 2022

Cómo burlarse de Pipe al probar Componente

Actualmente estoy anulando proveedores para usar servicios simulados como este:

beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
tcb.overrideProviders(AddFieldToObjectDropdownComponent,
[
provide(ServiceA, { useClass: MockServiceA })),
provide(ServiceB, { useClass: MockServiceB }))
])
...

Quiero hacer lo mismo para las tuberías que usa el componente. Lo intenté, provide(PipeA, { useClass: MockPipeA })pero provide(PipeA, { useValue: new MockPipeA() })ambos no funcionaron.


Solución del problema

Si desea una función de utilidad reutilizable para burlarse de tuberías, puede probar esta opción:

export function mockPipe(options: Pipe): Pipe {
const metadata: Pipe = {
name: options.name
};
return <any>Pipe(metadata)(class MockPipe {});
}

Y luego llame a esta función dentro de la matriz de declaraciones de TestBed:

TestBed.configureTestingModule({
declarations: [
SomeComponent,
mockPipe({ name: 'myPipe' }),
mockPipe({ name: 'myOtherPipe' })
],
//...
}).compileComponents();

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...