Издевательский узел: крипта с VitestJavascript

Форум по Javascript
Anonymous
Издевательский узел: крипта с Vitest

Сообщение Anonymous »

Я попробовал подписаться на другой похожий пост на эту тему, но результат у автора тот же.
Поскольку этот пост неактуален, я хотел бы попробовать еще раз, если у кого-то есть идеи, как высмеять функцию 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"),
};
});
В этом случае getRandomUUID возвращает неопределенное значение
Я также пробовал подобное шуточное решение в этом посте
но 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
}
})
поэтому я тоже попробовал это с моим методом макета (макету не нравится тип возвращаемого значения randomUUID, хотя тип «строка» не может быть присвоен типу '$) {строка}-${строка}-${строка}-${строка}-${строка})

Код: Выделить всё

    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

Вернуться в «Javascript»