Przenosząc asercje z page objectów do testów musiałem dodać parę zmian:
w klasie LeftMenu oraz ProjectMainView musiałem dodać metodę getElementByRole(elementRole, elementName: string), która pobiera element podanego typu i o podanej nazwie; metody te działają w zasadzie tak samo, tylko że w różnych klasach szukają w różnych elementach - w klasie LeftMenu jest to this.leftSideBar a w klasie ProjectMainView jest to this.dashboard
Imo jest to dobry case, gdybyśmy chcieli kiedyś wydzielać jakiś BasePage, wtedy można by zrobić taką bardziej generyczną metodę do tego.
w klasie ProjectMainView musiałem też dodać metodę getElementByTestId(dataTestId: string, elementName: string = "") która zwraca element szukany według data-test
Tu mam trochę wątpliwości, bo na ten moment lokator podany jest wprost w teście i nie wiem, czy wygląda to dobrze; można w sumie ten string wydzielić gdzieś do osobnej klasy lub stałej w page objecie, może będzie to wyglądało lepiej.
Musiałem też kilka plain lokatorów wrzucić bezpośrednio do testu, ale to też będzie można wynieść gdzieś indziej.
Również przywróciłem zmiany, których wprowadzenie sam sugerowałem 😐 Chodzi o linijkę 16, 45 i 65 - faktycznie lepiej będzie przepisać zmienną taskName, bo wywoływanie api usunięcia changedTaskName zwraca w logach komentarze o tym, że nie udało się usunąć taska (bo w niektórych testach nie ma tasków o nazwie z changedTaskName).
Przenosząc asercje z page objectów do testów musiałem dodać parę zmian:
w klasie
LeftMenu
orazProjectMainView
musiałem dodać metodęgetElementByRole(elementRole, elementName: string)
, która pobiera element podanego typu i o podanej nazwie; metody te działają w zasadzie tak samo, tylko że w różnych klasach szukają w różnych elementach - w klasieLeftMenu
jest tothis.leftSideBar
a w klasieProjectMainView
jest tothis.dashboard
Imo jest to dobry case, gdybyśmy chcieli kiedyś wydzielać jakiś
BasePage
, wtedy można by zrobić taką bardziej generyczną metodę do tego.w klasie
ProjectMainView
musiałem też dodać metodęgetElementByTestId(dataTestId: string, elementName: string = "")
która zwraca element szukany wedługdata-test
Tu mam trochę wątpliwości, bo na ten moment lokator podany jest wprost w teście i nie wiem, czy wygląda to dobrze; można w sumie ten string wydzielić gdzieś do osobnej klasy lub stałej w page objecie, może będzie to wyglądało lepiej.
Musiałem też kilka plain lokatorów wrzucić bezpośrednio do testu, ale to też będzie można wynieść gdzieś indziej.
Również przywróciłem zmiany, których wprowadzenie sam sugerowałem 😐 Chodzi o linijkę
16
,45
i65
- faktycznie lepiej będzie przepisać zmiennątaskName
, bo wywoływanie api usunięciachangedTaskName
zwraca w logach komentarze o tym, że nie udało się usunąć taska (bo w niektórych testach nie ma tasków o nazwie zchangedTaskName
).