Поскольку этот пост неактуален, я хотел бы попробовать еще раз, если у кого-то есть идеи, как высмеять функцию node:crypto или любую встроенную функцию.
Мое базовое исследование представляет собой простой генератор случайных UUID, просто чтобы проверить, работает ли насмешка:
Код: Выделить всё
import { randomUUID } from "node:crypto";
export function getRandomUUID() :string {
return randomUUID();
}
Код: Выделить всё
vi.mock("node:crypto", async () => {
const actual =
await vi.importActual("node:crypto");
return {
...actual,
randomUUID: vi.fn(() => "123456789"),
};
});
Я также пробовал подобное шуточное решение в этом посте
но vitest завершается с ошибкой импорта:
Код: Выделить всё
Error: [vitest] No "default" export is defined on the "node:crypto" mock. Did you forget to return it from "vi.mock"?
If you need to partially mock a module, you can use "importOriginal" helper inside:
vi.mock(import("node:crypto"), async (importOriginal) => {
const actual = await importOriginal()
return {
...actual,
// your mocked methods
}
})
Код: Выделить всё
'Код: Выделить всё
vi.mock(import("node:crypto"), async (importOriginal) => {
const actual = await importOriginal();
return {
actual,
// your mocked methods
randomUUID: vi.fn(() => "123456789"),
};
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... ith-vitest
Мобильная версия