mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { Test } from '@nestjs/testing';
|
|
import { expect } from 'chai';
|
|
import { MultipleProvidersModule } from '../src/multiple-providers/multiple-providers.module';
|
|
|
|
describe('Multiple providers under the same token ("each" feature)', () => {
|
|
describe('get()', () => {
|
|
it('should return an array of providers', async () => {
|
|
const builder = Test.createTestingModule({
|
|
imports: [MultipleProvidersModule],
|
|
});
|
|
const testingModule = await builder.compile();
|
|
|
|
const multiProviderInstances = testingModule.get<string>(
|
|
'MULTI_PROVIDER',
|
|
{
|
|
each: true,
|
|
},
|
|
);
|
|
|
|
// @ts-expect-error: make sure "multiProviderInstances" is string[] not string
|
|
multiProviderInstances.charAt;
|
|
|
|
expect(multiProviderInstances).to.be.eql(['A', 'B', 'C']);
|
|
});
|
|
});
|
|
describe('resolve()', () => {
|
|
it('should return an array of request-scoped providers', async () => {
|
|
const builder = Test.createTestingModule({
|
|
imports: [MultipleProvidersModule],
|
|
});
|
|
const testingModule = await builder.compile();
|
|
|
|
const multiProviderInstances = await testingModule.resolve<string>(
|
|
'REQ_SCOPED_MULTI_PROVIDER',
|
|
undefined,
|
|
{
|
|
each: true,
|
|
},
|
|
);
|
|
|
|
// @ts-expect-error: make sure "multiProviderInstances" is string[] not string
|
|
multiProviderInstances.charAt;
|
|
|
|
expect(multiProviderInstances).to.be.eql(['A', 'B', 'C']);
|
|
});
|
|
|
|
it('should return an array of default-scoped providers', async () => {
|
|
const builder = Test.createTestingModule({
|
|
imports: [MultipleProvidersModule],
|
|
});
|
|
const testingModule = await builder.compile();
|
|
|
|
const multiProviderInstances = await testingModule.resolve<string>(
|
|
'MULTI_PROVIDER',
|
|
undefined,
|
|
{
|
|
each: true,
|
|
},
|
|
);
|
|
|
|
// @ts-expect-error: make sure "multiProviderInstances" is string[] not string
|
|
multiProviderInstances.charAt;
|
|
|
|
expect(multiProviderInstances).to.be.eql(['A', 'B', 'C']);
|
|
});
|
|
});
|
|
});
|