когда требуются файлы .ejs, файл js печатается так, как он находится в тестовой среде Jest - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь протестировать функции javascript, которые требуют файлы .ejs, но при запуске тестов require('file.ejs') возвращает файл полностью, как есть, без запуска js внутри

Нет проблем с живой средой и только с тестовой средой Jest.

Я пытался использовать разные загрузчики ejs, такие как ('ejs-loader') и переопределять функцию 'require', но проблема не меняется.

Если я использую метод require внутри моего .test.js, js внутри .ejs не анализируется

Например: require('file.ejs')

<%
var data = {importantData: 'datadata'}
%>
<div>
    <%= require('anotherFile.ejs')(data) %>
</div>

вернется:

file:  function (obj) {
    obj || (obj = {});
    var __t, __p = '', __j = Array.prototype.join;
    function print() { __p += __j.call(arguments, '') }
    with (obj) {


    var data = {importantData: 'datadata'}
    ;
    __p += '\n<div>\n    ' +
    ((__t = ( require('anotherFile.ejs')(data) )) == null ? '' : __t) +
    '\n</div>\n';

    }
    return __p
    }

Ожидаемый результат будет:

<div>
    <div class="another-file"></div>
</div>

Любые идеи о том, как это можно решить, будут оценены

...