Вступить в клуб →
средняявопросТестирование: Jest, Supertest, моки и тестовая база

Второй тест в файле получает цену, закэшированную в первом

// pricing.js
const cache = new Map();
module.exports.getPrice = async (sku) => {
  if (!cache.has(sku)) cache.set(sku, await api.fetchPrice(sku));
  return cache.get(sku);
};

Первый тест мокает api.fetchPrice так, чтобы вернуть 100, второй — 200 для того же SKU. Второй тест получает 100. Почему и что сделать?

  • Кэш живёт на уровне модуля; сбрасывать его между тестами
  • Jest кэширует результаты моков между тестами
  • Второй мок не применился, так как имя совпадает
  • Map нельзя использовать в модулях, которые мокаются

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела