5378 Fix failing tests for Snackbar#5379
5378 Fix failing tests for Snackbar#5379igor-korost wants to merge 11 commits intoangular_rework_developmentfrom
Conversation
| snackBarPage.durationInput.setValue(String.valueOf(DURATION)); | ||
| snackBarPage.customSnackbarOpenButton.click(); | ||
|
|
||
| //duration(DURATION, 1000, action); |
| protected String messageLocator = "./span"; | ||
| protected String messageLocator = "//*[@matsnackbarlabel]"; | ||
|
|
||
| protected UIElement action; |
There was a problem hiding this comment.
это кнопка, а не UIElement
There was a problem hiding this comment.
Заменил protected UIElement action на public Button action;
Модификатор доступа изменил на public так как action после правок используется в SnackbarTests
jdi-light-angular/src/main/java/com/epam/jdi/light/angular/elements/complex/Snackbar.java
Outdated
Show resolved
Hide resolved
| return message.getText(); | ||
| } | ||
|
|
||
| @JDIAction("Get '{name}' action") |
There was a problem hiding this comment.
и ниже все методы тоже требуют переименования
There was a problem hiding this comment.
Переименовал getMessageText() в messageText() и getActionText() в actionText()
...angular-tests/src/test/java/io/github/epam/angular/tests/elements/complex/SnackbarTests.java
Outdated
Show resolved
Hide resolved
| snackBarPage.openButton.click(); | ||
|
|
||
| snackbarSection.basicSnackbar.has().action(); | ||
| snackBarPage.basicSnackbar.has().action(); |
There was a problem hiding this comment.
тест про NO ACTION TEST
но в валидации проверяем, что action есть - не логично
There was a problem hiding this comment.
Переименовал. Теперь эта строчка выглядит так snackBarPage.basicSnackbar.has().noAction();
…ments/complex/Snackbar.java Co-authored-by: Natalia Pozhidaeva <Natalia_Pozhidaeva@epam.com>
…ests/elements/complex/SnackbarTests.java Co-authored-by: Natalia Pozhidaeva <Natalia_Pozhidaeva@epam.com>
pnatashap
left a comment
There was a problem hiding this comment.
ревью компонента еще раз нужно сделать
| protected UIElement action; | ||
| protected String actionLocator = ".//button"; | ||
| public Button action; | ||
| protected String actionLocator = "//button"; |
| public class Snackbar extends UIBaseElement<SnackbarAssert> { | ||
| protected UIElement message; | ||
| protected String messageLocator = "./span"; | ||
| protected String messageLocator = "//*[@matsnackbarlabel]"; |
There was a problem hiding this comment.
стиль mdc-snackbar__label гораздо более понятнее смотрится
There was a problem hiding this comment.
Пофиксил. Теперь так protected String messageLocator = ".mdc-snackbar__label";
| protected String actionLocator = "//button"; | ||
|
|
||
| public Snackbar() { | ||
| message = new UIElement(); |
There was a problem hiding this comment.
А зачем нам эти элементы хранить?
There was a problem hiding this comment.
После введения проверок из элемента Button кнопка action теперь используется в тестах (сейчас кнопка переименована в actionButton). Если я правильно понял вопрос.
There was a problem hiding this comment.
вопрос был зачем это делать в конструкторе, а не так же, как это сделано в остальных элементах
jdi-light-angular/src/main/java/com/epam/jdi/light/angular/elements/complex/Snackbar.java
Outdated
Show resolved
Hide resolved
|
|
||
| @JDIAction("Get '{name}' action") | ||
| public String getActionText() { | ||
| public String actionText() { |
There was a problem hiding this comment.
на самом деле при наличии доступа к кнопки мы можем на ней и проверить, что с ней, на кнопке есть свои валидаторы
There was a problem hiding this comment.
Выполнено. Теперь во всех тестах SnackbarTests используются валидаторы из Button
|
@igor-korost если работа закончена, то надо перезапрашивать ревью, мысли еще никто читать не научился |
pnatashap
left a comment
There was a problem hiding this comment.
а почему PR называется исправление падающих тестов?
| protected String actionLocator = "//button"; | ||
|
|
||
| public Snackbar() { | ||
| message = new UIElement(); |
There was a problem hiding this comment.
вопрос был зачем это делать в конструкторе, а не так же, как это сделано в остальных элементах
|
|
||
| action = new UIElement(); | ||
| action.core().setLocator(actionLocator); | ||
| actionButton = new Button(); |
There was a problem hiding this comment.
кнопок технически можно сделать несколько, надо предусмотреть возможность с ними работать
There was a problem hiding this comment.
У элементов snackbar при нормальном проектировании может быть только 1 кнопка или не быть её вообще. Так как это исчезающий элемент и можно не успеть отреагировать. 💁 Вот тут подробнее написано https://stackoverflow.com/questions/67642607/reactmaterial-ui-multiple-snackbar
There was a problem hiding this comment.
Конструктор убрал из Snackbar.java ✅
| */ | ||
|
|
||
| public class Snackbar extends UIBaseElement<SnackbarAssert> { | ||
| protected UIElement message; |
There was a problem hiding this comment.
если message это элемент с текстом, то это должен быть не UIElement
There was a problem hiding this comment.
Заменил на public String messageText(), конструктор убрал вообще
| @@ -11,19 +11,7 @@ public class SnackbarAssert extends UIAssert<SnackbarAssert, Snackbar> { | |||
|
|
|||
| @JDIAction(value = "Assert that '{name}' has message '{0}'", isAssert = true) | |||
| public SnackbarAssert message(String expected) { | |||
There was a problem hiding this comment.
на текст всегда ставим валидатор с матчером, чтобы не только на полное соответствие можно было проверить
There was a problem hiding this comment.
Заменил на Matchers.containsString(expected)
… 5378_fix_snackbar_tests
Название не вполне верное. Скорее это рефакторинг и исправление. Цель этого PR сдать уже сделанную работу поскольку я ухожу с проекта. |
This reverts commit 3058d29.
No description provided.