Я получаю ошибку ниже при использовании шутки для тестирования. Я использую здесь пакет npm, отличный от es6. Проблема возникает, когда я не хочу выполнять импорт подстановочных знаков *. Я хотел сделать явный импорт.
//code
import sha256 from "crypto-js/sha256";
export const GetHashToken = (value) => {
return sha256(value);
};
//test
import { GetHashToken, GetUtcTimeStamp } from
"../../utils/ScheduleRepairUtility";
describe("Get hash token utility", () => {
it("Should return sha-256 hex digit string for given value", () => {
const paramValue = "78436783465sears121212";
expect(GetHashToken(paramValue))
.toBe("b87663752c7f5bf0967f74fd3523dece543
f447e96d9b1d478c7336781e1828b");
});
});
Получение ошибки:
● Get hash token utility › Should return sha-256 hex digit string for
given value
TypeError: sha256_1.default is not a function
Я использую для своего проекта сценарий реакции. Любая помощь приветствуется.
Спасибо!!





Я предполагаю, что модуль crypto-js/sha256 экспортирует функцию sha256 через назначение экспорта в стиле CommonJS (module.exports = sha256). Чтобы импортировать его, вам нужно либо использовать специальный синтаксис присваивания импорта TypeScript:
import sha256 = require("crypto-js/sha256");
или включите параметр компилятора esModuleInterop, который обеспечивает взаимодействие между импортом по умолчанию и назначениями экспорта.
Спасибо, Мэтт. Я заставил его работать, используя createHash из @ types / node вместо crypto-js / sha256.
Этот синтаксис сработал для меня
import * as sha256 from 'crypto-js/sha256';
К вашему сведению: все работает нормально, когда я делаю что-то вроде: import * as sha256 from "crypto-js"