test if we can remove compatibility (#7064)

remove compatibility
This commit is contained in:
Eugenio Romano
2021-06-10 14:38:12 +02:00
committed by GitHub
parent 4dc98eb288
commit 558056b05c
125 changed files with 1025 additions and 1017 deletions
+1
View File
@@ -27,3 +27,4 @@ out-tsc
!/.protractor-smartrunner/ !/.protractor-smartrunner/
/reports/ /reports/
e2e-result-* e2e-result-*
licenses.txt
-46
View File
@@ -1,46 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { ApiService } from '@alfresco/adf-testing';
import { AppDefinitionRepresentation, ResultListDataRepresentationAppDefinitionRepresentation } from '@alfresco/js-api';
export class AppsRuntimeActions {
api: ApiService;
constructor(api: ApiService) {
this.api = api;
}
async getRuntimeAppByName(appName: string): Promise<AppDefinitionRepresentation> {
const runtimeApps = await this.getRuntimeAppDefinitions();
let desiredApp;
for (let i = 0; i < runtimeApps.data.length; i++) {
if (runtimeApps.data[i].name === appName) {
desiredApp = runtimeApps.data[i];
}
}
return desiredApp;
}
async getRuntimeAppDefinitions(): Promise<ResultListDataRepresentationAppDefinitionRepresentation> {
return this.api.getInstance().activiti.appsRuntimeApi.getAppDefinitions();
}
}
-41
View File
@@ -1,41 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { FormRepresentation } from '@alfresco/js-api';
import { ApiService } from '@alfresco/adf-testing';
export class FormModelActions {
api: ApiService;
constructor(api: ApiService) {
this.api = api;
}
async getFormByName(name: string): Promise<FormRepresentation> {
// @ts-ignore
const forms: any = await this.api.getInstance().activiti.editorApi.getForms();
const form = forms.data.find((currentForm) => {
return currentForm.name === name;
});
return form;
}
}
-42
View File
@@ -1,42 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { ApiService } from '@alfresco/adf-testing';
export class ModelsActions {
api: ApiService;
constructor(alfrescoApi: ApiService) {
this.api = alfrescoApi;
}
async deleteVersionModel(modelId: number): Promise<any> {
return this.api.getInstance().activiti.modelsApi.deleteModel(modelId, {
cascade: false,
deleteRuntimeApp: true
});
}
async deleteEntireModel(modelId: number): Promise<any> {
return this.api.getInstance().activiti.modelsApi.deleteModel(modelId, {
cascade: true,
deleteRuntimeApp: true
});
}
}
@@ -30,7 +30,7 @@ import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor'; import { browser } from 'protractor';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { SitesApi, SiteEntry } from '@alfresco/js-api'; import { SitesApi, SiteEntry, CommentsApi } from '@alfresco/js-api';
describe('Comment', () => { describe('Comment', () => {
@@ -39,7 +39,9 @@ describe('Comment', () => {
const viewerPage: ViewerPage = new ViewerPage(); const viewerPage: ViewerPage = new ViewerPage();
const commentsPage: CommentsPage = new CommentsPage(); const commentsPage: CommentsPage = new CommentsPage();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService(); const apiService = new ApiService();
const commentsApi = new CommentsApi(apiService.getInstance());
let userFullName, nodeId; let userFullName, nodeId;
let acsUser: UserModel; let acsUser: UserModel;
@@ -93,7 +95,7 @@ describe('Comment', () => {
}); });
it('[C276947] Should be able to add a comment on ACS and view on ADF', async () => { it('[C276947] Should be able to add a comment on ACS and view on ADF', async () => {
await apiService.getInstance().core.commentsApi.addComment(nodeId, { content: comments.test }); await commentsApi.createComment(nodeId, { content: comments.test });
await viewerPage.viewFile(pngFileModel.name); await viewerPage.viewFile(pngFileModel.name);
@@ -29,7 +29,7 @@ import { ContentServicesPage } from '../../core/pages/content-services.page';
import { LockFilePage } from '../../content-services/pages/lock-file.page'; import { LockFilePage } from '../../content-services/pages/lock-file.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NodeEntry, SitesApi } from '@alfresco/js-api'; import { NodeEntry, NodesApi, SitesApi } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Lock File', () => { describe('Lock File', () => {
@@ -45,6 +45,7 @@ describe('Lock File', () => {
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const waitActions = new WaitActions(apiService); const waitActions = new WaitActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const pngFileModel = new FileModel({ const pngFileModel = new FileModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name, name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
@@ -56,6 +57,11 @@ describe('Lock File', () => {
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG_B.file_path location: browser.params.resources.Files.ADF_DOCUMENTS.PNG_B.file_path
}); });
const pngFileToLockAdmin = new FileModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG_C.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG_C.file_path
});
let site, documentLibrary; let site, documentLibrary;
beforeAll(async () => { beforeAll(async () => {
@@ -73,7 +79,7 @@ describe('Lock File', () => {
visibility: 'PRIVATE' visibility: 'PRIVATE'
}); });
const resultNode = await apiService.getInstance().core.nodesApi.getNodeChildren(site.entry.guid); const resultNode = await nodesApi.listNodeChildren(site.entry.guid);
documentLibrary = resultNode.list.entries[0].entry.id; documentLibrary = resultNode.list.entries[0].entry.id;
@@ -111,7 +117,7 @@ describe('Lock File', () => {
afterEach(async () => { afterEach(async () => {
await apiService.login(adminUser.username, adminUser.password); await apiService.login(adminUser.username, adminUser.password);
try { try {
await apiService.getInstance().core.nodesApi.unlockNode(pngUploadedFile.entry.id); await nodesApi.unlockNode(pngUploadedFile.entry.id);
await waitActions.nodeIsUnlock(pngUploadedFile.entry.id); await waitActions.nodeIsUnlock(pngUploadedFile.entry.id);
} catch (e) { } catch (e) {
} }
@@ -120,7 +126,7 @@ describe('Lock File', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
try { try {
await apiService.getInstance().core.nodesApi.unlockNode(pngLockedUploadedFile.entry.id); await nodesApi.unlockNode(pngLockedUploadedFile.entry.id);
} catch (e) { } catch (e) {
} }
try { try {
@@ -194,7 +200,7 @@ describe('Lock File', () => {
await apiService.login(adminUser.username, adminUser.password); await apiService.login(adminUser.username, adminUser.password);
try { try {
await apiService.getInstance().core.nodesApi.unlockNode(pngUploadedFile.entry.id); await nodesApi.unlockNode(pngUploadedFile.entry.id);
await uploadActions.deleteFileOrFolder(pngUploadedFile.entry.id); await uploadActions.deleteFileOrFolder(pngUploadedFile.entry.id);
} catch (error) { } catch (error) {
} }
@@ -209,7 +215,7 @@ describe('Lock File', () => {
await lockFilePage.saveButton.click(); await lockFilePage.saveButton.click();
try { try {
await apiService.getInstance().core.nodesApi.deleteNode(pngUploadedFile.entry.id); await nodesApi.deleteNode(pngUploadedFile.entry.id);
} catch (error) { } catch (error) {
await expect(error.status).toEqual(409); await expect(error.status).toEqual(409);
} }
@@ -223,7 +229,7 @@ describe('Lock File', () => {
await lockFilePage.saveButton.click(); await lockFilePage.saveButton.click();
try { try {
await apiService.getInstance().core.nodesApi.updateNode(pngUploadedFile.entry.id, { name: 'My new name' }); await nodesApi.updateNode(pngUploadedFile.entry.id, { name: 'My new name' });
} catch (error) { } catch (error) {
await expect(error.status).toEqual(409); await expect(error.status).toEqual(409);
@@ -238,7 +244,7 @@ describe('Lock File', () => {
await lockFilePage.saveButton.click(); await lockFilePage.saveButton.click();
try { try {
await apiService.getInstance().core.nodesApi.moveNode(pngUploadedFile.entry.id, { targetParentId: '-my-' }); await nodesApi.moveNode(pngUploadedFile.entry.id, { targetParentId: '-my-' });
} catch (error) { } catch (error) {
await expect(error.status).toEqual(409); await expect(error.status).toEqual(409);
@@ -253,7 +259,7 @@ describe('Lock File', () => {
await lockFilePage.saveButton.click(); await lockFilePage.saveButton.click();
try { try {
await apiService.getInstance().core.nodesApi.updateNodeContent(pngUploadedFile.entry.id, 'NEW FILE CONTENT'); await nodesApi.updateNodeContent(pngUploadedFile.entry.id, 'NEW FILE CONTENT');
} catch (error) { } catch (error) {
await expect(error.status).toEqual(409); await expect(error.status).toEqual(409);
} }
@@ -266,7 +272,7 @@ describe('Lock File', () => {
beforeEach(async () => { beforeEach(async () => {
await apiService.login(adminUser.username, adminUser.password); await apiService.login(adminUser.username, adminUser.password);
pngFileToBeLocked = await uploadActions.uploadFile(pngFileToLock.location, pngFileToLock.name, documentLibrary); pngFileToBeLocked = await uploadActions.uploadFile(pngFileToLockAdmin.location, pngFileToLockAdmin.name, documentLibrary);
pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, documentLibrary); pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, documentLibrary);
await loginPage.login(adminUser.username, adminUser.password); await loginPage.login(adminUser.username, adminUser.password);
await navigationBarPage.openContentServicesFolder(documentLibrary); await navigationBarPage.openContentServicesFolder(documentLibrary);
@@ -294,7 +300,7 @@ describe('Lock File', () => {
try { try {
await apiService.login(adminUser.username, adminUser.password); await apiService.login(adminUser.username, adminUser.password);
const response = await apiService.getInstance().core.nodesApi.updateNodeContent(pngUploadedFile.entry.id, 'NEW FILE CONTENT'); const response = await nodesApi.updateNodeContent(pngUploadedFile.entry.id, 'NEW FILE CONTENT');
await expect(response.entry.modifiedAt.getTime()).toBeGreaterThan(response.entry.createdAt.getTime()); await expect(response.entry.modifiedAt.getTime()).toBeGreaterThan(response.entry.createdAt.getTime());
} catch (error) { } catch (error) {
} }
@@ -310,9 +316,9 @@ describe('Lock File', () => {
try { try {
await apiService.login(adminUser.username, adminUser.password); await apiService.login(adminUser.username, adminUser.password);
await apiService.getInstance().core.nodesApi.moveNode(pngUploadedFile.entry.id, { targetParentId: '-my-' }); await nodesApi.moveNode(pngUploadedFile.entry.id, { targetParentId: '-my-' });
const movedFile = await apiService.getInstance().core.nodesApi.getNode(pngUploadedFile.entry.id); const movedFile = await nodesApi.getNode(pngUploadedFile.entry.id);
await expect(movedFile.entry.parentId).not.toEqual(documentLibrary); await expect(movedFile.entry.parentId).not.toEqual(documentLibrary);
} catch (error) { } catch (error) {
@@ -320,7 +326,7 @@ describe('Lock File', () => {
}); });
it('[C286617] Owner of the locked file should be able to delete if Allow owner to modify is checked', async () => { it('[C286617] Owner of the locked file should be able to delete if Allow owner to modify is checked', async () => {
await contentServices.lockContent(pngFileToLock.name); await contentServices.lockContent(pngFileToLockAdmin.name);
await lockFilePage.lockFileCheckboxText.waitVisible(); await lockFilePage.lockFileCheckboxText.waitVisible();
await lockFilePage.lockFileCheckbox.click(); await lockFilePage.lockFileCheckbox.click();
@@ -340,7 +346,7 @@ describe('Lock File', () => {
await lockFilePage.saveButton.click(); await lockFilePage.saveButton.click();
try { try {
const response = await apiService.getInstance().core.nodesApi.updateNode(pngUploadedFile.entry.id, { name: 'My new name' }); const response = await nodesApi.updateNode(pngUploadedFile.entry.id, { name: 'My new name' });
await expect(response.entry.name).toEqual('My new name'); await expect(response.entry.name).toEqual('My new name');
} catch (error) { } catch (error) {
} }
@@ -20,7 +20,7 @@ import { ContentServicesPage } from '../../core/pages/content-services.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { import {
ApiService, ApiService,
BrowserActions, BrowserActions, Logger,
LoginPage, LoginPage,
NotificationHistoryPage, NotificationHistoryPage,
PermissionActions, PermissionActions,
@@ -37,6 +37,7 @@ import { MetadataViewPage } from '../../core/pages/metadata-view.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page'; import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page';
import { NotificationDemoPage } from '../../core/pages/notification.page'; import { NotificationDemoPage } from '../../core/pages/notification.page';
import { GroupsApi } from '@alfresco/js-api';
describe('Permissions Component', () => { describe('Permissions Component', () => {
@@ -50,6 +51,7 @@ describe('Permissions Component', () => {
const notificationPage = new NotificationDemoPage(); const notificationPage = new NotificationDemoPage();
const searchService = new SearchService(apiService); const searchService = new SearchService(apiService);
const permissionActions = new PermissionActions(apiService); const permissionActions = new PermissionActions(apiService);
const groupsApi = new GroupsApi(apiService.getInstance());
const contentList = contentServicesPage.getDocumentList(); const contentList = contentServicesPage.getDocumentList();
const viewerPage = new ViewerPage(); const viewerPage = new ViewerPage();
@@ -94,7 +96,7 @@ describe('Permissions Component', () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await usersActions.createUser(fileOwnerUser); await usersActions.createUser(fileOwnerUser);
await usersActions.createUser(filePermissionUser); await usersActions.createUser(filePermissionUser);
await apiService.getInstance().core.groupsApi.createGroup(groupBody); await groupsApi.createGroup(groupBody);
await apiService.login(fileOwnerUser.username, fileOwnerUser.password); await apiService.login(fileOwnerUser.username, fileOwnerUser.password);
roleConsumerFolder = await uploadActions.createFolder(roleConsumerFolderModel.name, '-my-'); roleConsumerFolder = await uploadActions.createFolder(roleConsumerFolderModel.name, '-my-');
@@ -119,7 +121,7 @@ describe('Permissions Component', () => {
try { try {
await searchService.isUserSearchable(filePermissionUser); await searchService.isUserSearchable(filePermissionUser);
} catch (e) { } catch (e) {
console.error(`*****\n Failed to sync user \n*****`); Logger.error(`*****\n Failed to sync user \n*****`);
} }
await browser.sleep(browser.params.testConfig.timeouts.index_search); // wait search index previous file/folder uploaded await browser.sleep(browser.params.testConfig.timeouts.index_search); // wait search index previous file/folder uploaded
} catch (e) { } catch (e) {
@@ -32,13 +32,11 @@ import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ShareDialogPage } from '../../core/pages/dialog/share-dialog.page'; import { ShareDialogPage } from '../../core/pages/dialog/share-dialog.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { SharedLinkEntry, SharedLinkPaging } from '@alfresco/js-api'; import { SharedLinkEntry, SharedLinkPaging, SharedlinksApi } from '@alfresco/js-api';
import { CustomSourcesPage } from '../../core/pages/custom-sources.page'; import { CustomSourcesPage } from '../../core/pages/custom-sources.page';
describe('Share file', () => { describe('Share file', () => {
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
const contentListPage = contentServicesPage.getDocumentList(); const contentListPage = contentServicesPage.getDocumentList();
@@ -47,8 +45,14 @@ describe('Share file', () => {
const customSourcesPage = new CustomSourcesPage(); const customSourcesPage = new CustomSourcesPage();
const viewerPage = new ViewerPage(); const viewerPage = new ViewerPage();
const notificationHistoryPage = new NotificationHistoryPage(); const notificationHistoryPage = new NotificationHistoryPage();
let acsUser: UserModel; let acsUser: UserModel;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const sharedLinksApi = new SharedlinksApi(apiService.getInstance());
const pngFileModel = new FileModel({ const pngFileModel = new FileModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name, name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
@@ -67,7 +71,7 @@ describe('Share file', () => {
const apiCall = async () => { const apiCall = async () => {
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
return apiService.getInstance().core.sharedlinksApi.findSharedLinks(); return sharedLinksApi.listSharedLinks();
}; };
return ApiUtil.waitForApi(apiCall, predicate, 10, 2000); return ApiUtil.waitForApi(apiCall, predicate, 10, 2000);
@@ -18,7 +18,7 @@
import { PermissionsPage } from '../../content-services/pages/permissions.page'; import { PermissionsPage } from '../../content-services/pages/permissions.page';
import { import {
ApiService, ApiService,
BrowserActions, BrowserActions, Logger,
LoginPage, LoginPage,
NotificationHistoryPage, SearchService, NotificationHistoryPage, SearchService,
StringUtil, StringUtil,
@@ -35,7 +35,7 @@ import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { VersionManagePage } from '../../core/pages/version-manager.page'; import { VersionManagePage } from '../../core/pages/version-manager.page';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { SitesApi } from '@alfresco/js-api'; import { NodesApi, SitesApi } from '@alfresco/js-api';
import { NotificationDemoPage } from '../../core/pages/notification.page'; import { NotificationDemoPage } from '../../core/pages/notification.page';
describe('Permissions Component', () => { describe('Permissions Component', () => {
@@ -43,6 +43,7 @@ describe('Permissions Component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const searchService = new SearchService(apiService); const searchService = new SearchService(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
@@ -142,7 +143,7 @@ describe('Permissions Component', () => {
siteFolder = await uploadActions.createFolder(folderName, publicSite.entry.guid); siteFolder = await uploadActions.createFolder(folderName, publicSite.entry.guid);
privateSiteFile = await uploadActions.uploadFile(fileModel.location, 'privateSite' + fileModel.name, privateSite.entry.guid); privateSiteFile = await uploadActions.uploadFile(fileModel.location, 'privateSite' + fileModel.name, privateSite.entry.guid);
await apiService.getInstance().core.nodesApi.updateNode(privateSiteFile.entry.id, await nodesApi.updateNode(privateSiteFile.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
@@ -159,7 +160,7 @@ describe('Permissions Component', () => {
try { try {
await searchService.isUserSearchable(consumerUser); await searchService.isUserSearchable(consumerUser);
} catch (e) { } catch (e) {
console.error(`*****\n Failed to sync user \n*****`); Logger.error(`*****\n Failed to sync user \n*****`);
} }
await browser.sleep(browser.params.testConfig.timeouts.index_search); await browser.sleep(browser.params.testConfig.timeouts.index_search);
} catch (error) { } catch (error) {
@@ -28,6 +28,7 @@ import { FileModel } from '../../models/ACS/file.model';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { SocialPage } from '../../content-services/pages/social.page'; import { SocialPage } from '../../content-services/pages/social.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NodesApi } from '@alfresco/js-api';
describe('Social component', () => { describe('Social component', () => {
@@ -43,6 +44,7 @@ describe('Social component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const blueLikeColor = ('rgba(33, 150, 243, 1)'); const blueLikeColor = ('rgba(33, 150, 243, 1)');
const greyLikeColor = ('rgba(128, 128, 128, 1)'); const greyLikeColor = ('rgba(128, 128, 128, 1)');
@@ -67,7 +69,7 @@ describe('Social component', () => {
emptyFile = await uploadActions.uploadFile(emptyFileModel.location, emptyFileModel.name, '-my-'); emptyFile = await uploadActions.uploadFile(emptyFileModel.location, emptyFileModel.name, '-my-');
await apiService.getInstance().core.nodesApi.updateNode(emptyFile.entry.id, await nodesApi.updateNode(emptyFile.entry.id,
{ {
permissions: { permissions: {
@@ -27,6 +27,7 @@ import {
import { TagPage } from '../../content-services/pages/tag.page'; import { TagPage } from '../../content-services/pages/tag.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { TagsApi } from '@alfresco/js-api';
describe('Tag component', () => { describe('Tag component', () => {
@@ -37,6 +38,7 @@ describe('Tag component', () => {
let acsUser: UserModel; let acsUser: UserModel;
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const tagsApi = new TagsApi(apiService.getInstance());
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const pdfFileModel = new FileModel({ name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name }); const pdfFileModel = new FileModel({ name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name });
@@ -73,7 +75,7 @@ describe('Tag component', () => {
Object.assign(deleteFile, uploadedDeleteFile.entry); Object.assign(deleteFile, uploadedDeleteFile.entry);
await apiService.getInstance().core.tagsApi.addTag(nodeId, tags); await tagsApi.createTagForNode(nodeId, tags);
await loginPage.login(acsUser.username, acsUser.password); await loginPage.login(acsUser.username, acsUser.password);
await navigationBarPage.clickTagButton(); await navigationBarPage.clickTagButton();
@@ -18,6 +18,7 @@
import { ApiService, LoginPage, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing'; import { ApiService, LoginPage, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { TreeViewPage } from './../pages/tree-view.page'; import { TreeViewPage } from './../pages/tree-view.page';
import { NodesApi } from '@alfresco/js-api';
describe('Tree View Component', () => { describe('Tree View Component', () => {
@@ -28,8 +29,8 @@ describe('Tree View Component', () => {
let acsUser: UserModel; let acsUser: UserModel;
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
let treeFolder, secondTreeFolder, thirdTreeFolder; let treeFolder, secondTreeFolder, thirdTreeFolder;
@@ -48,19 +49,19 @@ describe('Tree View Component', () => {
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
treeFolder = await apiService.getInstance().nodes.addNode(nodeNames.parentFolder, { treeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
name: nodeNames.folder, name: nodeNames.folder,
nodeType: 'cm:folder' nodeType: 'cm:folder'
}); });
secondTreeFolder = await apiService.getInstance().nodes.addNode(nodeNames.parentFolder, { secondTreeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
name: nodeNames.secondFolder, name: nodeNames.secondFolder,
nodeType: 'cm:folder' nodeType: 'cm:folder'
}); });
thirdTreeFolder = await apiService.getInstance().nodes.addNode(secondTreeFolder.entry.id, { thirdTreeFolder = await nodesApi.createNode(secondTreeFolder.entry.id, {
name: nodeNames.thirdFolder, name: nodeNames.thirdFolder,
nodeType: 'cm:folder' nodeType: 'cm:folder'
}); });
await apiService.getInstance().nodes.addNode(thirdTreeFolder.entry.id, { await nodesApi.createNode(thirdTreeFolder.entry.id, {
name: nodeNames.document, name: nodeNames.document,
nodeType: 'cm:content' nodeType: 'cm:content'
}); });
@@ -27,7 +27,7 @@ import {
UserModel, UserModel,
UsersActions UsersActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { NodeEntry, SitesApi } from '@alfresco/js-api'; import { NodeEntry, NodesApi, SharedlinksApi, SitesApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { ShareDialogPage } from '../../core/pages/dialog/share-dialog.page'; import { ShareDialogPage } from '../../core/pages/dialog/share-dialog.page';
@@ -47,6 +47,8 @@ describe('Unshare file', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const sharedlinksApi = new SharedlinksApi(apiService.getInstance());
const siteName = `PRIVATE-TEST-SITE-${StringUtil.generateRandomString(5)}`; const siteName = `PRIVATE-TEST-SITE-${StringUtil.generateRandomString(5)}`;
let acsUser: UserModel; let acsUser: UserModel;
@@ -82,13 +84,13 @@ describe('Unshare file', () => {
shareFilesSite = await sitesApi.createSite(site); shareFilesSite = await sitesApi.createSite(site);
const docLibId = (await sitesApi.listSiteContainers(siteName)).list.entries[0].entry.id; const docLibId = (await sitesApi.listSiteContainers(siteName)).list.entries[0].entry.id;
const testFile1Id = (await apiService.getInstance().core.nodesApi.addNode(docLibId, nodeBody)).entry.id; const testFile1Id = (await nodesApi.createNode(docLibId, nodeBody)).entry.id;
await sitesApi.createSiteMembership(siteName, { await sitesApi.createSiteMembership(siteName, {
id: acsUser.username, id: acsUser.username,
role: CONSTANTS.CS_USER_ROLES.CONSUMER role: CONSTANTS.CS_USER_ROLES.CONSUMER
}); });
await apiService.getInstance().core.nodesApi.updateNode(testFile1Id, { await nodesApi.updateNode(testFile1Id, {
permissions: { permissions: {
isInheritanceEnabled: false, isInheritanceEnabled: false,
locallySet: [ locallySet: [
@@ -99,7 +101,7 @@ describe('Unshare file', () => {
] ]
} }
}); });
await apiService.getInstance().core.sharedlinksApi.addSharedLink({ nodeId: testFile1Id }); await sharedlinksApi.createSharedLink({ nodeId: testFile1Id });
}); });
afterAll(async () => { afterAll(async () => {
@@ -269,6 +269,7 @@ describe('Delete Directive', () => {
afterAll(async () => { afterAll(async () => {
try { try {
await apiService.login(acsUser.username, acsUser.password);
const sitesApi = new SitesApi(apiService.getInstance()); const sitesApi = new SitesApi(apiService.getInstance());
await sitesApi.deleteSite(createdSite.entry.id, { permanent: true }); await sitesApi.deleteSite(createdSite.entry.id, { permanent: true });
} catch (error) {} } catch (error) {}
@@ -30,6 +30,7 @@ import { FolderDialogPage } from '../../core/pages/dialog/folder-dialog.page';
import { browser, protractor } from 'protractor'; import { browser, protractor } from 'protractor';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { NodesApi } from '@alfresco/js-api';
describe('Edit folder directive', () => { describe('Edit folder directive', () => {
@@ -40,8 +41,10 @@ describe('Edit folder directive', () => {
const anotherAcsUser = new UserModel(); const anotherAcsUser = new UserModel();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const notificationHistoryPage = new NotificationHistoryPage(); const notificationHistoryPage = new NotificationHistoryPage();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const pdfFile = new FileModel({ const pdfFile = new FileModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name, name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
@@ -63,7 +66,7 @@ describe('Edit folder directive', () => {
subFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), editFolder.entry.id); subFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), editFolder.entry.id);
filePdfNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-'); filePdfNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
await apiService.getInstance().core.nodesApi.updateNode(editFolder.entry.id, await nodesApi.updateNode(editFolder.entry.id,
{ {
permissions: { permissions: {
@@ -264,20 +264,6 @@ describe('Document List Component', () => {
await contentServicesPage.checkContentIsDisplayed(testFile.name); await contentServicesPage.checkContentIsDisplayed(testFile.name);
}); });
it('[C261997] Should be able to clean Recent Files history', async () => {
await apiService.loginWithProfile('admin');
const cleanUser = await usersActions.createUser();
await loginPage.login(cleanUser.username, cleanUser.password);
await contentServicesPage.clickOnContentServices();
await contentServicesPage.checkRecentFileToBeShowed();
const icon = await contentServicesPage.getRecentFileIcon();
await expect(icon).toBe('history');
await contentServicesPage.expandRecentFiles();
await contentServicesPage.checkEmptyRecentFileIsDisplayed();
await contentServicesPage.closeRecentFiles();
});
it('[C279970] Should display Islocked field for folders', async () => { it('[C279970] Should display Islocked field for folders', async () => {
const folderNameA = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`; const folderNameA = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
const folderNameB = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`; const folderNameB = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
@@ -31,7 +31,7 @@ import { ContentServicesPage } from '../../core/pages/content-services.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { SitesApi } from '@alfresco/js-api'; import { NodesApi, SitesApi } from '@alfresco/js-api';
describe('Document List Component', () => { describe('Document List Component', () => {
@@ -40,9 +40,10 @@ describe('Document List Component', () => {
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const contentNodeSelector = new ContentNodeSelectorDialogPage(); const contentNodeSelector = new ContentNodeSelectorDialogPage();
const notificationHistoryPage = new NotificationHistoryPage(); const notificationHistoryPage = new NotificationHistoryPage();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
let uploadedFolder, uploadedFile, sourceFolder, destinationFolder, subFolder, subFolder2, copyFolder, subFile, let uploadedFolder, uploadedFile, sourceFolder, destinationFolder, subFolder, subFolder2, copyFolder, subFile,
@@ -89,7 +90,7 @@ describe('Document List Component', () => {
await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, uploadedFolder.entry.id); await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, uploadedFolder.entry.id);
await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, sourceFolder.entry.id); await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, sourceFolder.entry.id);
uploadedFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-'); uploadedFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-');
await apiService.getInstance().core.nodesApi.updateNode(sourceFolder.entry.id, await nodesApi.updateNode(sourceFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
@@ -39,6 +39,7 @@ describe('Document List Component - Properties', () => {
}); });
describe('Allow drop files property', () => { describe('Allow drop files property', () => {
beforeEach(async () => { beforeEach(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -49,6 +50,9 @@ describe('Document List Component - Properties', () => {
subFolder = await uploadActions.createFolder('subFolder', parentFolder.entry.id); subFolder = await uploadActions.createFolder('subFolder', parentFolder.entry.id);
await loginPage.login(acsUser.username, acsUser.password); await loginPage.login(acsUser.username, acsUser.password);
await navigationBar.navigateToContentServices();
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
}); });
afterEach(async () => { afterEach(async () => {
@@ -59,9 +63,6 @@ describe('Document List Component - Properties', () => {
}); });
it('[C299154] Should disallow upload content on a folder row if allowDropFiles is false', async () => { it('[C299154] Should disallow upload content on a folder row if allowDropFiles is false', async () => {
await navigationBar.navigateToContentServices();
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
await contentServicesPage.openFolder(parentFolder.entry.name); await contentServicesPage.openFolder(parentFolder.entry.name);
await contentServicesPage.disableDropFilesInAFolder(); await contentServicesPage.disableDropFilesInAFolder();
await browser.sleep(1000); await browser.sleep(1000);
@@ -75,9 +76,6 @@ describe('Document List Component - Properties', () => {
}); });
it('[C91319] Should allow upload content on a folder row if allowDropFiles is true', async () => { it('[C91319] Should allow upload content on a folder row if allowDropFiles is true', async () => {
await navigationBar.navigateToContentServices();
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
await contentServicesPage.openFolder(parentFolder.entry.name); await contentServicesPage.openFolder(parentFolder.entry.name);
await contentServicesPage.enableDropFilesInAFolder(); await contentServicesPage.enableDropFilesInAFolder();
await browser.sleep(1000); await browser.sleep(1000);
@@ -30,6 +30,7 @@ import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { CustomModelApi, NodesApi } from '@alfresco/js-api';
describe('Aspect oriented config', () => { describe('Aspect oriented config', () => {
@@ -40,8 +41,11 @@ describe('Aspect oriented config', () => {
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
const modelOneName = 'modelOne', emptyAspectName = 'emptyAspect'; const modelOneName = 'modelOne', emptyAspectName = 'emptyAspect';
const defaultModel = 'cm', defaultEmptyPropertiesAspect = 'taggable', aspectName = 'Taggable'; const defaultModel = 'cm', defaultEmptyPropertiesAspect = 'taggable', aspectName = 'Taggable';
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const customModelApi = new CustomModelApi(apiService.getInstance());
let acsUser: UserModel; let acsUser: UserModel;
@@ -57,12 +61,12 @@ describe('Aspect oriented config', () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
try { try {
await apiService.getInstance().core.customModelApi.createCustomModel('ACTIVE', modelOneName, modelOneName, modelOneName, modelOneName); await customModelApi.createCustomModel('ACTIVE', modelOneName, modelOneName, modelOneName, modelOneName);
} catch (e) { } catch (e) {
} }
try { try {
await apiService.getInstance().core.customModelApi.createCustomAspect(modelOneName, emptyAspectName, null, emptyAspectName, emptyAspectName); await customModelApi.createCustomAspect(modelOneName, emptyAspectName, null, emptyAspectName, emptyAspectName);
} catch (e) { } catch (e) {
} }
@@ -74,13 +78,13 @@ describe('Aspect oriented config', () => {
await loginPage.login(acsUser.username, acsUser.password); await loginPage.login(acsUser.username, acsUser.password);
const aspects = await apiService.getInstance().core.nodesApi.getNode(uploadedFile.entry.id); const aspects = await nodesApi.getNode(uploadedFile.entry.id);
aspects.entry.aspectNames.push(modelOneName.concat(':', emptyAspectName)); aspects.entry.aspectNames.push(modelOneName.concat(':', emptyAspectName));
aspects.entry.aspectNames.push(defaultModel.concat(':', defaultEmptyPropertiesAspect)); aspects.entry.aspectNames.push(defaultModel.concat(':', defaultEmptyPropertiesAspect));
await apiService.getInstance().core.nodesApi.updateNode(uploadedFile.entry.id, { aspectNames: aspects.entry.aspectNames }); await nodesApi.updateNode(uploadedFile.entry.id, { aspectNames: aspects.entry.aspectNames });
}); });
afterAll(async () => { afterAll(async () => {
@@ -24,7 +24,8 @@ import {
UploadActions, UploadActions,
UserModel, UserModel,
UsersActions, UsersActions,
ViewerPage ViewerPage,
Logger
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { CustomModel, CustomType } from '@alfresco/js-api'; import { CustomModel, CustomType } from '@alfresco/js-api';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
@@ -94,7 +95,7 @@ describe('content type', () => {
await modelActions.deactivateCustomModel(model.name); await modelActions.deactivateCustomModel(model.name);
await modelActions.deleteCustomModel(model.name); await modelActions.deleteCustomModel(model.name);
} catch (e) { } catch (e) {
console.error('failed to delete the model', e); Logger.error('failed to delete the model {e}');
} }
}); });
@@ -60,6 +60,7 @@ describe('Upload - User permission', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
await apiService.loginWithProfile('admin');
const sitesApi = new SitesApi(apiService.getInstance()); const sitesApi = new SitesApi(apiService.getInstance());
consumerSite = await sitesApi.createSite({ consumerSite = await sitesApi.createSite({
@@ -31,7 +31,7 @@ import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { SitesApi } from '@alfresco/js-api'; import { NodesApi, SitesApi } from '@alfresco/js-api';
describe('Version component permissions', () => { describe('Version component permissions', () => {
@@ -52,6 +52,7 @@ describe('Version component permissions', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const newVersionFile = new FileModel({ const newVersionFile = new FileModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG_B.file_name, 'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG_B.file_name,
@@ -114,7 +115,7 @@ describe('Version component permissions', () => {
const lockFileUploaded = await uploadActions.uploadFile(lockFileModel.location, lockFileModel.name, site.entry.guid); const lockFileUploaded = await uploadActions.uploadFile(lockFileModel.location, lockFileModel.name, site.entry.guid);
Object.assign(lockFileModel, lockFileUploaded.entry); Object.assign(lockFileModel, lockFileUploaded.entry);
await apiService.getInstance().nodes.lockNode(lockFileModel.id, { await nodesApi.lockNode(lockFileModel.id, {
type: 'FULL', type: 'FULL',
lifetime: 'PERSISTENT' lifetime: 'PERSISTENT'
}); });
@@ -150,7 +151,7 @@ describe('Version component permissions', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id); await nodesApi.deleteNode(sameCreatorFile.id);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -222,7 +223,7 @@ describe('Version component permissions', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id); await nodesApi.deleteNode(sameCreatorFile.id);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -277,7 +278,7 @@ describe('Version component permissions', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id); await nodesApi.deleteNode(sameCreatorFile.id);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
+1 -1
View File
@@ -250,7 +250,7 @@ export class MetadataViewPage {
async changeContentType(option: string, attempt = 0, maxAttempt = 3): Promise<boolean> { async changeContentType(option: string, attempt = 0, maxAttempt = 3): Promise<boolean> {
const nodeType = TestElement.byCss('div[data-automation-id="header-nodeType"] .mat-select-trigger'); const nodeType = TestElement.byCss('div[data-automation-id="header-nodeType"] .mat-select-trigger');
if (attempt > maxAttempt) { if (attempt > maxAttempt) {
console.error(`content type select option not found. check acs version may be lesser than 7.0.0`); Logger.error(`content type select option not found. check acs version may be lesser than 7.0.0`);
return false; return false;
} }
try { try {
@@ -88,10 +88,11 @@ describe('Viewer', () => {
it('[C280008] Should be possible to open any Excel file', async () => { it('[C280008] Should be possible to open any Excel file', async () => {
await contentServicesPage.doubleClickRow('excel'); await contentServicesPage.doubleClickRow('excel');
for (const currentFile of uploadedExcels) { for (const currentFile of uploadedExcels) {
if (currentFile.entry.name !== '.DS_Store') { if (currentFile.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(currentFile.entry.name); await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded(currentFile.entry.name); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -101,7 +101,7 @@ describe('Viewer', () => {
for (const image of uploadedImages) { for (const image of uploadedImages) {
if (image.entry.name !== '.DS_Store') { if (image.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(image.entry.name); await contentServicesPage.doubleClickRow(image.entry.name);
await viewerPage.checkImgViewerIsDisplayed(); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -109,7 +109,7 @@ describe('Viewer', () => {
for (const item of uploadedImgRenditionFolderInfo) { for (const item of uploadedImgRenditionFolderInfo) {
if (item.entry.name !== '.DS_Store') { if (item.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(item.entry.name); await contentServicesPage.doubleClickRow(item.entry.name);
await viewerPage.checkFileIsLoaded(); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -94,7 +94,7 @@ describe('Viewer', () => {
for (const currentFile of uploadedPpt) { for (const currentFile of uploadedPpt) {
if (currentFile.entry.name !== '.DS_Store') { if (currentFile.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(currentFile.entry.name); await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded(); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -91,7 +91,7 @@ describe('Viewer', () => {
for (const currentFile of uploadedTexts) { for (const currentFile of uploadedTexts) {
if (currentFile.entry.name !== '.DS_Store') { if (currentFile.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(currentFile.entry.name); await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded(); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -95,7 +95,7 @@ describe('Viewer', () => {
for (const currentFile of uploadedWords) { for (const currentFile of uploadedWords) {
if (currentFile.entry.name !== '.DS_Store') { if (currentFile.entry.name !== '.DS_Store') {
await contentServicesPage.doubleClickRow(currentFile.entry.name); await contentServicesPage.doubleClickRow(currentFile.entry.name);
await viewerPage.checkFileIsLoaded(); await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
} }
@@ -134,7 +134,9 @@ describe('Content Services Viewer', () => {
describe('Usual type files', () => { describe('Usual type files', () => {
it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', async () => { it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', async () => {
await viewerPage.viewFile(pdfFile.name); await contentServicesPage.doubleClickRow(pdfFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText); await viewerPage.checkFileContent('1', pdfFile.firstPageText);
@@ -156,7 +158,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C260040] Should be able to change pages and zoom when .pdf file is open', async () => { it('[C260040] Should be able to change pages and zoom when .pdf file is open', async () => {
await viewerPage.viewFile(pdfFile.name); await contentServicesPage.doubleClickRow(pdfFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText); await viewerPage.checkFileContent('1', pdfFile.firstPageText);
@@ -190,7 +194,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C260042] Should be able to download, open full-screen and Info container from the Viewer', async () => { it('[C260042] Should be able to download, open full-screen and Info container from the Viewer', async () => {
await viewerPage.viewFile(jpgFile.name); await contentServicesPage.doubleClickRow(jpgFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkImgContainerIsDisplayed(); await viewerPage.checkImgContainerIsDisplayed();
@@ -207,7 +213,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C260052] Should display image, toolbar and pagination when opening a .jpg file', async () => { it('[C260052] Should display image, toolbar and pagination when opening a .jpg file', async () => {
await viewerPage.viewFile(jpgFile.name); await contentServicesPage.doubleClickRow(jpgFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkImgContainerIsDisplayed(); await viewerPage.checkImgContainerIsDisplayed();
@@ -227,7 +235,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C260483] Should be able to zoom and rotate image when .jpg file is open', async () => { it('[C260483] Should be able to zoom and rotate image when .jpg file is open', async () => {
await viewerPage.viewFile(jpgFile.name); await contentServicesPage.doubleClickRow(jpgFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkPercentageIsDisplayed(); await viewerPage.checkPercentageIsDisplayed();
@@ -244,7 +254,8 @@ describe('Content Services Viewer', () => {
}); });
it('[C279922] Should display first page, toolbar and pagination when opening a .ppt file', async () => { it('[C279922] Should display first page, toolbar and pagination when opening a .ppt file', async () => {
await viewerPage.viewFile(pptFile.name); await contentServicesPage.doubleClickRow(pptFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pptFile.firstPageText); await viewerPage.checkFileContent('1', pptFile.firstPageText);
@@ -264,7 +275,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C291903] Should display the buttons in order in the adf viewer toolbar', async () => { it('[C291903] Should display the buttons in order in the adf viewer toolbar', async () => {
await viewerPage.viewFile(pdfFile.name); await contentServicesPage.doubleClickRow(pdfFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkLeftSideBarIsNotDisplayed(); await viewerPage.checkLeftSideBarIsNotDisplayed();
await viewerPage.clickLeftSidebarButton(); await viewerPage.clickLeftSidebarButton();
await viewerPage.checkLeftSideBarIsDisplayed(); await viewerPage.checkLeftSideBarIsDisplayed();
@@ -275,7 +288,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', async () => { it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', async () => {
await viewerPage.viewFile(docxFile.name); await contentServicesPage.doubleClickRow(docxFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', docxFile.firstPageText); await viewerPage.checkFileContent('1', docxFile.firstPageText);
@@ -295,7 +310,8 @@ describe('Content Services Viewer', () => {
}); });
it('[C260054] Should display Preview could not be loaded and viewer toolbar when opening an unsupported file', async () => { it('[C260054] Should display Preview could not be loaded and viewer toolbar when opening an unsupported file', async () => {
await viewerPage.viewFile(unsupportedFile.name); await contentServicesPage.doubleClickRow(unsupportedFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkCloseButtonIsDisplayed(); await viewerPage.checkCloseButtonIsDisplayed();
await viewerPage.checkFileNameIsDisplayed(unsupportedFile.name); await viewerPage.checkFileNameIsDisplayed(unsupportedFile.name);
@@ -311,7 +327,8 @@ describe('Content Services Viewer', () => {
}); });
it('[C260056] Should display video and viewer toolbar when opening a media file', async () => { it('[C260056] Should display video and viewer toolbar when opening a media file', async () => {
await viewerPage.viewFile(mp4File.name); await contentServicesPage.doubleClickRow(mp4File.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkMediaPlayerContainerIsDisplayed(); await viewerPage.checkMediaPlayerContainerIsDisplayed();
await viewerPage.checkCloseButtonIsDisplayed(); await viewerPage.checkCloseButtonIsDisplayed();
@@ -327,7 +344,8 @@ describe('Content Services Viewer', () => {
}); });
it('[C261123] Should be able to preview all pages and navigate to a page when using thumbnails', async () => { it('[C261123] Should be able to preview all pages and navigate to a page when using thumbnails', async () => {
await viewerPage.viewFile(pdfFile.name); await contentServicesPage.doubleClickRow(pdfFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText); await viewerPage.checkFileContent('1', pdfFile.firstPageText);
@@ -357,7 +375,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C268105] Should display current thumbnail when getting to the page following the last visible thumbnail', async () => { it('[C268105] Should display current thumbnail when getting to the page following the last visible thumbnail', async () => {
await viewerPage.viewFile(pdfFile.name); await contentServicesPage.doubleClickRow(pdfFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkFileContent('1', pdfFile.firstPageText); await viewerPage.checkFileContent('1', pdfFile.firstPageText);
@@ -385,7 +405,8 @@ describe('Content Services Viewer', () => {
}); });
it('[C268901] Should need a password when opening a protected file', async () => { it('[C268901] Should need a password when opening a protected file', async () => {
await viewerPage.viewFile(protectedFile.name); await contentServicesPage.doubleClickRow(protectedFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkZoomInButtonIsDisplayed(); await viewerPage.checkZoomInButtonIsDisplayed();
await viewerPage.checkPasswordDialogIsDisplayed(); await viewerPage.checkPasswordDialogIsDisplayed();
@@ -404,7 +425,9 @@ describe('Content Services Viewer', () => {
}); });
it('[C307985] Should close the viewer when password dialog is cancelled', async () => { it('[C307985] Should close the viewer when password dialog is cancelled', async () => {
await viewerPage.viewFile(protectedFile.name); await contentServicesPage.doubleClickRow(protectedFile.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkPasswordDialogIsDisplayed(); await viewerPage.checkPasswordDialogIsDisplayed();
await viewerPage.clickClosePasswordDialog(); await viewerPage.clickClosePasswordDialog();
await contentServicesPage.checkContentIsDisplayed(protectedFile.name); await contentServicesPage.checkContentIsDisplayed(protectedFile.name);
@@ -429,7 +452,9 @@ describe('Content Services Viewer', () => {
}); });
async function uploadNewVersion(originalFileName: string, newVersionLocation: string): Promise<void> { async function uploadNewVersion(originalFileName: string, newVersionLocation: string): Promise<void> {
await viewerPage.viewFile(originalFileName); await contentServicesPage.doubleClickRow(originalFileName);
await viewerPage.waitTillContentLoaded();
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
await contentServicesPage.versionManagerContent(originalFileName); await contentServicesPage.versionManagerContent(originalFileName);
await versionManagePage.showNewVersionButton.click(); await versionManagePage.showNewVersionButton.click();
@@ -440,14 +465,17 @@ describe('Content Services Viewer', () => {
} }
async function previewUnsupportedFile(unsupportedFileName: string): Promise<void> { async function previewUnsupportedFile(unsupportedFileName: string): Promise<void> {
await viewerPage.viewFile(unsupportedFileName); await contentServicesPage.doubleClickRow(unsupportedFileName);
await viewerPage.waitTillContentLoaded();
await viewerPage.checkUnknownFormatIsDisplayed(); await viewerPage.checkUnknownFormatIsDisplayed();
await expect(await viewerPage.getUnknownFormatMessage()).toBe('Couldn\'t load preview. Unknown format.'); await expect(await viewerPage.getUnknownFormatMessage()).toBe('Couldn\'t load preview. Unknown format.');
await viewerPage.clickCloseButton(); await viewerPage.clickCloseButton();
} }
async function changeFileNameInViewer(fileName: string, newName: string): Promise<void> { async function changeFileNameInViewer(fileName: string, newName: string): Promise<void> {
await viewerPage.viewFile(fileName); await contentServicesPage.doubleClickRow(fileName);
await viewerPage.waitTillContentLoaded();
await viewerPage.clickInfoButton(); await viewerPage.clickInfoButton();
await viewerPage.checkInfoSideBarIsDisplayed(); await viewerPage.checkInfoSideBarIsDisplayed();
await viewerPage.clickOnTab('Properties'); await viewerPage.clickOnTab('Properties');
@@ -67,6 +67,7 @@ describe('Viewer', () => {
beforeEach(async () => { beforeEach(async () => {
await contentServicesPage.goToDocumentList(); await contentServicesPage.goToDocumentList();
await contentServicesPage.doubleClickRow(txtFileUploaded.entry.name); await contentServicesPage.doubleClickRow(txtFileUploaded.entry.name);
await viewerPage.waitTillContentLoaded();
}); });
afterEach(async () => { afterEach(async () => {
@@ -99,6 +100,7 @@ describe('Viewer', () => {
await versionManagePage.uploadNewVersionFile(fileModelVersionTwo.location); await versionManagePage.uploadNewVersionFile(fileModelVersionTwo.location);
await versionManagePage.closeVersionDialog(); await versionManagePage.closeVersionDialog();
await contentServicesPage.doubleClickRow(txtFileUploaded.entry.name); await contentServicesPage.doubleClickRow(txtFileUploaded.entry.name);
await viewerPage.waitTillContentLoaded();
await viewerPage.clickInfoButton(); await viewerPage.clickInfoButton();
await viewerPage.clickOnTab('Versions'); await viewerPage.clickOnTab('Versions');
await versionManagePage.viewFileVersion('1.0'); await versionManagePage.viewFileVersion('1.0');
+3 -2
View File
@@ -31,7 +31,7 @@ import { ShareDialogPage } from '../../core/pages/dialog/share-dialog.page';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor'; import { browser } from 'protractor';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { SitesApi } from '@alfresco/js-api'; import { SharedlinksApi, SitesApi } from '@alfresco/js-api';
describe('Viewer', () => { describe('Viewer', () => {
@@ -44,6 +44,7 @@ describe('Viewer', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const sharedlinksApi = new SharedlinksApi(apiService);
let site; let site;
const acsUser = new UserModel(); const acsUser = new UserModel();
@@ -86,7 +87,7 @@ describe('Viewer', () => {
wordFileUploaded = await uploadActions.uploadFile(wordFileInfo.location, wordFileInfo.name, '-my-'); wordFileUploaded = await uploadActions.uploadFile(wordFileInfo.location, wordFileInfo.name, '-my-');
pngFileShared = await apiService.getInstance().core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id }); pngFileShared = await sharedlinksApi.createSharedLink({ 'nodeId': pngFileUploaded.entry.id });
}); });
afterAll(async () => { afterAll(async () => {
+1 -1
View File
@@ -45,7 +45,7 @@ describe('Analytics Smoke Test', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(procUserModel.tenantId); await usersActions.deleteTenant(procUserModel.tenantId);
}); });
it('[C260346] Should be able to change title of a report', async () => { it('[C260346] Should be able to change title of a report', async () => {
@@ -123,10 +123,9 @@ describe('Edit task filters and task list properties', () => {
})); }));
}, 5 * 60 * 1000); }, 5 * 60 * 1000);
afterAll(async (done) => { afterAll(async () => {
await apiService.loginWithProfile('identityAdmin'); await apiService.loginWithProfile('identityAdmin');
await identityService.deleteIdentityUser(testUser.idIdentityService); await identityService.deleteIdentityUser(testUser.idIdentityService);
done();
}); });
describe('Edit task filters and task list properties - sort properties', () => { describe('Edit task filters and task list properties - sort properties', () => {
@@ -97,10 +97,9 @@ describe('Edit task filters and task list properties', () => {
await LocalStorageUtil.setConfigField('adf-edit-task-filter', JSON.stringify(taskFilterConfiguration)); await LocalStorageUtil.setConfigField('adf-edit-task-filter', JSON.stringify(taskFilterConfiguration));
}, 5 * 60 * 1000); }, 5 * 60 * 1000);
afterAll(async (done) => { afterAll(async () => {
await apiService.loginWithProfile('identityAdmin'); await apiService.loginWithProfile('identityAdmin');
await identityService.deleteIdentityUser(testUser.idIdentityService); await identityService.deleteIdentityUser(testUser.idIdentityService);
done();
}); });
describe('Edit task filters and task list properties - filter properties', () => { describe('Edit task filters and task list properties - filter properties', () => {
@@ -16,11 +16,11 @@
*/ */
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, ApplicationsUtil, LoginPage, UsersActions } from '@alfresco/adf-testing'; import { ModelsActions, ApiService, ApplicationsUtil, LoginPage, UsersActions } from '@alfresco/adf-testing';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ModelsActions } from '../../actions/APS/models.actions';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { AppDefinitionsApi } from '@alfresco/js-api';
describe('Modify applications', () => { describe('Modify applications', () => {
@@ -37,6 +37,7 @@ describe('Modify applications', () => {
const apps = new ApplicationsUtil(apiService); const apps = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService); const applicationService = new ApplicationsUtil(apiService);
const appsApi = new AppDefinitionsApi(apiService.getInstance());
let firstApp, appVersionToBeDeleted; let firstApp, appVersionToBeDeleted;
@@ -105,8 +106,8 @@ describe('Modify applications', () => {
await expect(await processServicesPage.getBackgroundColor(appToBeDeleted.title)).toEqual(CONSTANTS.APP_COLOR.GREY); await expect(await processServicesPage.getBackgroundColor(appToBeDeleted.title)).toEqual(CONSTANTS.APP_COLOR.GREY);
await modelActions.deleteVersionModel(appVersionToBeDeleted.id); await modelActions.deleteModel(appVersionToBeDeleted.id);
await modelActions.deleteVersionModel(appVersionToBeDeleted.id); await modelActions.deleteModel(appVersionToBeDeleted.id);
await apps.publishDeployApp(appVersionToBeDeleted.id); await apps.publishDeployApp(appVersionToBeDeleted.id);
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
@@ -134,7 +135,7 @@ describe('Modify applications', () => {
}, 'publish': true }, 'publish': true
}; };
await apiService.getInstance().activiti.appsApi.updateAppDefinition(appVersionToBeDeleted.id, appDefinition); await appsApi.updateAppDefinition(appVersionToBeDeleted.id, appDefinition);
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage(); await navigationBarPage.navigateToProcessServicesPage();
@@ -74,41 +74,36 @@ describe('Attach File - Content service', () => {
const csIntegrations = ['adf dev', 'adf master']; const csIntegrations = ['adf dev', 'adf master'];
let user: UserModel; let user: UserModel;
beforeAll(async (done) => { beforeAll(async () => {
await LocalStorageUtil.setStorageItem('providers', 'ALL'); await LocalStorageUtil.setStorageItem('providers', 'ALL');
try { await apiService.loginWithProfile('admin');
await apiService.loginWithProfile('admin'); user = await usersActions.createUser();
user = await usersActions.createUser();
await apiServiceExternal.loginWithProfile('admin'); await apiServiceExternal.loginWithProfile('admin');
await usersActionsExternal.createUser(user); await usersActionsExternal.createUser(user);
await integrationService.addCSIntegration({ await integrationService.addCSIntegration({
tenantId: user.tenantId, tenantId: user.tenantId,
name: csIntegrations[0], name: csIntegrations[0],
host: browser.params.testConfig.appConfig.ecmHost host: browser.params.testConfig.appConfig.ecmHost
}); });
await integrationService.addCSIntegration({ await integrationService.addCSIntegration({
tenantId: user.tenantId, tenantId: user.tenantId,
name: csIntegrations[1], name: csIntegrations[1],
host: browser.params.testConfig.adf_external_acs.host host: browser.params.testConfig.adf_external_acs.host
}); });
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
await uploadActions.uploadFile(pdfFileTwo.location, pdfFileTwo.name, '-my-'); await uploadActions.uploadFile(pdfFileTwo.location, pdfFileTwo.name, '-my-');
await applicationService.importPublishDeployApp(app.file_path); await applicationService.importPublishDeployApp(app.file_path);
await searchService.isSearchable(pdfFileTwo.name); await searchService.isSearchable(pdfFileTwo.name);
await searchService.isSearchable(externalFile); await searchService.isSearchable(externalFile);
} catch (error) {
console.error('Preconditions failed check if the external env is up and running');
}
done();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -61,7 +61,7 @@ describe('Start Task - Task App', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C274690] Should be able to open a file attached to a start form', async () => { it('[C274690] Should be able to open a file attached to a start form', async () => {
@@ -72,7 +72,7 @@ describe('Attach Folder', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C246534] Attach folder - ACS', async () => { it('[C246534] Attach folder - ACS', async () => {
@@ -15,13 +15,20 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, ApplicationsUtil, FormFields, LoginPage, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
FormFields,
LoginPage,
ModelsActions,
TaskUtil,
UsersActions
} from '@alfresco/adf-testing';
import { browser, by } from 'protractor'; import { browser, by } from 'protractor';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { AttachFormPage } from './../pages/attach-form.page'; import { AttachFormPage } from './../pages/attach-form.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { TaskDetailsPage } from './../pages/task-details.page'; import { TaskDetailsPage } from './../pages/task-details.page';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Attach Form Component', () => { describe('Attach Form Component', () => {
@@ -37,6 +44,8 @@ describe('Attach Form Component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService); const applicationService = new ApplicationsUtil(apiService);
const taskUtil = new TaskUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const formTextField = app.form_fields.form_fieldId; const formTextField = app.form_fields.form_fieldId;
let user, tenantId, appModel; let user, tenantId, appModel;
@@ -60,15 +69,14 @@ describe('Attach Form Component', () => {
appModel = await applicationService.importPublishDeployApp(app.file_path); appModel = await applicationService.importPublishDeployApp(app.file_path);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: testNames.taskName })); await taskUtil.createStandaloneTask(testNames.taskName);
await loginPage.login(user.username, user.password); await loginPage.login(user.username, user.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appModel.id); await modelsActions.deleteModel(appModel.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
it('[C280047] Should be able to view the attach-form component after creating a standalone task', async () => { it('[C280047] Should be able to view the attach-form component after creating a standalone task', async () => {
@@ -15,15 +15,12 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, LoginPage, UsersActions } from '@alfresco/adf-testing'; import { ApiService, ApplicationsUtil, LoginPage, TaskUtil, UsersActions } from '@alfresco/adf-testing';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { ChecklistDialog } from './../pages/dialog/create-checklist-dialog.page'; import { ChecklistDialog } from './../pages/dialog/create-checklist-dialog.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import * as fs from 'fs';
import * as path from 'path';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Checklist component', () => { describe('Checklist component', () => {
@@ -38,6 +35,8 @@ describe('Checklist component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService);
const taskUtil = new TaskUtil(apiService);
let processUserModel; let processUserModel;
@@ -51,15 +50,12 @@ describe('Checklist component', () => {
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location); await applicationService.importPublishDeployApp(app.file_path);
const file = fs.createReadStream(pathFile);
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file);
for (let i = 0; i < tasks.length; i++) { for (let i = 0; i < tasks.length; i++) {
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[i] })); await taskUtil.createStandaloneTask(tasks[i]);
} }
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
@@ -20,7 +20,7 @@ import {
ApplicationsUtil, ApplicationsUtil,
DatePickerCalendarPage, DatePickerCalendarPage,
DateUtil, DateUtil,
LoginPage, LoginPage, ModelsActions,
UsersActions, UsersActions,
Widget Widget
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
@@ -37,8 +37,10 @@ describe('Dynamic Table', () => {
const datePicker = new DatePickerCalendarPage(); const datePicker = new DatePickerCalendarPage();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const widget = new Widget(); const widget = new Widget();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const modelsActions = new ModelsActions(apiService);
let user, tenantId, appId; let user, tenantId, appId;
@@ -50,7 +52,7 @@ describe('Dynamic Table', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
describe('Date Picker', () => { describe('Date Picker', () => {
@@ -77,7 +79,7 @@ describe('Dynamic Table', () => {
afterAll(async () => { afterAll(async () => {
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -140,7 +142,7 @@ describe('Dynamic Table', () => {
afterAll(async () => { afterAll(async () => {
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -63,7 +63,7 @@ describe('Form Component', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
it('[C286505] Should be able to display errors under the Error Log section', async () => { it('[C286505] Should be able to display errors under the Error Log section', async () => {
@@ -29,6 +29,7 @@ import { TaskDetailsPage } from './../pages/task-details.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { TaskFormsApi } from '@alfresco/js-api';
describe('Form widgets - People ', () => { describe('Form widgets - People ', () => {
@@ -44,6 +45,7 @@ describe('Form widgets - People ', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const taskFormsApi = new TaskFormsApi(apiService.getInstance());
let processUserModel; let processUserModel;
let appModel; let appModel;
@@ -65,7 +67,7 @@ describe('Form widgets - People ', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -83,7 +85,7 @@ describe('Form widgets - People ', () => {
await processDetailsPage.activeTask.click(); await processDetailsPage.activeTask.click();
const taskId = await taskDetails.getId(); const taskId = await taskDetails.getId();
const taskForm: any = await apiService.getInstance().activiti.taskApi.getTaskForm(taskId); const taskForm: any = await taskFormsApi.getTaskForm(taskId);
const userEmail = taskForm['fields'][0].fields['1'][0].value.email; const userEmail = taskForm['fields'][0].fields['1'][0].value.email;
await expect(userEmail).toEqual(processUserModel.email); await expect(userEmail).toEqual(processUserModel.email);
}); });
@@ -103,7 +105,7 @@ describe('Form widgets - People ', () => {
await processDetailsPage.completedTask.click(); await processDetailsPage.completedTask.click();
const taskId = await taskDetails.getId(); const taskId = await taskDetails.getId();
const taskForm: any = await apiService.getInstance().activiti.taskApi.getTaskForm(taskId); const taskForm: any = await taskFormsApi.getTaskForm(taskId);
const userEmail = taskForm['fields'][0].fields['1'][0].value.email; const userEmail = taskForm['fields'][0].fields['1'][0].value.email;
await expect(userEmail).toEqual(processUserModel.email); await expect(userEmail).toEqual(processUserModel.email);
}); });
@@ -28,6 +28,7 @@ import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import FormDefinitionModel = require('../../models/APS/FormDefinitionModel'); import FormDefinitionModel = require('../../models/APS/FormDefinitionModel');
import { TaskFormsApi } from '@alfresco/js-api';
const formInstance = new FormDefinitionModel(); const formInstance = new FormDefinitionModel();
@@ -40,6 +41,8 @@ describe('Form widgets', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const taskFormsApi = new TaskFormsApi(apiService.getInstance());
const processUtil = new ProcessUtil(apiService);
const newTask = 'First task'; const newTask = 'First task';
let processUserModel; let processUserModel;
@@ -76,7 +79,7 @@ describe('Form widgets', () => {
const response = await taskPage.taskDetails().getId(); const response = await taskPage.taskDetails().getId();
const formDefinition = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(response); const formDefinition = await taskFormsApi.getTaskForm(response);
formInstance.setFields(formDefinition.fields); formInstance.setFields(formDefinition.fields);
formInstance.setAllWidgets(formDefinition.fields); formInstance.setAllWidgets(formDefinition.fields);
}); });
@@ -85,7 +88,7 @@ describe('Form widgets', () => {
await new NavigationBarPage().clickLogoutButton(); await new NavigationBarPage().clickLogoutButton();
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().logout(); await apiService.getInstance().logout();
}); });
@@ -206,7 +209,6 @@ describe('Form widgets', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path); appModel = await applicationsService.importPublishDeployApp(app.file_path);
const processUtil = new ProcessUtil(apiService);
process = await processUtil.startProcessOfApp(appModel.name); process = await processUtil.startProcessOfApp(appModel.name);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
@@ -219,9 +221,9 @@ describe('Form widgets', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C260405] Value fields configured with process variables', async () => { it('[C260405] Value fields configured with process variables', async () => {
@@ -15,14 +15,11 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, LoginPage, UserModel, UsersActions } from '@alfresco/adf-testing'; import { ApiService, ApplicationsUtil, LoginPage, TaskUtil, UserModel, UsersActions } 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 { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import * as fs from 'fs';
import * as path from 'path';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('People component', () => { describe('People component', () => {
@@ -36,6 +33,8 @@ describe('People component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const taskUtil = new TaskUtil(apiService);
const applicationUtil = new ApplicationsUtil(apiService);
let processUserModel, assigneeUserModel, secondAssigneeUserModel; let processUserModel, assigneeUserModel, secondAssigneeUserModel;
const peopleTitle = 'People this task is shared with '; const peopleTitle = 'People this task is shared with ';
@@ -49,18 +48,15 @@ describe('People component', () => {
secondAssigneeUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId })); secondAssigneeUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId })); processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file); await applicationUtil.importApplication(app.file_path);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[0] })); await taskUtil.createStandaloneTask(tasks[0]);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[1] })); await taskUtil.createStandaloneTask(tasks[1]);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[2] })); await taskUtil.createStandaloneTask(tasks[2]);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[3] })); await taskUtil.createStandaloneTask(tasks[3]);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[4] })); await taskUtil.createStandaloneTask(tasks[4]);
}); });
beforeEach(async () => { beforeEach(async () => {
+1 -1
View File
@@ -64,7 +64,7 @@ describe('Stencil', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -16,10 +16,18 @@
*/ */
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, ApplicationsUtil, LoginPage, ProcessUtil, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage,
ModelsActions,
ProcessUtil,
UsersActions
} from '@alfresco/adf-testing';
import { ProcessFiltersPage } from './../pages/process-filters.page'; import { ProcessFiltersPage } from './../pages/process-filters.page';
import { CommentsPage } from '../../core/pages/comments.page'; import { CommentsPage } from '../../core/pages/comments.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ActivitiCommentsApi, TasksApi } from '@alfresco/js-api';
describe('Comment component for Processes', () => { describe('Comment component for Processes', () => {
@@ -33,6 +41,9 @@ describe('Comment component for Processes', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const commentsApi = new ActivitiCommentsApi(apiService.getInstance());
const taskApi = new TasksApi(apiService.getInstance());
let user, appId, processInstanceId, addedComment; let user, appId, processInstanceId, addedComment;
const processName = 'Comment APS'; const processName = 'Comment APS';
@@ -54,20 +65,20 @@ describe('Comment component for Processes', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C260464] Should be able to add a comment on APS and check on ADF', async () => { it('[C260464] Should be able to add a comment on APS and check on ADF', async () => {
await apiService.getInstance().activiti.commentsApi.addProcessInstanceComment({ message: 'HELLO' }, processInstanceId); await commentsApi.addProcessInstanceComment({ message: 'HELLO' }, processInstanceId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton(); await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName); await processFiltersPage.selectFromProcessList(processName);
addedComment = await apiService.getInstance().activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true }); addedComment = await commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed(); await commentsPage.checkUserIconIsDisplayed();
@@ -78,34 +89,34 @@ describe('Comment component for Processes', () => {
}); });
it('[C260465] Should not be able to view process comment on included task', async () => { it('[C260465] Should not be able to view process comment on included task', async () => {
await apiService.getInstance().activiti.commentsApi.addProcessInstanceComment({ message: 'GOODBYE' }, processInstanceId); await commentsApi.addProcessInstanceComment({ message: 'GOODBYE' }, processInstanceId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton(); await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName); await processFiltersPage.selectFromProcessList(processName);
const taskQuery = await apiService.getInstance().activiti.taskApi.listTasks({ processInstanceId: processInstanceId }); const taskQuery = await taskApi.listTasks({ processInstanceId: processInstanceId });
const taskId = taskQuery.data[0].id; const taskId = taskQuery.data[0].id;
const taskComments = await apiService.getInstance().activiti.commentsApi.getTaskComments(taskId, { 'latestFirst': true }); const taskComments = await commentsApi.getTaskComments(taskId, { 'latestFirst': true });
await expect(taskComments.total).toEqual(0); await expect(taskComments.total).toEqual(0);
}); });
it('[C260466] Should be able to display comments from Task on the related Process', async () => { it('[C260466] Should be able to display comments from Task on the related Process', async () => {
const taskQuery = await apiService.getInstance().activiti.taskApi.listTasks({ processInstanceId: processInstanceId }); const taskQuery = await taskApi.listTasks({ processInstanceId: processInstanceId });
const taskId = taskQuery.data[0].id; const taskId = taskQuery.data[0].id;
await apiService.getInstance().activiti.taskApi.addTaskComment({ message: 'Task Comment' }, taskId); await commentsApi.addTaskComment({ message: 'Task Comment' }, taskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton(); await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName); await processFiltersPage.selectFromProcessList(processName);
const addedTaskComment = await apiService.getInstance().activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true }); const addedTaskComment = await commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed(); await commentsPage.checkUserIconIsDisplayed();
@@ -17,10 +17,18 @@
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, ApplicationsUtil, LoginPage, ProcessUtil, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage,
ModelsActions,
ProcessUtil,
UsersActions
} from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ProcessFiltersPage } from './../pages/process-filters.page'; import { ProcessFiltersPage } from './../pages/process-filters.page';
import { FiltersPage } from './../pages/filters.page'; import { FiltersPage } from './../pages/filters.page';
import { ProcessInstancesApi, UserFiltersApi } from '@alfresco/js-api';
describe('Sorting for process filters', () => { describe('Sorting for process filters', () => {
@@ -33,6 +41,9 @@ describe('Sorting for process filters', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const modelsActions = new ModelsActions(apiService);
const userFiltersApi = new UserFiltersApi(apiService.getInstance());
const processInstancesApi = new ProcessInstancesApi(apiService.getInstance());
let tenantId, appId, user, processesQuery; let tenantId, appId, user, processesQuery;
let importedApp; let importedApp;
@@ -66,9 +77,9 @@ describe('Sorting for process filters', () => {
afterEach(async () => { afterEach(async () => {
try { try {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
} catch (e) { } catch (e) {
} }
@@ -76,7 +87,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260476] Should be able to create a filter on APS for running processes - Oldest first and check on ADF', async () => { it('[C260476] Should be able to create a filter on APS for running processes - Oldest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.running_old_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.running_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'running' } 'filter': { 'sort': 'created-asc', 'name': '', 'state': 'running' }
}); });
@@ -89,7 +100,7 @@ describe('Sorting for process filters', () => {
await processFiltersPage.checkFilterIsDisplayed(processFilter.running_old_first); await processFiltersPage.checkFilterIsDisplayed(processFilter.running_old_first);
await filtersPage.goToFilter(processFilter.running_old_first); await filtersPage.goToFilter(processFilter.running_old_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-asc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-asc'
}); });
await expect(processesQuery.data[0].name).toEqual(firstProc.name); await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -98,7 +109,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260477] Should be able to create a filter on APS for completed processes - Oldest first and check on ADF', async () => { it('[C260477] Should be able to create a filter on APS for completed processes - Oldest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_old_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.completed_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'completed' } 'filter': { 'sort': 'created-asc', 'name': '', 'state': 'completed' }
}); });
@@ -108,9 +119,9 @@ describe('Sorting for process filters', () => {
const secondProc = await processUtil.startProcessOfApp(importedApp.name); const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name); const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id); await processUtil.cancelProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id); await processUtil.cancelProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id); await processUtil.cancelProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -118,7 +129,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_old_first); await filtersPage.goToFilter(processFilter.completed_old_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-asc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-asc'
}); });
await expect(processesQuery.data[0].name).toEqual(firstProc.name); await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -127,7 +138,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260478] Should be able to create a filter on APS for all processes - Oldest first and check on ADF', async () => { it('[C260478] Should be able to create a filter on APS for all processes - Oldest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.all_old_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.all_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'all' } 'filter': { 'sort': 'created-asc', 'name': '', 'state': 'all' }
}); });
@@ -141,9 +152,9 @@ describe('Sorting for process filters', () => {
const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name); const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name);
const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name); const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id); await processUtil.cancelProcessInstance(deleteFirstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id); await processUtil.cancelProcessInstance(deleteSecondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id); await processUtil.cancelProcessInstance(deleteThirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -151,7 +162,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.all_old_first); await filtersPage.goToFilter(processFilter.all_old_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-asc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-asc'
}); });
await expect(processesQuery.data[0].name).toEqual(firstProc.name); await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -163,7 +174,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260479] Should be able to create a filter on APS for running processes - Newest first and check on ADF', async () => { it('[C260479] Should be able to create a filter on APS for running processes - Newest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.running_new_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.running_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' } 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' }
}); });
@@ -179,7 +190,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.running_new_first); await filtersPage.goToFilter(processFilter.running_new_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-desc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-desc'
}); });
await expect(processesQuery.data[0].name).toEqual(thirdProc.name); await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -188,7 +199,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260480] Should be able to create a filter on APS for completed processes - Newest first and check on ADF', async () => { it('[C260480] Should be able to create a filter on APS for completed processes - Newest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_new_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.completed_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'completed' } 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'completed' }
}); });
@@ -198,16 +209,16 @@ describe('Sorting for process filters', () => {
const secondProc = await processUtil.startProcessOfApp(importedApp.name); const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name); const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id); await processUtil.cancelProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id); await processUtil.cancelProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id); await processUtil.cancelProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.checkFilterIsDisplayed(processFilter.completed_new_first); await processFiltersPage.checkFilterIsDisplayed(processFilter.completed_new_first);
await filtersPage.goToFilter(processFilter.completed_new_first); await filtersPage.goToFilter(processFilter.completed_new_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-desc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-desc'
}); });
await expect(processesQuery.data[0].name).toEqual(thirdProc.name); await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -216,7 +227,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C260481] Should be able to create a filter on APS for all processes - Newest first and check on ADF', async () => { it('[C260481] Should be able to create a filter on APS for all processes - Newest first and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.all_new_first, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.all_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'all' } 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'all' }
}); });
@@ -230,9 +241,9 @@ describe('Sorting for process filters', () => {
const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name); const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name);
const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name); const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id); await processUtil.cancelProcessInstance(deleteFirstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id); await processUtil.cancelProcessInstance(deleteSecondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id); await processUtil.cancelProcessInstance(deleteThirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -240,7 +251,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.all_new_first); await filtersPage.goToFilter(processFilter.all_new_first);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-desc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-desc'
}); });
await expect(processesQuery.data[0].name).toEqual(deleteThirdProc.name); await expect(processesQuery.data[0].name).toEqual(deleteThirdProc.name);
@@ -252,7 +263,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C272815] Should be able to create a filter on APS for completed processes - Completed most recently and check on ADF', async () => { it('[C272815] Should be able to create a filter on APS for completed processes - Completed most recently and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_most_recently, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.completed_most_recently, 'icon': 'glyphicon-random',
'filter': { 'sort': 'ended-asc', 'name': '', 'state': 'completed' } 'filter': { 'sort': 'ended-asc', 'name': '', 'state': 'completed' }
}); });
@@ -262,9 +273,9 @@ describe('Sorting for process filters', () => {
const secondProc = await processUtil.startProcessOfApp(importedApp.name); const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name); const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id); await processUtil.cancelProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id); await processUtil.cancelProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id); await processUtil.cancelProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -272,7 +283,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_most_recently); await filtersPage.goToFilter(processFilter.completed_most_recently);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-asc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-asc'
}); });
await expect(processesQuery.data[0].name).toEqual(secondProc.name); await expect(processesQuery.data[0].name).toEqual(secondProc.name);
@@ -281,7 +292,7 @@ describe('Sorting for process filters', () => {
}); });
it('[C272816] Should be able to create a filter on APS for completed processes - Completed least recently and check on ADF', async () => { it('[C272816] Should be able to create a filter on APS for completed processes - Completed least recently and check on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_least_recently, 'icon': 'glyphicon-random', 'appId': null, 'name': processFilter.completed_least_recently, 'icon': 'glyphicon-random',
'filter': { 'sort': 'ended-desc', 'name': '', 'state': 'completed' } 'filter': { 'sort': 'ended-desc', 'name': '', 'state': 'completed' }
}); });
@@ -291,9 +302,9 @@ describe('Sorting for process filters', () => {
const secondProc = await processUtil.startProcessOfApp(importedApp.name); const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name); const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id); await processUtil.cancelProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id); await processUtil.cancelProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id); await processUtil.cancelProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -301,7 +312,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_least_recently); await filtersPage.goToFilter(processFilter.completed_least_recently);
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({ processesQuery = await processInstancesApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-desc' 'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-desc'
}); });
await expect(processesQuery.data[0].name).toEqual(thirdProc.name); await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -20,6 +20,7 @@ import { ProcessFiltersPage } from './../pages/process-filters.page';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { AppSettingsTogglesPage } from './../pages/dialog/app-settings-toggles.page'; import { AppSettingsTogglesPage } from './../pages/dialog/app-settings-toggles.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { UserFiltersApi } from '@alfresco/js-api';
describe('New Process Filters', () => { describe('New Process Filters', () => {
@@ -31,6 +32,7 @@ describe('New Process Filters', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const userFiltersApi = new UserFiltersApi(apiService.getInstance());
let tenantId, user, filterId, customProcessFilter; let tenantId, user, filterId, customProcessFilter;
@@ -59,7 +61,7 @@ describe('New Process Filters', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
it('[C279965] Should be able to view default filters on ADF', async () => { it('[C279965] Should be able to view default filters on ADF', async () => {
@@ -71,7 +73,7 @@ describe('New Process Filters', () => {
}); });
it('[C260473] Should be able to create a new filter on APS and display it on ADF', async () => { it('[C260473] Should be able to create a new filter on APS and display it on ADF', async () => {
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ customProcessFilter = await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'appId': null,
'name': processFilter.new_filter, 'name': processFilter.new_filter,
'icon': 'glyphicon-random', 'icon': 'glyphicon-random',
@@ -86,7 +88,7 @@ describe('New Process Filters', () => {
}); });
it('[C286450] Should display the process filter icon when a custom filter is added', async () => { it('[C286450] Should display the process filter icon when a custom filter is added', async () => {
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ customProcessFilter = await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'appId': null,
'name': processFilter.new_icon, 'name': processFilter.new_icon,
'icon': 'glyphicon-cloud', 'icon': 'glyphicon-cloud',
@@ -108,7 +110,7 @@ describe('New Process Filters', () => {
}); });
it('[C260474] Should be able to edit a filter on APS and check it on ADF', async () => { it('[C260474] Should be able to edit a filter on APS and check it on ADF', async () => {
await apiService.getInstance().activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, { await userFiltersApi.updateUserProcessInstanceFilter(filterId, {
'appId': null, 'appId': null,
'name': processFilter.edited, 'name': processFilter.edited,
'icon': 'glyphicon-random', 'icon': 'glyphicon-random',
@@ -121,7 +123,7 @@ describe('New Process Filters', () => {
}); });
it('[C286451] Should display changes on a process filter when this filter icon is edited', async () => { it('[C286451] Should display changes on a process filter when this filter icon is edited', async () => {
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ customProcessFilter = await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'appId': null,
'name': processFilter.edit_icon, 'name': processFilter.edit_icon,
'icon': 'glyphicon-random', 'icon': 'glyphicon-random',
@@ -134,7 +136,7 @@ describe('New Process Filters', () => {
await processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon); await processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
await apiService.getInstance().activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, { await userFiltersApi.updateUserProcessInstanceFilter(filterId, {
'appId': null, 'appId': null,
'name': processFilter.edit_icon, 'name': processFilter.edit_icon,
'icon': 'glyphicon-cloud', 'icon': 'glyphicon-cloud',
@@ -166,7 +168,7 @@ describe('New Process Filters', () => {
}); });
it('[C260475] Should be able to delete a filter on APS and check it on ADF', async () => { it('[C260475] Should be able to delete a filter on APS and check it on ADF', async () => {
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({ customProcessFilter = await userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'appId': null,
'name': processFilter.deleted, 'name': processFilter.deleted,
'icon': 'glyphicon-random', 'icon': 'glyphicon-random',
@@ -175,7 +177,7 @@ describe('New Process Filters', () => {
filterId = customProcessFilter.id; filterId = customProcessFilter.id;
await apiService.getInstance().activiti.userFiltersApi.deleteUserProcessInstanceFilter(filterId); await userFiltersApi.deleteUserProcessInstanceFilter(filterId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -22,7 +22,8 @@ import {
LoginPage, LoginPage,
ProcessUtil, ProcessUtil,
UsersActions, UsersActions,
ViewerPage ViewerPage,
ModelsActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from './../pages/process-filters.page'; import { ProcessFiltersPage } from './../pages/process-filters.page';
import { ProcessDetailsPage } from './../pages/process-details.page'; import { ProcessDetailsPage } from './../pages/process-details.page';
@@ -45,6 +46,7 @@ describe('Attachment list action menu for processes', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const pngFile = new FileModel({ const pngFile = new FileModel({
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location, location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location,
@@ -85,9 +87,9 @@ describe('Attachment list action menu for processes', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
it('[C260228] Should be able to access options of a file attached to an active process', async () => { it('[C260228] Should be able to access options of a file attached to an active process', async () => {
@@ -29,7 +29,7 @@ import { ProcessFiltersPage } from './../pages/process-filters.page';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { ProcessDetailsPage } from './../pages/process-details.page'; import { ProcessDetailsPage } from './../pages/process-details.page';
import { ProcessListPage } from './../pages/process-list.page'; import { ProcessListPage } from './../pages/process-list.page';
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api'; import { RuntimeAppDefinitionsApi, UserFiltersApi, UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ProcessListDemoPage } from './../pages/process-list-demo.page'; import { ProcessListDemoPage } from './../pages/process-list-demo.page';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
@@ -51,6 +51,8 @@ describe('Process Filters Test', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const userFiltersApi = new UserFiltersApi(apiService.getInstance());
const appsApi = new RuntimeAppDefinitionsApi(apiService.getInstance());
let appModel, user; let appModel, user;
@@ -137,15 +139,12 @@ describe('Process Filters Test', () => {
it('[C280407] Should be able to access the filters with URL', async () => { it('[C280407] Should be able to access the filters with URL', async () => {
const defaultFiltersNumber = 3; const defaultFiltersNumber = 3;
let deployedApp, processFilterUrl; let processFilterUrl;
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); const deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
processFilterUrl = browser.baseUrl + '/activiti/apps/' + deployedApp.id + '/processes/'; processFilterUrl = browser.baseUrl + '/activiti/apps/' + deployedAppId + '/processes/';
const taskAppFilters = await apiService.getInstance().activiti.userFiltersApi.getUserProcessInstanceFilters({ appId: deployedApp.id }); const taskAppFilters = await userFiltersApi.getUserProcessInstanceFilters({ appId: deployedAppId });
await processServicesPage.goToApp(app.title); await processServicesPage.goToApp(app.title);
await processServiceTabBarPage.clickProcessButton(); await processServiceTabBarPage.clickProcessButton();
@@ -194,7 +193,7 @@ describe('Process Filters Test', () => {
await processListDemoPage.checkProcessIsDisplayed(processTitle.one); await processListDemoPage.checkProcessIsDisplayed(processTitle.one);
await processFiltersPage.checkFilterIsHighlighted(processFilter.running); await processFiltersPage.checkFilterIsHighlighted(processFilter.running);
await processDetailsPage.propertiesList.waitVisible(); await processDetailsPage.propertiesList.waitVisible();
await checkProcessInfoDrawer({ name: processTitle.one }); await checkProcessInfoDrawer({ name: processTitle.one });
await processFiltersPage.clickCreateProcessButton(); await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown(); await processFiltersPage.clickNewProcessDropdown();
@@ -220,8 +219,8 @@ describe('Process Filters Test', () => {
}); });
it('[C260384] Edit default filter', async () => { it('[C260384] Edit default filter', async () => {
const runningFilter = (await getFilter()).find(filter => filter.name === 'Running'); const runningFilter = (await getFilter()).find(filter => filter.name === 'Running');
await apiService.getInstance().activiti.userFiltersApi await userFiltersApi
.updateUserProcessInstanceFilter(runningFilter.id, { ...runningFilter, name: 'Edited Running' }); .updateUserProcessInstanceFilter(runningFilter.id, { ...runningFilter, name: 'Edited Running' });
await processServicesPage.goToApp(app.title); await processServicesPage.goToApp(app.title);
@@ -231,8 +230,8 @@ describe('Process Filters Test', () => {
}); });
it('[C260385] Delete default filter', async () => { it('[C260385] Delete default filter', async () => {
const allFilter = (await getFilter()).find(filter => filter.name === 'All'); const allFilter = (await getFilter()).find(filter => filter.name === 'All');
await apiService.getInstance().activiti.userFiltersApi.deleteUserProcessInstanceFilter(allFilter.id); await userFiltersApi.deleteUserProcessInstanceFilter(allFilter.id);
await processServicesPage.goToApp(app.title); await processServicesPage.goToApp(app.title);
await processServiceTabBarPage.clickProcessButton(); await processServiceTabBarPage.clickProcessButton();
@@ -240,9 +239,10 @@ describe('Process Filters Test', () => {
}); });
async function getFilter(): Promise<UserProcessInstanceFilterRepresentation[]> { async function getFilter(): Promise<UserProcessInstanceFilterRepresentation[]> {
const apps = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); const apps = await appsApi.getAppDefinitions();
const { id: appId = 0 } = apps.data.find((application) => application.name === appModel.name); const { id: appId = 0 } = apps.data.find((application) => application.name === appModel.name);
const filters = await apiService.getInstance().activiti.userFiltersApi.getUserProcessInstanceFilters({ appId });
const filters = await userFiltersApi.getUserProcessInstanceFilters({ appId });
return filters.data; return filters.data;
} }
@@ -16,13 +16,21 @@
*/ */
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, ApplicationsUtil, LoginPage, ProcessUtil, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage,
ModelsActions,
ProcessUtil,
UsersActions
} from '@alfresco/adf-testing';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { ProcessListPage } from './../pages/process-list.page'; import { ProcessListPage } from './../pages/process-list.page';
import { ProcessDetailsPage } from './../pages/process-details.page'; import { ProcessDetailsPage } from './../pages/process-details.page';
import moment = require('moment'); import moment = require('moment');
import { ProcessInstancesApi } from '@alfresco/js-api';
describe('Process Instance Details', () => { describe('Process Instance Details', () => {
@@ -38,6 +46,8 @@ describe('Process Instance Details', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const processApi = new ProcessInstancesApi(apiService.getInstance());
let appModel, process, user; let appModel, process, user;
const PROCESS_DATE_FORMAT = 'll'; const PROCESS_DATE_FORMAT = 'll';
@@ -60,13 +70,13 @@ describe('Process Instance Details', () => {
await processServiceTabBarPage.clickProcessButton(); await processServiceTabBarPage.clickProcessButton();
await expect(await processListPage.isProcessListDisplayed()).toEqual(true); await expect(await processListPage.isProcessListDisplayed()).toEqual(true);
process = await apiService.getInstance().activiti.processApi.getProcessInstance(processModel.id); process = await processApi.getProcessInstance(processModel.id);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appModel.id); await modelsActions.deleteModel(appModel.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C307031] Should display the created date in the default format', async () => { it('[C307031] Should display the created date in the default format', async () => {
@@ -19,12 +19,13 @@ import {
ApiService, ApiService,
ApplicationsUtil, ApplicationsUtil,
BrowserActions, BrowserActions,
LoginPage, LoginPage, ModelsActions,
ProcessUtil, ProcessUtil,
UsersActions UsersActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { ProcessListDemoPage } from './../pages/process-list-demo.page'; import { ProcessListDemoPage } from './../pages/process-list-demo.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { TaskFormsApi } from '@alfresco/js-api';
describe('Process List Test', () => { describe('Process List Test', () => {
@@ -37,6 +38,8 @@ describe('Process List Test', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const applicationsUtil = new ApplicationsUtil(apiService); const applicationsUtil = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const modelsActions = new ModelsActions(apiService);
const taskFormsApi = new TaskFormsApi(apiService.getInstance());
let appDateModel, appUserWidgetModel, user; let appDateModel, appUserWidgetModel, user;
@@ -81,19 +84,19 @@ describe('Process List Test', () => {
const procWithUserWidgetTaskId = await processUtil.getProcessTaskId(completedProcWithUserWidget.id); const procWithUserWidgetTaskId = await processUtil.getProcessTaskId(completedProcWithUserWidget.id);
await apiService.getInstance().activiti.taskApi.completeTaskForm(procWithDateTaskId.id, { values: { label: null } }); await taskFormsApi.completeTaskForm(procWithDateTaskId.id, { values: { label: null } });
await apiService.getInstance().activiti.taskFormsApi.completeTaskForm(procWithUserWidgetTaskId.id, { values: { label: null } }); await taskFormsApi.completeTaskForm(procWithUserWidgetTaskId.id, { values: { label: null } });
await loginPage.login(user.username, user.password); await loginPage.login(user.username, user.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appDateModel.id); await modelsActions.deleteModel(appDateModel.id);
await apiService.getInstance().activiti.modelsApi.deleteModel(appUserWidgetModel.id); await modelsActions.deleteModel(appUserWidgetModel.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -21,7 +21,7 @@ import {
ApplicationsUtil, BrowserActions, ApplicationsUtil, BrowserActions,
FileBrowserUtil, FileBrowserUtil,
LocalStorageUtil, LocalStorageUtil,
LoginPage, LoginPage, ModelsActions,
ProcessInstanceTasksPage, ProcessInstanceTasksPage,
SelectAppsDialog, SelectAppsDialog,
StartProcessPage, StartProcessPage,
@@ -40,6 +40,7 @@ import { ProcessServicesPage } from './../pages/process-services.page';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page'; import { UploadDialogPage } from '../../core/pages/dialog/upload-dialog.page';
import { ProcessInstancesApi } from '@alfresco/js-api';
describe('Start Process Component', () => { describe('Start Process Component', () => {
@@ -63,6 +64,9 @@ describe('Start Process Component', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const apiServiceUserTwo = new ApiService(); const apiServiceUserTwo = new ApiService();
const modelsActions = new ModelsActions(apiService);
const usersActions = new UsersActions(apiService);
const processApi = new ProcessInstancesApi(apiService.getInstance());
let procUserModel: UserModel; let procUserModel: UserModel;
let secondProcUserModel: UserModel; let secondProcUserModel: UserModel;
@@ -85,7 +89,6 @@ describe('Start Process Component', () => {
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
const usersActions = new UsersActions(apiService);
procUserModel = await usersActions.createUser(); procUserModel = await usersActions.createUser();
secondProcUserModel = await usersActions.createUser(new UserModel({ tenantId: procUserModel.tenantId })); secondProcUserModel = await usersActions.createUser(new UserModel({ tenantId: procUserModel.tenantId }));
@@ -99,10 +102,10 @@ describe('Start Process Component', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(appCreated.id); await modelsActions.deleteModel(appCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(simpleAppCreated.id); await modelsActions.deleteModel(simpleAppCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(dateFormAppCreated.id); await modelsActions.deleteModel(dateFormAppCreated.id);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(procUserModel.tenantId); await usersActions.deleteTenant(procUserModel.tenantId);
}); });
describe(' Once logged with user without apps', () => { describe(' Once logged with user without apps', () => {
@@ -205,7 +208,7 @@ describe('Start Process Component', () => {
await processDetailsPage.checkProcessHeaderDetailsAreVisible(); await processDetailsPage.checkProcessHeaderDetailsAreVisible();
const processId = await processDetailsPage.getId(); const processId = await processDetailsPage.getId();
const response = await apiService.getInstance().activiti.processApi.getProcessInstance(processId); const response = await processApi.getProcessInstance(processId);
await expect(await processDetailsPage.getProcessStatus()).toEqual(CONSTANTS.PROCESS_STATUS.RUNNING); await expect(await processDetailsPage.getProcessStatus()).toEqual(CONSTANTS.PROCESS_STATUS.RUNNING);
await expect(await processDetailsPage.getEndDate()).toEqual(CONSTANTS.PROCESS_END_DATE); await expect(await processDetailsPage.getEndDate()).toEqual(CONSTANTS.PROCESS_END_DATE);
@@ -485,11 +488,11 @@ describe('Start Process Component', () => {
hostBpm: browser.params.testConfig.appConfig.bpmHost hostBpm: browser.params.testConfig.appConfig.bpmHost
}); });
const usersActions = new UsersActions(apiServiceAll); const usersActionsAll = new UsersActions(apiServiceAll);
await apiServiceAll.login(browser.params.testConfig.users.admin.username, browser.params.testConfig.users.admin.password); await apiServiceAll.login(browser.params.testConfig.users.admin.username, browser.params.testConfig.users.admin.password);
processUserModel = await usersActions.createUser(); processUserModel = await usersActionsAll.createUser();
const alfrescoJsBPMAdminUser = new ApiService({ hostBpm: browser.params.testConfig.appConfig.bpmHost }); const alfrescoJsBPMAdminUser = new ApiService({ hostBpm: browser.params.testConfig.appConfig.bpmHost });
@@ -17,12 +17,19 @@
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, ApplicationsUtil, LoginPage, UserModel, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage,
ModelsActions,
TaskUtil,
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 { CommentsPage } from '../../core/pages/comments.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ActivitiCommentsApi, TaskActionsApi } from '@alfresco/js-api';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Comment component for Processes', () => { describe('Comment component for Processes', () => {
@@ -36,6 +43,10 @@ describe('Comment component for Processes', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const taskUtil = new TaskUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const activitiCommentsApi = new ActivitiCommentsApi(apiService.getInstance());
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
let user, appId, secondUser; let user, appId, secondUser;
@@ -59,17 +70,17 @@ describe('Comment component for Processes', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C260237] Should not be able to add a comment on a completed task', async () => { it('[C260237] Should not be able to add a comment on a completed task', async () => {
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskName.completed_task })); const newTask = await taskUtil.createStandaloneTask(taskName.completed_task);
const taskId = newTask.id; const taskId = newTask.id;
await apiService.getInstance().activiti.taskActionsApi.completeTask(taskId); await taskActionsApi.completeTask(taskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -80,15 +91,15 @@ describe('Comment component for Processes', () => {
}); });
it('[C212864] Should be able to add multiple comments on a single task using different users', async () => { it('[C212864] Should be able to add multiple comments on a single task using different users', async () => {
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskName.multiple_users })); const newTask = await taskUtil.createStandaloneTask(taskName.multiple_users);
await apiService.getInstance().activiti.taskApi.involveUser(newTask.id, { email: secondUser.email }); await taskActionsApi.involveUser(newTask.id, { email: secondUser.email });
const taskComment = { message: 'Task Comment' }; const taskComment = { message: 'Task Comment' };
const secondTaskComment = { message: 'Second Task Comment' }; const secondTaskComment = { message: 'Second Task Comment' };
await apiService.getInstance().activiti.taskApi.addTaskComment(taskComment, newTask.id); await activitiCommentsApi.addTaskComment(taskComment, newTask.id);
await apiService.getInstance().activiti.taskApi.addTaskComment(secondTaskComment, newTask.id); await activitiCommentsApi.addTaskComment(secondTaskComment, newTask.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -96,7 +107,7 @@ describe('Comment component for Processes', () => {
await taskPage.tasksListPage().selectRow(taskName.multiple_users); await taskPage.tasksListPage().selectRow(taskName.multiple_users);
await taskPage.taskDetails().selectActivityTab(); await taskPage.taskDetails().selectActivityTab();
const totalCommentsLatest = await apiService.getInstance().activiti.taskApi.getTaskComments(newTask.id, { 'latestFirst': true }); const totalCommentsLatest = await activitiCommentsApi.getTaskComments(newTask.id, { 'latestFirst': true });
const thirdTaskComment = { message: 'Third Task Comment' }; const thirdTaskComment = { message: 'Third Task Comment' };
@@ -117,7 +128,7 @@ describe('Comment component for Processes', () => {
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
await loginPage.login(secondUser.username, secondUser.password); await loginPage.login(secondUser.username, secondUser.password);
await apiService.getInstance().activiti.taskApi.addTaskComment(thirdTaskComment, newTask.id); await activitiCommentsApi.addTaskComment(thirdTaskComment, newTask.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -125,7 +136,7 @@ describe('Comment component for Processes', () => {
await taskPage.tasksListPage().selectRow(taskName.multiple_users); await taskPage.tasksListPage().selectRow(taskName.multiple_users);
await taskPage.taskDetails().selectActivityTab(); await taskPage.taskDetails().selectActivityTab();
const totalComments = await apiService.getInstance().activiti.taskApi.getTaskComments(newTask.id, { 'latestFirst': true }); const totalComments = await activitiCommentsApi.getTaskComments(newTask.id, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed(); await commentsPage.checkUserIconIsDisplayed();
await commentsPage.checkUserIconIsDisplayed(); await commentsPage.checkUserIconIsDisplayed();
@@ -22,14 +22,13 @@ import {
DateUtil, DateUtil,
LoginPage, LoginPage,
PaginationPage, PaginationPage,
ProcessUtil, ProcessUtil, TaskUtil,
UsersActions UsersActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { AppsRuntimeActions } from '../../actions/APS/apps-runtime.actions';
import { TaskListDemoPage } from './../pages/task-list-demo.page'; import { TaskListDemoPage } from './../pages/task-list-demo.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { TaskRepresentation } from '@alfresco/js-api'; import { TaskActionsApi, TaskRepresentation, TasksApi } from '@alfresco/js-api';
import moment = require('moment'); import moment = require('moment');
describe('Start Task - Custom App', () => { describe('Start Task - Custom App', () => {
@@ -43,10 +42,13 @@ describe('Start Task - Custom App', () => {
const paginationPage = new PaginationPage(); const paginationPage = new PaginationPage();
const apiService = new ApiService(); const apiService = new ApiService();
const appsRuntime = new AppsRuntimeActions(apiService); const appsRuntime = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService); const processUtil = new ProcessUtil(apiService);
const taskUtil = new TaskUtil(apiService);
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
const tasksApi = new TasksApi(apiService.getInstance());
let processUserModel; let processUserModel;
let appRuntime, secondAppRuntime; let appRuntime, secondAppRuntime;
@@ -89,11 +91,11 @@ describe('Start Task - Custom App', () => {
appModel = await applicationsService.importPublishDeployApp(app.file_path); appModel = await applicationsService.importPublishDeployApp(app.file_path);
appRuntime = await appsRuntime.getRuntimeAppByName(app.title); appRuntime = await appsRuntime.getAppDefinitionByName(app.title);
await applicationsService.importPublishDeployApp(secondApp.file_path); await applicationsService.importPublishDeployApp(secondApp.file_path);
secondAppRuntime = await appsRuntime.getRuntimeAppByName(secondApp.title); secondAppRuntime = await appsRuntime.getAppDefinitionByName(secondApp.title);
processDefinitionId = await processUtil.startProcessOfApp(appModel.name); processDefinitionId = await processUtil.startProcessOfApp(appModel.name);
await processUtil.startProcessOfApp(appModel.name); await processUtil.startProcessOfApp(appModel.name);
@@ -101,18 +103,18 @@ describe('Start Task - Custom App', () => {
await processUtil.startProcessOfApp(appModel.name); await processUtil.startProcessOfApp(appModel.name);
for (let i = 1; i < paginationTasksName.length; i++) { for (let i = 1; i < paginationTasksName.length; i++) {
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': paginationTasksName[i] })); await taskUtil.createStandaloneTask(paginationTasksName[i]);
} }
for (let i = 0; i < 3; i++) { for (let i = 0; i < 3; i++) {
completedTasks[i] = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ completedTasks[i] = await tasksApi.createNewTask(new TaskRepresentation({
'name': completedTasksName[i], 'name': completedTasksName[i],
'dueDate': DateUtil.formatDate('YYYY-MM-DDTHH:mm:ss.SSSZ', new Date(), i + 2) 'dueDate': DateUtil.formatDate('YYYY-MM-DDTHH:mm:ss.SSSZ', new Date(), i + 2)
})); }));
await apiService.getInstance().activiti.taskActionsApi.completeTask(completedTasks[i].id); await taskActionsApi.completeTask(completedTasks[i].id);
} }
taskWithDueDate = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ taskWithDueDate = await tasksApi.createNewTask(new TaskRepresentation({
'name': paginationTasksName[0], 'name': paginationTasksName[0],
'dueDate': currentDateStandardFormat 'dueDate': currentDateStandardFormat
})); }));
@@ -21,7 +21,7 @@ import {
BrowserActions, BrowserActions,
BrowserVisibility, BrowserVisibility,
LocalStorageUtil, LocalStorageUtil,
LoginPage, LoginPage, ModelsActions,
StringUtil, StringUtil,
UserModel, UserModel,
UsersActions UsersActions
@@ -47,6 +47,8 @@ describe('Info Drawer', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const usersActions = new UsersActions(apiService);
const firstComment = 'comm1'; const firstComment = 'comm1';
@@ -72,8 +74,6 @@ describe('Info Drawer', () => {
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
const usersActions = new UsersActions(apiService);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
const assigneeUserModel = await usersActions.createUser(); const assigneeUserModel = await usersActions.createUser();
@@ -89,9 +89,9 @@ describe('Info Drawer', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appCreated.id); await modelsActions.deleteModel(appCreated.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -20,13 +20,12 @@ import {
ApplicationsUtil, ApplicationsUtil,
LoginPage, LoginPage,
PaginationPage, PaginationPage,
StringUtil, StringUtil, TaskUtil,
UsersActions UsersActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Task List Pagination - Sorting', () => { describe('Task List Pagination - Sorting', () => {
@@ -40,6 +39,7 @@ describe('Task List Pagination - Sorting', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const taskUtil = new TaskUtil(apiService);
const nrOfTasks = 20; const nrOfTasks = 20;
let processUserModel; let processUserModel;
@@ -65,11 +65,11 @@ describe('Task List Pagination - Sorting', () => {
await applicationsService.importPublishDeployApp(app.file_path); await applicationsService.importPublishDeployApp(app.file_path);
for (let i = 0; i < nrOfTasks; i++) { for (let i = 0; i < nrOfTasks; i++) {
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskNames[i] })); await taskUtil.createStandaloneTask(taskNames[i]);
} }
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
it('[C260308] Should be possible to sort tasks by name', async () => { it('[C260308] Should be possible to sort tasks by name', async () => {
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp(); await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp();
@@ -79,13 +79,12 @@ describe('Task List Pagination - Sorting', () => {
await taskPage.tasksListPage().getDataTable().waitForTableBody(); await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().sortByName('ASC'); await taskPage.filtersPage().sortByName('ASC');
await taskPage.tasksListPage().getDataTable().waitForTableBody(); await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().getAllRowsNameColumn().then(async (list) => { const listAsc = await taskPage.filtersPage().getAllRowsNameColumn();
await expect(JSON.stringify(list) === JSON.stringify(taskNames)).toEqual(true); await expect(JSON.stringify(listAsc) === JSON.stringify(taskNames)).toEqual(true);
});
await taskPage.filtersPage().sortByName('DESC'); await taskPage.filtersPage().sortByName('DESC');
await taskPage.filtersPage().getAllRowsNameColumn().then(async (list) => { const listDesc = await taskPage.filtersPage().getAllRowsNameColumn();
taskNames.reverse();
await expect(JSON.stringify(list) === JSON.stringify(taskNames)).toEqual(true); taskNames.reverse();
}); await expect(JSON.stringify(listDesc) === JSON.stringify(taskNames)).toEqual(true);
}); });
}); });
@@ -17,13 +17,12 @@
import { browser } from 'protractor'; import { browser } from 'protractor';
import { ApiService, LoginPage, UsersActions } from '@alfresco/adf-testing'; import { ApiService, ApplicationsUtil, LoginPage, UsersActions } 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 { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import * as fs from 'fs';
import * as path from 'path';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import Task = require('../../models/APS/Task'); import Task = require('../../models/APS/Task');
import { TaskActionsApi, TasksApi } from '@alfresco/js-api';
describe('Start Task - Task App', () => { describe('Start Task - Task App', () => {
@@ -34,24 +33,21 @@ describe('Start Task - Task App', () => {
const taskPage = new TasksPage(); const taskPage = new TasksPage();
let processUserModel; let processUserModel;
const tasks = ['Standalone task', 'Completed standalone task', 'Add a form', 'Remove form'];
const noFormMessage = 'No forms attached'; const noFormMessage = 'No forms attached';
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationUtil = new ApplicationsUtil(apiService);
const tasksApi = new TasksApi(apiService.getInstance());
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file); await applicationUtil.importApplication(app.file_path);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
@@ -64,9 +60,9 @@ describe('Start Task - Task App', () => {
it('[C260421] Should a standalone task be displayed when creating a new task without form', async () => { it('[C260421] Should a standalone task be displayed when creating a new task without form', async () => {
const task = await taskPage.createNewTask(); const task = await taskPage.createNewTask();
await task.addName(tasks[0]); await task.addName('Standalone task');
await task.clickStartButton(); await task.clickStartButton();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[0]); await taskPage.tasksListPage().checkContentIsDisplayed('Standalone task');
await taskPage.taskDetails().noFormIsDisplayed(); await taskPage.taskDetails().noFormIsDisplayed();
const taskDetails = await taskPage.taskDetails(); const taskDetails = await taskPage.taskDetails();
@@ -80,15 +76,16 @@ describe('Start Task - Task App', () => {
it('[C268910] Should a standalone task be displayed in completed tasks when completing it', async () => { it('[C268910] Should a standalone task be displayed in completed tasks when completing it', async () => {
const task = await taskPage.createNewTask(); const task = await taskPage.createNewTask();
await task.addName(tasks[1]); await task.addName('Completed standalone task');
await task.clickStartButton(); await task.clickStartButton();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[1]);
await taskPage.tasksListPage().checkContentIsDisplayed('Completed standalone task');
await taskPage.formFields().noFormIsDisplayed(); await taskPage.formFields().noFormIsDisplayed();
await taskPage.completeTaskNoForm(); await taskPage.completeTaskNoForm();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().selectRow(tasks[1]); await taskPage.tasksListPage().selectRow('Completed standalone task');
await expect(await taskPage.formFields().getCompletedTaskNoFormMessage()).toEqual('Task ' + tasks[1] + ' completed'); await expect(await taskPage.formFields().getCompletedTaskNoFormMessage()).toEqual('Task ' + 'Completed standalone task' + ' completed');
await taskPage.formFields().noFormIsDisplayed(); await taskPage.formFields().noFormIsDisplayed();
await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM); await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM);
@@ -96,10 +93,10 @@ describe('Start Task - Task App', () => {
it('[C268911] Should allow adding a form to a standalone task when clicking on Add form button', async () => { it('[C268911] Should allow adding a form to a standalone task when clicking on Add form button', async () => {
const task = await taskPage.createNewTask(); const task = await taskPage.createNewTask();
await task.addName(tasks[2]); await task.addName('Add a form');
await task.clickStartButton(); await task.clickStartButton();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[2]); await taskPage.tasksListPage().checkContentIsDisplayed('Add a form');
await taskPage.formFields().noFormIsDisplayed(); await taskPage.formFields().noFormIsDisplayed();
await taskPage.taskDetails().clickAttachFormButton(); await taskPage.taskDetails().clickAttachFormButton();
@@ -116,19 +113,19 @@ describe('Start Task - Task App', () => {
it('[C268912] Should a standalone task be displayed when removing the form from APS', async () => { it('[C268912] Should a standalone task be displayed when removing the form from APS', async () => {
const task = await taskPage.createNewTask(); const task = await taskPage.createNewTask();
const taskDetails = await taskPage.taskDetails(); const taskDetails = await taskPage.taskDetails();
await task.addName(tasks[3]); await task.addName('Remove form');
await task.selectForm(app.formName); await task.selectForm(app.formName);
await task.clickStartButton(); await task.clickStartButton();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[3]); await taskPage.tasksListPage().checkContentIsDisplayed('Remove form');
await taskPage.taskDetails().waitFormNameEqual(app.formName); await taskPage.taskDetails().waitFormNameEqual(app.formName);
const listOfTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const listOfTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
await apiService.getInstance().activiti.taskApi.removeForm(listOfTasks.data[0].id); await taskActionsApi.removeForm(listOfTasks.data[0].id);
await browser.refresh(); await browser.refresh();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[3]); await taskPage.tasksListPage().checkContentIsDisplayed('Remove form');
await taskPage.checkTaskTitle(tasks[3]); await taskPage.checkTaskTitle('Remove form');
await taskPage.formFields().noFormIsDisplayed(); await taskPage.formFields().noFormIsDisplayed();
await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM); await taskPage.taskDetails().waitFormNameEqual(CONSTANTS.TASK_DETAILS.NO_FORM);
@@ -15,7 +15,15 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, LoginPage, StringUtil, UserModel, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage,
StringUtil,
TaskUtil,
UserModel,
UsersActions
} from '@alfresco/adf-testing';
import { browser, by } from 'protractor'; import { browser, by } from 'protractor';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
@@ -23,9 +31,6 @@ import { AttachmentListPage } from './../pages/attachment-list.page';
import { ChecklistDialog } from './../pages/dialog/create-checklist-dialog.page'; import { ChecklistDialog } from './../pages/dialog/create-checklist-dialog.page';
import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page'; import { ProcessServiceTabBarPage } from './../pages/process-service-tab-bar.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import * as fs from 'fs';
import * as path from 'path';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
describe('Start Task - Task App', () => { describe('Start Task - Task App', () => {
@@ -39,6 +44,8 @@ describe('Start Task - Task App', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const taskUtil = new TaskUtil(apiService);
const applicationsUtil = new ApplicationsUtil(apiService);
let processUserModel, assigneeUserModel; let processUserModel, assigneeUserModel;
const formTextField = app.form_fields.form_fieldId; const formTextField = app.form_fields.form_fieldId;
@@ -62,14 +69,11 @@ describe('Start Task - Task App', () => {
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId })); processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file); await applicationsUtil.importApplication(app.file_path);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: showHeaderTask })); await taskUtil.createStandaloneTask(showHeaderTask);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
+12 -10
View File
@@ -33,6 +33,7 @@ import { ProcessListPage } from './../pages/process-list.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { AdminGroupsApi } from '@alfresco/js-api';
describe('Task Assignee', () => { describe('Task Assignee', () => {
@@ -51,6 +52,7 @@ describe('Task Assignee', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const adminGroupsApi = new AdminGroupsApi(apiService.getInstance());
describe('Candidate User Assignee', () => { describe('Candidate User Assignee', () => {
@@ -65,7 +67,7 @@ describe('Task Assignee', () => {
})); }));
try {// creates group if not available try {// creates group if not available
await apiService.getInstance().activiti.adminGroupsApi.createNewGroup({ await adminGroupsApi.createNewGroup({
'name': app.candidateGroup, 'name': app.candidateGroup,
'tenantId': user.tenantId, 'tenantId': user.tenantId,
'type': 1 'type': 1
@@ -81,7 +83,7 @@ describe('Task Assignee', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -132,21 +134,21 @@ describe('Task Assignee', () => {
candidate1 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId })); candidate1 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId }));
candidate2 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId })); candidate2 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId }));
const adminGroup = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup( const adminGroup = await adminGroupsApi.createNewGroup(
{ 'name': app.adminGroup, 'tenantId': user.tenantId } { 'name': app.adminGroup, 'tenantId': user.tenantId }
); );
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(adminGroup.id, user.id); await adminGroupsApi.addGroupMember(adminGroup.id, user.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupCapabilities(adminGroup.id, { capabilities: app.adminCapabilities }); await adminGroupsApi.addGroupCapabilities(adminGroup.id, { capabilities: app.adminCapabilities });
const candidateGroup = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup( const candidateGroup = await adminGroupsApi.createNewGroup(
{ 'name': app.candidateGroup, 'tenantId': user.tenantId, 'type': 1 } { 'name': app.candidateGroup, 'tenantId': user.tenantId, 'type': 1 }
); );
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate1.id); await adminGroupsApi.addGroupMember(candidateGroup.id, candidate1.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate2.id); await adminGroupsApi.addGroupMember(candidateGroup.id, candidate2.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, user.id); await adminGroupsApi.addGroupMember(candidateGroup.id, user.id);
try {// for creates user if not available try {// for creates user if not available
await usersActions.createUser(new UserModel({ await usersActions.createUser(new UserModel({
@@ -165,7 +167,7 @@ describe('Task Assignee', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C216430] Start Task - Claim and Requeue a task', async () => { it('[C216430] Start Task - Claim and Requeue a task', async () => {
@@ -20,7 +20,7 @@ import {
ApiService, ApiService,
ApplicationsUtil, ApplicationsUtil,
FileBrowserUtil, FileBrowserUtil,
LoginPage, LoginPage, ModelsActions, TaskUtil,
UsersActions, UsersActions,
ViewerPage ViewerPage
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
@@ -30,8 +30,9 @@ import { AttachmentListPage } from './../pages/attachment-list.page';
import * as fs from 'fs'; import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import { FileModel } from '../../models/ACS/file.model'; import { FileModel } from '../../models/ACS/file.model';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { Activiti } from '@alfresco/js-api';
import ContentApi = Activiti.ContentApi;
describe('Attachment list action menu for tasks', () => { describe('Attachment list action menu for tasks', () => {
@@ -45,6 +46,10 @@ describe('Attachment list action menu for tasks', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const modelsActions = new ModelsActions(apiService);
const taskUtil = new TaskUtil(apiService);
const contentApi = new ContentApi();
contentApi.init(apiService.getInstance());
const pngFile = new FileModel({ const pngFile = new FileModel({
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location, location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location,
@@ -74,9 +79,9 @@ describe('Attachment list action menu for tasks', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId); await usersActions.deleteTenant(tenantId);
}); });
it('[C277311] Should be able to View /Download /Remove from Attachment List on an active task', async () => { it('[C277311] Should be able to View /Download /Remove from Attachment List on an active task', async () => {
@@ -166,12 +171,12 @@ describe('Attachment list action menu for tasks', () => {
}); });
it('[C260234] Should be able to attache a file on a task on APS and check on ADF', async () => { it('[C260234] Should be able to attache a file on a task on APS and check on ADF', async () => {
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: 'SHARE KNOWLEDGE' })); const newTask = await taskUtil.createStandaloneTask('SHARE KNOWLEDGE');
const newTaskId = newTask.id; const newTaskId = newTask.id;
const filePath = path.join(browser.params.testConfig.main.rootPath + pngFile.location); const filePath = path.join(browser.params.testConfig.main.rootPath + pngFile.location);
const file = fs.createReadStream(filePath); const file = fs.createReadStream(filePath);
relatedContent = await apiService.getInstance().activiti.contentApi.createRelatedContentOnTask(newTaskId, file, { 'isRelatedContent': true }); relatedContent = await contentApi.createRelatedContentOnTask(newTaskId, file, { 'isRelatedContent': true });
relatedContentId = relatedContent.id; relatedContentId = relatedContent.id;
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -181,7 +186,7 @@ describe('Attachment list action menu for tasks', () => {
await attachmentListPage.checkFileIsAttached(pngFile.name); await attachmentListPage.checkFileIsAttached(pngFile.name);
await apiService.getInstance().activiti.contentApi.deleteContent(relatedContentId); await contentApi.deleteContent(relatedContentId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton(); await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
+12 -4
View File
@@ -15,12 +15,19 @@
* limitations under the License. * limitations under the License.
*/ */
import { LoginPage, BrowserActions, FileBrowserUtil, ApplicationsUtil, ApiService, UsersActions } from '@alfresco/adf-testing'; import {
LoginPage,
BrowserActions,
FileBrowserUtil,
ApplicationsUtil,
ApiService,
UsersActions,
TaskUtil
} from '@alfresco/adf-testing';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor'; import { browser } from 'protractor';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Task Audit', () => { describe('Task Audit', () => {
@@ -32,6 +39,7 @@ describe('Task Audit', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const taskUtil = new TaskUtil(apiService);
let processUserModel; let processUserModel;
@@ -45,7 +53,7 @@ describe('Task Audit', () => {
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskTaskApp })); await taskUtil.createStandaloneTask(taskTaskApp);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
await applicationsService.importPublishDeployApp(app.file_path); await applicationsService.importPublishDeployApp(app.file_path);
@@ -54,7 +62,7 @@ describe('Task Audit', () => {
afterAll( async () => { afterAll( async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -18,25 +18,27 @@
import { import {
ApiService, ApiService,
ApplicationsUtil, ApplicationsUtil,
LoginPage, LoginPage, ModelsActions,
ProcessUtil, ProcessUtil,
StringUtil, StringUtil, TaskUtil,
UsersActions, UsersActions,
Widget Widget,
FormUtil
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { FormModelActions } from '../../actions/APS/form-model.actions';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { FiltersPage } from './../pages/filters.page'; import { FiltersPage } from './../pages/filters.page';
import { TaskDetailsPage } from './../pages/task-details.page'; import { TaskDetailsPage } from './../pages/task-details.page';
import { TasksListPage } from './../pages/tasks-list.page'; import { TasksListPage } from './../pages/tasks-list.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { AttachFormPage } from './../pages/attach-form.page'; import { AttachFormPage } from './../pages/attach-form.page';
import { TaskRepresentation } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { TaskActionsApi, TasksApi } from '@alfresco/js-api';
describe('Task Details - Form', () => { describe('Task Details - Form', () => {
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const tasksListPage = new TasksListPage(); const tasksListPage = new TasksListPage();
const taskDetailsPage = new TaskDetailsPage(); const taskDetailsPage = new TaskDetailsPage();
@@ -46,9 +48,14 @@ describe('Task Details - Form', () => {
const widget = new Widget(); const widget = new Widget();
const apiService = new ApiService(); const apiService = new ApiService();
const formActions = new FormModelActions(apiService); const formActions = new FormUtil(apiService);
const processUtil = new ProcessUtil(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const taskUtil = new TaskUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
const tasksApi = new TasksApi(apiService.getInstance());
let task, otherTask, user, newForm, attachedForm, otherAttachedForm; let task, otherTask, user, newForm, attachedForm, otherAttachedForm;
@@ -76,27 +83,28 @@ describe('Task Details - Form', () => {
user = await usersActions.createUser(); user = await usersActions.createUser();
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
attachedForm = await apiService.getInstance().activiti.modelsApi.createModel(attachedFormModel); attachedForm = await modelsActions.modelsApi.createModel(attachedFormModel);
newForm = await apiService.getInstance().activiti.modelsApi.createModel(newFormModel); newForm = await modelsActions.modelsApi.createModel(newFormModel);
const otherEmptyTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() })); const otherEmptyTask = await taskUtil.createStandaloneTask();
otherAttachedForm = await apiService.getInstance().activiti.modelsApi.createModel(otherAttachedFormModel);
await apiService.getInstance().activiti.taskApi.attachForm(otherEmptyTask.id, { 'formId': otherAttachedForm.id }); otherAttachedForm = await modelsActions.modelsApi.createModel(otherAttachedFormModel);
otherTask = await apiService.getInstance().activiti.taskApi.getTask(otherEmptyTask.id);
await taskActionsApi.attachForm(otherEmptyTask.id, { 'formId': otherAttachedForm.id });
otherTask = await tasksApi.getTask(otherEmptyTask.id);
await loginPage.login(user.username, user.password); await loginPage.login(user.username, user.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
const emptyTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() })); const emptyTask = await taskUtil.createStandaloneTask();
await apiService.getInstance().activiti.taskApi.attachForm(emptyTask.id, { 'formId': attachedForm.id }); await taskActionsApi.attachForm(emptyTask.id, { 'formId': attachedForm.id });
task = await apiService.getInstance().activiti.taskApi.getTask(emptyTask.id); task = await tasksApi.getTask(emptyTask.id);
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp(); await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp();
await tasksListPage.checkTaskListIsLoaded(); await tasksListPage.checkTaskListIsLoaded();
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS); await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -176,17 +184,16 @@ describe('Task Details - Form', () => {
tabFieldVar: 'tabBasicFieldVar' tabFieldVar: 'tabBasicFieldVar'
}; };
let app, newTask; let newTask, appModel;
beforeAll(async () => { beforeAll(async () => {
app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM; appModel = await applicationsService.importPublishDeployApp(app.file_path);
await applicationsService.importPublishDeployApp(app.file_path);
}); });
beforeEach(async () => { beforeEach(async () => {
newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() })); newTask = await taskUtil.createStandaloneTask();
const form = await formActions.getFormByName(app.visibilityProcess.formName); const form = await formActions.getFormByName(app.visibilityProcess.formName);
await apiService.getInstance().activiti.taskApi.attachForm(newTask.id, { 'formId': form.id }); await taskActionsApi.attachForm(newTask.id, { 'formId': form.id });
await browser.refresh(); await browser.refresh();
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp(); await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp();
@@ -350,7 +357,7 @@ describe('Task Details - Form', () => {
}); });
it('[C315197] Should be able to complete a process task with visible tab with empty value for field', async () => { it('[C315197] Should be able to complete a process task with visible tab with empty value for field', async () => {
await new ProcessUtil(apiService).startProcessByDefinitionName(app.name, app.visibilityProcess.name); await processUtil.startProcessByDefinitionName(appModel.name, app.visibilityProcess.name);
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await tasksListPage.checkTaskListIsLoaded(); await tasksListPage.checkTaskListIsLoaded();
@@ -384,7 +391,7 @@ describe('Task Details - Form', () => {
}); });
it('[C212922] Should a User task form be refreshed, saved or completed.', async () => { it('[C212922] Should a User task form be refreshed, saved or completed.', async () => {
await new ProcessUtil(apiService).startProcessByDefinitionName(app.name, app.processName); await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await tasksListPage.checkTaskListIsLoaded(); await tasksListPage.checkTaskListIsLoaded();
@@ -27,16 +27,16 @@ describe('Task Details - No form', () => {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel; let processUserModel;
const taskPage = new TasksPage();
const noFormMessage = 'No forms attached'; const noFormMessage = 'No forms attached';
let importedApp; let importedApp;
beforeAll(async () => { beforeAll(async () => {
const usersActions = new UsersActions(apiService);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
@@ -49,7 +49,7 @@ describe('Task Details - No form', () => {
afterAll( async () => { afterAll( async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C289311] Should attach form and complete buttons to be displayed when no form is attached', async () => { it('[C289311] Should attach form and complete buttons to be displayed when no form is attached', async () => {
+28 -24
View File
@@ -19,15 +19,15 @@ import {
ApiService, ApiService,
ApplicationsUtil, ApplicationsUtil,
BrowserActions, BrowserActions,
LoginPage, LoginPage, ModelsActions,
ProcessUtil, ProcessUtil,
StringUtil, StringUtil, TaskUtil,
UsersActions UsersActions
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { TaskRepresentation } from '@alfresco/js-api'; import { TaskActionsApi, TaskFormsApi, TasksApi } from '@alfresco/js-api';
import Task = require('../../models/APS/Task'); import Task = require('../../models/APS/Task');
import TaskModel = require('../../models/APS/TaskModel'); import TaskModel = require('../../models/APS/TaskModel');
import FormModel = require('../../models/APS/FormModel'); import FormModel = require('../../models/APS/FormModel');
@@ -43,6 +43,12 @@ describe('Task Details component', () => {
const taskPage = new TasksPage(); const taskPage = new TasksPage();
const apiService = new ApiService(); const apiService = new ApiService();
const taskUtil = new TaskUtil(apiService);
const modelsActions = new ModelsActions(apiService);
const usersActions = new UsersActions(apiService);
const tasksApi = new TasksApi(apiService.getInstance());
const taskActionsApi = new TaskActionsApi(apiService.getInstance());
const taskFormsApi = new TaskFormsApi(apiService.getInstance());
let processUserModel, appModel; let processUserModel, appModel;
const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File']; const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File'];
@@ -57,8 +63,6 @@ describe('Task Details component', () => {
}; };
beforeAll(async () => { beforeAll(async () => {
const usersActions = new UsersActions(apiService);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
@@ -70,7 +74,7 @@ describe('Task Details component', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -85,7 +89,7 @@ describe('Task Details component', () => {
await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName }); await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities'); await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -101,7 +105,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getEndDate()).toEqual(''); await expect(await taskPage.taskDetails().getEndDate()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); const taskForm = await taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm); formModel = new FormModel(taskForm);
await taskPage.taskDetails().waitFormNameEqual(formModel.getName()); await taskPage.taskDetails().waitFormNameEqual(formModel.getName());
@@ -114,7 +118,7 @@ describe('Task Details component', () => {
await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName }); await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities'); await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -132,7 +136,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual(''); await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); const taskForm = await taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm); formModel = new FormModel(taskForm);
@@ -148,7 +152,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities'); await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
@@ -165,7 +169,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual(''); await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); const taskForm = await taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm); formModel = new FormModel(taskForm);
@@ -180,7 +184,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities'); await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -196,7 +200,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual(''); await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); const taskForm = await taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm); formModel = new FormModel(taskForm);
@@ -206,8 +210,7 @@ describe('Task Details component', () => {
it('[C286708] Should display task details for subtask - Task App', async () => { it('[C286708] Should display task details for subtask - Task App', async () => {
const taskName = 'TaskAppSubtask'; const taskName = 'TaskAppSubtask';
const checklistName = 'TaskAppChecklist'; const checklistName = 'TaskAppChecklist';
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName })); await taskUtil.createStandaloneTask(taskName);
await (await processServices.goToTaskApp()).clickTasksButton(); await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -223,7 +226,7 @@ describe('Task Details component', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(checklistName); await taskPage.tasksListPage().checkContentIsDisplayed(checklistName);
await taskPage.tasksListPage().selectRow(checklistName); await taskPage.tasksListPage().selectRow(checklistName);
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -260,7 +263,7 @@ describe('Task Details component', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(checklistName); await taskPage.tasksListPage().checkContentIsDisplayed(checklistName);
await taskPage.tasksListPage().selectRow(checklistName); await taskPage.tasksListPage().selectRow(checklistName);
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); const allTasks = await tasksApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]); const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -279,7 +282,7 @@ describe('Task Details component', () => {
it('[C286709] Should display task details for completed task - Task App', async () => { it('[C286709] Should display task details for completed task - Task App', async () => {
const taskName = 'TaskAppCompleted'; const taskName = 'TaskAppCompleted';
const taskId = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName })); const taskId = await taskUtil.createStandaloneTask(taskName);
await (await processServices.goToTaskApp()).clickTasksButton(); await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -291,7 +294,7 @@ describe('Task Details component', () => {
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().selectRow(taskName); await taskPage.tasksListPage().selectRow(taskName);
const getTaskResponse = await apiService.getInstance().activiti.taskApi.getTask(taskId.id); const getTaskResponse = await tasksApi.getTask(taskId.id);
const taskModel = new TaskModel(getTaskResponse); const taskModel = new TaskModel(getTaskResponse);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName()); await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -310,10 +313,11 @@ describe('Task Details component', () => {
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\'s details', async () => {
const taskName = 'TaskCompleted'; const taskName = 'TaskCompleted';
const form = await apiService.getInstance().activiti.modelsApi.createModel(taskFormModel); const form = await modelsActions.modelsApi.createModel(taskFormModel);
const task = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName })); const task = await taskUtil.createStandaloneTask(taskName);
await apiService.getInstance().activiti.taskApi.attachForm(task.id, { 'formId': form.id });
await apiService.getInstance().activiti.taskApi.completeTaskForm(task.id, { values: { label: null } }); await taskActionsApi.attachForm(task.id, { 'formId': form.id });
await taskFormsApi.completeTaskForm(task.id, { values: { label: null } });
await (await processServices.goToTaskApp()).clickTasksButton(); await (await processServices.goToTaskApp()).clickTasksButton();
@@ -15,7 +15,14 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, ApplicationsUtil, LoginPage, UserModel, UsersActions } from '@alfresco/adf-testing'; import {
ApiService,
ApplicationsUtil,
LoginPage, ModelsActions,
UserFiltersUtil,
UserModel,
UsersActions
} from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
@@ -43,6 +50,7 @@ describe('Task', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const modelsActions = new ModelsActions(apiService);
let appId: number, user: UserModel; let appId: number, user: UserModel;
@@ -62,9 +70,9 @@ describe('Task', () => {
}); });
afterEach(async () => { afterEach(async () => {
await apiService.getInstance().activiti.modelsApi.deleteModel(appId); await modelsActions.deleteModel(appId);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -177,7 +185,10 @@ describe('Task', () => {
const processServiceTabBarPage = new ProcessServiceTabBarPage(); const processServiceTabBarPage = new ProcessServiceTabBarPage();
const appSettingsToggles = new AppSettingsTogglesPage(); const appSettingsToggles = new AppSettingsTogglesPage();
const taskFiltersDemoPage = new TaskFiltersDemoPage(); const taskFiltersDemoPage = new TaskFiltersDemoPage();
const apiService = new ApiService(); const apiService = new ApiService();
const userFiltersApi = new UserFiltersUtil(apiService);
const usersActions = new UsersActions(apiService);
let user; let user;
let appId: number; let appId: number;
@@ -185,22 +196,20 @@ describe('Task', () => {
const app = browser.params.resources.Files.APP_WITH_PROCESSES; const app = browser.params.resources.Files.APP_WITH_PROCESSES;
beforeAll(async () => { beforeAll(async () => {
const usersActions = new UsersActions(apiService);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
user = await usersActions.createUser(); user = await usersActions.createUser();
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path); const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); appId = await applicationsService.getAppDefinitionId(importedApp.id);
appId = appDefinitions.data.find((currentApp) => currentApp.modelId === importedApp.id).id;
await loginPage.login(user.username, user.password); await loginPage.login(user.username, user.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
@@ -216,11 +225,11 @@ describe('Task', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' } filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
}); });
const { id } = await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); const { id } = await userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter('New Task Filter').checkTaskFilterIsDisplayed(); await taskFiltersDemoPage.customTaskFilter('New Task Filter').checkTaskFilterIsDisplayed();
await apiService.getInstance().activiti.userFiltersApi.deleteUserTaskFilter(id); await userFiltersApi.deleteUserTaskFilter(id);
}); });
it('[C286447] Should display the task filter icon when a custom filter is added', async () => { it('[C286447] Should display the task filter icon when a custom filter is added', async () => {
@@ -230,7 +239,7 @@ describe('Task', () => {
icon: 'glyphicon-cloud', icon: 'glyphicon-cloud',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' } filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
}); });
const { id } = await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); const { id } = await userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await processServiceTabBarPage.clickSettingsButton(); await processServiceTabBarPage.clickSettingsButton();
@@ -240,7 +249,7 @@ describe('Task', () => {
await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').checkTaskFilterIsDisplayed(); await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').checkTaskFilterIsDisplayed();
await expect(await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').getTaskFilterIcon()).toEqual('cloud'); await expect(await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').getTaskFilterIcon()).toEqual('cloud');
await apiService.getInstance().activiti.userFiltersApi.deleteUserTaskFilter(id); await userFiltersApi.deleteUserTaskFilter(id);
}); });
it('[C286449] Should display task filter icons only when showIcon property is set on true', async () => { it('[C286449] Should display task filter icons only when showIcon property is set on true', async () => {
@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { ApiService, ApplicationsUtil, LoginPage, UsersActions } from '@alfresco/adf-testing'; import { ApiService, ApplicationsUtil, LoginPage, UserFiltersUtil, UsersActions } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { ProcessServicesPage } from './../pages/process-services.page'; import { ProcessServicesPage } from './../pages/process-services.page';
import { TasksPage } from './../pages/tasks.page'; import { TasksPage } from './../pages/tasks.page';
@@ -39,6 +39,7 @@ describe('Task Filters Sorting', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const userFiltersUtil = new UserFiltersUtil(apiService);
let user; let user;
let appId; let appId;
@@ -57,9 +58,9 @@ describe('Task Filters Sorting', () => {
await apiService.login(user.username, user.password); await apiService.login(user.username, user.password);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); const appModel = await applicationsService.importPublishDeployApp(app.file_path);
appId = appDefinitions.data.find((currentApp) => currentApp.modelId === importedApp.id).id; appId = await applicationsService.getAppDefinitionId(appModel.id);
await loginPage.login(user.username, user.password); await loginPage.login(user.username, user.password);
await navigationBarPage.navigateToProcessServicesPage(); await navigationBarPage.navigateToProcessServicesPage();
@@ -82,7 +83,7 @@ describe('Task Filters Sorting', () => {
afterAll( async () => { afterAll( async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId); await usersActions.deleteTenant(user.tenantId);
}); });
it('[C277254] Should display tasks under new filter from newest to oldest when they are completed', async () => { it('[C277254] Should display tasks under new filter from newest to oldest when they are completed', async () => {
@@ -92,7 +93,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' } filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -109,7 +110,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'created-asc', state: 'completed', assignment: 'involved' } filter: { sort: 'created-asc', state: 'completed', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -126,7 +127,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'due-desc', state: 'completed', assignment: 'involved' } filter: { sort: 'due-desc', state: 'completed', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -143,7 +144,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'due-asc', state: 'completed', assignment: 'involved' } filter: { sort: 'due-asc', state: 'completed', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -160,7 +161,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'open', assignment: 'involved' } filter: { sort: 'created-desc', state: 'open', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -177,7 +178,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'created-asc', state: 'open', assignment: 'involved' } filter: { sort: 'created-asc', state: 'open', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -194,7 +195,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'due-desc', state: 'open', assignment: 'involved' } filter: { sort: 'due-desc', state: 'open', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -211,7 +212,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter', icon: 'glyphicon-filter',
filter: { sort: 'due-asc', state: 'open', assignment: 'involved' } filter: { sort: 'due-asc', state: 'open', assignment: 'involved' }
}); });
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter); await userFiltersUtil.createUserTaskFilter(newFilter);
await browser.refresh(); await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter(); await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -35,7 +35,9 @@ describe('Task List Pagination', () => {
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage(); const taskPage = new TasksPage();
const paginationPage = new PaginationPage(); const paginationPage = new PaginationPage();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel: UserModel; let processUserModel: UserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM; const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
@@ -56,8 +58,6 @@ describe('Task List Pagination', () => {
}; };
beforeAll(async () => { beforeAll(async () => {
const usersActions = new UsersActions(apiService);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
@@ -74,7 +74,7 @@ describe('Task List Pagination', () => {
afterAll( async () => { afterAll( async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C260301] Should display default pagination', async () => { it('[C260301] Should display default pagination', async () => {
@@ -29,7 +29,7 @@ describe('Amount Widget', () => {
const widget = new Widget(); const widget = new Widget();
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
const apiService = new ApiService(); const apiService = new ApiService();
@@ -45,16 +45,14 @@ describe('Amount Widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName); process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async() => { beforeEach(async() => {
const urlToNavigateTo = `${browser.baseUrl}/activiti/apps/${deployedApp.id}/tasks/`; const urlToNavigateTo = `${browser.baseUrl}/activiti/apps/${deployedAppId}/tasks/`;
await BrowserActions.getUrl(urlToNavigateTo); await BrowserActions.getUrl(urlToNavigateTo);
await taskPage.tasksListPage().checkTaskListIsLoaded(); await taskPage.tasksListPage().checkTaskListIsLoaded();
@@ -63,9 +61,9 @@ describe('Amount Widget', () => {
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C274703] Should be possible to set general, advance and visibility properties for Amount Widget', async () => { it('[C274703] Should be possible to set general, advance and visibility properties for Amount Widget', async () => {
@@ -80,7 +80,7 @@ describe('Attach widget - File', () => {
afterAll(async () => { afterAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C268067] Should be able to preview, download and remove attached files from an active form', async () => { it('[C268067] Should be able to preview, download and remove attached files from an active form', async () => {
@@ -39,7 +39,7 @@ describe('Attach Folder widget', () => {
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
const apiService = new ApiService(); const apiService = new ApiService();
@@ -55,26 +55,24 @@ describe('Attach Folder widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName); process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C276745] Should be possible to set visibility properties for Attach Folder Widget', async () => { it('[C276745] Should be possible to set visibility properties for Attach Folder Widget', async () => {
@@ -38,11 +38,12 @@ describe('Checkbox Widget', () => {
let processUserModel; let processUserModel;
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -52,24 +53,22 @@ describe('Checkbox Widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C268554] Should be able to set general settings for Checkbox widget ', async () => { it('[C268554] Should be able to set general settings for Checkbox widget ', async () => {
@@ -41,10 +41,11 @@ describe('Date and time widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let processUserModel; let processUserModel;
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -54,26 +55,24 @@ describe('Date and time widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C268818] Should be able to set general settings for Date Time widget', async () => { it('[C268818] Should be able to set general settings for Date Time widget', async () => {
@@ -45,11 +45,12 @@ describe('Date widget', () => {
const dateWidget = widget.dateWidget(); const dateWidget = widget.dateWidget();
let appModel; let appModel;
let processUserModel; let processUserModel;
let deployedApp, process; let deployedAppId, process;
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -59,24 +60,22 @@ describe('Date widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
describe('Simple App', () => { describe('Simple App', () => {
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
@@ -41,9 +41,10 @@ describe('Document Template widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -54,26 +55,24 @@ describe('Document Template widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp( app.file_path); appModel = await applicationsService.importPublishDeployApp( app.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessOfApp(appModel.name);
});
process = await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C260406] should check that the template contains assigned file ', async () => { it('[C260406] should check that the template contains assigned file ', async () => {
@@ -40,9 +40,10 @@ describe('Dropdown widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -53,26 +54,24 @@ describe('Dropdown widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C269051] Should be possible to set general and options properties for Dropdown widget ', async () => { it('[C269051] Should be possible to set general and options properties for Dropdown widget ', async () => {
@@ -39,13 +39,12 @@ describe('Dynamic Table widget ', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let processUserModel; let processUserModel;
let appModel; let deployedAppId, process;
let deployedApp, process;
describe('with Date Time Widget App', () => { describe('with Date Time Widget App', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DYNAMIC_TABLE; const app = browser.params.resources.Files.WIDGET_CHECK_APP.DYNAMIC_TABLE;
beforeAll(async () => { beforeAll(async () => {
@@ -53,26 +52,26 @@ describe('Dynamic Table widget ', () => {
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); const appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === appModel.id);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName); process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -103,24 +102,24 @@ describe('Dynamic Table widget ', () => {
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); const appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === appModel.id);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName); process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.tasksListPage().checkTaskListIsLoaded(); await taskPage.tasksListPage().checkTaskListIsLoaded();
@@ -159,24 +158,24 @@ describe('Dynamic Table widget ', () => {
processUserModel = await usersActions.createUser(); processUserModel = await usersActions.createUser();
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
const application = await applicationsService.importPublishDeployApp(app.file_path); const appModel = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === application.id);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(application.name, app.CUSTOM_VALIDATOR.processName); process = await processUtil.startProcessByDefinitionName(appModel.name, app.CUSTOM_VALIDATOR.processName);
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
beforeEach(async () => { beforeEach(async () => {
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.tasksListPage().checkTaskListIsLoaded(); await taskPage.tasksListPage().checkTaskListIsLoaded();
@@ -195,7 +194,7 @@ describe('Dynamic Table widget ', () => {
await widget.dynamicTable().setDatatableInput('id', app.CUSTOM_VALIDATOR.FIELD.ID); await widget.dynamicTable().setDatatableInput('id', app.CUSTOM_VALIDATOR.FIELD.ID);
await widget.dynamicTable().clickSaveButton(); await widget.dynamicTable().clickSaveButton();
await expect(await widget.dynamicTable().checkErrorMessage()).toBe('Field \'Number\' is required.' ); await expect(await widget.dynamicTable().checkErrorMessage()).toBe('Field \'Number\' is required.');
await widget.dynamicTable().setDatatableInput('12', app.CUSTOM_VALIDATOR.FIELD.NUM); await widget.dynamicTable().setDatatableInput('12', app.CUSTOM_VALIDATOR.FIELD.NUM);
await widget.dynamicTable().clickSaveButton(); await widget.dynamicTable().clickSaveButton();
@@ -41,9 +41,10 @@ describe('Header widget', async () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -54,26 +55,24 @@ describe('Header widget', async () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C276737] Should be able to set general and visibility properties for Header widget', async () => { it('[C276737] Should be able to set general and visibility properties for Header widget', async () => {
@@ -41,10 +41,11 @@ describe('Hyperlink widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let processUserModel; let processUserModel;
let deployedApp, process; let deployedAppId, process;
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -54,26 +55,24 @@ describe('Hyperlink widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C276728] Should be able to set visibility properties for Hyperlink widget', async () => { it('[C276728] Should be able to set visibility properties for Hyperlink widget', async () => {
@@ -40,10 +40,11 @@ describe('Multi-line Widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let processUserModel; let processUserModel;
let deployedApp, process; let deployedAppId, process;
beforeAll(async () => { beforeAll(async () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
@@ -53,26 +54,24 @@ describe('Multi-line Widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C268182] Should be able to set general properties for Multi-line Text Widget', async () => { it('[C268182] Should be able to set general properties for Multi-line Text Widget', async () => {
@@ -41,9 +41,10 @@ describe('Number widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -54,26 +55,24 @@ describe('Number widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C269111] Should be able to set general properties for Number Widget', async () => { it('[C269111] Should be able to set general properties for Number Widget', async () => {
@@ -20,6 +20,7 @@ import { TasksPage } from '../pages/tasks.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { AdminGroupsApi } from '@alfresco/js-api';
describe('People and Group widget', () => { describe('People and Group widget', () => {
@@ -33,6 +34,7 @@ describe('People and Group widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const adminGroupsApi = new AdminGroupsApi(apiService.getInstance());
let user: UserModel; let user: UserModel;
@@ -129,16 +131,16 @@ describe('People and Group widget', () => {
tenantId: tenantId, firstName: app.subGroupUser.firstName, lastName: app.subGroupUser.lastName tenantId: tenantId, firstName: app.subGroupUser.firstName, lastName: app.subGroupUser.lastName
})); }));
const group = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup({ const group = await adminGroupsApi.createNewGroup({
name: app.group.name, name: app.group.name,
tenantId, tenantId,
type: 1 type: 1
}); });
await Promise.all(userCreated.map((userToAddGroup: UserModel) => apiService.getInstance().activiti.adminGroupsApi.addGroupMember(group.id, userToAddGroup.id))); await Promise.all(userCreated.map((userToAddGroup: UserModel) => adminGroupsApi.addGroupMember(group.id, userToAddGroup.id)));
const subgroups: any[] = await Promise.all(getSubGroupsName().map((name) => const subgroups: any[] = await Promise.all(getSubGroupsName().map((name) =>
apiService.getInstance().activiti.adminGroupsApi.createNewGroup({ adminGroupsApi.createNewGroup({
name, name,
tenantId, tenantId,
type: 1, type: 1,
@@ -146,7 +148,7 @@ describe('People and Group widget', () => {
}) })
)); ));
await Promise.all(subgroups.map((subgroup) => apiService.getInstance().activiti.adminGroupsApi.addGroupMember(subgroup.id, subgroupUser.id))); await Promise.all(subgroups.map((subgroup) => adminGroupsApi.addGroupMember(subgroup.id, subgroupUser.id)));
} }
@@ -41,9 +41,10 @@ describe('People widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -54,26 +55,24 @@ describe('People widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessOfApp(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessOfApp(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C260435][C274707] Should be possible to set visibility properties for People Widget', async () => { it('[C260435][C274707] Should be possible to set visibility properties for People Widget', async () => {
@@ -41,9 +41,10 @@ describe('Radio Buttons Widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let appId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -53,28 +54,24 @@ describe('Radio Buttons Widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
appId = await applicationsService.getAppDefinitionId(appModel.id);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(appId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C277316] Should display empty radio buttons when no preselection is configured', async () => { it('[C277316] Should display empty radio buttons when no preselection is configured', async () => {
@@ -41,9 +41,10 @@ describe('Text widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -54,26 +55,24 @@ describe('Text widget', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C268157] Should be able to set general properties for Text widget', async () => { it('[C268157] Should be able to set general properties for Text widget', async () => {
@@ -1,89 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { ApiService, ApplicationsUtil, LoginPage, UserModel, UsersActions, Widget } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/tasks.page';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import CONSTANTS = require('../../util/constants');
describe('Typeahead widget', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const loginPage = new LoginPage();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const widget = new Widget();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let user: UserModel;
beforeAll(async () => {
await apiService.loginWithProfile('admin');
user = await usersActions.createUser();
await apiService.login(user.username, user.password);
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
await loginPage.login(user.username, user.password);
});
afterAll(async () => {
await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp();
await taskPage.tasksListPage().checkTaskListIsLoaded();
});
it('[C307988] Type ahead form control should work for URLs', async () => {
const name = 'typahead widget task';
const typeaheadWidget = app.TYPE_AHEAD_WIDGET;
await taskPage.createTask({name, formName: typeaheadWidget.formName});
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
await widget.typeahedWidget().checkTypeaheadFieldIsDisplayed();
await widget.typeahedWidget().fillTypeaheadField(typeaheadWidget.case1.searchTerm);
await widget.typeahedWidget().checkDropDownListIsDisplayed();
let suggestions = await widget.typeahedWidget().getDropDownList();
await expect(suggestions.sort()).toEqual(typeaheadWidget.case1.result.sort());
await widget.typeahedWidget().fillTypeaheadField(typeaheadWidget.case2.searchTerm);
await widget.typeahedWidget().checkDropDownListIsDisplayed();
suggestions = await widget.typeahedWidget().getDropDownList();
await expect(suggestions.sort()).toEqual(typeaheadWidget.case2.result);
await widget.typeahedWidget().selectOptionFromDropdown();
await taskPage.taskDetails().clickCompleteFormTask();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().selectRow(name);
await widget.typeahedWidget().checkTypeaheadFieldIsDisplayed();
await browser.sleep(1000);
await expect(await widget.typeahedWidget().getFieldValue('1583773306434')).toBe(typeaheadWidget.case2.result[0]);
});
});
@@ -63,9 +63,10 @@ describe('Process-Services - Visibility conditions', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService); const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let appModel; let appModel;
let deployedApp, process; let deployedAppId, process;
let processUserModel; let processUserModel;
beforeAll(async () => { beforeAll(async () => {
@@ -76,25 +77,23 @@ describe('Process-Services - Visibility conditions', () => {
await apiService.login(processUserModel.username, processUserModel.password); await apiService.login(processUserModel.username, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path); appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions(); deployedAppId = await applicationsService.getAppDefinitionId(appModel.id);
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id; process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
});
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.username, processUserModel.password); await loginPage.login(processUserModel.username, processUserModel.password);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickHomeButton(); await navigationBarPage.clickHomeButton();
await (new ProcessServicesPage()).goToAppByAppId(deployedApp.id); await (new ProcessServicesPage()).goToAppByAppId(deployedAppId);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.formFields().checkFormIsDisplayed(); await taskPage.formFields().checkFormIsDisplayed();
}); });
afterAll(async () => { afterAll(async () => {
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id); await processUtil.cancelProcessInstance(process.id);
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId); await usersActions.deleteTenant(processUserModel.tenantId);
}); });
it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', async () => { it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', async () => {
@@ -30,6 +30,7 @@ import { SearchBarPage } from '../pages/search-bar.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { SearchConfiguration } from '../search.config'; import { SearchConfiguration } from '../search.config';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NodesApi } from '@alfresco/js-api';
describe('Search Checklist Component', () => { describe('Search Checklist Component', () => {
@@ -40,10 +41,11 @@ describe('Search Checklist Component', () => {
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const acsUser = new UserModel(); const acsUser = new UserModel();
const apiService = new ApiService();
const apiService = new ApiService();
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const filterType = { const filterType = {
folder: 'Folder', folder: 'Folder',
@@ -66,11 +68,11 @@ describe('Search Checklist Component', () => {
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
createdFolder = await apiService.getInstance().nodes.addNode('-my-', { createdFolder = await nodesApi.createNode('-my-', {
name: nodeNames.folder, name: nodeNames.folder,
nodeType: 'cm:folder' nodeType: 'cm:folder'
}); });
createdFile = await apiService.getInstance().nodes.addNode('-my-', { createdFile = await nodesApi.createNode('-my-', {
name: nodeNames.document, name: nodeNames.document,
nodeType: 'cm:content' nodeType: 'cm:content'
}); });
+4 -3
View File
@@ -31,6 +31,7 @@ import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { SearchBarPage } from '../pages/search-bar.page'; import { SearchBarPage } from '../pages/search-bar.page';
import { SearchConfiguration } from '../search.config'; import { SearchConfiguration } from '../search.config';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { NodesApi } from '@alfresco/js-api';
describe('Search Radio Component', () => { describe('Search Radio Component', () => {
@@ -42,7 +43,7 @@ describe('Search Radio Component', () => {
const acsUser = new UserModel(); const acsUser = new UserModel();
const apiService = new ApiService(); const apiService = new ApiService();
const nodesApi = new NodesApi(apiService.getInstance());
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
@@ -68,11 +69,11 @@ describe('Search Radio Component', () => {
await usersActions.createUser(acsUser); await usersActions.createUser(acsUser);
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
createdFolder = await apiService.getInstance().nodes.addNode('-my-', { createdFolder = await nodesApi.createNode('-my-', {
name: nodeNames.folder, name: nodeNames.folder,
nodeType: 'cm:folder' nodeType: 'cm:folder'
}); });
createdFile = await apiService.getInstance().nodes.addNode('-my-', { createdFile = await nodesApi.createNode('-my-', {
name: nodeNames.document, name: nodeNames.document,
nodeType: 'cm:content' nodeType: 'cm:content'
}); });
@@ -31,6 +31,7 @@ import { SearchFiltersPage } from '../pages/search-filters.page';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { browser } from 'protractor'; import { browser } from 'protractor';
import { SearchConfiguration } from '../search.config'; import { SearchConfiguration } from '../search.config';
import { NodesApi } from '@alfresco/js-api';
describe('Search Sorting Picker', () => { describe('Search Sorting Picker', () => {
@@ -58,6 +59,7 @@ describe('Search Sorting Picker', () => {
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const search = '_png_file.png'; const search = '_png_file.png';
let jsonFile; let jsonFile;
@@ -234,7 +236,7 @@ describe('Search Sorting Picker', () => {
for (let i = 0; i < (numberOfElements - 1); i++) { for (let i = 0; i < (numberOfElements - 1); i++) {
if (idList[i] && idList[i].trim() !== '') { if (idList[i] && idList[i].trim() !== '') {
promises.push(apiService.getInstance().core.nodesApi.getNode(idList[i])); promises.push(nodesApi.getNode(idList[i]));
} }
} }
nodeList = await Promise.all(promises); nodeList = await Promise.all(promises);
+3 -1
View File
@@ -33,6 +33,7 @@ import { SearchFiltersPage } from '../pages/search-filters.page';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { SearchConfiguration } from '../search.config'; import { SearchConfiguration } from '../search.config';
import { NodesApi } from '@alfresco/js-api';
describe('Search component - Text widget', () => { describe('Search component - Text widget', () => {
@@ -45,6 +46,7 @@ describe('Search component - Text widget', () => {
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const acsUser = new UserModel(); const acsUser = new UserModel();
const newFolderModel = new FolderModel({ 'description': 'newDescription' }); const newFolderModel = new FolderModel({ 'description': 'newDescription' });
@@ -56,7 +58,7 @@ describe('Search component - Text widget', () => {
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
await apiService.getInstance().nodes.addNode('-my-', { await nodesApi.createNode('-my-', {
'name': newFolderModel.name, 'name': newFolderModel.name,
'nodeType': 'cm:folder', 'nodeType': 'cm:folder',
'properties': 'properties':
+5 -5
View File
@@ -16,13 +16,13 @@
*/ */
import { Locator, browser, by, element, ElementFinder, protractor } from 'protractor'; import { Locator, browser, by, element, ElementFinder, protractor } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing'; import { BrowserVisibility, BrowserActions, TestElement } from '@alfresco/adf-testing';
export class SearchBarPage { export class SearchBarPage {
searchIcon = element(by.css(`button[class*='adf-search-button']`)); searchIcon = element(by.css(`button[class*='adf-search-button']`));
searchBar = element(by.css(`adf-search-control input`)); searchBar = element(by.css(`adf-search-control input`));
searchBarExpanded = element(by.css(`adf-search-control mat-form-field[class*="mat-focused"] input`)); searchBarExpanded: TestElement = TestElement.byCss(`adf-search-control mat-form-field[class*="mat-focused"] input`);
noResultMessage = element(by.css(`p[class*='adf-search-fixed-text']`)); noResultMessage = element(by.css(`p[class*='adf-search-fixed-text']`));
rowsAuthor: Locator = by.css(`.mat-list-text p[class*='adf-search-fixed-text']`); rowsAuthor: Locator = by.css(`.mat-list-text p[class*='adf-search-fixed-text']`);
completeName: Locator = by.css(`h4[class*='adf-search-fixed-text']`); completeName: Locator = by.css(`h4[class*='adf-search-fixed-text']`);
@@ -48,7 +48,7 @@ export class SearchBarPage {
} }
async checkSearchBarIsNotVisible(): Promise<void> { async checkSearchBarIsNotVisible(): Promise<void> {
await BrowserVisibility.waitUntilElementIsNotVisible(this.searchBarExpanded); await this.searchBarExpanded.waitNotVisible();
} }
async checkNoResultMessageIsDisplayed(): Promise<void> { async checkNoResultMessageIsDisplayed(): Promise<void> {
@@ -61,12 +61,12 @@ export class SearchBarPage {
async enterText(text: string): Promise<void> { async enterText(text: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.searchBar); await BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
await this.searchBar.sendKeys(text); await BrowserActions.clearSendKeys(this.searchBar, text);
} }
async enterTextAndPressEnter(text: string): Promise<void> { async enterTextAndPressEnter(text: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.searchBar); await BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
await this.searchBar.sendKeys(text); await BrowserActions.clearSendKeys(this.searchBar, text);
await this.searchBar.sendKeys(protractor.Key.ENTER); await this.searchBar.sendKeys(protractor.Key.ENTER);
} }
+33 -40
View File
@@ -35,6 +35,7 @@ import { FileModel } from '../models/ACS/file.model';
import { FolderModel } from '../models/ACS/folder.model'; import { FolderModel } from '../models/ACS/folder.model';
import { NavigationBarPage } from '../core/pages/navigation-bar.page'; import { NavigationBarPage } from '../core/pages/navigation-bar.page';
import { SearchConfiguration } from './search.config'; import { SearchConfiguration } from './search.config';
import { NodesApi } from '@alfresco/js-api';
describe('Search component - Search Bar', () => { describe('Search component - Search Bar', () => {
@@ -58,7 +59,7 @@ describe('Search component - Search Bar', () => {
const acsUser = new UserModel(); const acsUser = new UserModel();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
const uploadActions = new UploadActions(apiService); const uploadActions = new UploadActions(apiService);
const filename = StringUtil.generateRandomString(16); const filename = StringUtil.generateRandomString(16);
@@ -93,7 +94,7 @@ describe('Search component - Search Bar', () => {
const firstFileUploaded = await uploadActions.uploadFile(firstFileModel.location, firstFileModel.name, '-my-'); const firstFileUploaded = await uploadActions.uploadFile(firstFileModel.location, firstFileModel.name, '-my-');
Object.assign(firstFileModel, firstFileUploaded.entry); Object.assign(firstFileModel, firstFileUploaded.entry);
fileHighlightUploaded = await apiService.getInstance().nodes.addNode('-my-', { fileHighlightUploaded = await nodesApi.createNode('-my-', {
'name': StringUtil.generateRandomString(16), 'name': StringUtil.generateRandomString(16),
'nodeType': 'cm:content', 'nodeType': 'cm:content',
'properties': { 'properties': {
@@ -126,11 +127,8 @@ describe('Search component - Search Bar', () => {
}); });
it('[C272798] Search bar should be visible', async () => { it('[C272798] Search bar should be visible', async () => {
await searchBarPage.checkSearchBarIsNotVisible(); await openSearchBar();
await searchBarPage.checkSearchIconIsVisible();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.checkSearchIconIsVisible(); await searchBarPage.checkSearchIconIsVisible();
await BrowserActions.closeMenuAndDialogs(); await BrowserActions.closeMenuAndDialogs();
@@ -140,14 +138,14 @@ describe('Search component - Search Bar', () => {
}); });
it('[C272799] Should be possible to hide search bar after input', async () => { it('[C272799] Should be possible to hide search bar after input', async () => {
await searchBarPage.checkSearchIconIsVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.enterText(firstFolderModel.shortName); await searchBarPage.enterText(firstFolderModel.shortName);
}); });
it('[C260255] Should display message when searching for an inexistent file', async () => { it('[C260255] Should display message when searching for an inexistent file', async () => {
await searchBarPage.checkSearchBarIsNotVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkNoResultMessageIsNotDisplayed(); await searchBarPage.checkNoResultMessageIsNotDisplayed();
await searchBarPage.enterText(search.inactive.name); await searchBarPage.enterText(search.inactive.name);
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
@@ -156,8 +154,7 @@ describe('Search component - Search Bar', () => {
}); });
it('[C260256] Should display file/folder in search suggestion when typing first characters', async () => { it('[C260256] Should display file/folder in search suggestion when typing first characters', async () => {
await searchBarPage.clickOnSearchIcon(); await openSearchBar();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterText(firstFolderModel.shortName); await searchBarPage.enterText(firstFolderModel.shortName);
await searchBarPage.resultTableContainsRow(firstFolderModel.name); await searchBarPage.resultTableContainsRow(firstFolderModel.name);
@@ -179,8 +176,8 @@ describe('Search component - Search Bar', () => {
}); });
it('[C272800] Should display file/folder in search suggestion when typing name', async () => { it('[C272800] Should display file/folder in search suggestion when typing name', async () => {
await searchBarPage.clickOnSearchIcon(); await openSearchBar();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterText(firstFolderModel.name); await searchBarPage.enterText(firstFolderModel.name);
await searchBarPage.resultTableContainsRow(firstFolderModel.name); await searchBarPage.resultTableContainsRow(firstFolderModel.name);
@@ -203,8 +200,8 @@ describe('Search component - Search Bar', () => {
}); });
it('[C260257] Should display content when clicking on folder from search suggestions', async () => { it('[C260257] Should display content when clicking on folder from search suggestions', async () => {
await searchBarPage.clickOnSearchIcon(); await openSearchBar();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterText(firstFolderModel.shortName); await searchBarPage.enterText(firstFolderModel.shortName);
await searchBarPage.resultTableContainsRow(firstFolderModel.name); await searchBarPage.resultTableContainsRow(firstFolderModel.name);
@@ -227,9 +224,8 @@ describe('Search component - Search Bar', () => {
}); });
it('[C272801] Should display message when searching for non-existent folder', async () => { it('[C272801] Should display message when searching for non-existent folder', async () => {
await searchBarPage.checkSearchIconIsVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterTextAndPressEnter(search.inactive.name); await searchBarPage.enterTextAndPressEnter(search.inactive.name);
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
@@ -237,9 +233,8 @@ describe('Search component - Search Bar', () => {
}); });
it('[C272802] Should be able to find an existent folder in search results', async () => { it('[C272802] Should be able to find an existent folder in search results', async () => {
await searchBarPage.checkSearchIconIsVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterTextAndPressEnter(firstFolderModel.name); await searchBarPage.enterTextAndPressEnter(firstFolderModel.name);
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
@@ -247,28 +242,17 @@ describe('Search component - Search Bar', () => {
}); });
it('[C260258] Should be able to find an existent file in search results', async () => { it('[C260258] Should be able to find an existent file in search results', async () => {
await searchBarPage.checkSearchIconIsVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterTextAndPressEnter(firstFileModel.name); await searchBarPage.enterTextAndPressEnter(firstFileModel.name);
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
await searchResultPage.checkContentIsDisplayed(firstFileModel.name); await searchResultPage.checkContentIsDisplayed(firstFileModel.name);
}); });
it('[C91321] Should be able to use down arrow key when navigating throw suggestions', async () => {
await searchBarPage.checkSearchIconIsVisible();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterText(secondFolder.shortName);
await searchBarPage.pressDownArrowAndEnter();
await searchResultPage.dataTable.waitTillContentLoaded();
await expect(await contentServicesPage.currentFolderName()).toEqual(secondFolder.name);
});
it('[C290137] Should be able to search by \'%\'', async () => { it('[C290137] Should be able to search by \'%\'', async () => {
await searchBarPage.clickOnSearchIcon(); await openSearchBar();
await searchBarPage.enterTextAndPressEnter('%'); await searchBarPage.enterTextAndPressEnter('%');
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
}); });
@@ -281,9 +265,8 @@ describe('Search component - Search Bar', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(searchConfiguration)); await LocalStorageUtil.setConfigField('search', JSON.stringify(searchConfiguration));
await searchBarPage.checkSearchIconIsVisible(); await openSearchBar();
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
await searchBarPage.enterTextAndPressEnter(term); await searchBarPage.enterTextAndPressEnter(term);
await searchResultPage.dataTable.waitTillContentLoaded(); await searchResultPage.dataTable.waitTillContentLoaded();
@@ -295,4 +278,14 @@ describe('Search component - Search Bar', () => {
await expect(text.includes(`(${term})`)).toBe(true); await expect(text.includes(`(${term})`)).toBe(true);
}); });
}); });
async function openSearchBar(): Promise<void> {
if (await searchBarPage.searchBarExpanded.isDisplayed()) {
await searchBarPage.clearText();
await searchBarPage.checkSearchBarIsNotVisible();
}
await searchBarPage.clickOnSearchIcon();
await searchBarPage.checkSearchBarIsVisible();
}
}); });
-3
View File
@@ -98,7 +98,6 @@ describe('Search Component - Multi-Select Facet', () => {
uploadActions.deleteFileOrFolder(txtFileSite.entry.id) uploadActions.deleteFileOrFolder(txtFileSite.entry.id)
]); ]);
const sitesApi = new SitesApi(apiService.getInstance());
await sitesApi.deleteSite(site.entry.id, { permanent: true }); await sitesApi.deleteSite(site.entry.id, { permanent: true });
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
}); });
@@ -216,7 +215,6 @@ describe('Search Component - Multi-Select Facet', () => {
await apiService.login(acsUser.username, acsUser.password); await apiService.login(acsUser.username, acsUser.password);
const sitesApi = new SitesApi(apiService.getInstance());
site = await sitesApi.createSite({ site = await sitesApi.createSite({
title: StringUtil.generateRandomString(8), title: StringUtil.generateRandomString(8),
visibility: 'PUBLIC' visibility: 'PUBLIC'
@@ -239,7 +237,6 @@ describe('Search Component - Multi-Select Facet', () => {
await apiService.loginWithProfile('admin'); await apiService.loginWithProfile('admin');
await uploadActions.deleteFileOrFolder(txtFile.entry.id); await uploadActions.deleteFileOrFolder(txtFile.entry.id);
const sitesApi = new SitesApi(apiService.getInstance());
await sitesApi.deleteSite(site.entry.id, { permanent: true }); await sitesApi.deleteSite(site.entry.id, { permanent: true });
}); });
+1 -1
View File
@@ -82,7 +82,7 @@ describe('Search component - Search Page', () => {
await uploadActions.uploadFile(firstFileModel.location, firstFileModel.name, '-my-'); await uploadActions.uploadFile(firstFileModel.location, firstFileModel.name, '-my-');
await apiService.login(browser.params.testConfig.users.admin.username, browser.params.testConfig.users.admin.password); await apiService.loginWithProfile('admin');
await uploadActions.createEmptyFiles(adminFileNames, newFolderModelUploaded.entry.id); await uploadActions.createEmptyFiles(adminFileNames, newFolderModelUploaded.entry.id);
+3 -3
View File
@@ -88,7 +88,7 @@ async function deleteDescriptor(args: ConfigArgs, apiService: any, name: string)
try { try {
return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts); return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts);
} catch (error) { } catch (error) {
logger.error(`Not possible to delete the descriptor ${name} status : ${JSON.stringify(error.status)} ${JSON.stringify(error.response.text)}`); logger.error(`Not possible to delete the descriptor ${name} status : ${JSON.stringify(error.status)} ${JSON.stringify(error?.response?.text)}`);
} }
} }
@@ -106,7 +106,7 @@ async function deleteProject(args: ConfigArgs, apiService: any, projectId: strin
try { try {
return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts); return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts);
} catch (error) { } catch (error) {
logger.error(`Not possible to delete the project ${projectId} status : ${JSON.stringify(error.status)} ${JSON.stringify(error.response.text)}`); logger.error(`Not possible to delete the project ${projectId} status : ${JSON.stringify(error.status)} ${JSON.stringify(error?.response?.text)}`);
} }
} }
@@ -164,7 +164,7 @@ async function undeployApplication(args: ConfigArgs, apiService: any, name: stri
try { try {
return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts); return await apiService.oauth2Auth.callCustomApi(url, 'DELETE', pathParams, queryParams, headerParams, formParams, bodyParam, contentTypes, accepts);
} catch (error) { } catch (error) {
logger.error(`Not possible to undeploy the applications ${name} status : ${JSON.stringify(error.status)} ${JSON.stringify(error.response.text)}`); logger.error(`Not possible to undeploy the applications ${name} status : ${JSON.stringify(error.status)} ${JSON.stringify(error?.response?.text)}`);
} }
} }
+4 -4
View File
@@ -97,9 +97,9 @@ async function handleLoginError(loginError) {
checkEnvReachable(loginError); checkEnvReachable(loginError);
loginAttempts++; loginAttempts++;
if (MAX_ATTEMPTS === loginAttempts) { if (MAX_ATTEMPTS === loginAttempts) {
if (loginError && loginError.response && loginError.response.text) { if (loginError && loginError.response && loginError?.response?.text) {
try { try {
const parsedJson = JSON.parse(loginError.response.text); const parsedJson = JSON.parse(loginError?.response?.text);
if (typeof parsedJson === 'object' && parsedJson.error) { if (typeof parsedJson === 'object' && parsedJson.error) {
const { stackTrace, ...errorWithoutDeprecatedProperty } = parsedJson.error; const { stackTrace, ...errorWithoutDeprecatedProperty } = parsedJson.error;
logger.error(errorWithoutDeprecatedProperty); logger.error(errorWithoutDeprecatedProperty);
@@ -208,9 +208,9 @@ async function getFilesCount(): Promise<number> {
function handleError(error) { function handleError(error) {
logger.error(` ${red}Error encountered${reset}`); logger.error(` ${red}Error encountered${reset}`);
if (error && error.response && error.response.text) { if (error && error.response && error?.response?.text) {
try { try {
const parsedJson = JSON.parse(error.response.text); const parsedJson = JSON.parse(error?.response?.text);
if (typeof parsedJson === 'object' && parsedJson.error) { if (typeof parsedJson === 'object' && parsedJson.error) {
const { stackTrace, ...errorWithoutDeprecatedProperty } = parsedJson.error; const { stackTrace, ...errorWithoutDeprecatedProperty } = parsedJson.error;
logger.error(errorWithoutDeprecatedProperty); logger.error(errorWithoutDeprecatedProperty);
@@ -17,7 +17,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable, from, throwError } from 'rxjs'; import { Observable, from, throwError } from 'rxjs';
import { AlfrescoApiService } from '../../../../core/services'; import { AlfrescoApiService, LogService } from '@alfresco/adf-core';
import { AuditApi, AuditAppPaging, AuditAppEntry, AuditApp, AuditBodyUpdate, AuditEntryPaging, AuditEntryEntry } from '@alfresco/js-api'; import { AuditApi, AuditAppPaging, AuditAppEntry, AuditApp, AuditBodyUpdate, AuditEntryPaging, AuditEntryEntry } from '@alfresco/js-api';
import { catchError } from 'rxjs/operators'; import { catchError } from 'rxjs/operators';
@@ -28,8 +28,7 @@ export class AuditService {
auditApi: AuditApi; auditApi: AuditApi;
constructor( constructor(private apiService: AlfrescoApiService, private logService: LogService) {
private apiService: AlfrescoApiService) {
this.auditApi = new AuditApi(this.apiService.getInstance()); this.auditApi = new AuditApi(this.apiService.getInstance());
} }
@@ -111,7 +110,7 @@ export class AuditService {
} }
private handleError(error: any): any { private handleError(error: any): any {
console.error(error); this.logService.error(error);
return throwError(error || 'Server error'); return throwError(error || 'Server error');
} }
} }
@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { AlfrescoApiService } from '@alfresco/adf-core'; import { AlfrescoApiService, LogService } from '@alfresco/adf-core';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { RatingEntry, RatingBody } from '@alfresco/js-api'; import { RatingEntry, RatingBody } from '@alfresco/js-api';
import { from, throwError, Observable } from 'rxjs'; import { from, throwError, Observable } from 'rxjs';
@@ -26,7 +26,7 @@ import { catchError } from 'rxjs/operators';
}) })
export class RatingService { export class RatingService {
constructor(private apiService: AlfrescoApiService) { constructor(private apiService: AlfrescoApiService, private logService: LogService) {
} }
/** /**
@@ -74,7 +74,7 @@ export class RatingService {
} }
private handleError(error: any): any { private handleError(error: any): any {
console.error(error); this.logService.error(error);
return throwError(error || 'Server error'); return throwError(error || 'Server error');
} }
} }

Some files were not shown because too many files have changed in this diff Show More