Size: a a a

NestJS — русскоязычное сообщество

2021 July 06

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
выдерни сервис из диай, например через это, короче в эту сторону можно копнуть
https://gist.github.com/EndyKaufman/2aec900716e722f1b6c6e8007be01a36
источник

x

xzdwq in NestJS — русскоязычное сообщество
это в целом понятно, вопрос именно про процесс создания записи (3-й скрин). Не совсем понимаю как разом вставить запись через .create(). Или нужно сначала отдельно создавать запись в таблице с документом, потом брать id этой записи и создавать строку в другой таблице с FK на этот id?
источник

x

xzdwq in NestJS — русскоязычное сообщество
источник

x

xzdwq in NestJS — русскоязычное сообщество
источник

x

xzdwq in NestJS — русскоязычное сообщество
источник

NC

Nikita Chaykin in NestJS — русскоязычное сообщество
У меня такой же трабл был с тайпОрм, я перебилдил папочку и всё было норм, крч получилось так, что у  меня в dist папке модель не обновлялась
источник

DY

Dmytro Yamborko in NestJS — русскоязычное сообщество
сейчас попробую удалить файлы самих entity когда-то это помогало в каких-то непонятных ситуациях
источник

ОЛ

Олег Линьков... in NestJS — русскоязычное сообщество
Ну так стартуйте транзакцию и внутри неё сколько угодно запросов
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
Есть такой модуль (тестирую я не его, но он ехпортит нужный для тестируемего сервиса свой сервис, который и надо замокать):

@Global()
@Global()
@Module({
 providers: [ConfigService],
 controllers: [],
 exports: [ConfigService],
})
export class ConfigModule {}

В ConfigService есть такая ерунда, которая всё ломает:

Joi.assert(new ConfigService(), CONFIG_SCHEMA, 'Invalid configuration', { stripUnknown: true });

// Output config information
const CFG_SERVICE = new ConfigService();
console.log(`-= Config information =-
 passwordTokenLifetimeSecs .............: ${CFG_SERVICE.passwordTokenLifetimeSecs}

А в тестируемом сервисе просто в конструктор передаётся ConfigService (инжектится), но в провайдерах/импортах не прописывается уже.

И изза аннотации глобал над модулем где бы я в дальнейшем не пробовал импортить сервис, он берется уже готовый из корня и не подменяется.

А схема Joi выдаёт ошибку валидации и валит всё, даже не дойдя до тестов. Валидация не проходит, т.к. нужно передавать переменные окружения, но веть я пишу юнит а не Е2Е, т.е. тестируемый сервис должен быть изолирован... Вобщем фигня какая-то, второй день бьюсь и копаю 🤯 Никогда на тестах так не зависал ещё 🙃
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
бум думать.

Я тут подумал, надо попробовать потестить не нестовым модулем для тестов, а по-старинке, передавая в конструктор моковый объект
источник

T

Talgatio in NestJS — русскоязычное сообщество
Привет! Помогите разобраться
на 49 строке в цикле for in тайпскрипт плюется на languageId он же key в объекте value. value пробрасывается с контроллера в дто описа как Record<number, string> на 47 строке все ок
источник

T

Talgatio in NestJS — русскоязычное сообщество
сборка падает с ексепшеном
error TS2769: No overload matches this call.
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
Блин, даже это не помогло...
источник

T

Talgatio in NestJS — русскоязычное сообщество
разобрался
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
А Jest  поднимает основной файл приложения (app.ts)? У нас там еще используется злосчастный глобальный модуль и его сервис... Но в тестах я к нему (корневому файлу) не обращаюсь
источник

YK

Yurii Kovalenko in NestJS — русскоязычное сообщество
в модуле который тестишь, мокай провайдер и ничего больше, нет разницы - родной провайдер или от других модулей, для юнит теста все подсовываешь в тестовый модуль
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
так не получалось, иначе бы и вопрос не возник. Изначально пробовал так:

const module: TestingModule = await Test.createTestingModule({
     providers: [
       
       {
         provide: ConfigService,
         useValue: {},
       },

Тут ConfigService - не тот, что нест предлагает, а свой особенный (с ним и беда, собственно).

Но он всё равно вытягивал откуда-то валидацию Joi, которая прописана в этом самописном сервисе (там экспортится класс сервиса, а ниже идет валидация схемы и создание этого класса через new  и вывод в лог части параметров конфига).

Может проблема в том, что когда я импорчу сам класс (его имя же нужно подставить в provide как токен), то из того же файла подтягиваются следующие строки?
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
т.е. из-за этой ситуации всё падает ещё на этапе it('should be defined'
источник

ДБ

Дмитрий Берестовский... in NestJS — русскоязычное сообщество
А может быть проблема в том, что jest скомпилил ts-ки и пользуется старыми версиями? У меня такое было раз, пока не нашёл и не удалил js-ки jest не видел изменений...
источник

NC

Nikita Chaykin in NestJS — русскоязычное сообщество
Если в монге в схеме не указать _id, то он будет создан автоматом ?
источник