JS Как проверить файл, который является закрытым, но не может изменить его вообще
У меня есть скрипт JS под (document).ready
и мой технический директор попросил меня написать тест, который передает значение глобальной переменной: var reportId = document.getElementById("report_id").value;
и сравните результаты, если они ожидаются. Он сказал, что я не могу изменить исходный код вообще. Он сказал, что это возможно, но я не знаю как. Я должен передать результаты, которые должны быть обработаны этим сценарием, и сравнить ожидаемый результат.
JS:
$(document).ready(function() {
var resultsLoaded = false;
var reportId = document.getElementById("report_id").value;
var resultsTable;
spAddSpinner("#running");
getStatus();
function statusTimeout() {
setTimeout(function(){
getStatus();
}, 10000);
}
function getResults() {
if (resultsLoaded) {
resultsTable.ajax.reload();
} else {
resultsTable = $('#results').DataTable( {
"ajax": {
"url": "/ad_hoc_reports/" + reportId + "/run_results",
"dataSrc": "data"
},
"pageLength": pageLength,
"lengthMenu": pageSettings
});
resultsLoaded = true;
}
}
function getStatus() {
$.ajax({
url: "/ad_hoc_reports/" + reportId + "/run_progress",
type: "GET",
dataType: 'json',
error: function (xhr, status, error) {
displayError("An error has occurred obtaining the run status.");
},
success: function(result){
if (!result.running) {
getResults();
spRemoveSpinner("#running");
} else {
statusTimeout();
// Just load the table once to set up page nicely.
if (!resultsLoaded) {
getResults();
}
}
}
});
}
});
То, что я должен передать, - это отчет YAML, который называется reportId
, Скрипт обработает его и получит результаты, так как результаты должны быть примерно такими:
var run_results = {
"columns": [{"data": "Form Identifier"}, {"data": "Form Version"}, {"data": "Question Text"}, {"data": "Mapping"}, {"data": "Submission"}, {"data": "C Code"}],
"data": [["CDASH DEMO", "0.0.1", "Units", "HEIGHT_VSORRESU", "in", "C48500"],
["CDASH DEMO", "0.0.1", "Pulse Unit", "PULSE_VSORRESU", "beats/min", "C49673"],
["CDASH DEMO", "0.0.1", "Blood Pressure Unit", "BP_SYSBP_ORRESU", "mmHg", "C49670"],
["CDASH DEMO", "0.0.1", "Blood Pressure Unit", "BP_DIABP_VSORRESU", "mmHg", "C49670"]]
};
Таким образом, приведенный выше JSON является результатом после обработки файла YAML. Эта информация содержится в файле YAML, который является отчетом, а getResults получает эту информацию в формате JSON. Итак, что я должен сравнить, так это то, что если данные YAML обрабатываются хорошо, а вывод такой, какой должен быть в JSON.
Мне нужны идеи для этого и примеры.
Я думал о том, как использовать Sinon spy
но понятия не имею.