[AD-4222] e2e compilation fixes (#4426)

* Run tsc on the e2e folder and as part of the sh script

* in progress

* in progress

* in progress

* in progress

* in progress

* in progress

* fixing compile errors

* fixing compile errors.

* Fix the apiService and exclude nodemodules

* Add semicolumn

* fix import

* fix configuration test package

* fix

* fix errors

* fix typescript

* restore packages.json

* fix errors after rebase

* fix type prolems and add protracotr path mapping

* remove undefined
This commit is contained in:
gmandakini
2019-03-15 23:11:58 +00:00
committed by Eugenio Romano
parent f891ea3df5
commit fc2132e248
48 changed files with 3400 additions and 3950 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"repository": {
"type": "git",

View File

@@ -17,21 +17,20 @@
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import TestConfig = require('../../test.config');
import { AlfrescoApiConfig } from '@alfresco/js-api/src/alfrescoApiConfig';
export class ApiService {
HOST_SSO = TestConfig.adf.hostSso;
HOST_BPM = TestConfig.adf.hostBPM;
HOST_IDENTITY = TestConfig.adf.hostIdentity;
HOST_SSO: string = TestConfig.adf.hostSso;
HOST_BPM: string = TestConfig.adf.hostBPM;
HOST_IDENTITY: string = TestConfig.adf.hostIdentity;
apiService = new AlfrescoApi({
config: AlfrescoApiConfig = {
provider: 'BPM',
bpmHost: `${this.HOST_BPM}`,
identityHost: `${this.HOST_IDENTITY}`,
hostBpm: this.HOST_BPM,
authType: 'OAUTH',
oauth2: {
host: `${this.HOST_SSO}`,
authType: '/protocol/openid-connect/token',
host: this.HOST_SSO,
clientId: 'activiti',
scope: 'openid',
secret: '',
@@ -41,7 +40,9 @@ export class ApiService {
redirectUriLogout: '/logout'
}
});
};
apiService: any = new AlfrescoApi(this.config);
async login(username, password) {
await this.apiService.login(username, password);

View File

@@ -17,15 +17,11 @@
import { ApiService } from '../APS-cloud/apiservice';
import { Util } from '../../util/util';
import { AppConfigService } from '@alfresco/adf-core';
export class GroupIdentity {
api: ApiService = new ApiService();
constructor(appConfig: AppConfigService) {
}
async init(username, password) {
await this.api.login(username, password);
}

View File

@@ -17,15 +17,11 @@
import { ApiService } from '../APS-cloud/apiservice';
import { Util } from '../../util/util';
import { AppConfigService } from '@alfresco/adf-core';
export class Identity {
api: ApiService = new ApiService();
constructor(appConfig: AppConfigService) {
}
async init(username, password) {
await this.api.login(username, password);
}

View File

@@ -16,15 +16,11 @@
*/
import { ApiService } from '../APS-cloud/apiservice';
import { AppConfigService } from '@alfresco/adf-core';
export class Roles {
api: ApiService = new ApiService();
constructor(appConfig: AppConfigService) {
}
async init(username, password) {
await this.api.login(username, password);
}

View File

@@ -49,7 +49,7 @@ let JS_BIND_INPUT = function (target) {
};
let JS_BIND_INPUT_FOLDER = function (target) {
let input = document.createElement('input');
let input: any = document.createElement('input');
input.type = 'file';
input.style.display = 'none';
input.multiple = true;

View File

@@ -28,7 +28,6 @@ import { Util } from '../../util/util';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { browser } from 'protractor';
describe('Document List - Pagination', function () {
let pagination = {

View File

@@ -21,12 +21,13 @@ import { ContentServicesPage } from '../pages/adf/contentServicesPage';
import { AcsUserModel } from '../models/ACS/acsUserModel';
import TestConfig = require('../test.config');
import resources = require('../util/resources');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { AlfrescoApiCompatibility as AlfrescoApi, SiteBodyCreate } from '@alfresco/js-api';
import { FileModel } from '../models/ACS/fileModel';
import { UploadActions } from '../actions/ACS/upload.actions';
import { Util } from '../util/util';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import VisibilityEnum = SiteBodyCreate.VisibilityEnum;
describe('Permissions Component', function () {
@@ -73,7 +74,7 @@ describe('Permissions Component', function () {
await alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
let siteName = Util.generateRandomString(5);
let publicSiteBody = {'title': siteName, 'visibility': 'PUBLIC'};
let publicSiteBody = { 'title': siteName, 'visibility': VisibilityEnum.PUBLIC };
publicSite = await alfrescoJsApi.core.sitesApi.createSite(publicSiteBody);
folderName = Util.generateRandomString(5);

View File

@@ -29,6 +29,7 @@ import { Util } from '../util/util';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../actions/ACS/upload.actions';
import { browser } from 'protractor';
describe('Trashcan - Pagination', () => {
let pagination = {

View File

@@ -89,7 +89,7 @@ describe('Upload component', () => {
});
afterEach(async (done) => {
let nodesPromise = await contentServicesPage.getContentList().getAllNodeIdInList();
let nodesPromise = await contentServicesPage.getElementsDisplayedId();
nodesPromise.forEach(async (currentNodePromise) => {
await currentNodePromise.then(async (currentNode) => {

View File

@@ -33,7 +33,8 @@ import { FolderModel } from '../../models/ACS/folderModel';
import TestConfig = require('../../test.config');
import resources = require('../../util/resources');
import AlfrescoApi = require('@alfresco/js-api');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import CONSTANTS = require('../../util/constants');
describe('Upload - User permission', () => {

View File

@@ -34,6 +34,7 @@ export class FileModel {
secondPageText = resources.Files.ADF_DOCUMENTS.PDF.second_page_text;
lastPageNumber = resources.Files.ADF_DOCUMENTS.PDF.last_page_number;
createdAt = '';
password = '';
createdByUser = new CreatedByModel();
modifiedByUser = new CreatedByModel();
content: ContentModel = {};

View File

@@ -165,7 +165,7 @@ export class DataTableComponentPage {
async getAllRowsColumnValues(column) {
let columnLocator = by.css("adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[title='" + column + "'] span");
Util.waitUntilElementIsVisible(element.all(columnLocator).first());
let initialList = await element.all(columnLocator).getText();
let initialList: any = await element.all(columnLocator).getText();
return initialList.filter((el) => el);
}

View File

@@ -22,7 +22,7 @@ import { TaskListCloudComponent } from '../../process-cloud/taskListCloudCompone
import { EditTaskFilterCloudComponent } from '../../process-cloud/editTaskFilterCloudComponent';
import { FormControllersPage } from '../../material/formControllersPage';
import { element, by } from 'protractor';
import { element, by, browser } from 'protractor';
export class TasksCloudDemoPage {

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { by, element } from 'protractor';
import { by, element, protractor } from 'protractor';
import { Util } from '../../../util/util';
export class EditProcessFilterDialog {

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { by, element } from 'protractor';
import { by, element, protractor } from 'protractor';
import { Util } from '../../../util/util';
export class EditTaskFilterDialog {

View File

@@ -111,7 +111,7 @@ export class ShareDialog {
}
calendarTodayDayIsDisabled() {
const today = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
const today: any = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
Util.waitUntilElementIsPresent(element(by.cssContainingText('.mat-datetimepicker-calendar-body-disabled', today)));
}

View File

@@ -113,12 +113,6 @@ export class UploadDialog {
return this;
}
removeFileWhileUploading(content) {
browser.driver.actions().mouseMove(this.getRowByRowName(content).element(this.sizeUploaded)).perform();
this.getRowByRowName(content).element(this.cancelWhileUploadingIcon).click();
return this;
}
getTitleText() {
Util.waitUntilElementIsVisible(this.title);
let deferred = protractor.promise.defer();
@@ -164,7 +158,7 @@ export class UploadDialog {
numberOfCurrentFilesUploaded() {
let deferred = protractor.promise.defer();
this.getTitleText().then((text) => {
this.getTitleText().then((text: any) => {
deferred.fulfill(text.split('Uploaded ')[1].split(' / ')[0]);
});
return deferred.promise;
@@ -172,7 +166,7 @@ export class UploadDialog {
numberOfInitialFilesUploaded() {
let deferred = protractor.promise.defer();
this.getTitleText().then((text) => {
this.getTitleText().then((text: any) => {
deferred.fulfill(text.split('Uploaded ')[1].split(' / ')[1]);
});
return deferred.promise;

View File

@@ -38,7 +38,7 @@ export class FilePreviewPage {
let deferred = protractor.promise.defer();
Util.waitUntilElementIsVisible(this.pdfTitleFromSearch);
Util.waitUntilElementIsVisible(this.textLayer);
this.pdfTitleFromSearch.getText().then(function (result) {
this.pdfTitleFromSearch.getText().then((result) => {
deferred.fulfill(result);
});
return deferred.promise;
@@ -152,13 +152,13 @@ export class FilePreviewPage {
}
checkCanvasWidth() {
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`width`).then(function (width) {
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`width`).then((width) => {
return width;
});
}
checkCanvasHeight() {
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`height`).then(function (height) {
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`height`).then((height) => {
return height;
});
}
@@ -175,14 +175,14 @@ export class FilePreviewPage {
actualHeight,
zoomedInHeight;
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
actualWidth = width;
if (actualWidth && zoomedInWidth) {
expect(zoomedInWidth).toBeGreaterThan(actualWidth);
}
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then( (height) => {
actualHeight = height;
if (actualHeight && zoomedInHeight) {
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
@@ -191,14 +191,14 @@ export class FilePreviewPage {
this.clickZoomIn();
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
zoomedInWidth = width;
if (actualWidth && zoomedInWidth) {
expect(zoomedInWidth).toBeGreaterThan(actualWidth);
}
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then( (height) => {
zoomedInHeight = height;
if (actualHeight && zoomedInHeight) {
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
@@ -220,27 +220,27 @@ export class FilePreviewPage {
newWidth,
newHeight;
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
actualWidth = width;
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then((height) => {
actualHeight = height;
});
this.clickZoomIn();
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
zoomedWidth = width;
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then((height) => {
zoomedHeight = height;
});
this.clickActualSize();
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
newWidth = width;
if (actualWidth && zoomedWidth && newWidth) {
expect(newWidth).toBeLessThan(zoomedWidth);
@@ -248,7 +248,7 @@ export class FilePreviewPage {
}
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then((height) => {
newHeight = height;
if (actualHeight && zoomedHeight && newHeight) {
expect(newHeight).toBeLessThan(zoomedHeight);
@@ -267,17 +267,16 @@ export class FilePreviewPage {
let actualWidth,
zoomedOutWidth,
actualHeight,
zoomedOutHeight,
zoomedInHeight;
zoomedOutHeight;
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
actualWidth = width;
if (actualWidth && zoomedOutWidth) {
expect(zoomedOutWidth).toBeLessThan(actualWidth);
}
});
this.checkCanvasHeight().then(function (height) {
this.checkCanvasHeight().then((height) => {
actualHeight = height;
if (actualHeight && zoomedOutHeight) {
expect(zoomedOutHeight).toBeLessThan(actualHeight);
@@ -286,15 +285,14 @@ export class FilePreviewPage {
this.clickZoomOut();
this.checkCanvasWidth().then(function (width) {
this.checkCanvasWidth().then((width) => {
zoomedOutWidth = width;
if (actualWidth && zoomedOutWidth) {
expect(zoomedOutWidth).toBeLessThan(actualWidth);
}
});
this.checkCanvasHeight().then(function (height) {
zoomedInHeight = height;
this.checkCanvasHeight().then(() => {
if (actualHeight && zoomedOutHeight) {
expect(zoomedOutHeight).toBeLessThan(actualHeight);
}

View File

@@ -110,7 +110,7 @@ export class EditProcessFilterCloudComponent {
async checkAppNamesAreUnique() {
let appNameList = element.all(by.css('mat-option[data-automation-id="adf-cloud-edit-process-property-optionsappName"] span'));
let appTextList = await appNameList.getText();
let appTextList: any = await appNameList.getText();
let uniqueArray = appTextList.filter((appName) => {
let sameAppNameArray = appTextList.filter((eachApp) => eachApp === appName);
return sameAppNameArray.length === 1;

View File

@@ -57,13 +57,13 @@ export class FormFields {
return widget;
}
getFieldValue(fieldId, valueLocatorParam) {
getFieldValue(fieldId, valueLocatorParam?: any) {
let value = this.getWidget(fieldId).element(valueLocatorParam || this.valueLocator);
Util.waitUntilElementIsVisible(value);
return value.getAttribute('value');
}
getFieldLabel(fieldId, labelLocatorParam) {
getFieldLabel(fieldId, labelLocatorParam?: any) {
let label = this.getWidget(fieldId).all(labelLocatorParam || this.labelLocator).first();
Util.waitUntilElementIsVisible(label);
return label.getText();
@@ -74,7 +74,7 @@ export class FormFields {
return error.getText();
}
getFieldText(fieldId, labelLocatorParam) {
getFieldText(fieldId, labelLocatorParam?: any) {
let label = this.getWidget(fieldId).element(labelLocatorParam || this.labelLocator);
Util.waitUntilElementIsVisible(label);
return label.getText();

View File

@@ -157,7 +157,7 @@ describe('Process list cloud', () => {
noOfApps = processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().getNumberOfAppNameOptions();
expect(processCloudDemoPage.editProcessFilterCloudComponent().checkAppNamesAreUnique()).toBe(true);
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
processCloudDemoPage.editProcessFilterCloudComponent().setStateFilterDropDown('RUNNING')
processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('RUNNING')
.setAppNameDropDown(simpleApp).setProcessInstanceId(runningProcessInstance.entry.id);
processCloudDemoPage.processListCloudComponent().getDataTable().checkSpinnerIsDisplayed().checkSpinnerIsNotDisplayed();
@@ -173,7 +173,7 @@ describe('Process list cloud', () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader();
expect(processCloudDemoPage.editProcessFilterCloudComponent().getProcessInstanceId()).toEqual(runningProcessInstance.entry.id);
processCloudDemoPage.editProcessFilterCloudComponent().setStateFilterDropDown('RUNNING')
processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('RUNNING')
.setAppNameDropDown(simpleApp).setProcessInstanceId(switchProcessInstance.entry.id);
processCloudDemoPage.processListCloudComponent().getDataTable().checkSpinnerIsDisplayed().checkSpinnerIsNotDisplayed();

View File

@@ -20,7 +20,6 @@ import CONSTANTS = require('../util/constants');
import { Util } from '../util/util';
import moment = require('moment');
import AlfrescoApi = require('@alfresco/js-api');
import { Tasks } from '../actions/APS-cloud/tasks';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
@@ -28,7 +27,7 @@ import { LoginSSOPage } from '@alfresco/adf-testing';
import { SettingsPage } from '../pages/adf/settingsPage';
import { AppListCloudPage } from '@alfresco/adf-testing';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { TaskDetailsCloudComponent } from '../pages/adf/process-cloud/TaskDetailsCloudComponent';
import { TaskDetailsCloudComponent } from '../pages/adf/process-cloud/taskDetailsCloudComponent';
import { browser } from 'protractor';
describe('Task Header cloud component', () => {

View File

@@ -437,7 +437,7 @@ describe('Start Task - Custom App', () => {
taskListSinglePage.taskList().checkContentIsDisplayed(paginationTasksName[13]);
taskListSinglePage.taskList().getRowsDisplayedWithSameName(paginationTasksName[13]).then((list) => {
expect(list.count()).toEqual(2);
expect(list.length).toEqual(2);
});
});

View File

@@ -371,7 +371,7 @@ describe('Start Process Component', () => {
processFiltersPage.clickRunningFilterButton();
processFiltersPage.selectFromProcessList('Active Task');
processDetailsPage.clickOnActiveTask();
processDetailsPage.checkActiveTaskTitleIsDisplayed(app.task_name);
processDetailsPage.checkActiveTaskTitleIsDisplayed();
});
it('[C260457] Should display process in Completed when cancelled', () => {

View File

@@ -253,7 +253,7 @@ describe('Task', () => {
it('[C260350] Should display a new filter when a filter is added', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'New Task Filter';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -277,7 +277,7 @@ describe('Task', () => {
it('[C286447] Should display the task filter icon when a custom filter is added', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'New Task Filter with icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-cloud';
@@ -317,7 +317,7 @@ describe('Task', () => {
it('[C260353] Should display changes on a filter when this filter is edited', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'New Task Filter';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -334,7 +334,7 @@ describe('Task', () => {
taskFiltersDemoPage.customTaskFilter('New Task Filter').checkTaskFilterIsDisplayed();
browser.controlFlow().execute(() => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Task Filter Edited';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -356,7 +356,7 @@ describe('Task', () => {
it('[C286448] Should display changes on a task filter when this filter icon is edited', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Task Filter Edited icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -373,7 +373,7 @@ describe('Task', () => {
taskFiltersDemoPage.customTaskFilter('Task Filter Edited icon').checkTaskFilterIsDisplayed();
browser.controlFlow().execute(() => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Task Filter Edited icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-cloud';
@@ -397,11 +397,11 @@ describe('Task', () => {
it('[C260354] Should not display task filter when this filter is deleted', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'New Task Filter';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
newFilter.filter = { sort: 'created-desc', state: 'completed', assignment: 'involved' };
newFilter.filter = <any> { sort: 'created-desc', state: 'completed', assignment: 'involved' };
let result = await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);

View File

@@ -100,13 +100,9 @@ describe('Task Filters Sorting', () => {
});
// afterAll(async(done) => {
// await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
// done();
// });
it('[C277254] Should display tasks under new filter from newest to oldest when they are completed', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Newest first';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -129,7 +125,7 @@ describe('Task Filters Sorting', () => {
it('[C277255] Should display tasks under new filter from oldest to newest when they are completed', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Newest last';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -151,7 +147,7 @@ describe('Task Filters Sorting', () => {
it('[C277256] Should display tasks under new filter from closest due date to farthest when they are completed', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Due first';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -173,7 +169,7 @@ describe('Task Filters Sorting', () => {
it('[C277257] Should display tasks under new filter from farthest due date to closest when they are completed', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Due last';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -195,7 +191,7 @@ describe('Task Filters Sorting', () => {
it('[C277258] Should display tasks under new filter from newest to oldest when they are open ', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Newest first Open';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -217,7 +213,7 @@ describe('Task Filters Sorting', () => {
it('[C277259] Should display tasks under new filter from oldest to newest when they are open', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Newest last Open';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -239,7 +235,7 @@ describe('Task Filters Sorting', () => {
it('[C277260] Should display tasks under new filter from closest due date to farthest when they are open', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Due first Open';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
@@ -261,7 +257,7 @@ describe('Task Filters Sorting', () => {
it('[C277261] Should display tasks under new filter from farthest due date to closest when they are open', () => {
browser.controlFlow().execute(async () => {
let newFilter = new UserProcessInstanceFilterRepresentation();
let newFilter: any = new UserProcessInstanceFilterRepresentation();
newFilter.name = 'Due last Open';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';

View File

@@ -1,8 +1,9 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"noEmit": true,
"outDir": "../out-tsc/e2e",
"baseUrl": "./",
"baseUrl": ".",
"module": "commonjs",
"target": "es5",
"types": [
@@ -30,8 +31,14 @@
"../lib/process-services-cloud"
],
"@alfresco/adf-testing": [
"../../lib/testing"
"../lib/testing"
]
}
}
},
"include": [
"**/*.ts"
],
"exclude": [
"node_modules"
]
}

View File

@@ -16,7 +16,6 @@
*/
import { browser, protractor } from 'protractor';
import * as moment from 'moment';
import fs = require('fs');
import path = require('path');
import TestConfig = require('../test.config');

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-content-services",
"description": "Alfresco ADF content services",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-content-services.js",
"repository": {
@@ -25,9 +25,9 @@
"@angular/platform-browser": ">=7.0.3",
"@angular/platform-browser-dynamic": ">=7.0.3",
"@angular/router": ">=7.0.3",
"@alfresco/js-api": "3.1.0-beta4",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"rxjs": ">=6.2.2",
"@alfresco/adf-core": "3.1.0-beta4",
"@alfresco/adf-core": "3.1.0-beta5",
"@ngx-translate/core": ">=11.0.0",
"hammerjs": ">=2.0.8",
"moment": ">=2.22.2",

View File

@@ -176,7 +176,7 @@ export class NodePermissionService {
* @returns List of members
*/
getGroupMemberByGroupName(groupName: string, opts?: any): Observable<GroupMemberPaging> {
return from<GroupMemberPaging>(this.apiService.groupsApi.getGroupMembers(groupName, opts));
return from(this.apiService.groupsApi.getGroupMembers(groupName, opts));
}
private formattedRoleName(displayName, siteName): string {

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-core",
"description": "Alfresco ADF core",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-core.js",
"repository": {
@@ -27,7 +27,7 @@
"@angular/router": ">=7.0.3",
"@mat-datetimepicker/core": ">=2.0.1",
"@mat-datetimepicker/moment": ">=2.0.1",
"@alfresco/js-api": "3.1.0-beta4",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"rxjs": ">=6.2.2",
"@ngx-translate/core": ">=11.0.0",
"core-js": ">=2.5.4",

View File

@@ -147,7 +147,7 @@
direction: ltr;
width: 816px;
height: 1056px;
margin: 1px auto -8px auto;
margin: 1px auto -8px;
position: relative;
overflow: visible;
border: 9px solid transparent;

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-extensions",
"description": "Provides extensibility support for ADF applications.",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-extensions.js",
"repository": {
@@ -15,7 +15,7 @@
"@angular/common": ">=7.0.3",
"@angular/core": ">=7.0.3",
"@angular/http": ">=7.0.3",
"@alfresco/js-api": "3.1.0-beta4"
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac"
},
"keywords": [
"extensions",

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-insights",
"description": "Alfresco ADF insights",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-insights.js",
"repository": {
@@ -25,10 +25,10 @@
"@angular/platform-browser": ">=7.0.3",
"@angular/platform-browser-dynamic": ">=7.0.3",
"@angular/router": ">=7.0.3",
"@alfresco/js-api": "3.1.0-beta4",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"rxjs": ">=6.2.2",
"@alfresco/adf-core": "3.1.0-beta4",
"@alfresco/adf-content-services": "3.1.0-beta4",
"@alfresco/adf-core": "3.1.0-beta5",
"@alfresco/adf-content-services": "3.1.0-beta5",
"@ngx-translate/core": ">=11.0.0",
"chart.js": ">=2.5.0",
"core-js": ">=2.5.4",

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-process-services-cloud",
"description": "Alfresco ADF process services cloud",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-process-services-cloud.js",
"repository": {
@@ -25,9 +25,9 @@
"@angular/platform-browser": ">=7.0.3",
"@angular/platform-browser-dynamic": ">=7.0.3",
"@angular/router": ">=7.0.3",
"@alfresco/js-api": "3.1.0-beta4",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"rxjs": ">=6.2.2",
"@alfresco/adf-core": "3.1.0-beta4",
"@alfresco/adf-core": "3.1.0-beta5",
"@ngx-translate/core": ">=11.0.0",
"hammerjs": ">=2.0.8",
"moment": ">=2.22.2",

View File

@@ -15,7 +15,18 @@
* limitations under the License.
*/
import { Component, ElementRef, OnInit, Output, EventEmitter, ViewChild, ViewEncapsulation, Input, SimpleChanges, OnChanges } from '@angular/core';
import {
Component,
ElementRef,
OnInit,
Output,
EventEmitter,
ViewChild,
ViewEncapsulation,
Input,
SimpleChanges,
OnChanges
} from '@angular/core';
import { FormControl } from '@angular/forms';
import { trigger, state, style, transition, animate } from '@angular/animations';
import { Observable, of, BehaviorSubject } from 'rxjs';
@@ -133,6 +144,7 @@ export class GroupCloudComponent implements OnInit, OnChanges {
this.enableSearch();
}
}
initSearch() {
this.searchGroupsControl.valueChanges.pipe(
filter((value) => {
@@ -211,9 +223,9 @@ export class GroupCloudComponent implements OnInit, OnChanges {
filterGroupsByRoles(group: GroupModel): Observable<GroupModel> {
return this.groupService.checkGroupHasRole(group.id, this.roles).pipe(
mergeMap((hasRole) => {
mergeMap<boolean, Observable<GroupModel>>((hasRole) => {
return hasRole ? of(group) : of();
}));
}));
}
onSelect(selectedGroup: GroupModel) {
@@ -236,7 +248,9 @@ export class GroupCloudComponent implements OnInit, OnChanges {
onRemove(selectedGroup: GroupModel) {
this.removeGroup.emit(selectedGroup);
const indexToRemove = this.selectedGroups.findIndex((group: GroupModel) => { return group.id === selectedGroup.id; });
const indexToRemove = this.selectedGroups.findIndex((group: GroupModel) => {
return group.id === selectedGroup.id;
});
this.selectedGroups.splice(indexToRemove, 1);
this.selectedGroupsSubject.next(this.selectedGroups);
}

View File

@@ -261,7 +261,7 @@ export class PeopleCloudComponent implements OnInit, OnChanges {
filterUsersByRoles(user: IdentityUserModel): Observable<IdentityUserModel> {
return this.identityUserService.checkUserHasRole(user.id, this.roles).pipe(
mergeMap((hasRole) => {
mergeMap<boolean, Observable<IdentityUserModel>>((hasRole) => {
return hasRole ? of(user) : of();
})
);

View File

@@ -1,7 +1,7 @@
{
"name": "@alfresco/adf-process-services",
"description": "Alfresco ADF process services",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "bundles/adf-process-services.js",
"repository": {
@@ -25,10 +25,10 @@
"@angular/platform-browser": ">=7.0.3",
"@angular/platform-browser-dynamic": ">=7.0.3",
"@angular/router": ">=7.0.3",
"@alfresco/js-api": "3.1.0-beta4",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"rxjs": ">=6.2.2",
"@alfresco/adf-core": "3.1.0-beta4",
"@alfresco/adf-content-services": "3.1.0-beta4",
"@alfresco/adf-core": "3.1.0-beta5",
"@alfresco/adf-content-services": "3.1.0-beta5",
"@ngx-translate/core": ">=11.0.0",
"core-js": ">=2.5.4",
"hammerjs": ">=2.0.8",

View File

@@ -78,7 +78,7 @@ export class ProcessService {
* @returns Binary PDF data
*/
fetchProcessAuditPdfById(processId: string): Observable<Blob> {
return from<Blob>(this.alfrescoApiService.getInstance().activiti.processApi.getProcessAuditPdf(processId))
return from(this.alfrescoApiService.getInstance().activiti.processApi.getProcessAuditPdf(processId))
.pipe(
catchError((err) => this.handleProcessError(err))
);
@@ -192,7 +192,7 @@ export class ProcessService {
* @returns Null response notifying when the operation is complete
*/
cancelProcess(processInstanceId: string): Observable<void> {
return from<void>(
return from(
this.alfrescoApiService.getInstance().activiti.processApi.deleteProcessInstance(processInstanceId)
)
.pipe(
@@ -236,7 +236,7 @@ export class ProcessService {
* @returns Null response notifying when the operation is complete
*/
deleteProcessInstanceVariable(processInstanceId: string, variableName: string): Observable<void> {
return from<void>(
return from(
this.alfrescoApiService.getInstance().activiti.processInstanceVariablesApi.deleteProcessInstanceVariable(processInstanceId, variableName)
)
.pipe(

View File

@@ -238,7 +238,7 @@ export class TaskListService {
* @returns Null response notifying when the operation is complete
*/
deleteTask(taskId: string): Observable<TaskDetailsModel> {
return from<TaskDetailsModel>(this.callApiDeleteTask(taskId))
return from(this.callApiDeleteTask(taskId))
.pipe(
catchError((err) => this.handleError(err))
);
@@ -250,7 +250,7 @@ export class TaskListService {
* @returns Null response notifying when the operation is complete
*/
deleteForm(taskId: string): Observable<TaskDetailsModel> {
return from<TaskDetailsModel>(this.callApiDeleteForm(taskId))
return from(this.callApiDeleteForm(taskId))
.pipe(
catchError((err) => this.handleError(err))
);
@@ -339,7 +339,7 @@ export class TaskListService {
* @returns Details of the claimed task
*/
claimTask(taskId: string): Observable<TaskDetailsModel> {
return from<TaskDetailsModel>(this.apiService.taskApi.claimTask(taskId))
return from(this.apiService.taskApi.claimTask(taskId))
.pipe(
catchError((err) => this.handleError(err))
);
@@ -351,7 +351,7 @@ export class TaskListService {
* @returns Null response notifying when the operation is complete
*/
unclaimTask(taskId: string): Observable<TaskDetailsModel> {
return from<TaskDetailsModel>(this.apiService.taskApi.unclaimTask(taskId))
return from(this.apiService.taskApi.unclaimTask(taskId))
.pipe(
catchError((err) => this.handleError(err))
);

18
lib/testing/index.ts Normal file
View File

@@ -0,0 +1,18 @@
/*!
* @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.
*/
export * from './src/public-api';

View File

@@ -1,9 +1,9 @@
{
"name": "@alfresco/adf-testing",
"version": "0.0.1",
"version": "3.1.0-beta5",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0",
"@alfresco/js-api": "3.0.0-delta18"
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac"
}
}

7046
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "alfresco-components",
"description": "Alfresco Angular components",
"version": "3.1.0-beta4",
"version": "3.1.0-beta5",
"author": "Alfresco Software, Ltd.",
"main": "./index.js",
"scripts": {
@@ -12,7 +12,7 @@
"build-lib": "./scripts/ng-packagr.sh",
"bundlesize-check": "bundlesize",
"lint-lib": "./node_modules/.bin/tslint -p ./lib/tsconfig.json -c ./lib/tslint.json",
"lint-e2e": "./node_modules/.bin/tslint -p ./e2e/tsconfig.e2e.json -c ./tslint.json",
"lint-e2e": "tsc -p ./e2e/tsconfig.e2e.json && ./node_modules/.bin/tslint -p ./e2e/tsconfig.e2e.json -c ./tslint.json",
"test-export": "ts-node ./tools/export-check/exportCheck.ts ./lib/core/public-api.ts ./lib/process-services/public-api.ts ./lib/content-services/public-api.ts ./lib/insights/public-api.ts ./lib/process-services-cloud/public-api.ts",
"ng": "ng",
"affected:libs": "./node_modules/.bin/nx affected:libs",
@@ -62,7 +62,7 @@
"@alfresco/adf-process-services": "3.1.0-beta5",
"@alfresco/adf-process-services-cloud": "3.1.0-beta5",
"@alfresco/adf-testing": "3.1.0-beta5",
"@alfresco/js-api": "3.1.0-beta5",
"@alfresco/js-api": "3.1.0-6eec5abc14bb31af3512cba5492f4ba43ffa2fac",
"@angular/animations": "7.0.3",
"@angular/cdk": "7.0.3",
"@angular/common": "7.0.3",
@@ -165,11 +165,12 @@
"spdx-license-list": "^5.0.0",
"stylelint": "^9.7.1",
"ts-node": "~4.1.0",
"tsconfig-paths": "^3.8.0",
"tsickle": "^0.34.0",
"tslib": "^1.9.0",
"tslint": "5.9.1",
"typedoc": "^0.14.2",
"typescript": "^3.1.6",
"typescript": "3.1.6",
"unist-util-select": "^2.0.0",
"url-join": "^4.0.0",
"webpack-bundle-analyzer": "^2.13.1",

View File

@@ -3,6 +3,7 @@ const {SpecReporter} = require('jasmine-spec-reporter');
const jasmineReporters = require('jasmine-reporters');
const htmlReporter = require('protractor-html-reporter-2');
const retry = require('protractor-retry').retry;
const tsConfig = require("./e2e/tsconfig.e2e.json");
const AlfrescoApi = require('@alfresco/js-api').AlfrescoApiCompatibility;
const TestConfig = require('./e2e/test.config');
@@ -209,6 +210,11 @@ exports.config = {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
require("tsconfig-paths").register({
project: 'e2e/tsconfig.e2e.json',
baseUrl: 'e2e/',
paths: tsConfig.compilerOptions.paths
});
browser.manage().window().setSize(width, height);

View File

@@ -167,7 +167,7 @@ if $EXEC_VERSION_JSAPI == true; then
npm install alfresco-js-api@${JSAPI_VERSION}
fi
if [[ EXECLINT == "true" ]]; then
if [[ $EXECLINT == "true" ]]; then
npm run lint-e2e || exit 1
fi

View File

@@ -18,15 +18,7 @@
"lib": [
"es2018",
"dom"
],
"paths": {
"testing": [
"dist/testing"
],
"testing/*": [
"dist/testing/*"
]
}
]
},
"exclude": [
"lib/config",