Как смоделировать не установленный пакет npm в jest ?
Я пишу библиотеку, и мне нужно протестировать некоторые случаи, когда дополнительные зависимости не установлены.
Обновление
Моя библиотека имеет необязательную зависимость. Конечный пользователь моей библиотеки может опционально установить styled-components
.
В своих тестах (шутка) я рассмотрел случай, когда установлен styled-components
.
Теперь мне нужно покрыть случай, когда пакет не установлен.
test(`When styled-components is not installed`, () => {
process.env.SC_NOT_INSTALLED = true
const fn = () => {
const styled = require(`./styled`)
}
expect(fn).toThrow(Error)
})
let styled
try {
require.resolve(`styled-components`)
styled = require(`styled-components`)
if (process.env.NODE_ENV === `test` && process.env.SC_NOT_INSTALLED) {
throw new Error(`Imitation styled-components is not installed`)
}
}
catch {
styled = () => {
throw new Error(`Module not found: styled-components`)
}
}
export default styled
process.env.SC_NOT_INSTALLED
-> не будет работать, потому что, как я полагаю, тест выполняется в другом процессе.