'Custom Provider: Object literal may only specify known properties, and 'provide' does not exist in type
I'm trying to replace my logger provider in a unit test file with a stubbed provider so that I don't get logs during unit tests from the tested module. I'm getting the following error:
error TS2322: Type '{ provide: string; useValue: {}; }' is not assignable to type 'Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference<any>'.
Object literal may only specify known properties, and 'provide' does not exist in type 'Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference<any>'.
21 provide: WINSTON_MODULE_PROVIDER,
My Code:
beforeEach(async () => {
const moduleRef = await Test.createTestingModule({
providers: [MyService],
imports: [
{
provide: WINSTON_MODULE_PROVIDER, // Error on this line
useValue: {},
},
],
}).compile();
MyService = moduleRef.get<MyService>(MyService);
});
And here's the constructor of the module i'm testing
constructor(
@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger,
) {}
Solution 1:[1]
Custom providers go in the providers
array, not the imports
. Providers never go in the imports
array.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Jay McDoniel |