Проблема, с которой вы здесь сталкиваетесь, заключается в том, что getByTestId
не повторяет попытку, если не получится подтверждение.Он пытается только один раз, и в первый раз данные еще не были обработаны.
Известно, что команды из cypress-testing-library
имеют этот недостаток.
Повторные команды кипариса по умолчанию повторяются, так что если выЕсли вы выберете .get()
, у вас не возникнет этой проблемы.
Если вы хотите придерживаться cypress-testing-library
, есть обходной путь с использованием .should(fn)
, но в вашем случае это сложно, потому что .waitAtLoggingMsg()
тоже не повторяется и рекурсивен для загрузки.Это ставит вас в очень неловкое положение, чтобы использовать обходной путь.
Лучший способ, который я вижу без контекста, - это отказаться от .waitAtLoggingMsg()
в пользу чего-то вроде:
cy.url()
.should('include', text.links.segmentmeasurements)
.should(() => {
cy.getByTestId('TableBody')
.should('not.be.empty');
});
Это будетповторите грубую команду getByTestId()
.