Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/ivyportal 18073 create file preview for pdf .log and png master #1325

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
fe9dca1
IVYPORTAL-18072 SPIKE: Evaluate the full screen issue with new case a…
mnhnam-axonivy Dec 12, 2024
6b4aa0a
IVYPORTAL-18029 High - Client-side cross-site scripting
mnhnam-axonivy Dec 16, 2024
c8474f3
IVYPORTAL-18029 High - Client-side cross-site scripting
mnhnam-axonivy Dec 16, 2024
960f088
IVYPORTAL-18029 High - Client-side cross-site scripting
mnhnam-axonivy Dec 16, 2024
95f02eb
Merge pull request #1307 from axonivy-market/feature/IVYPORTAL-18029-…
mnhnam-axonivy Dec 16, 2024
efbe2c1
Merge branch 'master' of https://github.com/axonivy-market/portal int…
mnhnam-axonivy Dec 16, 2024
e38b739
Merge branch 'feature/IVYPORTAL-18029-High-Client-side-cross-site-scr…
mnhnam-axonivy Dec 16, 2024
e41f482
Merge pull request #1314 from axonivy-market/bug/IVYPORTAL-18031-Medi…
chnam-axonivy Dec 17, 2024
f4a0f06
Merge branch 'master' of https://github.com/axonivy-market/portal int…
mnhnam-axonivy Dec 17, 2024
bdf9f32
IVYPORTAL-18029 Security findings- Client-side cross-site scripting
mnhnam-axonivy Dec 17, 2024
559ae67
Merge pull request #1316 from axonivy-market/feature/IVYPORTAL-18029-…
mnhnam-axonivy Dec 17, 2024
e2ce1b2
IVYPORTAL-18072 SPIKE: Evaluate the full screen issue with new case a…
mnhnam-axonivy Dec 17, 2024
96773dc
Merge pull request #1300 from axonivy-market/bug/IVYPORTAL-18072-SPIK…
mnhnam-axonivy Dec 18, 2024
003cd36
IVYPORTAL-18063-bring-back-default-sort-for-task-case-widget-LE (#1301)
tphvu-axonivy Dec 18, 2024
b310a72
Feature/ivyportal 18032 UI facelift conflict (#1311)
lmluat-axonivy Dec 18, 2024
a77f912
IVYPORTAL-18073 Create file preview for PDF .log and PNG
chnam-axonivy Dec 18, 2024
2036196
IVYPORTAL-18073 Create file preview for PDF .log and PNG
chnam-axonivy Dec 19, 2024
5f0a0c5
IVYPORTAL-18073 Create file preview for PDF .log and PNG
chnam-axonivy Dec 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ function highlightProcessItems() {
}

function highlightEditProcessIcon() {
appendStepAnnotation($("[id$='process-widget:edit-process-form:edit-process-icon:awesome-icon-selection']"), "4", -10, 100);
appendStepAnnotation($("[id$='process-widget:edit-process-form:edit-process-icon:awesome-icon-selection']"), "4", -40, 110);
}

function highlightEditProcessDialog() {
Expand Down Expand Up @@ -361,4 +361,8 @@ function createBlackThinOutline($element) {

function createBlackMediumOutline($element) {
$element.addClass("black-medium-outline");
}

function highlightCasePreviewDocument(){
createRedMediumOutline($("a[id$=':preview-file']"));
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ public enum Variable {
GLOBAL_FOOTER_INFO("Portal.GlobalFooterInfo"), USER_MENU("Portal.UserMenu"), DEFAULT_THEME_MODE("Portal.Theme.Mode"),
GLOBAL_SEARCH_SCOPE_BY_CATEGORIES("Portal.GlobalSearchScopeCategories"),
SHOW_QUICK_GLOBAL_SEARCH("Portal.ShowQuickGlobalSearch"),
ENABLE_SWITCH_THEME_BUTTON("Portal.Theme.EnableSwitchThemeModeButton"), DASHBOARD_MAIN_MENU_ENTRY("Portal.Dashboard.MainMenuEntry"), APPLICATION_NAME("Portal.ApplicationName");
ENABLE_SWITCH_THEME_BUTTON("Portal.Theme.EnableSwitchThemeModeButton"),
DASHBOARD_MAIN_MENU_ENTRY("Portal.Dashboard.MainMenuEntry"),
APPLICATION_NAME("Portal.ApplicationName"),
ENABLE_DOCUMENT_PREVIEW("Portal.Document.EnablePreview");

private String key;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public void screenshotCaseDetails() throws IOException {
ScreenshotUtils.captureElementWithMarginOptionScreenshot(detailsPage.openAddAttachmentDialog(),
ScreenshotUtils.CASE_DETAIL_FOLDER + "how-to-attach-document-to-case", new ScreenshotMargin(10));
detailsPage.closeAddAttachmentDialog();
detailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf"));
detailsPage.uploadDocument(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf"));

refreshPage();
detailsPage.waitForCaseDetailsDisplay();
Expand Down Expand Up @@ -226,4 +226,19 @@ public void screenshotProcessOverviewLink() throws IOException {
ScreenshotUtils
.captureHalfLeftPageScreenShot(ScreenshotUtils.PROCESSES_INFORMATION_WIDGET_FOLDER + "process-overview-link");
}

@Test
public void screenshotPreviewDocument() throws IOException{
updateGlobalVariable(Variable.ENABLE_DOCUMENT_PREVIEW.getKey(), "true");
CaseWidgetNewDashBoardPage caseWidget = mainMenuPage.openCaseList();
ScreenshotUtils.resizeBrowser(new Dimension(1600, SCREENSHOT_WIDTH));
WaitHelper.waitForNavigation(() -> caseWidget.openDetailsCase("Order Pizza"));
CaseDetailsPage detailsPage = new CaseDetailsPage();
detailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf"));
refreshPage();
detailsPage.waitForCaseDetailsDisplay();
ScreenshotUtils.executeDecorateJs("highlightCasePreviewDocument()");
ScreenshotUtils.captureElementWithMarginOptionScreenshot(detailsPage.getDocumentBox(),
ScreenshotUtils.CASE_DETAIL_FOLDER + "how-to-preview-document", new ScreenshotMargin(10));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,11 @@ public void screenshotPortalFullProcessesList() throws IOException {
ScreenshotUtils.captureElementWithMarginOptionScreenshot(processWidget.getProcessEditMenu(0),
ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-menu-item", new ScreenshotMargin(150, 200));
processWidget.clickOnProcessEditMenu(0);
ScreenshotUtils.maximizeBrowser();
ScreenshotUtils.executeDecorateJs("highlightEditProcessDialog()");
ScreenshotUtils.executeDecorateJs("highlightEditProcessIcon()");
ScreenshotUtils.captureElementWithMarginOptionScreenshot(processWidget.getEditProcessDialog(),
ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-dialog", new ScreenshotMargin(10));
ScreenshotUtils.PROCESSES_WIDGET_FOLDER + "edit-process-dialog", new ScreenshotMargin(5));
ScreenshotUtils.resizeBrowser(new Dimension(1366, 800));
refreshPage();
processWidget.waitUtilProcessWidgetDisplayed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,11 @@ public void uploadDocumentWithoutError(String pathToFile) {
$("button[id$='document:document-upload-close-command']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT)
.click();
}

public void uploadDocument(String pathToFile) {
$("input[id$='document-upload-panel_input']").shouldBe(exist, DEFAULT_TIMEOUT)
.shouldBe(Condition.hidden, DEFAULT_TIMEOUT).sendKeys(pathToFile);
}

public void openAddDocumentDialogAndUploadDocument(String pathToFile) {
getAddAttachmentDialog();
Expand Down Expand Up @@ -1029,5 +1034,9 @@ public void clickShowCaseOwners() {
public int countCaseOwners() {
return $$("div[id$=':security-member-container']").size();
}

public boolean getFirstItemPreviewDocumentVisible() {
return $("a[id$=':0:preview-file']").exists();
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -424,4 +424,16 @@ public void resizeColumn() {
.clickAndHold(element)
.perform();
}

public void clickOnCaseNameColumn() {
$("div[id$='case-widget-preview:dashboard-cases']").shouldBe(appear, DEFAULT_TIMEOUT)
.$("th[id$='dashboard-cases-columns:1']").shouldBe(getClickableCondition()).click();
}

public SelenideElement getFirstCaseOfCaseWidget() {
$("div[id$='case-widget-preview:dashboard-cases']").shouldBe(appear, DEFAULT_TIMEOUT).$$("table tbody tr").get(0).shouldBe(appear,
DEFAULT_TIMEOUT);
return $("div[id$='case-widget-preview:dashboard-cases']").$$("table tbody tr").get(0);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ public void nextPageTable() {
}

public void resetFilter() {
$("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("button[id$='reset-button']")
$("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("a[id$='reset-button']")
.filter(text("Reset")).first().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click();
$("div.filter-overlay-panel__footer").shouldBe(disappear, DEFAULT_TIMEOUT);
waitForElementClickable($$("div.table-widget-panel")
Expand Down Expand Up @@ -269,7 +269,7 @@ public void removeAllFilterItems() {
}

public void openManageFiltersDialog() {
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click();
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click();
}

public void closeManageFilterDialog() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ public SelenideElement getCompactModeProcessFilterPanelSaveButton() {
}

public SelenideElement getCompactModeProcessFilterPanelResetButton() {
return getCompactModeProcessFilterPanel().$("button[id$=':reset-button']");
return getCompactModeProcessFilterPanel().$("a[id$=':reset-button']");
}

public void resetCompactModeProcessFilterPanel() {
Expand Down Expand Up @@ -1033,7 +1033,7 @@ public NotificationCompactPage openNotificationPanel() {
}

public void clickOnManageFilterLink() {
$("div[class*='filter-overlay-panel__footer']").shouldBe(appear, DEFAULT_TIMEOUT).$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button[class*='saved-filter__manage-filter']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click();
$("div[class*='filter-overlay-panel__footer']").shouldBe(appear, DEFAULT_TIMEOUT).$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a[class*='saved-filter__manage-filter']").shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click();
$("[id$='manage-filter-dialog']").shouldBe(appear, DEFAULT_TIMEOUT);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -478,4 +478,21 @@ public SelenideElement getExpandModeCheckbox() {
public void clickOnExpandModeCheckbox() {
getExpandModeCheckbox().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click();
}

public void clickOnTaskNameColumn() {
$("div[id$='task-widget-preview:dashboard-tasks']").shouldBe(appear, DEFAULT_TIMEOUT)
.$("th[id$='dashboard-tasks-columns:3']").shouldBe(getClickableCondition()).click();
}

public void clickOnTaskPriorityColumn() {
$("div[id$='task-widget-preview:dashboard-tasks']").shouldBe(appear, DEFAULT_TIMEOUT)
.$("th[id$='dashboard-tasks-columns:1']").shouldBe(getClickableCondition()).click();
}

public SelenideElement getFirstTaskOfTaskWidget() {
$("div[id$='task-widget-preview:dashboard-tasks']").shouldBe(appear, DEFAULT_TIMEOUT).$$("table tbody tr").get(0).shouldBe(appear,
DEFAULT_TIMEOUT);
return $("div[id$='task-widget-preview:dashboard-tasks']").$$("table tbody tr").get(0);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public void applyFilter() {
}

public void resetFilter() {
$("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("button[id$='reset-button']")
$("div.filter-overlay-panel__footer").shouldBe(appear, DEFAULT_TIMEOUT).$$("a[id$='reset-button']")
.filter(text("Reset")).first().shouldBe(getClickableCondition(), DEFAULT_TIMEOUT).click();
}

Expand Down Expand Up @@ -183,7 +183,7 @@ public boolean hasSavedFilterItem(String filterName) {
}

public void clickOnManageFilterLink() {
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click();
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click();
$("[id$='manage-filter-dialog']").shouldBe(appear, DEFAULT_TIMEOUT);
}

Expand Down Expand Up @@ -530,7 +530,7 @@ public void saveFilter(String widgetFilterName) {
}

public void openManageFiltersDialog() {
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("button").shouldBe(getClickableCondition()).click();
$("div#manage-filter").shouldBe(appear, DEFAULT_TIMEOUT).$("a").shouldBe(getClickableCondition()).click();
}

public void removeAllFilterItems() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,10 @@ public NewDashboardPage openTaskList() {
return openMainMenu().selectTaskMenu();
}

public void waitForTaskTitleAppear() {
waitForElementDisplayed(By.id("title"), true);
}

public void waitForIFrameContentVisible() {
waitForIFrameScreenshotSizeGreaterThan(IFRAME_SCREENSHOT_FILE_SIZE_AT_MINIMUM);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.axonivy.portal.selenium.common.NavigationHelper;
import com.axonivy.portal.selenium.page.MainMenuPage;
import com.axonivy.portal.selenium.page.NewDashboardPage;
import com.axonivy.portal.selenium.page.TaskIFrameTemplatePage;
import com.axonivy.portal.selenium.page.TopMenuTaskWidgetPage;
import com.axonivy.portal.selenium.page.UserProfilePage;
import com.axonivy.portal.selenium.page.WorkingTaskDialogFromUserProfilePage;
Expand All @@ -26,9 +27,10 @@ public void setup() {
public void testChangeLanguageWhenWorkingOnTask() {
NavigationHelper.navigateToTaskList();
TopMenuTaskWidgetPage taskWidget = new TopMenuTaskWidgetPage();
taskWidget.startTaskIFrameByIndex(0);
TaskIFrameTemplatePage taskPage = taskWidget.startTaskIFrameByIndex(0);
taskWidget.switchBackToParent();
taskWidget.clickOnMyProfile();
taskPage.waitForTaskTitleAppear();
taskPage.clickOnMyProfile();
WorkingTaskDialogFromUserProfilePage workingTaskDialogPage = new WorkingTaskDialogFromUserProfilePage();
workingTaskDialogPage.leaveTask();
UserProfilePage userProfilePage = new UserProfilePage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@ public void setup() {

@Test
public void uploadNormalDocument() {
updateGlobalVariable(Variable.ENABLE_DOCUMENT_PREVIEW.getKey(), "true");
initNewDashboardPage(TestAccount.ADMIN_USER);
casePage = menuPage.openCaseList();
caseDetailsPage = casePage.openDetailsCase("Leave Request");
int numberOfDocument = caseDetailsPage.countNumberOfDocument();
caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile("test-no-files-no-js.pdf"));
caseDetailsPage.checkNumberOfDocument(numberOfDocument + 1);
assertTrue(caseDetailsPage.getFirstItemPreviewDocumentVisible());
}

@Test
Expand Down Expand Up @@ -84,6 +86,7 @@ public void uploadUnsupportedFileType() {

@Test
public void uploadDocumentAndCheckDocumentName() {
updateGlobalVariable(Variable.ENABLE_DOCUMENT_PREVIEW.getKey(), "true");
final String pdfFile = "test-no-files-no-js.pdf";
final String wordFile = "test-ms-word-extension.doc";
final String unsupportFile = "unsupportedExtension.abc";
Expand All @@ -94,16 +97,22 @@ public void uploadDocumentAndCheckDocumentName() {
caseDetailsPage = casePage.openDetailsCase("Leave Request");
caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(pdfFile));
isCorrectIconExtension(pdfFile, "si si-office-file-pdf-1");
// can preview this document
assertTrue(caseDetailsPage.getFirstItemPreviewDocumentVisible());

casePage = menuPage.openCaseList();
caseDetailsPage = casePage.openDetailsCase("Leave Request");
caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(wordFile));
isCorrectIconExtension(wordFile, "si si-office-file-doc-1");
// can not preview
assertFalse(caseDetailsPage.getFirstItemPreviewDocumentVisible());

casePage = menuPage.openCaseList();
caseDetailsPage = casePage.openDetailsCase("Leave Request");
caseDetailsPage.uploadDocumentWithoutError(FileHelper.getAbsolutePathToTestFile(unsupportFile));
isCorrectIconExtension(unsupportFile, "si si-common-file-empty");
// can not preview
assertFalse(caseDetailsPage.getFirstItemPreviewDocumentVisible());
}

private boolean isCorrectIconExtension(String fileName, String iconClass) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.axonivy.portal.selenium.test.dashboard;

import static com.codeborne.selenide.Condition.text;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Dimension;
Expand All @@ -12,13 +14,18 @@
import com.axonivy.portal.selenium.common.ScreenshotUtils;
import com.axonivy.portal.selenium.common.TestAccount;
import com.axonivy.portal.selenium.page.CaseEditWidgetNewDashBoardPage;
import com.axonivy.portal.selenium.page.CaseWidgetNewDashBoardPage;
import com.axonivy.portal.selenium.page.DashboardConfigurationPage;
import com.axonivy.portal.selenium.page.NewDashboardDetailsEditPage;
import com.codeborne.selenide.CollectionCondition;

@IvyWebTest
public class DashboardEditCaseWidgetTest extends BaseTest {
private static final String NAME_STR = "Name";
private static final String YOUR_CASES_WIDGET = "Your Cases";

private static final String ALPHA_COMPANY = "Alpha Company";
private static final String ORDER_PIZZA = " Order Pizza";

@Override
@BeforeEach
Expand Down Expand Up @@ -201,4 +208,24 @@ private NewDashboardDetailsEditPage gotoEditPublicDashboardPage() {
return modificationPage.navigateToEditDashboardDetailsByName("Dashboard");
}

@Test
public void testDefaultSortOnCaseWidget() {
redirectToRelativeLink(createCaseWithTechnicalCaseUrl);
redirectToRelativeLink(createAlphaCompanyUrl);

LinkNavigator.redirectToPortalDashboardConfiguration();
var configurationPage = new DashboardConfigurationPage();
var modificationPage = configurationPage.openEditPublicDashboardsPage();
modificationPage.navigateToEditDashboardDetailsByName("Dashboard");

CaseWidgetNewDashBoardPage caseWidget = new CaseWidgetNewDashBoardPage(YOUR_CASES_WIDGET);
CaseEditWidgetNewDashBoardPage caseEditWidgetPage = caseWidget.openEditWidget();

caseEditWidgetPage.clickOnCaseNameColumn();
caseEditWidgetPage.getFirstCaseOfCaseWidget().shouldHave(text(ALPHA_COMPANY), DEFAULT_TIMEOUT);;

caseEditWidgetPage.clickOnCaseNameColumn();
caseEditWidgetPage.getFirstCaseOfCaseWidget().shouldHave(text(ORDER_PIZZA), DEFAULT_TIMEOUT);;

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.axonivy.portal.selenium.test.dashboard;

import static com.codeborne.selenide.Condition.text;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

Expand All @@ -12,10 +14,15 @@
import com.axonivy.portal.selenium.page.DashboardConfigurationPage;
import com.axonivy.portal.selenium.page.NewDashboardDetailsEditPage;
import com.axonivy.portal.selenium.page.TaskEditWidgetNewDashBoardPage;
import com.axonivy.portal.selenium.page.TaskWidgetNewDashBoardPage;
import com.codeborne.selenide.CollectionCondition;

@IvyWebTest
public class DashboardEditTaskWidgetTest extends BaseTest {
private static final String YOUR_TASKS_WIDGET = "Your Tasks";
private static final String MATERNITY_LEAVE_REQUEST = "Maternity Leave Request";
private static final String SICK_LEAVE_REQUEST = "Sick Leave Request";

private NewDashboardDetailsEditPage newDashboardDetailsEditPage;

@Override
Expand Down Expand Up @@ -165,4 +172,26 @@ public void testFilterResponsible() {
taskWidget.applyFilter();
taskWidget.countAllTasks().shouldHave(CollectionCondition.size(0));
}

@Test
public void testDefaultSortOnTaskWidget() {
LinkNavigator.redirectToPortalDashboardConfiguration();
var configurationPage = new DashboardConfigurationPage();
var modificationPage = configurationPage.openEditPublicDashboardsPage();
modificationPage.navigateToEditDashboardDetailsByName("Dashboard");

TaskWidgetNewDashBoardPage taskWidget = new TaskWidgetNewDashBoardPage(YOUR_TASKS_WIDGET);
TaskEditWidgetNewDashBoardPage taskEditWidgetPage = taskWidget.openEditTaskWidget();

// sort by task priority
taskEditWidgetPage.clickOnTaskPriorityColumn();
taskEditWidgetPage.getFirstTaskOfTaskWidget();
taskEditWidgetPage.getFirstTaskOfTaskWidget().shouldHave(text(SICK_LEAVE_REQUEST), DEFAULT_TIMEOUT);

// sort by task name
taskEditWidgetPage.clickOnTaskNameColumn();
taskEditWidgetPage.getFirstTaskOfTaskWidget();
taskEditWidgetPage.getFirstTaskOfTaskWidget().shouldHave(text(MATERNITY_LEAVE_REQUEST), DEFAULT_TIMEOUT);

}
}
Loading
Loading