Я поставил maxLength на textarea и хотел бы заявить, что если я наберу больше символов, чем maxLength, дополнительные символы будут усечены. Я не мог понять, как это сделать в testcafe простым способом. Это не сработало:
.expect(Selector('textarea#announcementText').value.length)
.eql(600)
Но на value нет length. В assert API также нет функции length.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я придумал решение, которое кажется косвенным. Вот как это работает:
const getLengthOfAnnouncementText = ClientFunction(() => document.querySelector('textarea#announcementText').value.length);
...
.expect(getLengthOfAnnouncementText())
.eql(600)
Это работает так, как я хочу, но мне не нравится, насколько конкретна эта функция. Есть ли более простой способ сделать это?
Поле Селектор (). Значение возвращает асинхронное свойство. Вы можете получить его значение, а затем проверить его длину в утверждении:
const textAreaValue = await Selector('textarea#announcementText').value;
await t
.expect(textAreaValue.length)
.eql(600);
Вы также можете проверить это, используя утверждение match:
await t
.expect(Selector('textarea#announcementText').value)
.match(/^.{0,600}$/);