Использование Jest для тестирования Jquery, который вызывает PHP ajax

У меня есть файл Javascript с функцией, которую я пытаюсь проверить. Все, что делает функция — это отправляет jQuery-запрос в файл PHP ajax (см. Код).

function loadTeams(clubID){

var data = {
action: 'loadClubTeams',
clubID: clubID
};

return jQuery.post('/ajax/calendar_ajax.php', data);
}

У меня есть макет в моем /__mocks__/ dir как таковой:

<?php

$teams = array(
array(
"Name" => "Team 1",
"ClubID" => 34
),
array(
"Name" => "Team 2",
"ClubID" => 34
),
array(
"Name" => "Team 3",
"ClubID" => 35
)
);
$response = array();
if($_REQUEST['action'] == "loadClubTeams"){
foreach($teams as $team){
if($team['ClubID'] == $_REQUEST['ClubID']){
array_push($response, $team);
}
}
}
return json_encode($response);

Вот мой тестовый файл:

const assoc_cal = require('../../secure-htdocs/js/templates/association_calendar');
jest.mock('../../secure-htdocs/ajax/calendar_ajax.php');

test("loadTeams returns Teams 1 and 2 when passed clubID 34", () =>{
data = {action: "loadTeams", ClubID: 34};
const expected = [
{
name: "Team 1",
clubID: 34
},
{
name: "Team 2",
clubID: 34
}
];
expect(assoc_cal(data)).toEqual(expect.arrayContaining(expected));
});

Но когда я запускаю свой тест, он все еще пытается вызвать настоящий файл calendar_ajax.php. Я, видимо, неправильно настраиваю макет. Может кто-нибудь еще с этим?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]