остановка теста jest после оператора ожидаемого / toEqual, даже если объекты идентичны - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь запустить шутник. Все отлично работает Когда я регистрирую данные и геонаписи, я вижу идентичные объекты, возвращаемые в терминал, но остальная часть теста не выполняется. Я пытался использовать 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);
        })
    }) 
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...