Как настроить параметры почтовой программы в модульном тестировании nest js

#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);
    });
  });

});

 

Столкнувшись с этой ошибкой

введите описание изображения здесь

Как устранить эту проблему