#unit-testing #nestjs #nestjs-config #nestjs-swagger #nestjs-passport
Вопрос:
Я новичок в этом фреймворке Nest JS. Когда я попытался внедрить модульное тестирование, он выдает ошибку отправителя узла. Я не знаю, как настроить параметры почтовой программы в модульном тестировании. Итак, я погуглил, как решить эту проблему. Я получил ответ, и я попробовал этот ответ, но он не сработал. Многие сторонние модули, реализующие модульное тестирование, выдают ошибки типа (параметры JWT_module, отправитель узлов).
Код
import { MailerService, MAILER_OPTIONS } from '@nestjs-modules/mailer';
import { ConfigService } from '@nestjs/config';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { Test, TestingModule } from '@nestjs/testing';
import { getRepositoryToken } from '@nestjs/typeorm';
import { options } from 'joi';
import { MailService } from 'src/mail/mail.service';
import PublicFile from 'src/models/files/publicFile.entity';
import { LoginTypeEntity } from 'src/models/login-type/login-type.entity';
import { UserEntity } from 'src/models/user/user.entity';
import { UserLoginTypeService } from 'src/user-login-type/user-login-type.service';
import { FilesService } from 'src/user/files.service';
import { UserModule } from 'src/user/user.module';
import { UserService } from 'src/user/user.service';
import { Repository } from 'typeorm';
import { AuthService } from './auth.service';
import { jwtConstants } from './constants';
import { JwtStrategy } from './strategies/jwt.strategy';
import { LocalStrategy } from './strategies/local.strategy';
describe('SampleService', () => {
let authService: AuthService;
let userService: UserService
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [UserService, MailService, MailerService, UserLoginTypeService,FilesService,
ConfigService,
{
name: MAILER_OPTIONS,
provide: MAILER_OPTIONS,
useValue: options,
},
{
// how you provide the injection token in a test instance
provide: getRepositoryToken(UserEntity),
// as a class value, Repository needs no generics
useClass: Repository,
},
{
provide: getRepositoryToken(LoginTypeEntity),
useValue: {}
},
{
provide: getRepositoryToken(PublicFile),
useValue: {}
}],
}).compile();
userService = module.get<UserService>(UserService);
authService = module.get<AuthService>(AuthService);
});
describe('validateUser', () => {
it('should return User based on username and password', async () => {
var usrpass = "harismith";
let findByEmail_result:any = {
"email":'harismith001@gmail.com',
"password":usrpass
}
// jest.spyOn(userService, 'findbyemail').mockImplementation(() => findByEmail_result)
const excepted_result = {
"email":'harismith001@gmail.com',
}
expect(await authService.validateUser('harismith001@gmail.com', "harismith@001") ).toEqual(excepted_result);
});
});
});
Столкнувшись с этой ошибкой
Как устранить эту проблему