mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
@@ -25,7 +25,7 @@ import { createApiService,
|
||||
UserModel,
|
||||
UsersActions
|
||||
} from '@alfresco/adf-testing';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { CommentsPage } from '../../core/pages/comments.page';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { ActivitiCommentsApi, TaskActionsApi } from '@alfresco/js-api';
|
||||
@@ -47,7 +47,9 @@ describe('Comment component for Processes', () => {
|
||||
const activitiCommentsApi = new ActivitiCommentsApi(apiService.getInstance());
|
||||
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
|
||||
|
||||
let user; let appId; let secondUser;
|
||||
let user: UserModel;
|
||||
let appId: number;
|
||||
let secondUser: UserModel;
|
||||
|
||||
const taskName = {
|
||||
completed_task: 'Test Completed',
|
||||
|
@@ -15,20 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService,
|
||||
ApplicationsUtil,
|
||||
LoginPage,
|
||||
PaginationPage,
|
||||
StringUtil, TaskUtil,
|
||||
UsersActions
|
||||
} from '@alfresco/adf-testing';
|
||||
import { createApiService, ApplicationsUtil, LoginPage, PaginationPage, StringUtil, TaskUtil, UsersActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
|
||||
describe('Task List Pagination - Sorting', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -41,9 +34,8 @@ describe('Task List Pagination - Sorting', () => {
|
||||
const taskUtil = new TaskUtil(apiService);
|
||||
|
||||
const nrOfTasks = 20;
|
||||
let processUserModel;
|
||||
const taskNameBase = 'Task';
|
||||
const taskNames = StringUtil.generateFilesNames(10, nrOfTasks + 9, taskNameBase, '');
|
||||
let processUserModel: UserModel;
|
||||
const taskNames = StringUtil.generateFilesNames(10, nrOfTasks + 9, 'Task', '');
|
||||
|
||||
const itemsPerPage = {
|
||||
five: '5',
|
||||
|
@@ -25,7 +25,7 @@ import {
|
||||
UsersActions,
|
||||
Widget
|
||||
} from '@alfresco/adf-testing';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TaskActionsApi, TasksApi } from '@alfresco/js-api';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
@@ -40,8 +40,8 @@ describe('Start Task - Task App', () => {
|
||||
const taskPage = new TasksPage();
|
||||
const widget = new Widget();
|
||||
|
||||
let processUserModel; let anotherUser;
|
||||
const noFormMessage = 'No forms attached';
|
||||
let processUserModel: UserModel;
|
||||
let anotherUser: UserModel;
|
||||
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
@@ -81,7 +81,7 @@ describe('Start Task - Task App', () => {
|
||||
await taskPage.taskDetails().checkAttachFormButtonIsDisplayed();
|
||||
await taskPage.taskDetails().checkAttachFormButtonIsEnabled();
|
||||
await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM);
|
||||
await expect(await taskDetails.getNoFormMessage()).toEqual(noFormMessage);
|
||||
await expect(await taskDetails.getNoFormMessage()).toEqual('No forms attached');
|
||||
});
|
||||
|
||||
it('[C268910] Should a standalone task be displayed in completed tasks when completing it', async () => {
|
||||
@@ -139,7 +139,7 @@ describe('Start Task - Task App', () => {
|
||||
|
||||
await taskPage.formFields().noFormIsDisplayed();
|
||||
await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM);
|
||||
await expect(await taskDetails.getNoFormMessage()).toEqual(noFormMessage);
|
||||
await expect(await taskDetails.getNoFormMessage()).toEqual('No forms attached');
|
||||
});
|
||||
|
||||
it('[C329799] Form actions are enabled in assigned task', async () => {
|
||||
|
@@ -20,32 +20,29 @@ import { browser } from 'protractor';
|
||||
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { AttachmentListPage } from './../pages/attachment-list.page';
|
||||
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { AttachmentListPage } from '../pages/attachment-list.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { AppDefinitionRepresentation } from '@alfresco/js-api';
|
||||
|
||||
describe('Start Task - Custom App', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const attachmentListPage = new AttachmentListPage();
|
||||
const processServiceTabBarPage = new ProcessServiceTabBarPage();
|
||||
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const applicationsService = new ApplicationsUtil(apiService);
|
||||
|
||||
let processUserModel; let assigneeUserModel;
|
||||
const formTextField = app.form_fields.form_fieldId;
|
||||
const formFieldValue = 'First value ';
|
||||
let processUserModel: UserModel;
|
||||
let assigneeUserModel: UserModel;
|
||||
|
||||
const taskPage = new TasksPage();
|
||||
const firstComment = 'comm1'; const firstChecklist = 'checklist1';
|
||||
const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File', 'Spinner'];
|
||||
const showHeaderTask = 'Show Header';
|
||||
let appModel;
|
||||
let appModel: AppDefinitionRepresentation;
|
||||
|
||||
const pngFile = new FileModel({
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location,
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name
|
||||
@@ -62,7 +59,7 @@ describe('Start Task - Custom App', () => {
|
||||
appModel = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
|
||||
await loginPage.login(processUserModel.username, processUserModel.password);
|
||||
});
|
||||
});
|
||||
|
||||
it('[C263942] Should be possible to modify a task', async () => {
|
||||
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToApp(appModel.name)).clickTasksButton();
|
||||
@@ -86,14 +83,19 @@ describe('Start Task - Custom App', () => {
|
||||
|
||||
await taskDetails.clickAddInvolvedUserButton();
|
||||
|
||||
await expect(await taskPage.taskDetails().getInvolvedUserEmail(assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName)
|
||||
).toEqual(assigneeUserModel.email);
|
||||
await expect(await taskPage.taskDetails().getInvolvedUserEmail(assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName)).toEqual(
|
||||
assigneeUserModel.email
|
||||
);
|
||||
|
||||
await taskDetails.selectActivityTab();
|
||||
|
||||
const firstComment = 'comm1';
|
||||
await taskDetails.addComment(firstComment);
|
||||
await taskDetails.checkCommentIsDisplayed(firstComment);
|
||||
|
||||
const checklistDialog = await taskPage.clickOnAddChecklistButton();
|
||||
const firstChecklist = 'checklist1';
|
||||
|
||||
await checklistDialog.addName(firstChecklist);
|
||||
await checklistDialog.clickCreateChecklistButton();
|
||||
|
||||
@@ -137,6 +139,8 @@ describe('Start Task - Custom App', () => {
|
||||
});
|
||||
|
||||
it('[C263949] Should be possible to save filled form', async () => {
|
||||
const formFieldValue = 'First value ';
|
||||
|
||||
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToApp(appModel.name)).clickTasksButton();
|
||||
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
|
||||
|
||||
@@ -146,22 +150,15 @@ describe('Start Task - Custom App', () => {
|
||||
await task.addName(tasks[4]);
|
||||
await task.clickStartButton();
|
||||
|
||||
const formTextField = app.form_fields.form_fieldId;
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[4]);
|
||||
|
||||
await taskPage.formFields().setFieldValue(formTextField, formFieldValue);
|
||||
|
||||
await taskPage.formFields().refreshForm();
|
||||
|
||||
await taskPage.formFields().checkFieldValue(formTextField, '');
|
||||
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[4]);
|
||||
|
||||
await taskPage.formFields().setFieldValue(formTextField, formFieldValue);
|
||||
|
||||
await taskPage.formFields().checkFieldValue(formTextField, formFieldValue);
|
||||
|
||||
await taskPage.formFields().saveForm();
|
||||
|
||||
await taskPage.formFields().checkFieldValue(formTextField, formFieldValue);
|
||||
});
|
||||
|
||||
@@ -198,25 +195,4 @@ describe('Start Task - Custom App', () => {
|
||||
await attachmentListPage.clickAttachFileButton(pngFile.location);
|
||||
await attachmentListPage.checkFileIsAttached(pngFile.name);
|
||||
});
|
||||
|
||||
it('[C263945] Should Information box be hidden when showHeaderContent property is set on false on custom app', async () => {
|
||||
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToApp(appModel.name)).clickTasksButton();
|
||||
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
|
||||
const task = await taskPage.createNewTask();
|
||||
await task.addName(showHeaderTask);
|
||||
await task.clickStartButton();
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(showHeaderTask);
|
||||
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await taskPage.taskDetails().appSettingsToggles().disableShowHeader();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
|
||||
await taskPage.taskDetails().taskInfoDrawerIsNotDisplayed();
|
||||
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await taskPage.taskDetails().appSettingsToggles().enableShowHeader();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
|
||||
await taskPage.taskDetails().taskInfoDrawerIsDisplayed();
|
||||
});
|
||||
});
|
||||
|
@@ -26,19 +26,16 @@ import { createApiService,
|
||||
import { browser } from 'protractor';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { AttachmentListPage } from './../pages/attachment-list.page';
|
||||
import { ChecklistDialog } from './../pages/dialog/create-checklist-dialog.page';
|
||||
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { AttachmentListPage } from '../pages/attachment-list.page';
|
||||
import { ChecklistDialog } from '../pages/dialog/create-checklist-dialog.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import * as CONSTANTS from '../../util/constants';
|
||||
|
||||
describe('Start Task - Task App', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const attachmentListPage = new AttachmentListPage();
|
||||
const processServiceTabBarPage = new ProcessServiceTabBarPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const apiService = createApiService();
|
||||
@@ -46,16 +43,11 @@ describe('Start Task - Task App', () => {
|
||||
const taskUtil = new TaskUtil(apiService);
|
||||
const applicationsUtil = new ApplicationsUtil(apiService);
|
||||
|
||||
let processUserModel; let assigneeUserModel;
|
||||
let processUserModel: UserModel;
|
||||
let assigneeUserModel: UserModel;
|
||||
const formTextField = app.form_fields.form_fieldId;
|
||||
const formFieldValue = 'First value ';
|
||||
const taskPage = new TasksPage();
|
||||
const firstComment = 'comm1'; const firstChecklist = 'checklist1';
|
||||
const taskName255Characters = StringUtil.generateRandomString(255);
|
||||
const taskNameBiggerThen255Characters = StringUtil.generateRandomString(256);
|
||||
const lengthValidationError = 'Length exceeded, 255 characters max.';
|
||||
const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File'];
|
||||
const showHeaderTask = 'Show Header';
|
||||
const jpgFile = new FileModel({
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.JPG.file_location,
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.JPG.file_name
|
||||
@@ -72,7 +64,7 @@ describe('Start Task - Task App', () => {
|
||||
|
||||
await applicationsUtil.importApplication(app.file_path);
|
||||
|
||||
await taskUtil.createStandaloneTask(showHeaderTask);
|
||||
await taskUtil.createStandaloneTask('Show Header');
|
||||
|
||||
await loginPage.login(processUserModel.username, processUserModel.password);
|
||||
});
|
||||
@@ -101,9 +93,11 @@ describe('Start Task - Task App', () => {
|
||||
.toEqual(assigneeUserModel.email);
|
||||
|
||||
await taskDetails.selectActivityTab();
|
||||
const firstComment = 'comm1';
|
||||
await taskDetails.addComment(firstComment);
|
||||
await taskDetails.checkCommentIsDisplayed(firstComment);
|
||||
|
||||
const firstChecklist = 'checklist1';
|
||||
await (await taskPage.clickOnAddChecklistButton()).addName(firstChecklist);
|
||||
|
||||
const checklistDialog = new ChecklistDialog();
|
||||
@@ -133,6 +127,7 @@ describe('Start Task - Task App', () => {
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[4]);
|
||||
|
||||
const formFields = await taskPage.formFields();
|
||||
const formFieldValue = 'First value ';
|
||||
await formFields.setFieldValue(formTextField, formFieldValue);
|
||||
|
||||
await formFields.refreshForm();
|
||||
@@ -169,29 +164,16 @@ describe('Start Task - Task App', () => {
|
||||
await attachmentListPage.checkFileIsAttached(jpgFile.name);
|
||||
});
|
||||
|
||||
it('[C260420] Should Information box be hidden when showHeaderContent property is set on false', async () => {
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(showHeaderTask);
|
||||
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await taskPage.taskDetails().appSettingsToggles().disableShowHeader();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
|
||||
await taskPage.taskDetails().taskInfoDrawerIsNotDisplayed();
|
||||
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await taskPage.taskDetails().appSettingsToggles().enableShowHeader();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
|
||||
await taskPage.taskDetails().taskInfoDrawerIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C291780] Should be displayed an error message if task name exceed 255 characters', async () => {
|
||||
const startDialog = await taskPage.createNewTask();
|
||||
const taskName255Characters = StringUtil.generateRandomString(255);
|
||||
await startDialog.addName(taskName255Characters);
|
||||
|
||||
await startDialog.checkStartButtonIsEnabled();
|
||||
const taskNameBiggerThen255Characters = StringUtil.generateRandomString(256);
|
||||
await startDialog.addName(taskNameBiggerThen255Characters);
|
||||
await startDialog.blur(startDialog.name);
|
||||
const lengthValidationError = 'Length exceeded, 255 characters max.';
|
||||
await startDialog.checkValidationErrorIsDisplayed(lengthValidationError);
|
||||
await startDialog.checkStartButtonIsDisabled();
|
||||
});
|
||||
|
@@ -71,8 +71,7 @@ describe('Task Assignee', () => {
|
||||
tenantId: user.tenantId,
|
||||
type: 1
|
||||
});
|
||||
} catch (e) {
|
||||
}
|
||||
} catch {}
|
||||
|
||||
await apiService.login(user.username, user.password);
|
||||
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
|
||||
|
@@ -24,17 +24,16 @@ import { createApiService,
|
||||
ViewerPage
|
||||
} from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { AttachmentListPage } from './../pages/attachment-list.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { AttachmentListPage } from '../pages/attachment-list.page';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { Activiti } from '@alfresco/js-api';
|
||||
import { Activiti, RelatedContentRepresentation } from '@alfresco/js-api';
|
||||
import ContentApi = Activiti.ContentApi;
|
||||
|
||||
describe('Attachment list action menu for tasks', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -55,7 +54,10 @@ describe('Attachment list action menu for tasks', () => {
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name
|
||||
});
|
||||
const downloadedPngFile = pngFile.name;
|
||||
let tenantId; let appId; let relatedContent; let relatedContentId;
|
||||
let tenantId: number;
|
||||
let appId: number;
|
||||
let relatedContent: RelatedContentRepresentation;
|
||||
let relatedContentId: number;
|
||||
const taskName = {
|
||||
active: 'Active Task',
|
||||
completed: 'Completed Task',
|
||||
@@ -64,7 +66,6 @@ describe('Attachment list action menu for tasks', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await apiService.loginWithProfile('admin');
|
||||
const user = await usersActions.createUser();
|
||||
tenantId = user.tenantId;
|
||||
|
@@ -19,17 +19,18 @@ import {
|
||||
LoginPage,
|
||||
BrowserActions,
|
||||
FileBrowserUtil,
|
||||
ApplicationsUtil, createApiService,
|
||||
ApplicationsUtil,
|
||||
createApiService,
|
||||
UsersActions,
|
||||
TaskUtil
|
||||
TaskUtil,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { ProcessServicesPage } from './../pages/process-services.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { ProcessServicesPage } from '../pages/process-services.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { browser } from 'protractor';
|
||||
|
||||
describe('Task Audit', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -40,11 +41,10 @@ describe('Task Audit', () => {
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const taskUtil = new TaskUtil(apiService);
|
||||
|
||||
let processUserModel;
|
||||
let processUserModel: UserModel;
|
||||
|
||||
const taskTaskApp = 'Audit task task app';
|
||||
const taskCustomApp = 'Audit task custom app';
|
||||
const taskCompleteCustomApp = 'Audit completed task custom app';
|
||||
const auditLogFile = 'Audit.pdf';
|
||||
|
||||
beforeAll(async () => {
|
||||
@@ -59,7 +59,7 @@ describe('Task Audit', () => {
|
||||
await loginPage.login(processUserModel.username, processUserModel.password);
|
||||
});
|
||||
|
||||
afterAll( async () => {
|
||||
afterAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(processUserModel.tenantId);
|
||||
});
|
||||
@@ -96,7 +96,8 @@ describe('Task Audit', () => {
|
||||
it('[C263944] Should Audit file be downloaded when clicking on Task Audit log icon on a custom app standalone completed task', async () => {
|
||||
await (await processServices.goToTaskApp()).clickTasksButton();
|
||||
|
||||
await taskPage.createTask({name: taskCompleteCustomApp});
|
||||
const taskCompleteCustomApp = 'Audit completed task custom app';
|
||||
await taskPage.createTask({ name: taskCompleteCustomApp });
|
||||
|
||||
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(taskCompleteCustomApp);
|
||||
@@ -113,7 +114,7 @@ describe('Task Audit', () => {
|
||||
it('[C263943] Should Audit file be downloaded when clicking on Task Audit log icon on a custom app standalone running task', async () => {
|
||||
await (await processServices.goToTaskApp()).clickTasksButton();
|
||||
|
||||
await taskPage.createTask({name: taskCustomApp});
|
||||
await taskPage.createTask({ name: taskCustomApp });
|
||||
|
||||
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
|
||||
await taskPage.tasksListPage().checkContentIsDisplayed(taskCustomApp);
|
||||
|
@@ -15,27 +15,30 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService,
|
||||
import {
|
||||
createApiService,
|
||||
ApplicationsUtil,
|
||||
LoginPage, ModelsActions,
|
||||
LoginPage,
|
||||
ModelsActions,
|
||||
ProcessUtil,
|
||||
StringUtil, TaskUtil,
|
||||
StringUtil,
|
||||
TaskUtil,
|
||||
UsersActions,
|
||||
Widget,
|
||||
FormUtil
|
||||
FormUtil,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { FiltersPage } from './../pages/filters.page';
|
||||
import { TaskDetailsPage } from './../pages/task-details.page';
|
||||
import { TasksListPage } from './../pages/tasks-list.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { AttachFormPage } from './../pages/attach-form.page';
|
||||
import { FiltersPage } from '../pages/filters.page';
|
||||
import { TaskDetailsPage } from '../pages/task-details.page';
|
||||
import { TasksListPage } from '../pages/tasks-list.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { AttachFormPage } from '../pages/attach-form.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { TaskActionsApi, TasksApi } from '@alfresco/js-api';
|
||||
import { ModelRepresentation, TaskActionsApi, TaskRepresentation, TasksApi } from '@alfresco/js-api';
|
||||
|
||||
describe('Task Details - Form', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -56,7 +59,12 @@ describe('Task Details - Form', () => {
|
||||
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
|
||||
const tasksApi = new TasksApi(apiService.getInstance());
|
||||
|
||||
let task; let otherTask; let user; let newForm; let attachedForm; let otherAttachedForm;
|
||||
let task: TaskRepresentation;
|
||||
let otherTask: TaskRepresentation;
|
||||
let user: UserModel;
|
||||
let newForm: ModelRepresentation;
|
||||
let attachedForm: ModelRepresentation;
|
||||
let otherAttachedForm: ModelRepresentation;
|
||||
|
||||
beforeAll(async () => {
|
||||
const attachedFormModel = {
|
||||
@@ -183,7 +191,8 @@ describe('Task Details - Form', () => {
|
||||
tabFieldVar: 'tabBasicFieldVar'
|
||||
};
|
||||
|
||||
let newTask; let appModel;
|
||||
let newTask;
|
||||
let appModel;
|
||||
|
||||
beforeAll(async () => {
|
||||
appModel = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
|
@@ -15,14 +15,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService, ApplicationsUtil, LoginPage, ProcessUtil, UsersActions } from '@alfresco/adf-testing';
|
||||
import { createApiService, ApplicationsUtil, LoginPage, ProcessUtil, UsersActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { browser } from 'protractor';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { AppDefinitionRepresentation } from '@alfresco/js-api';
|
||||
|
||||
describe('Task Details - No form', () => {
|
||||
|
||||
const app = browser.params.resources.Files.NO_FORM_APP;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -32,9 +32,8 @@ describe('Task Details - No form', () => {
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let processUserModel;
|
||||
const noFormMessage = 'No forms attached';
|
||||
let importedApp;
|
||||
let processUserModel: UserModel;
|
||||
let importedApp: AppDefinitionRepresentation;
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
@@ -45,9 +44,9 @@ describe('Task Details - No form', () => {
|
||||
importedApp = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
await new ProcessUtil(apiService).startProcessOfApp(importedApp.name);
|
||||
await loginPage.login(processUserModel.username, processUserModel.password);
|
||||
});
|
||||
});
|
||||
|
||||
afterAll( async () => {
|
||||
afterAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(processUserModel.tenantId);
|
||||
});
|
||||
@@ -63,6 +62,8 @@ describe('Task Details - No form', () => {
|
||||
await taskPage.taskDetails().checkCompleteTaskButtonIsEnabled();
|
||||
await taskPage.taskDetails().checkAttachFormButtonIsNotDisplayed();
|
||||
await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM);
|
||||
|
||||
const noFormMessage = 'No forms attached';
|
||||
await expect(await taskPage.formFields().getNoFormMessage()).toEqual(noFormMessage);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -15,18 +15,22 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService,
|
||||
import {
|
||||
createApiService,
|
||||
ApplicationsUtil,
|
||||
BrowserActions,
|
||||
LoginPage, ModelsActions,
|
||||
LoginPage,
|
||||
ModelsActions,
|
||||
ProcessUtil,
|
||||
StringUtil, TaskUtil,
|
||||
UsersActions
|
||||
StringUtil,
|
||||
TaskUtil,
|
||||
UsersActions,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ProcessServicesPage } from './../pages/process-services.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { ProcessServicesPage } from '../pages/process-services.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { browser } from 'protractor';
|
||||
import { TaskActionsApi, TaskFormsApi, TasksApi } from '@alfresco/js-api';
|
||||
import { AppDefinitionRepresentation, TaskActionsApi, TaskFormsApi, TasksApi } from '@alfresco/js-api';
|
||||
import Task = require('../../models/APS/Task');
|
||||
import TaskModel = require('../../models/APS/TaskModel');
|
||||
import FormModel = require('../../models/APS/FormModel');
|
||||
@@ -34,7 +38,6 @@ import CONSTANTS = require('../../util/constants');
|
||||
import * as moment from 'moment';
|
||||
|
||||
describe('Task Details component', () => {
|
||||
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
|
||||
const processServices = new ProcessServicesPage();
|
||||
@@ -49,10 +52,11 @@ describe('Task Details component', () => {
|
||||
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
|
||||
const taskFormsApi = new TaskFormsApi(apiService.getInstance());
|
||||
|
||||
let processUserModel; let appModel;
|
||||
let processUserModel: UserModel;
|
||||
let appModel: AppDefinitionRepresentation;
|
||||
const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File'];
|
||||
const TASK_DATE_FORMAT = 'll';
|
||||
let formModel;
|
||||
let formModel: any;
|
||||
|
||||
const taskFormModel = {
|
||||
name: StringUtil.generateRandomString(),
|
||||
@@ -162,7 +166,7 @@ describe('Task Details component', () => {
|
||||
await expect(await taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName());
|
||||
await expect(await taskPage.taskDetails().getCategory()).toEqual(CONSTANTS.TASK_DETAILS.NO_CATEGORY);
|
||||
await expect(await taskPage.taskDetails().getDueDate()).toEqual(CONSTANTS.TASK_DETAILS.NO_DATE);
|
||||
await expect(await taskPage.taskDetails().getParentName()).toEqual(appModel.definition.models[1].name);
|
||||
await expect(await taskPage.taskDetails().getParentName()).toEqual(appModel['definition'].models[1].name);
|
||||
await expect(await taskPage.taskDetails().getDuration()).toEqual('');
|
||||
await expect(await taskPage.taskDetails().getEndDate()).toEqual('');
|
||||
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
|
||||
@@ -193,7 +197,7 @@ describe('Task Details component', () => {
|
||||
await expect(await taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName());
|
||||
await expect(await taskPage.taskDetails().getCategory()).toEqual(CONSTANTS.TASK_DETAILS.NO_CATEGORY);
|
||||
await expect(await taskPage.taskDetails().getDueDate()).toEqual(CONSTANTS.TASK_DETAILS.NO_DATE);
|
||||
await expect(await taskPage.taskDetails().getParentName()).toEqual(appModel.definition.models[1].name);
|
||||
await expect(await taskPage.taskDetails().getParentName()).toEqual(appModel['definition'].models[1].name);
|
||||
await expect(await taskPage.taskDetails().getDuration()).toEqual('');
|
||||
await expect(await taskPage.taskDetails().getEndDate()).toEqual('');
|
||||
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
|
||||
@@ -310,7 +314,7 @@ describe('Task Details component', () => {
|
||||
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.COMPLETED);
|
||||
});
|
||||
|
||||
it('[C260321] Should not be able to edit a completed task\'s details', async () => {
|
||||
it('[C260321] Should not be able to edit a completed task details', async () => {
|
||||
const taskName = 'TaskCompleted';
|
||||
const form = await modelsActions.modelsApi.createModel(taskFormModel);
|
||||
const task = await taskUtil.createStandaloneTask(taskName);
|
||||
|
@@ -18,248 +18,155 @@
|
||||
import { createApiService,
|
||||
ApplicationsUtil,
|
||||
LoginPage, ModelsActions,
|
||||
UserFiltersUtil,
|
||||
UserModel,
|
||||
UsersActions
|
||||
} from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { ProcessServicesPage } from './../pages/process-services.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksListPage } from './../pages/tasks-list.page';
|
||||
import { TaskDetailsPage } from './../pages/task-details.page';
|
||||
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
|
||||
import { AppSettingsTogglesPage } from './../pages/dialog/app-settings-toggles.page';
|
||||
import { TaskFiltersDemoPage } from './../pages/task-filters-demo.page';
|
||||
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
|
||||
import { ProcessServicesPage } from '../pages/process-services.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { TasksListPage } from '../pages/tasks-list.page';
|
||||
import { TaskDetailsPage } from '../pages/task-details.page';
|
||||
import { TaskFiltersDemoPage } from '../pages/task-filters-demo.page';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
describe('Task', () => {
|
||||
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
|
||||
|
||||
describe('Filters', () => {
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const processServicesPage = new ProcessServicesPage();
|
||||
const tasksPage = new TasksPage();
|
||||
const tasksListPage = new TasksListPage();
|
||||
const taskDetailsPage = new TaskDetailsPage();
|
||||
const taskFiltersDemoPage = new TaskFiltersDemoPage();
|
||||
|
||||
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const modelsActions = new ModelsActions(apiService);
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const processServicesPage = new ProcessServicesPage();
|
||||
const tasksPage = new TasksPage();
|
||||
const tasksListPage = new TasksListPage();
|
||||
const taskDetailsPage = new TaskDetailsPage();
|
||||
const taskFiltersDemoPage = new TaskFiltersDemoPage();
|
||||
let appId: number;
|
||||
let user: UserModel;
|
||||
|
||||
const apiService = createApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const modelsActions = new ModelsActions(apiService);
|
||||
beforeEach(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
user = await usersActions.createUser();
|
||||
|
||||
let appId: number; let user: UserModel;
|
||||
await apiService.login(user.username, user.password);
|
||||
const applicationsService = new ApplicationsUtil(apiService);
|
||||
const { id } = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
appId = id;
|
||||
|
||||
beforeEach(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
user = await usersActions.createUser();
|
||||
|
||||
await apiService.login(user.username, user.password);
|
||||
const applicationsService = new ApplicationsUtil(apiService);
|
||||
const { id } = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
appId = id;
|
||||
|
||||
await loginPage.login(user.username, user.password);
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
await processServicesPage.goToApp(app.title);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await modelsActions.deleteModel(appId);
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(user.tenantId);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
it('[C279967] Should display default filters when an app is deployed', async () => {
|
||||
await taskFiltersDemoPage.involvedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.queuedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.completedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C260330] Should display Task Filter List when app is in Task Tab', async () => {
|
||||
await tasksPage.createTask({ name: 'Test' });
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await taskFiltersDemoPage.queuedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Queued Tasks');
|
||||
await tasksListPage.checkContentIsNotDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsEmpty()).toBeDefined();
|
||||
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Involved Tasks');
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
||||
await tasksListPage.checkContentIsNotDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsEmpty()).toBeDefined();
|
||||
});
|
||||
|
||||
it('[C260348] Should display task in Complete Tasks List when task is completed', async () => {
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.queuedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.involvedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.completedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
|
||||
const task = await tasksPage.createNewTask();
|
||||
await task.addName('Test');
|
||||
await task.clickStartButton();
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await taskFiltersDemoPage.queuedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Queued Tasks');
|
||||
await expect(await tasksListPage.getNoTasksFoundMessage()).toBe('No Tasks Found');
|
||||
await expect(await taskDetailsPage.getEmptyTaskDetailsMessage()).toBe('No task details found');
|
||||
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Involved Tasks');
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
||||
await expect(await tasksListPage.getNoTasksFoundMessage()).toBe('No Tasks Found');
|
||||
await expect(await taskDetailsPage.getEmptyTaskDetailsMessage()).toBe('No task details found');
|
||||
});
|
||||
|
||||
it('[C260349] Should sort task by name when Name sorting is clicked', async () => {
|
||||
await tasksPage.createTask({ name: 'Test1' });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await tasksPage.createTask({ name: 'Test2' });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await tasksPage.createTask({ name: 'Test3' });
|
||||
await tasksPage.createTask({ name: 'Test4' });
|
||||
|
||||
await tasksListPage.checkContentIsDisplayed('Test4');
|
||||
await tasksListPage.checkRowIsSelected('Test4');
|
||||
await tasksListPage.checkContentIsDisplayed('Test3');
|
||||
await taskDetailsPage.checkTaskDetailsDisplayed();
|
||||
|
||||
await tasksPage.clickSortByNameAsc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test3');
|
||||
await tasksPage.clickSortByNameDesc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test4');
|
||||
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test1');
|
||||
await tasksListPage.checkContentIsDisplayed('Test2');
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test2');
|
||||
|
||||
await tasksPage.clickSortByNameAsc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test1');
|
||||
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test3');
|
||||
await tasksListPage.checkContentIsDisplayed('Test4');
|
||||
});
|
||||
|
||||
it('[C277264] Should display task filter results when task filter is selected', async () => {
|
||||
await tasksPage.createTask({ name: 'Test' });
|
||||
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.getTaskDetailsTitle()).toBe('Test');
|
||||
});
|
||||
await loginPage.login(user.username, user.password);
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
await processServicesPage.goToApp(app.title);
|
||||
});
|
||||
|
||||
describe('Custom Filters', () => {
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const processServicesPage = new ProcessServicesPage();
|
||||
const processServiceTabBarPage = new ProcessServiceTabBarPage();
|
||||
const appSettingsToggles = new AppSettingsTogglesPage();
|
||||
const taskFiltersDemoPage = new TaskFiltersDemoPage();
|
||||
afterEach(async () => {
|
||||
await modelsActions.deleteModel(appId);
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(user.tenantId);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
const apiService = createApiService();
|
||||
const userFiltersApi = new UserFiltersUtil(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
it('[C279967] Should display default filters when an app is deployed', async () => {
|
||||
await taskFiltersDemoPage.involvedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.queuedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.completedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
});
|
||||
|
||||
let user;
|
||||
let appId: number;
|
||||
it('[C260330] Should display Task Filter List when app is in Task Tab', async () => {
|
||||
await tasksPage.createTask({ name: 'Test' });
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
|
||||
await taskFiltersDemoPage.queuedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Queued Tasks');
|
||||
await tasksListPage.checkContentIsNotDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsEmpty()).toBeDefined();
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
user = await usersActions.createUser();
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Involved Tasks');
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await apiService.login(user.username, user.password);
|
||||
const applicationsService = new ApplicationsUtil(apiService);
|
||||
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
|
||||
appId = await applicationsService.getAppDefinitionId(importedApp.id);
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
||||
await tasksListPage.checkContentIsNotDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsEmpty()).toBeDefined();
|
||||
});
|
||||
|
||||
await loginPage.login(user.username, user.password);
|
||||
});
|
||||
it('[C260348] Should display task in Complete Tasks List when task is completed', async () => {
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.queuedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.involvedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await taskFiltersDemoPage.completedTasksFilter().checkTaskFilterIsDisplayed();
|
||||
|
||||
afterAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(user.tenantId);
|
||||
});
|
||||
const task = await tasksPage.createNewTask();
|
||||
await task.addName('Test');
|
||||
await task.clickStartButton();
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
await processServicesPage.goToApp(app.title);
|
||||
});
|
||||
await taskFiltersDemoPage.queuedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Queued Tasks');
|
||||
await expect(await tasksListPage.getNoTasksFoundMessage()).toBe('No Tasks Found');
|
||||
await expect(await taskDetailsPage.getEmptyTaskDetailsMessage()).toBe('No task details found');
|
||||
|
||||
it('[C260350] Should display a new filter when a filter is added', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
name: 'New Task Filter',
|
||||
appId,
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
const { id } = await userFiltersApi.createUserTaskFilter(newFilter);
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Involved Tasks');
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.checkTaskDetailsDisplayed()).toBeDefined();
|
||||
|
||||
await browser.refresh();
|
||||
await taskFiltersDemoPage.customTaskFilter('New Task Filter').checkTaskFilterIsDisplayed();
|
||||
await userFiltersApi.deleteUserTaskFilter(id);
|
||||
});
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
||||
await expect(await tasksListPage.getNoTasksFoundMessage()).toBe('No Tasks Found');
|
||||
await expect(await taskDetailsPage.getEmptyTaskDetailsMessage()).toBe('No task details found');
|
||||
});
|
||||
|
||||
it('[C286447] Should display the task filter icon when a custom filter is added', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
name: 'New Task Filter with icon',
|
||||
appId,
|
||||
icon: 'glyphicon-cloud',
|
||||
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
const { id } = await userFiltersApi.createUserTaskFilter(newFilter);
|
||||
it('[C260349] Should sort task by name when Name sorting is clicked', async () => {
|
||||
await tasksPage.createTask({ name: 'Test1' });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await browser.refresh();
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await browser.sleep(500);
|
||||
await appSettingsToggles.enableTaskFiltersIcon();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
await tasksPage.createTask({ name: 'Test2' });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').checkTaskFilterIsDisplayed();
|
||||
await expect(await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').getTaskFilterIcon()).toEqual('cloud');
|
||||
await userFiltersApi.deleteUserTaskFilter(id);
|
||||
});
|
||||
await tasksPage.createTask({ name: 'Test3' });
|
||||
await tasksPage.createTask({ name: 'Test4' });
|
||||
|
||||
it('[C286449] Should display task filter icons only when showIcon property is set on true', async () => {
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterHasNoIcon();
|
||||
await tasksListPage.checkContentIsDisplayed('Test4');
|
||||
await tasksListPage.checkRowIsSelected('Test4');
|
||||
await tasksListPage.checkContentIsDisplayed('Test3');
|
||||
await taskDetailsPage.checkTaskDetailsDisplayed();
|
||||
|
||||
await processServiceTabBarPage.clickSettingsButton();
|
||||
await appSettingsToggles.enableTaskFiltersIcon();
|
||||
await processServiceTabBarPage.clickTasksButton();
|
||||
await tasksPage.clickSortByNameAsc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test3');
|
||||
await tasksPage.clickSortByNameDesc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test4');
|
||||
|
||||
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
|
||||
await expect(await taskFiltersDemoPage.myTasksFilter().getTaskFilterIcon()).toEqual('inbox');
|
||||
});
|
||||
await taskFiltersDemoPage.completedTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test1');
|
||||
await tasksListPage.checkContentIsDisplayed('Test2');
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test2');
|
||||
|
||||
await tasksPage.clickSortByNameAsc();
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe('Test1');
|
||||
|
||||
await taskFiltersDemoPage.involvedTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test3');
|
||||
await tasksListPage.checkContentIsDisplayed('Test4');
|
||||
});
|
||||
|
||||
it('[C277264] Should display task filter results when task filter is selected', async () => {
|
||||
await tasksPage.createTask({ name: 'Test' });
|
||||
|
||||
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
|
||||
await tasksListPage.checkContentIsDisplayed('Test');
|
||||
await expect(await taskDetailsPage.getTaskDetailsTitle()).toBe('Test');
|
||||
});
|
||||
});
|
||||
|
@@ -15,18 +15,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createApiService, ApplicationsUtil, LoginPage, UserFiltersUtil, UsersActions } from '@alfresco/adf-testing';
|
||||
import { createApiService, ApplicationsUtil, LoginPage, UserFiltersUtil, UsersActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { ProcessServicesPage } from './../pages/process-services.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksListPage } from './../pages/tasks-list.page';
|
||||
import { TaskDetailsPage } from './../pages/task-details.page';
|
||||
import { TaskFiltersDemoPage } from './../pages/task-filters-demo.page';
|
||||
import { ProcessServicesPage } from '../pages/process-services.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import { TasksListPage } from '../pages/tasks-list.page';
|
||||
import { TaskDetailsPage } from '../pages/task-details.page';
|
||||
import { TaskFiltersDemoPage } from '../pages/task-filters-demo.page';
|
||||
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
describe('Task Filters Sorting', () => {
|
||||
|
||||
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
@@ -41,8 +40,8 @@ describe('Task Filters Sorting', () => {
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const userFiltersUtil = new UserFiltersUtil(apiService);
|
||||
|
||||
let user;
|
||||
let appId;
|
||||
let user: UserModel;
|
||||
let appId: number;
|
||||
|
||||
const tasks = [
|
||||
{ name: 'Task 1 Completed', dueDate: '01/01/2019' },
|
||||
@@ -50,7 +49,8 @@ describe('Task Filters Sorting', () => {
|
||||
{ name: 'Task 3 Completed', dueDate: '03/01/2019' },
|
||||
{ name: 'Task 4', dueDate: '01/01/2019' },
|
||||
{ name: 'Task 5', dueDate: '02/01/2019' },
|
||||
{ name: 'Task 6', dueDate: '03/01/2019' }];
|
||||
{ name: 'Task 6', dueDate: '03/01/2019' }
|
||||
];
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
@@ -67,21 +67,21 @@ describe('Task Filters Sorting', () => {
|
||||
await processServicesPage.checkApsContainer();
|
||||
await processServicesPage.goToApp(app.title);
|
||||
|
||||
await tasksPage.createTask({name: tasks[0].name, dueDate: tasks[0].dueDate});
|
||||
await tasksPage.createTask({ name: tasks[0].name, dueDate: tasks[0].dueDate });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await tasksPage.createTask({name: tasks[1].name, dueDate: tasks[1].dueDate});
|
||||
await tasksPage.createTask({ name: tasks[1].name, dueDate: tasks[1].dueDate });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await tasksPage.createTask({name: tasks[2].name, dueDate: tasks[2].dueDate});
|
||||
await tasksPage.createTask({ name: tasks[2].name, dueDate: tasks[2].dueDate });
|
||||
await taskDetailsPage.clickCompleteTask();
|
||||
|
||||
await tasksPage.createTask({name: tasks[3].name, dueDate: tasks[3].dueDate});
|
||||
await tasksPage.createTask({name: tasks[4].name, dueDate: tasks[4].dueDate});
|
||||
await tasksPage.createTask({name: tasks[5].name, dueDate: tasks[5].dueDate});
|
||||
await tasksPage.createTask({ name: tasks[3].name, dueDate: tasks[3].dueDate });
|
||||
await tasksPage.createTask({ name: tasks[4].name, dueDate: tasks[4].dueDate });
|
||||
await tasksPage.createTask({ name: tasks[5].name, dueDate: tasks[5].dueDate });
|
||||
});
|
||||
|
||||
afterAll( async () => {
|
||||
afterAll(async () => {
|
||||
await apiService.loginWithProfile('admin');
|
||||
await usersActions.deleteTenant(user.tenantId);
|
||||
});
|
||||
@@ -89,7 +89,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277254] Should display tasks under new filter from newest to oldest when they are completed', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Newest first',
|
||||
name: 'Newest first',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
@@ -101,12 +101,12 @@ describe('Task Filters Sorting', () => {
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(1)).toBe(tasks[2].name);
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(2)).toBe(tasks[1].name);
|
||||
await expect(await tasksListPage.getDataTable().contentInPosition(3)).toBe(tasks[0].name);
|
||||
});
|
||||
});
|
||||
|
||||
it('[C277255] Should display tasks under new filter from oldest to newest when they are completed', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Newest last',
|
||||
name: 'Newest last',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'created-asc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
@@ -123,7 +123,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277256] Should display tasks under new filter from closest due date to farthest when they are completed', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Due first',
|
||||
name: 'Due first',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'due-desc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
@@ -140,7 +140,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277257] Should display tasks under new filter from farthest due date to closest when they are completed', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Due last',
|
||||
name: 'Due last',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'due-asc', state: 'completed', assignment: 'involved' }
|
||||
});
|
||||
@@ -157,7 +157,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277258] Should display tasks under new filter from newest to oldest when they are open ', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Newest first Open',
|
||||
name: 'Newest first Open',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'created-desc', state: 'open', assignment: 'involved' }
|
||||
});
|
||||
@@ -174,7 +174,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277259] Should display tasks under new filter from oldest to newest when they are open', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Newest last Open',
|
||||
name: 'Newest last Open',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'created-asc', state: 'open', assignment: 'involved' }
|
||||
});
|
||||
@@ -191,7 +191,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277260] Should display tasks under new filter from closest due date to farthest when they are open', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Due first Open',
|
||||
name: 'Due first Open',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'due-desc', state: 'open', assignment: 'involved' }
|
||||
});
|
||||
@@ -208,7 +208,7 @@ describe('Task Filters Sorting', () => {
|
||||
it('[C277261] Should display tasks under new filter from farthest due date to closest when they are open', async () => {
|
||||
const newFilter = new UserProcessInstanceFilterRepresentation({
|
||||
appId,
|
||||
name : 'Due last Open',
|
||||
name: 'Due last Open',
|
||||
icon: 'glyphicon-filter',
|
||||
filter: { sort: 'due-asc', state: 'open', assignment: 'involved' }
|
||||
});
|
||||
|
@@ -25,7 +25,7 @@ import { createApiService,
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
|
||||
import { TasksPage } from './../pages/tasks.page';
|
||||
import { TasksPage } from '../pages/tasks.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
|
||||
describe('Task List Pagination', () => {
|
||||
@@ -42,7 +42,7 @@ describe('Task List Pagination', () => {
|
||||
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
|
||||
let currentPage = 1;
|
||||
const nrOfTasks = 20;
|
||||
let totalPages;
|
||||
let totalPages: number;
|
||||
|
||||
const itemsPerPage = {
|
||||
five: '5',
|
||||
|
Reference in New Issue
Block a user