fix protractor report

fix validation
fix log deprecated
fix ADF-3576 Single required dropdown column dynamicgrid aps-form row editor not saving
This commit is contained in:
Eugenio Romano
2018-09-21 15:18:06 +01:00
parent 6e72a84d13
commit bd5be8912f
7 changed files with 81 additions and 66 deletions

View File

@@ -201,9 +201,7 @@ export class FormModel {
} }
} }
if (errorsField.length > 0) { this._isValid = errorsField.length > 0 ? false : true;
this._isValid = false;
}
if (this.formService) { if (this.formService) {
validateFormEvent.isValid = this._isValid; validateFormEvent.isValid = this._isValid;

View File

@@ -8,7 +8,7 @@
[(ngModel)]="value" [(ngModel)]="value"
[required]="column.required" [required]="column.required"
[disabled]="!column.editable" [disabled]="!column.editable"
(selectionChange)="onValueChanged(row, column, $event)"> (ngModelChange)="onValueChanged(row, column, $event)">
<mat-option></mat-option> <mat-option></mat-option>
<mat-option *ngFor="let opt of options" [value]="opt.name" [id]="opt.id">{{opt.name}}</mat-option> <mat-option *ngFor="let opt of options" [value]="opt.name" [id]="opt.id">{{opt.name}}</mat-option>
</mat-select> </mat-select>

View File

@@ -72,7 +72,7 @@ export class SettingsService {
/** @deprecated in 1.7.0 */ /** @deprecated in 1.7.0 */
public setProviders(providers: string) { public setProviders(providers: string) {
this.logService.log(`SettingsService.aetProviders is deprecated. Use the app-config.json`); this.logService.log(`SettingsService.setProviders is deprecated. Use the app-config.json`);
if (providers) { if (providers) {
this.storage.setItem(AppConfigValues.PROVIDERS, providers); this.storage.setItem(AppConfigValues.PROVIDERS, providers);
} }

View File

@@ -142,8 +142,6 @@
</ng-container> </ng-container>
<div fxLayout="row" fxFlex="1 1 auto"> <div fxLayout="row" fxFlex="1 1 auto">
showSidebar 1 {{showSidebar}}
<ng-container *ngIf="allowSidebar && showSidebar"> <ng-container *ngIf="allowSidebar && showSidebar">
showSidebar {{showSidebar}} showSidebar {{showSidebar}}
<div class="adf-viewer__sidebar" [ngClass]="'adf-viewer__sidebar__right'" fxFlexOrder="4" id="adf-right-sidebar" > <div class="adf-viewer__sidebar" [ngClass]="'adf-viewer__sidebar__right'" fxFlexOrder="4" id="adf-right-sidebar" >

View File

@@ -124,7 +124,7 @@
<div *ngIf="showHeaderContent" class="adf-task-details-core-sidebar-checklist"> <div *ngIf="showHeaderContent" class="adf-task-details-core-sidebar-checklist">
<div *ngIf="showChecklist"> <div *ngIf="showChecklist">
<adf-checklist #activitichecklist <adf-checklist #activitichecklist
[readOnly]="readOnlyForm" [readOnly]="internalReadOnlyForm"
[taskId]="taskDetails.id" [taskId]="taskDetails.id"
[assignee]="taskDetails?.assignee?.id" [assignee]="taskDetails?.assignee?.id"
(checklistTaskCreated)="onChecklistTaskCreated($event)" (checklistTaskCreated)="onChecklistTaskCreated($event)"

View File

@@ -175,6 +175,7 @@ export class TaskDetailsComponent implements OnInit, OnChanges {
showAssignee: boolean = false; showAssignee: boolean = false;
showAttachForm: boolean = false; showAttachForm: boolean = false;
internalReadOnlyForm: boolean = false;
private peopleSearchObserver: Observer<UserProcessModel[]>; private peopleSearchObserver: Observer<UserProcessModel[]>;
public errorDialogRef: MatDialogRef<TemplateRef<any>>; public errorDialogRef: MatDialogRef<TemplateRef<any>>;
@@ -306,7 +307,9 @@ export class TaskDetailsComponent implements OnInit, OnChanges {
let endDate: any = res.endDate; let endDate: any = res.endDate;
if (endDate && !isNaN(endDate.getTime())) { if (endDate && !isNaN(endDate.getTime())) {
this.readOnlyForm = true; this.internalReadOnlyForm = true;
} else {
this.internalReadOnlyForm = this.readOnlyForm
} }
if (this.taskDetails && this.taskDetails.involvedPeople) { if (this.taskDetails && this.taskDetails.involvedPeople) {

View File

@@ -9,6 +9,7 @@ const TestConfig = require('./e2e/test.config');
var argv = require('yargs').argv; var argv = require('yargs').argv;
const fs = require('fs'); const fs = require('fs');
const rimraf = require('rimraf');
const projectRoot = path.resolve(__dirname); const projectRoot = path.resolve(__dirname);
@@ -25,7 +26,7 @@ var NAME_TEST = process.env.NAME_TEST ? true : false
var specsToRun = './**/' + FOLDER + '**/*.e2e.ts'; var specsToRun = './**/' + FOLDER + '**/*.e2e.ts';
if (process.env.NAME_TEST) { if (process.env.NAME_TEST) {
specsToRun = './e2e/**/' + process.env.NAME_TEST; specsToRun = './e2e/**/' + process.env.NAME_TEST;
} }
var args_options = []; var args_options = [];
@@ -38,6 +39,15 @@ if (BROWSER_RUN === 'true') {
var downloadFolder = path.join(__dirname, 'e2e/downloads'); var downloadFolder = path.join(__dirname, 'e2e/downloads');
var buildNumber = () => {
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
if (!buildNumber) {
process.env.TRAVIS_BUILD_NUMBER = Date.now();
}
return process.env.TRAVIS_BUILD_NUMBER;
}
exports.config = { exports.config = {
allScriptsTimeout: 60000, allScriptsTimeout: 60000,
@@ -135,7 +145,7 @@ exports.config = {
}, },
onComplete: async function () { afterLaunch: async function () {
var retryCount = 1; var retryCount = 1;
if (argv.retry) { if (argv.retry) {
retryCount = ++argv.retry; retryCount = ++argv.retry;
@@ -145,7 +155,6 @@ exports.config = {
console.log(filenameReport); console.log(filenameReport);
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
let saveScreenshot = process.env.SAVE_SCREENSHOT; let saveScreenshot = process.env.SAVE_SCREENSHOT;
let alfrescoJsApi = new AlfrescoApi({ let alfrescoJsApi = new AlfrescoApi({
@@ -155,31 +164,31 @@ exports.config = {
alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
if (saveScreenshot === 'true') { if (saveScreenshot === 'true') {
if (!buildNumber) {
buildNumber = Date.now();
}
let files = fs.readdirSync(path.join(__dirname, './e2e-output/screenshots')); let files = fs.readdirSync(path.join(__dirname, './e2e-output/screenshots'));
if (files && files.length > 0) { if (files && files.length > 0) {
try { try {
folder = await alfrescoJsApi.nodes.addNode('-my-', { folder = await
'name': 'screenshot', alfrescoJsApi.nodes.addNode('-my-', {
'relativePath': `Builds/${buildNumber}`, 'name': `retry-${retryCount}`,
'nodeType': 'cm:folder' 'relativePath': `Builds/${buildNumber()}/screenshot`,
}, {}, { 'nodeType': 'cm:folder'
'overwrite': true }, {}, {
}); 'overwrite': true
});
} catch (error) { } catch (error) {
console.log('Folder screenshot already present'); console.log('Folder screenshot already present');
folder = await alfrescoJsApi.nodes.getNode('-my-', { folder = await
'relativePath': `Builds/${buildNumber}/screenshot`, alfrescoJsApi.nodes.getNode('-my-', {
'nodeType': 'cm:folder' 'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`,
}, {}, { 'nodeType': 'cm:folder'
'overwrite': true }, {}, {
}); 'overwrite': true
});
} }
for (const fileName of files) { for (const fileName of files) {
@@ -187,29 +196,30 @@ exports.config = {
let pathFile = path.join(__dirname, './e2e-output/screenshots', fileName); let pathFile = path.join(__dirname, './e2e-output/screenshots', fileName);
let file = fs.createReadStream(pathFile); let file = fs.createReadStream(pathFile);
await alfrescoJsApi.upload.uploadFile( await
file, alfrescoJsApi.upload.uploadFile(
'', file,
folder.entry.id, '',
null, folder.entry.id,
{ null,
'name': file.name, {
'nodeType': 'cm:content' 'name': file.name,
} 'nodeType': 'cm:content'
); }
);
} }
} }
} }
testConfig = { testConfigReport = {
reportTitle: 'Protractor Test Execution Report', reportTitle: 'Protractor Test Execution Report',
outputPath: `${projectRoot}/e2e-output/junit-report`, outputPath: `${projectRoot}/e2e-output/junit-report`,
outputFilename: filenameReport, outputFilename: filenameReport,
screenshotPath: '`${projectRoot}/e2e-output/screenshots/`', screenshotPath: `${projectRoot}/e2e-output/screenshots/`,
screenshotsOnlyOnFailure: true, screenshotsOnlyOnFailure: true,
}; };
new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfig); new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfigReport);
let pathFile = path.join(__dirname, './e2e-output/junit-report', filenameReport + '.html'); let pathFile = path.join(__dirname, './e2e-output/junit-report', filenameReport + '.html');
let reportFile = fs.createReadStream(pathFile); let reportFile = fs.createReadStream(pathFile);
@@ -217,44 +227,50 @@ exports.config = {
let reportFolder; let reportFolder;
try { try {
reportFolder = await alfrescoJsApi.nodes.addNode('-my-', { reportFolder = await
'name': 'report', alfrescoJsApi.nodes.addNode('-my-', {
'relativePath': `Builds/${buildNumber}`, 'name': 'report',
'nodeType': 'cm:folder' 'relativePath': `Builds/${buildNumber()}`,
}, {}, { 'nodeType': 'cm:folder'
'overwrite': true }, {}, {
}); 'overwrite': true
});
} catch (error) { } catch (error) {
console.log('Folder report already present' + error); console.log('Folder report already present' + error);
reportFolder = await alfrescoJsApi.nodes.getNode('-my-', { reportFolder = await
'relativePath': `Builds/${buildNumber}/report`, alfrescoJsApi.nodes.getNode('-my-', {
'nodeType': 'cm:folder' 'relativePath': `Builds/${buildNumber()}/report`,
}, {}, { 'nodeType': 'cm:folder'
'overwrite': true }, {}, {
}); 'overwrite': true
});
} }
try { try {
await alfrescoJsApi.upload.uploadFile( await
reportFile, alfrescoJsApi.upload.uploadFile(
'', reportFile,
reportFolder.entry.id, '',
null, reportFolder.entry.id,
{ null,
'name': reportFile.name, {
'nodeType': 'cm:content' 'name': reportFile.name,
} 'nodeType': 'cm:content'
); }
);
} catch (error) { } catch (error) {
console.log('error' + error); console.log('error' + error);
} }
},
afterLaunch() { rimraf(`${projectRoot}/e2e-output/screenshots/`, function () { console.log('done delete screenshot'); });
return retry.afterLaunch(3); return retry.afterLaunch(3);
} }
}; };