Есть такой модуль (тестирую я не его, но он ехпортит нужный для тестируемего сервиса свой сервис, который и надо замокать):
@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Е, т.е. тестируемый сервис должен быть изолирован... Вобщем фигня какая-то, второй день бьюсь и копаю 🤯 Никогда на тестах так не зависал ещё 🙃