Вы можете использовать модуль rewire , чтобы получить функцию decodeEntities
, которая не экспортируется. Например,
index.js
:
module.exports = function(property) {
var data = decodeEntities(property);
};
function decodeEntities(encodedString) {
let textArea = document.createElement('textarea');
textArea.innerHTML = encodedString;
return textArea.value;
}
index.test.js
:
const rewire = require('rewire');
const mod = rewire('./');
describe('60349818', () => {
describe('#decodeEntities', () => {
it('should pass', () => {
const mElement = { innerHTML: '', value: 'some value' };
const mCreateElement = jest.fn().mockReturnValueOnce(mElement);
mod.__set__('document', {
createElement: mCreateElement,
});
const decodeEntities = mod.__get__('decodeEntities');
const actual = decodeEntities('encodedString');
expect(actual).toEqual('some value');
expect(mCreateElement).toBeCalledWith('textarea');
});
});
});
Результаты модульного теста:
PASS stackoverflow/60349818/index.test.js
60349818
#decodeEntities
✓ should pass (4ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 3.334s
исходный код: https://github.com/mrdulin/react-apollo-graphql-starter-kit/tree/master/stackoverflow/60349818