Part of service class:
@Injectable()
export class ErrorHelper {
constructor(private schemaValidator: SchemaValidator, private translate: TranslateService) {
}
Test:
class TranslateServiceMock {
}
describe('ErrorHelper', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
{provide: SchemaValidator, useValue: {}},
{provide: TranslateService, useClass: TranslateServiceMock},
ErrorHelper
]
});
});
it('is injected', async(inject([ErrorHelper], (errorHelper: ErrorHelper) => {
expect(errorHelper).toBeDefined();
})));
});
Error:
Failed: Can't resolve all parameters for ErrorHelper: (?, TranslateService).
I don't get it. How it can fail on DI when it doesn't even have to use real classes (I have supplied all dependencies)?
I have a few similar tests and DI works fine in them, I am really confused about this error.
If I remove ErrorHelper
and its injection, that SchemaValidator mock is is being injected to tests just fine.