feat(core): improve NoAnnotationError message
Closes #4866 Closes #5927
This commit is contained in:
parent
e67ebb7f70
commit
197cf09689
|
@ -222,8 +222,10 @@ export class NoAnnotationError extends BaseException {
|
|||
signature.push(parameter.map(stringify).join(' '));
|
||||
}
|
||||
}
|
||||
return "Cannot resolve all parameters for " + stringify(typeOrFunc) + "(" +
|
||||
signature.join(', ') + "). " + 'Make sure they all have valid type or annotations.';
|
||||
return "Cannot resolve all parameters for '" + stringify(typeOrFunc) + "'(" +
|
||||
signature.join(', ') + "). " +
|
||||
"Make sure that all the parameters are decorated with Inject or have valid type annotations and that '" +
|
||||
stringify(typeOrFunc) + "' is decorated with Injectable.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -88,6 +88,8 @@ class NoAnnotations {
|
|||
constructor(secretDependency) {}
|
||||
}
|
||||
|
||||
function factoryFn(a) {}
|
||||
|
||||
export function main() {
|
||||
var dynamicProviders = [
|
||||
provide('provider0', {useValue: 1}),
|
||||
|
@ -142,10 +144,20 @@ export function main() {
|
|||
expect(car.engine).toBeAnInstanceOf(TurboEngine);
|
||||
});
|
||||
|
||||
it('should throw when no type and not @Inject', () => {
|
||||
it('should throw when no type and not @Inject (class case)', () => {
|
||||
expect(() => createInjector([NoAnnotations]))
|
||||
.toThrowError('Cannot resolve all parameters for NoAnnotations(?). ' +
|
||||
'Make sure they all have valid type or annotations.');
|
||||
.toThrowError(
|
||||
"Cannot resolve all parameters for 'NoAnnotations'(?). " +
|
||||
'Make sure that all the parameters are decorated with Inject or have valid type annotations ' +
|
||||
"and that 'NoAnnotations' is decorated with Injectable.");
|
||||
});
|
||||
|
||||
it('should throw when no type and not @Inject (factory case)', () => {
|
||||
expect(() => createInjector([provide("someToken", {useFactory: factoryFn})]))
|
||||
.toThrowError(
|
||||
"Cannot resolve all parameters for 'factoryFn'(?). " +
|
||||
'Make sure that all the parameters are decorated with Inject or have valid type annotations ' +
|
||||
"and that 'factoryFn' is decorated with Injectable.");
|
||||
});
|
||||
|
||||
it('should cache instances', () => {
|
||||
|
|
Loading…
Reference in New Issue