Я пытаюсь запустить шутник. Все отлично работает Когда я регистрирую данные и геонаписи, я вижу идентичные объекты, возвращаемые в терминал, но остальная часть теста не выполняется. Я пытался использовать toEqual и toBe, и ни одна из них не работает. Если я избавлюсь от оператора ожидаемого, остальная часть кода в тесте будет выполнена. Почему это срабатывает при ожидании заявления? Это мой код:
describe('geonames', (url = 'https://geonamesapi.com', geonames = {lat: 'lat', lng: 'lng'},
projectData = {
zero: {
date: '03/19/2021',
place: 'city, state'
},
one: {
coord:
{
lat: '',
lng: ''
},
date: '',
place: '',
location1: '',
location2: ''
},
two: {
month: '',
day: '',
year: ''
},
three: {
high: '',
low: '',
forecast: ''
},
four: {
image: ''
}}, place = '', date = '', place1 = '', place2 = '', place_split = '', data = '') => {
place = projectData.zero.place;
projectData.zero.date = date
projectData.one.date = date
place_split = place.split(', ')
place1 = place_split[0]
place2 = place_split[1]
projectData.one.place = place
projectData.one.location1 = place1
projectData.one.location2 = place2
projectData.one.coord.lat = geonames.lat
projectData.one.coord.lng = geonames.lng
it('can get coordinates', async() => {
fetchMock.once(url, {
status: 200,
statusText: 'OK',
headers: {'Content-Type': 'application/json'},
sendAsJson: true,
body: JSON.stringify(geonames)
}, {method: 'GET'});
fetch(url, {
method: 'GET',
body: JSON.stringify({data: 'Received Payload'}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}
})
.then(function(req){
expect(req.status).toEqual(200);
return req.json();
})
.then(function (json) {
console.log(json.body);
data = json.body;
console.log(projectData)
console.log(data);
console.log(geonames)
expect(data).toEqual(geonames)
data = projectData
return data;
})
.then(async function(data) {
console.log(data);
expect(data).toEqual(projectData);
})
})
})