mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-09-17 14:21:29 +00:00
[ADF-1960] automated C315180, C310200 and C313200 (#5891)
* [ADF-1960] automated C315180, C310200 and C313200 * Add log and some fixes for scripts * fix scripts e2e Co-authored-by: Eugenio Romano <eugenio.romano@alfresco.com>
This commit is contained in:
committed by
GitHub
parent
3b7f3a5762
commit
94c99574f8
@@ -62,7 +62,8 @@ describe('Task form cloud component', () => {
|
|||||||
tabFieldField: 'tabBasicFieldField',
|
tabFieldField: 'tabBasicFieldField',
|
||||||
tabVarVar: 'tabBasicVarVar',
|
tabVarVar: 'tabBasicVarVar',
|
||||||
tabFieldVar: 'tabBasicFieldVar',
|
tabFieldVar: 'tabBasicFieldVar',
|
||||||
tabNextOperators: 'tabNextOperators'
|
tabNextOperators: 'tabNextOperators',
|
||||||
|
tabMultipleConditions: 'tabMultipleConditions'
|
||||||
};
|
};
|
||||||
|
|
||||||
const widgets = {
|
const widgets = {
|
||||||
@@ -78,6 +79,10 @@ describe('Task form cloud component', () => {
|
|||||||
notDisplayTab: 'anythingElse'
|
notDisplayTab: 'anythingElse'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const myTasksFilter = 'my-tasks';
|
||||||
|
const myTasksFilterTitle = 'My Tasks';
|
||||||
|
const completedTasksFilter = 'completed-tasks';
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||||
|
|
||||||
@@ -97,17 +102,17 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
const formCloudService = new FormCloudService(apiServiceHrUser);
|
const formCloudService = new FormCloudService(apiServiceHrUser);
|
||||||
|
|
||||||
const tabVisibilityFieldsId = await formCloudService.getIdByFormName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityFields.name);
|
const tabVisibilityFieldsId = await formCloudService.getIdByFormName(simpleApp, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityFields.name);
|
||||||
|
|
||||||
const tabVisibilityVarsId = await formCloudService.getIdByFormName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityVars.name);
|
const tabVisibilityVarsId = await formCloudService.getIdByFormName(simpleApp, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityVars.name);
|
||||||
|
|
||||||
for (let i = 0; i < 3; i++) {
|
for (let i = 0; i < 4; i++) {
|
||||||
visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(),
|
visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(),
|
||||||
simpleApp, tabVisibilityFieldsId);
|
simpleApp, tabVisibilityFieldsId);
|
||||||
await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp);
|
await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 3; i < 6; i++) {
|
for (let i = 4; i < 7; i++) {
|
||||||
visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(),
|
visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(),
|
||||||
simpleApp, tabVisibilityVarsId);
|
simpleApp, tabVisibilityVarsId);
|
||||||
await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp);
|
await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp);
|
||||||
@@ -156,12 +161,8 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
describe('Complete task with form - cloud directive', () => {
|
describe('Complete task with form - cloud directive', () => {
|
||||||
it('[C315174] Should be able to complete a standalone task with visible tab with empty value for field', async () => {
|
it('[C315174] Should be able to complete a standalone task with visible tab with empty value for field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[0].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[0].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[0].entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldValue);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldValue);
|
||||||
@@ -173,23 +174,17 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[0].entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[0].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[0].entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[0].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[0].entry.name);
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldValue);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C315177] Should be able to complete a standalone task with invisible tab with invalid value for field', async () => {
|
it('[C315177] Should be able to complete a standalone task with invisible tab with invalid value for field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[1].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[1].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[1].entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldField);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldField);
|
||||||
@@ -210,25 +205,17 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[1].entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[1].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[1].entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[1].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[1].entry.name);
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldField);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldField);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C315178] Should be able to complete a standalone task with invisible tab with valid value', async () => {
|
it('[C315178] Should be able to complete a standalone task with invisible tab with valid value', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[2].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name);
|
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[2].entry.name);
|
|
||||||
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
||||||
@@ -246,25 +233,18 @@ describe('Task form cloud component', () => {
|
|||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[2].entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[2].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[2].entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[2].entry.name);
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C315175] Should be able to complete a standalone task with invisible tab with empty value for field', async () => {
|
it('[C315175] Should be able to complete a standalone task with invisible tab with empty value for field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[4].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[3].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[3].entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarValue);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarValue);
|
||||||
@@ -273,23 +253,17 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[3].entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[4].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[4].entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[3].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[3].entry.name);
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarValue);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C315176] Should not be able to complete a standalone task with visible tab with invalid value for field', async () => {
|
it('[C315176] Should not be able to complete a standalone task with visible tab with invalid value for field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[5].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[4].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[4].entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarField);
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabVarField);
|
||||||
@@ -306,12 +280,8 @@ describe('Task form cloud component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C315179] Should be able to complete a standalone task with visible tab with valid value for field', async () => {
|
it('[C315179] Should be able to complete a standalone task with visible tab with valid value for field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await selectTaskByName(visibilityConditionTasks[6].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[5].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[5].entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabVarVar);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabVarVar);
|
||||||
@@ -322,14 +292,54 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[5].entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[6].entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[6].entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[5].entry.name);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[5].entry.name);
|
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
await widget.tab().checkTabIsDisplayedByLabel(tab.tabVarVar);
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabVarVar);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C315180] Should be able to complete a standalone task with tab when has multiple visibility conditions and next condition operators', async () => {
|
||||||
|
await chooseFilter(myTasksFilter, myTasksFilterTitle);
|
||||||
|
await selectTaskByName(visibilityConditionTasks[3].entry.name);
|
||||||
|
|
||||||
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabMultipleConditions);
|
||||||
|
await widget.textWidget().isWidgetVisible(widgets.textOneId);
|
||||||
|
await widget.textWidget().setValue(widgets.textOneId, value.displayTab);
|
||||||
|
await widget.textWidget().isWidgetVisible(widgets.textThreeId);
|
||||||
|
await widget.textWidget().setValue(widgets.textThreeId, value.displayTab);
|
||||||
|
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabMultipleConditions);
|
||||||
|
|
||||||
|
await widget.textWidget().setValue(widgets.textThreeId, value.notDisplayTab);
|
||||||
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabMultipleConditions);
|
||||||
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
|
||||||
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(myTasksFilterTitle);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[3].entry.name);
|
||||||
|
|
||||||
|
await chooseFilterAndSelectTaskByName(completedTasksFilter, visibilityConditionTasks[3].entry.name);
|
||||||
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
|
||||||
|
await widget.tab().checkTabIsDisplayedByLabel(tab.tabMultipleConditions);
|
||||||
|
});
|
||||||
|
|
||||||
|
async function chooseFilterAndSelectTaskByName(filterName: string, taskName: string): Promise<void> {
|
||||||
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(filterName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(taskName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(taskName);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function selectTaskByName(taskName: string): Promise<void> {
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(taskName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(taskName);
|
||||||
|
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function chooseFilter(filterName: string, filterTitle: string): Promise<void> {
|
||||||
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(filterName);
|
||||||
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe(filterTitle);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -37,6 +37,8 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
const candidateBaseApp = browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.name;
|
const candidateBaseApp = browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.name;
|
||||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||||
|
const simpleAppProcess = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes;
|
||||||
|
const simpleAppForm = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms;
|
||||||
|
|
||||||
const loginSSOPage = new LoginPage();
|
const loginSSOPage = new LoginPage();
|
||||||
const navigationBarPage = new NavigationBarPage();
|
const navigationBarPage = new NavigationBarPage();
|
||||||
@@ -51,9 +53,18 @@ describe('Task form cloud component', () => {
|
|||||||
const queryService = new QueryService(apiService);
|
const queryService = new QueryService(apiService);
|
||||||
const processDefinitionService = new ProcessDefinitionsService(apiService);
|
const processDefinitionService = new ProcessDefinitionsService(apiService);
|
||||||
const processInstancesService = new ProcessInstancesService(apiService);
|
const processInstancesService = new ProcessInstancesService(apiService);
|
||||||
|
const formCloudService = new FormCloudService(apiService);
|
||||||
|
|
||||||
|
const completedTaskName = StringUtil.generateRandomString(), assignedTaskName = StringUtil.generateRandomString();
|
||||||
|
const myTasksFilter = 'my-tasks';
|
||||||
|
const completedTasksFilter = 'completed-tasks';
|
||||||
|
const dateFieldId = 'Date0rzbb6';
|
||||||
|
const defaultDate = '2020-07-09';
|
||||||
|
const changedDate = '2020-07-10';
|
||||||
|
const dropdownFieldId = 'DropdownOptions';
|
||||||
|
|
||||||
let completedTask, createdTask, assigneeTask, toBeCompletedTask, formValidationsTask, formTaskId, assigneeTaskId, assigneeReleaseTask, candidateUsersTask ;
|
let completedTask, createdTask, assigneeTask, toBeCompletedTask, formValidationsTask, formTaskId, assigneeTaskId, assigneeReleaseTask, candidateUsersTask ;
|
||||||
const completedTaskName = StringUtil.generateRandomString(), assignedTaskName = StringUtil.generateRandomString();
|
let dateTimerTaskId, dateTimerTask, dateTimerChangedTaskId, dateTimerChangedTask, dropdownOptionsTask;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await apiService.login(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
await apiService.login(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||||
@@ -63,9 +74,7 @@ describe('Task form cloud component', () => {
|
|||||||
assigneeTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp);
|
assigneeTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp);
|
||||||
await tasksService.claimTask(assigneeTask.entry.id, candidateBaseApp);
|
await tasksService.claimTask(assigneeTask.entry.id, candidateBaseApp);
|
||||||
|
|
||||||
const formCloudService = new FormCloudService(apiService);
|
const formToTestValidationsKey = await formCloudService.getIdByFormName(candidateBaseApp,
|
||||||
|
|
||||||
const formToTestValidationsKey = await formCloudService.getIdByFormName(browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.name,
|
|
||||||
browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.forms.formtotestvalidations);
|
browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.forms.formtotestvalidations);
|
||||||
|
|
||||||
formValidationsTask = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), candidateBaseApp, formToTestValidationsKey);
|
formValidationsTask = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), candidateBaseApp, formToTestValidationsKey);
|
||||||
@@ -88,16 +97,31 @@ describe('Task form cloud component', () => {
|
|||||||
await tasksService.claimTask(candidateUsersTask.entry.id, candidateBaseApp);
|
await tasksService.claimTask(candidateUsersTask.entry.id, candidateBaseApp);
|
||||||
|
|
||||||
processDefinition = await processDefinitionService
|
processDefinition = await processDefinitionService
|
||||||
.getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes.dropdownrestprocess, simpleApp);
|
.getProcessDefinitionByName(simpleAppProcess.dropdownrestprocess, simpleApp);
|
||||||
|
|
||||||
const formProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
const formProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
||||||
|
|
||||||
const formTasks = await queryService.getProcessInstanceTasks(formProcess.entry.id, simpleApp);
|
const formTasks = await queryService.getProcessInstanceTasks(formProcess.entry.id, simpleApp);
|
||||||
|
|
||||||
formTaskId = formTasks.list.entries[0].entry.id;
|
formTaskId = formTasks.list.entries[0].entry.id;
|
||||||
|
|
||||||
|
const dropdownOptionsId = await formCloudService.getIdByFormName(simpleApp, simpleAppForm.dropdownWithOptions.name);
|
||||||
|
dropdownOptionsTask = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(),
|
||||||
|
simpleApp, dropdownOptionsId);
|
||||||
|
await tasksService.claimTask(dropdownOptionsTask.entry.id, simpleApp);
|
||||||
|
|
||||||
|
const timerProcessDefinition = await processDefinitionService
|
||||||
|
.getProcessDefinitionByName(simpleAppProcess.intermediateDateProcessVarTimer, simpleApp);
|
||||||
|
const dateTimerProcess = await processInstancesService.createProcessInstance(timerProcessDefinition.entry.key, simpleApp);
|
||||||
|
dateTimerTask = await queryService.getProcessInstanceTasks(dateTimerProcess.entry.id, simpleApp);
|
||||||
|
dateTimerTaskId = dateTimerTask.list.entries[0].entry.id;
|
||||||
|
|
||||||
|
const timerChangedProcessDefinition = await processDefinitionService
|
||||||
|
.getProcessDefinitionByName(simpleAppProcess.intermediateDateProcessVarTimer, simpleApp);
|
||||||
|
const dateTimerChangedProcess = await processInstancesService.createProcessInstance(timerChangedProcessDefinition.entry.key, simpleApp);
|
||||||
|
dateTimerChangedTask = await queryService.getProcessInstanceTasks(dateTimerChangedProcess.entry.id, simpleApp);
|
||||||
|
dateTimerChangedTaskId = dateTimerChangedTask.list.entries[0].entry.id;
|
||||||
|
|
||||||
/* cspell: disable-next-line */
|
/* cspell: disable-next-line */
|
||||||
const assigneeProcessDefinition = await processDefinitionService.getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes.calledprocess, simpleApp);
|
const assigneeProcessDefinition = await processDefinitionService.getProcessDefinitionByName(simpleAppProcess.calledprocess, simpleApp);
|
||||||
const assigneeProcess = await processInstancesService.createProcessInstance(assigneeProcessDefinition.entry.key, simpleApp);
|
const assigneeProcess = await processInstancesService.createProcessInstance(assigneeProcessDefinition.entry.key, simpleApp);
|
||||||
assigneeReleaseTask = await queryService.getProcessInstanceTasks(assigneeProcess.entry.id, simpleApp);
|
assigneeReleaseTask = await queryService.getProcessInstanceTasks(assigneeProcess.entry.id, simpleApp);
|
||||||
assigneeTaskId = assigneeReleaseTask.list.entries[0].entry.id;
|
assigneeTaskId = assigneeReleaseTask.list.entries[0].entry.id;
|
||||||
@@ -118,7 +142,7 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
it('[C310366] Should refresh buttons and form after an action is complete', async () => {
|
it('[C310366] Should refresh buttons and form after an action is complete', async () => {
|
||||||
await appListCloudComponent.goToApp(simpleApp);
|
await appListCloudComponent.goToApp(simpleApp);
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await expect(tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
|
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
|
||||||
@@ -141,9 +165,7 @@ describe('Task form cloud component', () => {
|
|||||||
await taskFormCloudComponent.checkReleaseButtonIsDisplayed();
|
await taskFormCloudComponent.checkReleaseButtonIsDisplayed();
|
||||||
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await openTaskByIdFromFilters(completedTasksFilter, formTaskId);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(formTaskId);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(formTaskId);
|
|
||||||
|
|
||||||
await taskFormCloudComponent.checkFormIsReadOnly();
|
await taskFormCloudComponent.checkFormIsReadOnly();
|
||||||
await taskFormCloudComponent.checkClaimButtonIsNotDisplayed();
|
await taskFormCloudComponent.checkClaimButtonIsNotDisplayed();
|
||||||
@@ -154,29 +176,59 @@ describe('Task form cloud component', () => {
|
|||||||
|
|
||||||
it('[C306872] Should not be able to Release a process task which has only assignee', async () => {
|
it('[C306872] Should not be able to Release a process task which has only assignee', async () => {
|
||||||
await appListCloudComponent.goToApp(simpleApp);
|
await appListCloudComponent.goToApp(simpleApp);
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await openTaskByIdFromFilters(myTasksFilter, assigneeTaskId);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(assigneeTaskId);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(assigneeTaskId);
|
|
||||||
|
|
||||||
await expect(await taskHeaderCloudPage.getAssignee()).toEqual(assigneeReleaseTask.list.entries[0].entry.assignee);
|
await expect(await taskHeaderCloudPage.getAssignee()).toEqual(assigneeReleaseTask.list.entries[0].entry.assignee);
|
||||||
await expect(await taskHeaderCloudPage.getStatus()).toEqual('ASSIGNED');
|
await expect(await taskHeaderCloudPage.getStatus()).toEqual('ASSIGNED');
|
||||||
await taskFormCloudComponent.checkReleaseButtonIsNotDisplayed();
|
await taskFormCloudComponent.checkReleaseButtonIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C310200] Should be able to save a task form', async () => {
|
||||||
|
const selectedOption = 'option1';
|
||||||
|
const dropdownId = '#DropdownOptions';
|
||||||
|
|
||||||
|
await goToAppOpenDropdownTaskByNameFromFilters(myTasksFilter, dropdownOptionsTask.entry.name);
|
||||||
|
await widget.dropdown().openDropdown(dropdownId);
|
||||||
|
await widget.dropdown().selectOption(selectedOption, dropdownId );
|
||||||
|
await taskFormCloudComponent.checkSaveButtonIsDisplayed();
|
||||||
|
await taskFormCloudComponent.clickSaveButton();
|
||||||
|
|
||||||
|
await navigationBarPage.clickHomeButton();
|
||||||
|
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||||
|
await appListCloudComponent.checkApsContainer();
|
||||||
|
await goToAppOpenDropdownTaskByNameFromFilters(myTasksFilter, dropdownOptionsTask.entry.name);
|
||||||
|
|
||||||
|
await expect(await widget.dropdown().getSelectedOptionText(dropdownFieldId)).toBe(selectedOption);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C313200] Should be able to complete a Task form with process date variable mapped to a Date widget in the form', async () => {
|
||||||
|
await appListCloudComponent.goToApp(simpleApp);
|
||||||
|
await openTaskByIdFromFilters(myTasksFilter, dateTimerTaskId);
|
||||||
|
await verifyDateInput(dateFieldId, defaultDate);
|
||||||
|
await completeTask();
|
||||||
|
await verifyDateCompletedTask(dateTimerTaskId, defaultDate);
|
||||||
|
|
||||||
|
await openTaskByIdFromFilters(myTasksFilter, dateTimerChangedTaskId );
|
||||||
|
await verifyDateInput(dateFieldId, defaultDate);
|
||||||
|
await widget.dateWidget().clearDateInput(dateFieldId);
|
||||||
|
await widget.dateWidget().setDateInput(dateFieldId, changedDate );
|
||||||
|
await completeTask();
|
||||||
|
|
||||||
|
await verifyDateCompletedTask(dateTimerChangedTaskId, changedDate);
|
||||||
|
});
|
||||||
|
|
||||||
describe('Candidate Base App', () => {
|
describe('Candidate Base App', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await appListCloudComponent.goToApp(candidateBaseApp);
|
await appListCloudComponent.goToApp(candidateBaseApp);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C307032] Should display the appropriate title for the unclaim option of a Task', async () => {
|
it('[C307032] Should display the appropriate title for the unclaim option of a Task', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await openTaskByIdFromFilters(myTasksFilter, candidateUsersTask.entry.id);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(candidateUsersTask.entry.id);
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(candidateUsersTask.entry.id);
|
|
||||||
await expect(await taskFormCloudComponent.getReleaseButtonText()).toBe('RELEASE');
|
await expect(await taskFormCloudComponent.getReleaseButtonText()).toBe('RELEASE');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C310142] Empty content is displayed when having a task without form', async () => {
|
it('[C310142] Empty content is displayed when having a task without form', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
|
||||||
await taskFormCloudComponent.checkFormIsNotDisplayed();
|
await taskFormCloudComponent.checkFormIsNotDisplayed();
|
||||||
@@ -187,10 +239,8 @@ describe('Task form cloud component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C310199] Should not be able to complete a task when required field is empty or invalid data is added to a field', async () => {
|
it('[C310199] Should not be able to complete a task when required field is empty or invalid data is added to a field', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(formValidationsTask.entry.name);
|
await selectTaskByName(formValidationsTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(formValidationsTask.entry.name);
|
|
||||||
await taskFormCloudComponent.checkFormIsDisplayed();
|
|
||||||
await taskFormCloudComponent.formFields().checkFormIsDisplayed();
|
await taskFormCloudComponent.formFields().checkFormIsDisplayed();
|
||||||
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Text0tma8h');
|
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Text0tma8h');
|
||||||
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Date0m1moq');
|
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Date0m1moq');
|
||||||
@@ -223,7 +273,7 @@ describe('Task form cloud component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C307093] Complete button is not displayed when the task is already completed', async () => {
|
it('[C307093] Complete button is not displayed when the task is already completed', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(completedTasksFilter);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
|
||||||
@@ -232,7 +282,7 @@ describe('Task form cloud component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C307095] Task can not be completed by owner user', async () => {
|
it('[C307095] Task can not be completed by owner user', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||||
|
|
||||||
@@ -241,19 +291,15 @@ describe('Task form cloud component', () => {
|
|||||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
|
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
|
||||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().setStatusFilterDropDown('CREATED');
|
await tasksCloudDemoPage.editTaskFilterCloudComponent().setStatusFilterDropDown('CREATED');
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
|
await selectTaskByName(createdTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(createdTask.entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C307110] Task list is displayed after clicking on Cancel button', async () => {
|
it('[C307110] Task list is displayed after clicking on Cancel button', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
|
await selectTaskByName(assigneeTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
|
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
await taskFormCloudComponent.clickCancelButton();
|
await taskFormCloudComponent.clickCancelButton();
|
||||||
|
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
@@ -261,35 +307,67 @@ describe('Task form cloud component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C307094] Standalone Task can be completed by a user that is owner and assignee', async () => {
|
it('[C307094] Standalone Task can be completed by a user that is owner and assignee', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
|
await selectTaskByName(toBeCompletedTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(toBeCompletedTask.entry.name);
|
await completeTask();
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
await taskFormCloudComponent.checkCompleteButtonIsDisplayed();
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(toBeCompletedTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(toBeCompletedTask.entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(completedTasksFilter);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
|
||||||
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C307111] Task of a process can be completed by a user that is owner and assignee', async () => {
|
it('[C307111] Task of a process can be completed by a user that is owner and assignee', async () => {
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(myTasksFilter);
|
||||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
|
await selectTaskByName(completedTask.entry.name);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTask.entry.name);
|
await completeTask();
|
||||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
|
||||||
await taskFormCloudComponent.checkCompleteButtonIsDisplayed();
|
|
||||||
await taskFormCloudComponent.clickCompleteButton();
|
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask.entry.name);
|
||||||
|
|
||||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(completedTasksFilter);
|
||||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
|
||||||
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
async function openTaskByIdFromFilters(filterName: string, taskId: string): Promise<void> {
|
||||||
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(filterName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(taskId);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(taskId);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function verifyDateInput(widgetId: string, input: string): Promise<void> {
|
||||||
|
await widget.dateWidget().checkWidgetIsVisible(widgetId);
|
||||||
|
await expect(await widget.dateWidget().getDateInput(widgetId)).toBe(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function selectTaskByName(taskName: string): Promise<void> {
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(taskName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(taskName);
|
||||||
|
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function verifyDateCompletedTask(taskId: string, input: string): Promise<void> {
|
||||||
|
await openTaskByIdFromFilters(completedTasksFilter, taskId );
|
||||||
|
await taskFormCloudComponent.checkFormIsReadOnly();
|
||||||
|
await verifyDateInput(dateFieldId, input);
|
||||||
|
await taskFormCloudComponent.clickCancelButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function goToAppOpenDropdownTaskByNameFromFilters(filterName: string, taskName: string): Promise<void> {
|
||||||
|
await appListCloudComponent.goToApp(simpleApp);
|
||||||
|
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter(filterName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(taskName);
|
||||||
|
await tasksCloudDemoPage.taskListCloudComponent().selectRow(taskName);
|
||||||
|
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
||||||
|
await widget.dropdown().isWidgetVisible(dropdownFieldId);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function completeTask(): Promise<void> {
|
||||||
|
await taskFormCloudComponent.checkCompleteButtonIsDisplayed();
|
||||||
|
await taskFormCloudComponent.clickCompleteButton();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
@@ -57,7 +57,7 @@ let specs = function () {
|
|||||||
|
|
||||||
if (LIST_SPECS && LIST_SPECS !== '') {
|
if (LIST_SPECS && LIST_SPECS !== '') {
|
||||||
arraySpecs = LIST_SPECS.split(',');
|
arraySpecs = LIST_SPECS.split(',');
|
||||||
arraySpecs = arraySpecs.map((el) => './' + el);
|
arraySpecs = arraySpecs.map((el) => './' + el.replace('e2e/', ''));
|
||||||
|
|
||||||
specExists(arraySpecs);
|
specExists(arraySpecs);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -24,15 +24,18 @@ fi;
|
|||||||
#-b is needed to run the Folder upload test that are not workin in Headless chrome
|
#-b is needed to run the Folder upload test that are not workin in Headless chrome
|
||||||
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -b -save -m 4 || exit 1)
|
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -b -save -m 4 || exit 1)
|
||||||
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]]; then
|
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]]; then
|
||||||
|
echo "Run all e2e $CONTEXT_ENV"
|
||||||
$RUN_CHECK
|
$RUN_CHECK
|
||||||
$RUN_E2E --folder $CONTEXT_ENV
|
$RUN_E2E --folder $CONTEXT_ENV
|
||||||
else if [[ $AFFECTED_E2E = "e2e/$CONTEXT_ENV" ]];
|
else if [[ $AFFECTED_E2E == "e2e/$CONTEXT_ENV" ]]; then
|
||||||
then
|
echo "Run affected e2e"
|
||||||
|
|
||||||
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
||||||
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
||||||
if [[ $LIST_SPECS != "" ]];
|
|
||||||
then
|
|
||||||
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
||||||
|
|
||||||
|
if [[ $LIST_SPECS != "" ]]; then
|
||||||
$RUN_CHECK
|
$RUN_CHECK
|
||||||
$RUN_E2E --specs "$LIST_SPECS"
|
$RUN_E2E --specs "$LIST_SPECS"
|
||||||
fi
|
fi
|
||||||
|
@@ -24,16 +24,18 @@ fi;
|
|||||||
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1
|
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1
|
||||||
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -m 2 || exit 1)
|
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -m 2 || exit 1)
|
||||||
|
|
||||||
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]];
|
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]]; then
|
||||||
then
|
echo "Run all e2e $CONTEXT_ENV"
|
||||||
$RUN_E2E --folder $CONTEXT_ENV || exit 1
|
$RUN_E2E --folder $CONTEXT_ENV || exit 1
|
||||||
else if [[ $AFFECTED_E2E = "e2e/$CONTEXT_ENV" ]];
|
else if [[ $AFFECTED_E2E == "e2e/$CONTEXT_ENV" ]]; then
|
||||||
then
|
echo "Run affected e2e"
|
||||||
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
||||||
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
||||||
|
|
||||||
|
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
||||||
|
|
||||||
if [[ $LIST_SPECS != "" ]];
|
if [[ $LIST_SPECS != "" ]];
|
||||||
then
|
then
|
||||||
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
|
||||||
$RUN_E2E --specs "$LIST_SPECS" || exit 1
|
$RUN_E2E --specs "$LIST_SPECS" || exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@@ -27,20 +27,20 @@ check_env(){
|
|||||||
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$E2E_HOST_BPM" -u "$E2E_ADMIN_EMAIL_IDENTITY" -p "$E2E_ADMIN_PASSWORD_IDENTITY" || exit 1
|
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$E2E_HOST_BPM" -u "$E2E_ADMIN_EMAIL_IDENTITY" -p "$E2E_ADMIN_PASSWORD_IDENTITY" || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]];
|
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]]; then
|
||||||
then
|
echo "Run all e2e $CONTEXT_ENV"
|
||||||
echo "Case 1 - adf-testing has been changed";
|
|
||||||
check_env;
|
check_env;
|
||||||
$RUN_E2E --folder $CONTEXT_ENV
|
$RUN_E2E --folder $CONTEXT_ENV
|
||||||
else if [[ $AFFECTED_E2E = "e2e/$CONTEXT_ENV" ]];
|
else if [[ $AFFECTED_E2E == "e2e/$CONTEXT_ENV" ]]; then
|
||||||
then
|
echo "Run affected e2e"
|
||||||
echo "Case 2 - e2e/$CONTEXT_ENV folder has been changed";
|
|
||||||
check_env;
|
check_env;
|
||||||
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
||||||
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV/" | paste -sd , -)"
|
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV/" | paste -sd , -)"
|
||||||
|
|
||||||
|
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
||||||
|
|
||||||
if [[ $LIST_SPECS != "" ]];
|
if [[ $LIST_SPECS != "" ]];
|
||||||
then
|
then
|
||||||
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
|
||||||
$RUN_E2E --specs "$LIST_SPECS"
|
$RUN_E2E --specs "$LIST_SPECS"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@@ -22,16 +22,19 @@ fi;
|
|||||||
./node_modules/@alfresco/adf-cli/bin/adf-cli check-ps-env --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1
|
./node_modules/@alfresco/adf-cli/bin/adf-cli check-ps-env --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1
|
||||||
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -m 2 || exit 1)
|
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -m 2 || exit 1)
|
||||||
|
|
||||||
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]];
|
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || "${TRAVIS_EVENT_TYPE}" == "push" ]]; then
|
||||||
then
|
echo "Run all e2e $CONTEXT_ENV"
|
||||||
$RUN_E2E --folder $CONTEXT_ENV
|
$RUN_E2E --folder $CONTEXT_ENV
|
||||||
else if [[ $AFFECTED_E2E = "e2e/$CONTEXT_ENV" ]];
|
else if [[ $AFFECTED_E2E == "e2e/$CONTEXT_ENV" ]]; then
|
||||||
then
|
echo "Run affected e2e"
|
||||||
|
|
||||||
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
||||||
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV/" | paste -sd , -)"
|
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV/" | paste -sd , -)"
|
||||||
|
|
||||||
|
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
||||||
|
|
||||||
if [[ $LIST_SPECS != "" ]];
|
if [[ $LIST_SPECS != "" ]];
|
||||||
then
|
then
|
||||||
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
|
||||||
$RUN_E2E --specs "$LIST_SPECS"
|
$RUN_E2E --specs "$LIST_SPECS"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@@ -25,13 +25,15 @@ RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2
|
|||||||
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "content-services" || "${TRAVIS_EVENT_TYPE}" == "push" ]];
|
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "content-services" || "${TRAVIS_EVENT_TYPE}" == "push" ]];
|
||||||
then
|
then
|
||||||
$RUN_E2E --folder $CONTEXT_ENV
|
$RUN_E2E --folder $CONTEXT_ENV
|
||||||
else if [[ $AFFECTED_E2E = "e2e/$CONTEXT_ENV" ]];
|
else if [[ $AFFECTED_E2E == "e2e/$CONTEXT_ENV" ]];
|
||||||
then
|
then
|
||||||
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
HEAD_SHA_BRANCH="$(git merge-base origin/$TRAVIS_BRANCH HEAD)"
|
||||||
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
LIST_SPECS="$(git diff --name-only $HEAD_SHA_BRANCH HEAD | grep "^e2e/$CONTEXT_ENV" | paste -sd , -)"
|
||||||
|
|
||||||
|
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
||||||
|
|
||||||
if [[ $LIST_SPECS != "" ]];
|
if [[ $LIST_SPECS != "" ]];
|
||||||
then
|
then
|
||||||
echo "Run $CONTEXT_ENV e2e based on the sha $HEAD_SHA_BRANCH with the specs: "$LIST_SPECS
|
|
||||||
$RUN_E2E --specs "$LIST_SPECS"
|
$RUN_E2E --specs "$LIST_SPECS"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user