@nestjs-mod/testing
Modules and utilities for writing application tests
Installation
npm i --save-dev @nestjs/testing @nestjs-mod/testing
Modules
Link | Category | Description |
---|---|---|
DefaultTestNestApplicationCreate | system | Default test NestJS application creator. |
DefaultTestNestApplicationInitializer | system | Default test NestJS application initializer. |
Modules descriptions
DefaultTestNestApplicationCreate
Default test NestJS application creator.
Use in NestJS-mod
Use without options.
import { bootstrapNestApplication } from '@nestjs-mod/common';
import { DefaultTestNestApplicationCreate } from '@nestjs-mod/testing';
bootstrapNestApplication({
modules: {
system: [DefaultTestNestApplicationCreate.forRoot()],
},
});
Example of use with override provider.
import { bootstrapNestApplication } from '@nestjs-mod/common';
import { DefaultTestNestApplicationCreate } from '@nestjs-mod/testing';
import { Injectable } from '@nestjs/common';
@Injectable()
export class CatsService {
findAll() {
return ['cats'];
}
}
const fakeCatsService = { findAll: () => ['test'] };
bootstrapNestApplication({
modules: {
system: [
DefaultTestNestApplicationCreate.forRoot({
staticConfiguration: {
wrapTestingModuleBuilder: (testingModuleBuilder) =>
testingModuleBuilder.overrideProvider(CatsService).useValue(fakeCatsService),
},
}),
],
},
});
Static configuration
Key | Description | Constraints | Default | Value |
---|---|---|---|---|
wrapTestingModuleBuilder | Method for additional actions with TestingModuleBuilder | optional | - | - |
defaultLogger | Default logger for application | optional | - | - |
DefaultTestNestApplicationInitializer
Default test NestJS application initializer.
Use in NestJS-mod
Use without options.
import { bootstrapNestApplication } from '@nestjs-mod/common';
import { DefaultTestNestApplicationCreate, DefaultTestNestApplicationInitializer } from '@nestjs-mod/testing';
bootstrapNestApplication({
modules: {
system: [DefaultTestNestApplicationCreate.forRoot(), DefaultTestNestApplicationInitializer.forRoot()],
},
});
An example of getting a provider after running a test application.
import { bootstrapNestApplication } from '@nestjs-mod/common';
import { DefaultTestNestApplicationCreate, DefaultTestNestApplicationInitializer } from '@nestjs-mod/testing';
import { Injectable } from '@nestjs/common';
@Injectable()
export class CatsService {
findAll() {
return ['cats'];
}
}
bootstrapNestApplication({
modules: {
system: [
DefaultTestNestApplicationCreate.forRoot(),
DefaultTestNestApplicationInitializer.forRoot({
staticConfiguration: {
postInit: async ({ app }) => {
if (app) {
const catsService = app.get(CatsService);
console.log(catsService.findAll());
}
},
},
}),
],
},
});
Static configuration
Key | Description | Constraints | Default | Value |
---|---|---|---|---|
preInit | Method for additional actions before init | optional | - | - |
postInit | Method for additional actions after init | optional | - | - |
defaultLogger | Default logger for test application | optional | - | - |
Links
- https://github.com/nestjs-mod/nestjs-mod - A collection of utilities for unifying NestJS applications and modules
- https://github.com/nestjs-mod/nestjs-mod-contrib - Contrib repository for the NestJS-mod
- https://github.com/nestjs-mod/nestjs-mod-example - Example application built with @nestjs-mod/schematics
- https://github.com/nestjs-mod/nestjs-mod/blob/master/apps/example-basic/INFRASTRUCTURE.MD - A simple example of infrastructure documentation.
- https://github.com/nestjs-mod/nestjs-mod-contrib/blob/master/apps/example-prisma/INFRASTRUCTURE.MD - An extended example of infrastructure documentation with a docker-compose file and a data base.
- https://dev.to/endykaufman/collection-of-nestjs-mod-utilities-for-unifying-applications-and-modules-on-nestjs-5256 - Article about the project NestJS-mod
- https://habr.com/ru/articles/788916 - Коллекция утилит NestJS-mod для унификации приложений и модулей на NestJS
License
MIT