Возвращение статических данных из Cypress Stub - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в Cypress, и я хочу вернуть данные клиенту, когда они делают запрос в GraphQL.Я не уверен, что заглушка - правильное направление.Я изучил https://medium.com/wehkamp-techblog/mocking-specific-graphql-requests-in-cypress-io-22c67924e296, но я не до конца понимаю, как это работает, поэтому я пытаюсь подойти к этому основам.Я знаю, что он обрабатывает любой запрос GraphQL и возвращает то же самое, но это хорошо для моих текущих требований к обучению.

it('something else', () => {
        cy.visit('http://localhost:8080', {
            onBeforeLoad: win => {
                cy.stub(win, 'fetch')
                    .withArgs('/graphql')
                    .resolves({
                        data: {
                            songs: [
                                {
                                    id: 1,
                                    title: 'Hey Ya',
                                },
                            ],
                        },
                    });
            },
        }).contains('Loading...');
    });

Я не знаю, с чего начать.

Кроме того, я нахожусьпытаясь получить что-то наподобие приведенного ниже кода, получить данные, а затем вернуть их, чтобы можно было использовать и проверять реальные данные.Хотя возвращение кажется правильным, пользовательский интерфейс React не обновляется.

it('something else', () => {
        const query = `query getSongs{
            songs {
                key: id
                title
            }
        }`;
        cy.request({
            url: 'http://localhost:8080/graphql',
            body: { query },
            failOnStatusCode: false,
        }).then(res => {
            cy.log(res);
            expect(res.body.data.songs[0].title).to.equal('Hey Ya');
            // Do something with the data here like visit the page and stub with the requested data
            cy.visit('http://localhost:8080', {
                onBeforeLoad: win => {
                    cy.stub(win, 'fetch')
                        .withArgs('/graphql')
                        .returns(res.body.data); // This returns correctly but doesn't display in ui
                },
            }).contains('Hey Ya');
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...