Как мне проиндексировать последний элемент в магазине Redux с помощью теста Cypress? - PullRequest
2 голосов
/ 29 февраля 2020

То, что я пытаюсь сделать, это проверить значение, которое находится в n-м индексе некоторого массива в хранилище Redux.

    it('Enter text into comments, send comment, verify comment is displayed in comment list', ()=>{
        cy.server()
        cy.get('#call-input').type("Where are you?")
        cy.get('#send-btn').click()
        cy.route('POST', '/api/1/call/chatlog/1001/comment').as('sendComment')
        cy.window().its('store').invoke('getState').its('comments').its('data')

    })

})

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

        cy.window().its('store').invoke('getState').its('comments').its('data')

Я просто не могу на всю жизнь понять, как получить доступ к последнему индексу и проверить, соответствует ли значение значению

.type("Where are you?")

1 Ответ

3 голосов
/ 29 февраля 2020

Я думаю, что вы можете сделать это, используя «тогда»? Не проверено:

 cy.window()
    .its('store')
    .invoke('getState')
    .its('comments.data')
    .then((data) => {
       cy.wrap(data[data.length - 1])
    })
    .should('eq', 'Where are you?’)
...