Была такая же проблема, и это было мое решение. Culprit - это Hintcontainer для typeahead и, в частности, эта функция:
function copyStyles(inputNode, hintNode) {
var inputStyle = window.getComputedStyle(inputNode);
/* eslint-disable no-param-reassign */
hintNode.style.borderStyle = interpolateStyle(inputStyle, 'border', 'style');
hintNode.style.borderWidth = interpolateStyle(inputStyle, 'border', 'width');
hintNode.style.fontSize = inputStyle.fontSize;
hintNode.style.lineHeight = inputStyle.lineHeight;
hintNode.style.margin = interpolateStyle(inputStyle, 'margin');
hintNode.style.padding = interpolateStyle(inputStyle, 'padding');
/* eslint-enable no-param-reassign */
}
Проблема с createMockNode: стили из inputNode - не обычный объект, а CSSStyleDeclaration, и я не стал насмехаться над этим полностью.
https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration
Таким образом, использование window.getComputedStyle не работает при замене на общий объект. Самое простое решение для меня - это тоже смоделировать window.getComputedStyle. Итак, первая часть состоит в том, чтобы смоделировать функцию getComputedStyle, которая вызывает ошибку.
global.window.getComputedStyle = jest.fn(x=>({}));
Но createNodeMock все еще необходим для предоставления пустого объекта стиля для входного узла.
TLDR;Снимки работают с этим фрагментом
global.window.getComputedStyle = jest.fn(x=>({}));
const createNodeMock = (element) => ({
style: {},
});
const options={createNodeMock};
const tree = renderer
.create(form,options)
.toJSON();