Я пытаюсь запустить шутниковый тест и думаю, что это часть проблемы, потому что я думал, что два объекта, которые я сравнивал (данные, геонаписи), были идентичны. Оказывается, они не были. Мой объект данных выглядит следующим образом:
{"lat": "lat", "lng": "lng"}
zn c мои геонеймы записываются правильно:
{lat: 'lat', lng: 'lng'}
Я не знаю, почему тест делает все внутри строк данных объекта и я не могу понять это. Вот почему я ожидаю, что Bee не выполняется.
Это мой код:
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);
console.log(data)
return req.json();
})
.then(function (json) {
console.log(json.body);
data = json.body;
console.log(projectData)
console.log(data)
console.log(geonames)
expect(data).toMatchObject(geonames)
data = projectData
return data;
})
.then(async function(data) {
console.log(data);
expect(data).toEqual(projectData);
})
})
})