enable prefer-const rule for tslint, fix issues (#4409)

* enable prefer-const rule for tslint, fix issues

* Update content-node-selector.component.spec.ts

* Update content-node-selector.component.spec.ts

* fix const

* fix lint issues

* update tests

* update tests

* update tests

* fix code

* fix page class
This commit is contained in:
Denys Vuika
2019-03-27 09:55:30 +00:00
committed by Eugenio Romano
parent 26c5982a1a
commit a7a48e8b2b
581 changed files with 5435 additions and 5402 deletions
@@ -92,7 +92,7 @@ describe('ButtonsMenuComponent', () => {
it('should trigger event when a specific button is clicked', async(() => {
expect(component.value).toBeUndefined();
let button = element.querySelector('button');
const button = element.querySelector('button');
button.click();
fixture.detectChanges();
fixture.whenStable().then(() => {
@@ -56,11 +56,11 @@ describe('CardViewBoolItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let label = fixture.debugElement.query(By.css('.adf-property-label'));
const label = fixture.debugElement.query(By.css('.adf-property-label'));
expect(label).not.toBeNull();
expect(label.nativeElement.innerText).toBe('Boolean label');
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
});
@@ -70,10 +70,10 @@ describe('CardViewBoolItemComponent', () => {
component.property.editable = false;
fixture.detectChanges();
let label = fixture.debugElement.query(By.css('.adf-property-label'));
const label = fixture.debugElement.query(By.css('.adf-property-label'));
expect(label).toBeNull();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).toBeNull();
});
@@ -83,10 +83,10 @@ describe('CardViewBoolItemComponent', () => {
component.property.editable = false;
fixture.detectChanges();
let label = fixture.debugElement.query(By.css('.adf-property-label'));
const label = fixture.debugElement.query(By.css('.adf-property-label'));
expect(label).not.toBeNull();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
});
@@ -94,7 +94,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.checked).toBe(true);
});
@@ -106,7 +106,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.default = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.checked).toBe(true);
});
@@ -115,7 +115,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = false;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.checked).toBe(false);
});
@@ -127,7 +127,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.default = false;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.checked).toBe(false);
});
@@ -138,7 +138,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.hasAttribute('disabled')).toBe(false);
});
@@ -149,7 +149,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.hasAttribute('disabled')).toBe(true);
});
@@ -160,7 +160,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value input[type="checkbox"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.hasAttribute('disabled')).toBe(true);
});
@@ -199,7 +199,7 @@ describe('CardViewBoolItemComponent', () => {
component.property.value = false;
fixture.detectChanges();
let disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
const disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
(updateNotification) => {
expect(updateNotification.target).toBe(component.property);
expect(updateNotification.changed).toEqual({ boolkey: true });
@@ -53,11 +53,11 @@ describe('CardViewDateItemComponent', () => {
it('should render the label and value', () => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('Date label');
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('Jul 10 2017');
});
@@ -75,7 +75,7 @@ describe('CardViewDateItemComponent', () => {
component.displayEmpty = false;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('');
});
@@ -93,7 +93,7 @@ describe('CardViewDateItemComponent', () => {
component.displayEmpty = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -110,7 +110,7 @@ describe('CardViewDateItemComponent', () => {
component.editable = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -120,7 +120,7 @@ describe('CardViewDateItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('Jul 10 2017');
});
@@ -130,8 +130,8 @@ describe('CardViewDateItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
let datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
const datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
const datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
expect(datePicker).not.toBeNull('Datepicker should be in DOM');
expect(datePickerToggle).not.toBeNull('Datepicker toggle should be shown');
});
@@ -140,8 +140,8 @@ describe('CardViewDateItemComponent', () => {
component.property.editable = false;
fixture.detectChanges();
let datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
let datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
const datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
const datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
expect(datePicker).toBeNull('Datepicker should NOT be in DOM');
expect(datePickerToggle).toBeNull('Datepicker toggle should NOT be shown');
});
@@ -151,8 +151,8 @@ describe('CardViewDateItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
let datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
const datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-${component.property.key}"]`));
const datePickerToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepickertoggle-${component.property.key}"]`));
expect(datePicker).toBeNull('Datepicker should NOT be in DOM');
expect(datePickerToggle).toBeNull('Datepicker toggle should NOT be shown');
});
@@ -163,7 +163,7 @@ describe('CardViewDateItemComponent', () => {
fixture.detectChanges();
spyOn(component.datepicker, 'open');
let datePickerLabelToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-label-toggle-${component.property.key}"]`));
const datePickerLabelToggle = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-label-toggle-${component.property.key}"]`));
datePickerLabelToggle.triggerEventHandler('click', {});
expect(component.datepicker.open).toHaveBeenCalled();
@@ -176,7 +176,7 @@ describe('CardViewDateItemComponent', () => {
const expectedDate = moment('Jul 10 2017', 'MMM DD YY');
fixture.detectChanges();
let disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
const disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
(updateNotification) => {
expect(updateNotification.target).toBe(component.property);
expect(updateNotification.changed).toEqual({ dateKey: expectedDate.toDate() });
@@ -87,7 +87,7 @@ export class CardViewDateItemComponent implements OnInit {
onDateChanged(newDateValue) {
if (newDateValue) {
let momentDate = moment(newDateValue.value, this.SHOW_FORMAT, true);
const momentDate = moment(newDateValue.value, this.SHOW_FORMAT, true);
if (momentDate.isValid()) {
this.valueDate = momentDate;
this.cardViewUpdateService.update(this.property, momentDate.toDate());
@@ -92,8 +92,8 @@ describe('CardViewKeyValuePairsItemComponent', () => {
const content = fixture.debugElement.query(By.css('.adf-card-view__key-value-pairs'));
expect(content).not.toBeNull();
let nameInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-name-input-0"]`));
let valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
const nameInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-name-input-0"]`));
const valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
expect(nameInput).not.toBeNull();
expect(valueInput).not.toBeNull();
@@ -129,8 +129,8 @@ describe('CardViewKeyValuePairsItemComponent', () => {
addButton.triggerEventHandler('click', null);
fixture.detectChanges();
let nameInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-name-input-0"]`));
let valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
const nameInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-name-input-0"]`));
const valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
nameInput.nativeElement.value = mockData[0].name;
nameInput.nativeElement.dispatchEvent(new Event('input'));
@@ -157,7 +157,7 @@ describe('CardViewKeyValuePairsItemComponent', () => {
addButton.triggerEventHandler('click', null);
fixture.detectChanges();
let valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
const valueInput = fixture.debugElement.query(By.css(`[data-automation-id="card-${component.property.key}-value-input-0"]`));
valueInput.nativeElement.value = mockData[0].value;
valueInput.nativeElement.dispatchEvent(new Event('input'));
@@ -59,11 +59,11 @@ describe('CardViewMapItemComponent', () => {
component.displayEmpty = true;
fixture.detectChanges();
let labelValue = debug.query(By.css('.adf-property-label'));
const labelValue = debug.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('Map label');
let value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
const value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('Fake default');
});
@@ -79,10 +79,10 @@ describe('CardViewMapItemComponent', () => {
component.displayEmpty = false;
fixture.detectChanges();
let labelValue = debug.query(By.css('.adf-property-label'));
const labelValue = debug.query(By.css('.adf-property-label'));
expect(labelValue).toBeNull();
let value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
const value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('');
});
@@ -97,11 +97,11 @@ describe('CardViewMapItemComponent', () => {
fixture.detectChanges();
let labelValue = debug.query(By.css('.adf-property-label'));
const labelValue = debug.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('Map label');
let value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
const value = debug.query(By.css(`[data-automation-id="card-mapitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('fakeProcessName');
});
@@ -116,9 +116,9 @@ describe('CardViewMapItemComponent', () => {
});
fixture.detectChanges();
let value: any = element.querySelector('.adf-mapitem-clickable-value');
const value: any = element.querySelector('.adf-mapitem-clickable-value');
let disposableUpdate = service.itemClicked$.subscribe((response) => {
const disposableUpdate = service.itemClicked$.subscribe((response) => {
expect(response.target).not.toBeNull();
expect(response.target.type).toEqual('map');
expect(response.target.clickable).toBeTruthy();
@@ -53,11 +53,11 @@ describe('CardViewTextItemComponent', () => {
it('should render the label and value', () => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('Text label');
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('Lorem ipsum');
});
@@ -73,7 +73,7 @@ describe('CardViewTextItemComponent', () => {
component.displayEmpty = false;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('');
});
@@ -89,7 +89,7 @@ describe('CardViewTextItemComponent', () => {
component.displayEmpty = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -105,7 +105,7 @@ describe('CardViewTextItemComponent', () => {
component.editable = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -121,7 +121,7 @@ describe('CardViewTextItemComponent', () => {
component.displayEmpty = false;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('');
});
@@ -137,7 +137,7 @@ describe('CardViewTextItemComponent', () => {
component.displayEmpty = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -152,7 +152,7 @@ describe('CardViewTextItemComponent', () => {
});
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-DEFAULT-KEY');
});
@@ -168,7 +168,7 @@ describe('CardViewTextItemComponent', () => {
});
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('FAKE-ICON');
});
@@ -183,7 +183,7 @@ describe('CardViewTextItemComponent', () => {
});
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
expect(value).toBeNull('Edit icon should NOT be shown');
});
@@ -198,7 +198,7 @@ describe('CardViewTextItemComponent', () => {
});
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.icon}"]`));
expect(value).toBeNull('Edit icon should NOT be shown');
});
@@ -207,7 +207,7 @@ describe('CardViewTextItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
const value = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-value-${component.property.key}"]`));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('Lorem ipsum');
});
@@ -217,7 +217,7 @@ describe('CardViewTextItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
const editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
expect(editIcon).not.toBeNull('Edit icon should be shown');
});
@@ -225,7 +225,7 @@ describe('CardViewTextItemComponent', () => {
component.editable = false;
fixture.detectChanges();
let editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
const editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
expect(editIcon).toBeNull('Edit icon should NOT be shown');
});
@@ -234,7 +234,7 @@ describe('CardViewTextItemComponent', () => {
component.property.editable = true;
fixture.detectChanges();
let editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
const editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-icon-${component.property.key}"]`));
expect(editIcon).toBeNull('Edit icon should NOT be shown');
});
});
@@ -314,7 +314,7 @@ describe('CardViewTextItemComponent', () => {
const expectedText = 'changed text';
fixture.detectChanges();
let disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
const disposableUpdate = cardViewUpdateService.itemUpdated$.subscribe(
(updateNotification) => {
expect(updateNotification.target).toBe(component.property);
expect(updateNotification.changed).toEqual({ textkey: expectedText });
@@ -323,16 +323,16 @@ describe('CardViewTextItemComponent', () => {
}
);
let editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-toggle-${component.property.key}"]`));
const editIcon = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-edit-toggle-${component.property.key}"]`));
editIcon.triggerEventHandler('click', null);
fixture.detectChanges();
let editInput = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-editinput-${component.property.key}"]`));
const editInput = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-editinput-${component.property.key}"]`));
editInput.nativeElement.value = expectedText;
editInput.nativeElement.dispatchEvent(new Event('input'));
fixture.detectChanges();
let updateInput = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-update-${component.property.key}"]`));
const updateInput = fixture.debugElement.query(By.css(`[data-automation-id="card-textitem-update-${component.property.key}"]`));
updateInput.triggerEventHandler('click', null);
});
});
@@ -47,11 +47,11 @@ describe('CardViewComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('My label');
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText).toBe('My value');
});
@@ -68,7 +68,7 @@ describe('CardViewComponent', () => {
fixture.detectChanges();
let datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-some-key"]`));
const datePicker = fixture.debugElement.query(By.css(`[data-automation-id="datepicker-some-key"]`));
expect(datePicker).not.toBeNull('Datepicker should be in DOM');
});
@@ -81,11 +81,11 @@ describe('CardViewComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('My date label');
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText).toBe('Jun 14 2017');
});
@@ -106,10 +106,10 @@ describe('CardViewComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).toBeNull();
let value = fixture.debugElement.query(By.css('.adf-property-value'));
const value = fixture.debugElement.query(By.css('.adf-property-value'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('');
});
@@ -130,11 +130,11 @@ describe('CardViewComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('My default label');
let value = fixture.debugElement.query(By.css('.adf-property-value [data-automation-id="card-textitem-value-some-key"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value [data-automation-id="card-textitem-value-some-key"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('default value');
});
@@ -155,11 +155,11 @@ describe('CardViewComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
const labelValue = fixture.debugElement.query(By.css('.adf-property-label'));
expect(labelValue).not.toBeNull();
expect(labelValue.nativeElement.innerText).toBe('My default label');
let value = fixture.debugElement.query(By.css('.adf-property-value [data-automation-id="card-textitem-value-some-key"]'));
const value = fixture.debugElement.query(By.css('.adf-property-value [data-automation-id="card-textitem-value-some-key"]'));
expect(value).not.toBeNull();
expect(value.nativeElement.innerText.trim()).toBe('default value');
});
@@ -144,28 +144,28 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let comment = fixture.debugElement.query(By.css('#adf-comment-1'));
const comment = fixture.debugElement.query(By.css('#adf-comment-1'));
comment.triggerEventHandler('click', null);
});
}));
it('should deselect the previous selected comment when a new one is clicked', async(() => {
processCommentOne.isSelected = true;
let commentOne = Object.assign({}, processCommentOne);
let commentTwo = Object.assign({}, processCommentTwo);
const commentOne = Object.assign({}, processCommentOne);
const commentTwo = Object.assign({}, processCommentTwo);
commentList.selectedComment = commentOne;
commentList.comments = [commentOne, commentTwo];
commentList.clickRow.subscribe((selectedComment) => {
fixture.detectChanges();
let commentSelectedList = fixture.nativeElement.querySelectorAll('.adf-is-selected');
const commentSelectedList = fixture.nativeElement.querySelectorAll('.adf-is-selected');
expect(commentSelectedList.length).toBe(1);
expect(commentSelectedList[0].textContent).toContain('2nd Test Comment');
});
fixture.detectChanges();
fixture.whenStable().then(() => {
let comment = fixture.debugElement.query(By.css('#adf-comment-2'));
const comment = fixture.debugElement.query(By.css('#adf-comment-2'));
comment.triggerEventHandler('click', null);
});
}));
@@ -183,7 +183,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('#comment-message');
const elements = fixture.nativeElement.querySelectorAll('#comment-message');
expect(elements.length).toBe(1);
expect(elements[0].innerText).toBe(processCommentOne.message);
expect(fixture.nativeElement.querySelector('#comment-message:empty')).toBeNull();
@@ -195,7 +195,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('#comment-user');
const elements = fixture.nativeElement.querySelectorAll('#comment-user');
expect(elements.length).toBe(1);
expect(elements[0].innerText).toBe(processCommentOne.createdBy.firstName + ' ' + processCommentOne.createdBy.lastName);
expect(fixture.nativeElement.querySelector('#comment-user:empty')).toBeNull();
@@ -203,7 +203,7 @@ describe('CommentListComponent', () => {
}));
it('comment date time should start with few seconds ago when comment date is few seconds ago', async(() => {
let commentFewSecond = Object.assign({}, processCommentOne);
const commentFewSecond = Object.assign({}, processCommentOne);
commentFewSecond.created = new Date();
commentList.comments = [commentFewSecond];
@@ -216,7 +216,7 @@ describe('CommentListComponent', () => {
}));
it('comment date time should start with Yesterday when comment date is yesterday', async(() => {
let commentOld = Object.assign({}, processCommentOne);
const commentOld = Object.assign({}, processCommentOne);
commentOld.created = new Date((Date.now() - 24 * 3600 * 1000));
commentList.comments = [commentOld];
fixture.detectChanges();
@@ -228,7 +228,7 @@ describe('CommentListComponent', () => {
}));
it('comment date time should not start with Today/Yesterday when comment date is before yesterday', async(() => {
let commentOld = Object.assign({}, processCommentOne);
const commentOld = Object.assign({}, processCommentOne);
commentOld.created = new Date((Date.now() - 24 * 3600 * 1000 * 2));
commentList.comments = [commentOld];
fixture.detectChanges();
@@ -245,7 +245,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('#comment-user-icon');
const elements = fixture.nativeElement.querySelectorAll('#comment-user-icon');
expect(elements.length).toBe(1);
expect(elements[0].innerText).toContain(commentList.getUserShortName(processCommentOne.createdBy));
expect(fixture.nativeElement.querySelector('#comment-user-icon:empty')).toBeNull();
@@ -257,7 +257,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('.adf-people-img');
const elements = fixture.nativeElement.querySelectorAll('.adf-people-img');
expect(elements.length).toBe(1);
expect(fixture.nativeElement.getElementsByClassName('adf-people-img')[0].src).toContain('content-user-image');
});
@@ -268,7 +268,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('.adf-people-img');
const elements = fixture.nativeElement.querySelectorAll('.adf-people-img');
expect(elements.length).toBe(1);
expect(fixture.nativeElement.getElementsByClassName('adf-people-img')[0].src).toContain('process-user-image');
});
@@ -279,7 +279,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('.adf-comment-user-icon');
const elements = fixture.nativeElement.querySelectorAll('.adf-comment-user-icon');
expect(elements.length).toBe(1);
});
}));
@@ -289,7 +289,7 @@ describe('CommentListComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let elements = fixture.nativeElement.querySelectorAll('.adf-comment-user-icon');
const elements = fixture.nativeElement.querySelectorAll('.adf-comment-user-icon');
expect(elements.length).toBe(1);
});
}));
+28 -28
View File
@@ -77,24 +77,24 @@ describe('CommentsComponent', () => {
});
it('should load comments when taskId specified', () => {
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'taskId': change});
expect(getProcessCommentsSpy).toHaveBeenCalled();
});
it('should load comments when nodeId specified', () => {
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'nodeId': change});
expect(getContentCommentsSpy).toHaveBeenCalled();
});
it('should emit an error when an error occurs loading comments', () => {
let emitSpy = spyOn(component.error, 'emit');
const emitSpy = spyOn(component.error, 'emit');
getProcessCommentsSpy.and.returnValue(throwError({}));
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'taskId': change});
expect(emitSpy).toHaveBeenCalled();
@@ -106,7 +106,7 @@ describe('CommentsComponent', () => {
});
it('should display comments when the task has comments', async(() => {
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'taskId': change});
fixture.whenStable().then(() => {
@@ -117,11 +117,11 @@ describe('CommentsComponent', () => {
}));
it('should display comments count when the task has comments', async(() => {
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'taskId': change});
fixture.whenStable().then(() => {
fixture.detectChanges();
let element = fixture.nativeElement.querySelector('#comment-header');
const element = fixture.nativeElement.querySelector('#comment-header');
expect(element.innerText).toBe('COMMENTS.HEADER');
});
}));
@@ -136,7 +136,7 @@ describe('CommentsComponent', () => {
}));
it('should display comments input by default', async(() => {
let change = new SimpleChange(null, '123', true);
const change = new SimpleChange(null, '123', true);
component.ngOnChanges({'taskId': change});
fixture.whenStable().then(() => {
fixture.detectChanges();
@@ -155,8 +155,8 @@ describe('CommentsComponent', () => {
describe('change detection taskId', () => {
let change = new SimpleChange('123', '456', true);
let nullChange = new SimpleChange('123', null, true);
const change = new SimpleChange('123', '456', true);
const nullChange = new SimpleChange('123', null, true);
beforeEach(async(() => {
component.taskId = '123';
@@ -184,8 +184,8 @@ describe('CommentsComponent', () => {
describe('change detection node', () => {
let change = new SimpleChange('123', '456', true);
let nullChange = new SimpleChange('123', null, true);
const change = new SimpleChange('123', '456', true);
const nullChange = new SimpleChange('123', null, true);
beforeEach(async(() => {
component.nodeId = '123';
@@ -220,7 +220,7 @@ describe('CommentsComponent', () => {
}));
it('should sanitize comment when user input contains html elements', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = '<div class="text-class"><button onclick=""><h1>action</h1></button></div>';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -231,7 +231,7 @@ describe('CommentsComponent', () => {
}));
it('should normalize comment when user input contains spaces sequence', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'test comment';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -242,7 +242,7 @@ describe('CommentsComponent', () => {
}));
it('should add break lines to comment when user input contains new line characters', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'these\nare\nparagraphs\n';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -253,21 +253,21 @@ describe('CommentsComponent', () => {
}));
it('should call service to add a comment when add button is pressed', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'Test Comment';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(addProcessCommentSpy).toHaveBeenCalled();
let elements = fixture.nativeElement.querySelectorAll('#comment-message');
const elements = fixture.nativeElement.querySelectorAll('#comment-message');
expect(elements.length).toBe(1);
expect(elements[0].innerText).toBe('Test Comment');
});
}));
it('should not call service to add a comment when comment is empty', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = '';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -278,7 +278,7 @@ describe('CommentsComponent', () => {
}));
it('should clear comment when escape key is pressed', async(() => {
let event = new KeyboardEvent('keyup', {'key': 'Escape'});
const event = new KeyboardEvent('keyup', {'key': 'Escape'});
let element = fixture.nativeElement.querySelector('#comment-input');
element.dispatchEvent(event);
fixture.detectChanges();
@@ -290,7 +290,7 @@ describe('CommentsComponent', () => {
}));
it('should emit an error when an error occurs adding the comment', () => {
let emitSpy = spyOn(component.error, 'emit');
const emitSpy = spyOn(component.error, 'emit');
addProcessCommentSpy.and.returnValue(throwError({}));
component.message = 'Test comment';
component.add();
@@ -308,21 +308,21 @@ describe('CommentsComponent', () => {
}));
it('should call service to add a comment when add button is pressed', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'Test Comment';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(addContentCommentSpy).toHaveBeenCalled();
let elements = fixture.nativeElement.querySelectorAll('#comment-message');
const elements = fixture.nativeElement.querySelectorAll('#comment-message');
expect(elements.length).toBe(1);
expect(elements[0].innerText).toBe('Test Comment');
});
}));
it('should sanitize comment when user input contains html elements', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = '<div class="text-class"><button onclick=""><h1>action</h1></button></div>';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -333,7 +333,7 @@ describe('CommentsComponent', () => {
}));
it('should normalize comment when user input contains spaces sequence', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'test comment';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -344,7 +344,7 @@ describe('CommentsComponent', () => {
}));
it('should add break lines to comment when user input contains new line characters', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = 'these\nare\nparagraphs\n';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -355,7 +355,7 @@ describe('CommentsComponent', () => {
}));
it('should not call service to add a comment when comment is empty', async(() => {
let element = fixture.nativeElement.querySelector('.adf-comments-input-add');
const element = fixture.nativeElement.querySelector('.adf-comments-input-add');
component.message = '';
element.dispatchEvent(new Event('click'));
fixture.detectChanges();
@@ -366,7 +366,7 @@ describe('CommentsComponent', () => {
}));
it('should clear comment when escape key is pressed', async(() => {
let event = new KeyboardEvent('keyup', {'key': 'Escape'});
const event = new KeyboardEvent('keyup', {'key': 'Escape'});
let element = fixture.nativeElement.querySelector('#comment-input');
element.dispatchEvent(event);
fixture.detectChanges();
@@ -378,7 +378,7 @@ describe('CommentsComponent', () => {
}));
it('should emit an error when an error occurs adding the comment', () => {
let emitSpy = spyOn(component.error, 'emit');
const emitSpy = spyOn(component.error, 'emit');
addContentCommentSpy.and.returnValue(throwError({}));
component.message = 'Test comment';
component.add();
+2 -2
View File
@@ -83,8 +83,8 @@ export class CommentsComponent implements OnChanges {
(comments: CommentModel[]) => {
if (comments && comments instanceof Array) {
comments = comments.sort((comment1: CommentModel, comment2: CommentModel) => {
let date1 = new Date(comment1.created);
let date2 = new Date(comment2.created);
const date1 = new Date(comment1.created);
const date2 = new Date(comment2.created);
return date1 > date2 ? -1 : date1 < date2 ? 1 : 0;
});
comments.forEach((currentComment) => {
@@ -28,7 +28,7 @@ describe('ContextMenuHolderComponent', () => {
let fixture: ComponentFixture<ContextMenuHolderComponent>;
let component: ContextMenuHolderComponent;
let contextMenuService: ContextMenuService;
let overlayContainer = {
const overlayContainer = {
getContainerElement: () => ({
addEventListener: () => {},
querySelector: (val) => ({
@@ -46,7 +46,7 @@ describe('ContextMenuHolderComponent', () => {
})
};
let getViewportRect = {
const getViewportRect = {
getViewportRect: () => ({
left: 0, top: 0, width: 1014, height: 686, bottom: 0, right: 0
})
@@ -105,7 +105,7 @@ describe('DataTable', () => {
}));
it('should use the cardview style if cardview is true', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
[
{ name: '1' },
{ name: '2' }
@@ -125,7 +125,7 @@ describe('DataTable', () => {
});
it('should use the cardview style if cardview is false', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
[
{ name: '1' },
{ name: '2' }
@@ -144,7 +144,7 @@ describe('DataTable', () => {
});
it('should hide the header if showHeader is false', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
[
{ name: '1' },
{ name: '2' }
@@ -164,7 +164,7 @@ describe('DataTable', () => {
});
it('should hide the header if there are no elements inside', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
);
dataTable.ngOnChanges({
@@ -177,7 +177,7 @@ describe('DataTable', () => {
});
it('should hide the header if noPermission is true', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
);
dataTable.noPermission = true;
@@ -193,7 +193,7 @@ describe('DataTable', () => {
});
it('should show the header if showHeader is true', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
[
{ name: '1' },
{ name: '2' }
@@ -234,7 +234,7 @@ describe('DataTable', () => {
});
it('should change the rows on changing of the data', () => {
let newData = new ObjectDataTableAdapter(
const newData = new ObjectDataTableAdapter(
[
{ name: 'TEST' },
{ name: 'FAKE' }
@@ -531,7 +531,7 @@ describe('DataTable', () => {
dataTable.actions = true;
fixture.detectChanges();
let actions = element.querySelectorAll('[id^=action_menu_right]');
const actions = element.querySelectorAll('[id^=action_menu_right]');
expect(actions.length).toBe(4);
});
@@ -550,26 +550,26 @@ describe('DataTable', () => {
dataTable.actionsPosition = 'left';
fixture.detectChanges();
let actions = element.querySelectorAll('[id^=action_menu_left]');
const actions = element.querySelectorAll('[id^=action_menu_left]');
expect(actions.length).toBe(4);
});
it('should initialize default adapter', () => {
let table = new DataTableComponent(null, null);
const table = new DataTableComponent(null, null);
expect(table.data).toBeUndefined();
table.ngOnChanges({ 'data': new SimpleChange('123', {}, true) });
expect(table.data).toEqual(jasmine.any(ObjectDataTableAdapter));
});
it('should initialize with custom data', () => {
let data = new ObjectDataTableAdapter([], []);
const data = new ObjectDataTableAdapter([], []);
dataTable.data = data;
dataTable.ngAfterContentInit();
expect(dataTable.data).toBe(data);
});
it('should emit row click event', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
dataTable.rowClick.subscribe((e) => {
expect(e.value).toBe(row);
@@ -582,7 +582,7 @@ describe('DataTable', () => {
it('should emit double click if there are two single click in 250ms', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
dataTable.ngOnChanges({});
dataTable.rowDblClick.subscribe(() => {
@@ -599,7 +599,7 @@ describe('DataTable', () => {
it('should emit double click if there are more than two single click in 250ms', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
dataTable.ngOnChanges({});
dataTable.rowDblClick.subscribe(() => {
@@ -618,7 +618,7 @@ describe('DataTable', () => {
it('should emit single click if there are two single click in more than 250ms', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
let clickCount = 0;
dataTable.ngOnChanges({});
@@ -638,7 +638,7 @@ describe('DataTable', () => {
});
it('should emit row-click dom event', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
fixture.nativeElement.addEventListener('row-click', (e) => {
expect(e.detail.value).toBe(row);
@@ -650,7 +650,7 @@ describe('DataTable', () => {
});
it('should emit row-dblclick dom event', (done) => {
let row = <DataRow> {};
const row = <DataRow> {};
fixture.nativeElement.addEventListener('row-dblclick', (e) => {
expect(e.detail.value).toBe(row);
@@ -662,14 +662,14 @@ describe('DataTable', () => {
});
it('should prevent default behaviour on row click event', () => {
let e = jasmine.createSpyObj('event', ['preventDefault']);
const e = jasmine.createSpyObj('event', ['preventDefault']);
dataTable.ngAfterContentInit();
dataTable.onRowClick(null, e);
expect(e.preventDefault).toHaveBeenCalled();
});
it('should prevent default behaviour on row double-click event', () => {
let e = jasmine.createSpyObj('event', ['preventDefault']);
const e = jasmine.createSpyObj('event', ['preventDefault']);
dataTable.ngOnChanges({});
dataTable.ngAfterContentInit();
dataTable.onRowDblClick(null, e);
@@ -678,7 +678,7 @@ describe('DataTable', () => {
it('should not sort if column is missing', () => {
dataTable.ngOnChanges({ 'data': new SimpleChange('123', {}, true) });
let adapter = dataTable.data;
const adapter = dataTable.data;
spyOn(adapter, 'setSorting').and.callThrough();
dataTable.onColumnHeaderClick(null);
expect(adapter.setSorting).not.toHaveBeenCalled();
@@ -686,10 +686,10 @@ describe('DataTable', () => {
it('should not sort upon clicking non-sortable column header', () => {
dataTable.ngOnChanges({ 'data': new SimpleChange('123', {}, true) });
let adapter = dataTable.data;
const adapter = dataTable.data;
spyOn(adapter, 'setSorting').and.callThrough();
let column = new ObjectDataColumn({
const column = new ObjectDataColumn({
key: 'column_1'
});
@@ -699,10 +699,10 @@ describe('DataTable', () => {
it('should set sorting upon column header clicked', () => {
dataTable.ngOnChanges({ 'data': new SimpleChange('123', {}, true) });
let adapter = dataTable.data;
const adapter = dataTable.data;
spyOn(adapter, 'setSorting').and.callThrough();
let column = new ObjectDataColumn({
const column = new ObjectDataColumn({
key: 'column_1',
sortable: true
});
@@ -719,12 +719,12 @@ describe('DataTable', () => {
it('should invert sorting upon column header clicked', () => {
dataTable.ngOnChanges({ 'data': new SimpleChange('123', {}, true) });
let adapter = dataTable.data;
let sorting = new DataSorting('column_1', 'asc');
const adapter = dataTable.data;
const sorting = new DataSorting('column_1', 'asc');
spyOn(adapter, 'setSorting').and.callThrough();
spyOn(adapter, 'getSorting').and.returnValue(sorting);
let column = new ObjectDataColumn({
const column = new ObjectDataColumn({
key: 'column_1',
sortable: true
});
@@ -759,7 +759,7 @@ describe('DataTable', () => {
});
it('should reset selection upon data rows change', () => {
let data = new ObjectDataTableAdapter([{}, {}, {}], []);
const data = new ObjectDataTableAdapter([{}, {}, {}], []);
dataTable.data = data;
dataTable.multiselect = true;
@@ -775,8 +775,8 @@ describe('DataTable', () => {
});
it('should update rows on "select all" click', () => {
let data = new ObjectDataTableAdapter([{}, {}, {}], []);
let rows = data.getRows();
const data = new ObjectDataTableAdapter([{}, {}, {}], []);
const rows = data.getRows();
dataTable.data = data;
dataTable.multiselect = true;
@@ -804,8 +804,8 @@ describe('DataTable', () => {
});
it('should require multiselect option to toggle row state', () => {
let data = new ObjectDataTableAdapter([{}, {}, {}], []);
let rows = data.getRows();
const data = new ObjectDataTableAdapter([{}, {}, {}], []);
const rows = data.getRows();
dataTable.data = data;
dataTable.multiselect = false;
@@ -825,9 +825,9 @@ describe('DataTable', () => {
});
it('should use special material url scheme', () => {
let column = <DataColumn> {};
const column = <DataColumn> {};
let row = {
const row = {
getValue: function (key: string) {
return 'material-icons://android';
}
@@ -837,9 +837,9 @@ describe('DataTable', () => {
});
it('should not use special material url scheme', () => {
let column = <DataColumn> {};
const column = <DataColumn> {};
let row = {
const row = {
getValue: function (key: string) {
return 'http://www.google.com';
}
@@ -849,9 +849,9 @@ describe('DataTable', () => {
});
it('should parse icon value', () => {
let column = <DataColumn> {};
const column = <DataColumn> {};
let row = {
const row = {
getValue: function (key: string) {
return 'material-icons://android';
}
@@ -861,9 +861,9 @@ describe('DataTable', () => {
});
it('should not parse icon value', () => {
let column = <DataColumn> {};
const column = <DataColumn> {};
let row = {
const row = {
getValue: function (key: string) {
return 'http://www.google.com';
}
@@ -898,7 +898,7 @@ describe('DataTable', () => {
});
it('should replace image source with fallback thumbnail on error', () => {
let event = <any> {
const event = <any> {
target: {
src: 'missing-image'
}
@@ -911,7 +911,7 @@ describe('DataTable', () => {
it('should replace image source with miscellaneous icon when fallback is not available', () => {
const originalSrc = 'missing-image';
let event = <any> {
const event = <any> {
target: {
src: originalSrc
}
@@ -239,7 +239,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
}
ngDoCheck() {
let changes = this.differ.diff(this.rows);
const changes = this.differ.diff(this.rows);
if (changes) {
this.setTableRows(this.rows);
}
@@ -261,7 +261,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
private initAndSubscribeClickStream() {
this.unsubscribeClickStream();
let singleClickStream = this.click$
const singleClickStream = this.click$
.pipe(
buffer(
this.click$.pipe(
@@ -273,7 +273,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
);
this.singleClickStreamSub = singleClickStream.subscribe((dataRowEvents: DataRowEvent[]) => {
let event: DataRowEvent = dataRowEvents[0];
const event: DataRowEvent = dataRowEvents[0];
this.handleRowSelection(event.value, <MouseEvent | KeyboardEvent> event.event);
this.rowClick.emit(event);
if (!event.defaultPrevented) {
@@ -286,7 +286,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
}
});
let multiClickStream = this.click$
const multiClickStream = this.click$
.pipe(
buffer(
this.click$.pipe(
@@ -298,7 +298,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
);
this.multiClickStreamSub = multiClickStream.subscribe((dataRowEvents: DataRowEvent[]) => {
let event: DataRowEvent = dataRowEvents[0];
const event: DataRowEvent = dataRowEvents[0];
this.rowDblClick.emit(event);
if (!event.defaultPrevented) {
this.elementRef.nativeElement.dispatchEvent(
@@ -428,7 +428,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
if (event) {
event.preventDefault();
}
let dataRowEvent = new DataRowEvent(row, event, this);
const dataRowEvent = new DataRowEvent(row, event, this);
this.clickObserver.next(dataRowEvent);
}
@@ -471,7 +471,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
onColumnHeaderClick(column: DataColumn) {
if (column && column.sortable) {
let current = this.data.getSorting();
const current = this.data.getSorting();
let newDirection = 'asc';
if (current && column.key === current.key) {
newDirection = current.direction === 'asc' ? 'desc' : 'asc';
@@ -485,7 +485,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
this.isSelectAllChecked = matCheckboxChange.checked;
if (this.multiselect) {
let rows = this.data.getRows();
const rows = this.data.getRows();
if (rows && rows.length > 0) {
for (let i = 0; i < rows.length; i++) {
this.selectRow(rows[i], matCheckboxChange.checked);
@@ -510,7 +510,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
onImageLoadingError(event: Event, row: DataRow) {
if (event) {
let element = <any> event.target;
const element = <any> event.target;
if (this.fallbackThumbnail) {
element.src = this.fallbackThumbnail;
@@ -522,7 +522,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
isIconValue(row: DataRow, col: DataColumn): boolean {
if (row && col) {
let value = row.getValue(col.key);
const value = row.getValue(col.key);
return value && value.startsWith('material-icons://');
}
return false;
@@ -530,7 +530,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
asIconValue(row: DataRow, col: DataColumn): string {
if (this.isIconValue(row, col)) {
let value = row.getValue(col.key) || '';
const value = row.getValue(col.key) || '';
return value.replace('material-icons://', '');
}
return null;
@@ -542,14 +542,14 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
isColumnSorted(col: DataColumn, direction: string): boolean {
if (col && direction) {
let sorting = this.data.getSorting();
const sorting = this.data.getSorting();
return sorting && sorting.key === col.key && sorting.direction === direction;
}
return false;
}
getContextMenuActions(row: DataRow, col: DataColumn): any[] {
let event = new DataCellEvent(row, col, []);
const event = new DataCellEvent(row, col, []);
this.showRowContextMenu.emit(event);
return event.value.actions;
}
@@ -558,7 +558,7 @@ export class DataTableComponent implements AfterContentInit, OnChanges, DoCheck,
const id = row.getValue('id');
if (!this.rowMenuCache[id]) {
let event = new DataCellEvent(row, col, []);
const event = new DataCellEvent(row, col, []);
this.showRowActionsMenu.emit(event);
if (!this.rowMenuCacheEnabled) {
return event.value.actions;
@@ -25,20 +25,20 @@ import { ObjectDataColumn } from './object-datacolumn.model';
describe('ObjectDataTableAdapter', () => {
it('should init with empty row collection', () => {
let adapter = new ObjectDataTableAdapter(null, []);
const adapter = new ObjectDataTableAdapter(null, []);
expect(adapter.getRows()).toBeDefined();
expect(adapter.getRows().length).toBe(0);
});
it('should init with empty column collection', () => {
let adapter = new ObjectDataTableAdapter([], null);
const adapter = new ObjectDataTableAdapter([], null);
expect(adapter.getColumns()).toBeDefined();
expect(adapter.getColumns().length).toBeDefined();
});
it('should map rows', () => {
let adapter = new ObjectDataTableAdapter([{}, {}], null);
let rows = adapter.getRows();
const adapter = new ObjectDataTableAdapter([{}, {}], null);
const rows = adapter.getRows();
expect(rows.length).toBe(2);
expect(rows[0] instanceof ObjectDataRow).toBe(true);
@@ -46,11 +46,11 @@ describe('ObjectDataTableAdapter', () => {
});
it('should map columns without rows', () => {
let adapter = new ObjectDataTableAdapter(null, [
const adapter = new ObjectDataTableAdapter(null, [
<DataColumn> {},
<DataColumn> {}
]);
let columns = adapter.getColumns();
const columns = adapter.getColumns();
expect(columns.length).toBe(2);
expect(columns[0] instanceof ObjectDataColumn).toBe(true);
@@ -58,13 +58,13 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort by first column if column is available', () => {
let adapter = new ObjectDataTableAdapter(null, null);
const adapter = new ObjectDataTableAdapter(null, null);
expect(adapter.getSorting()).toBeUndefined();
});
it('should apply new rows array', () => {
let adapter = new ObjectDataTableAdapter([], []);
let newRows = [
const adapter = new ObjectDataTableAdapter([], []);
const newRows = [
<DataRow> {},
<DataRow> {}
];
@@ -74,7 +74,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should accept null for new rows array', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
expect(adapter.getRows()).toBeDefined();
expect(adapter.getRows().length).toBe(0);
@@ -84,7 +84,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should reset rows by null value', () => {
let adapter = new ObjectDataTableAdapter([{}, {}], []);
const adapter = new ObjectDataTableAdapter([{}, {}], []);
expect(adapter.getRows()).toBeDefined();
expect(adapter.getRows().length).toBe(2);
@@ -94,15 +94,15 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort new row collection', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
spyOn(adapter, 'sort').and.callThrough();
adapter.setRows([]);
expect(adapter.sort).toHaveBeenCalled();
});
it('should apply new columns array', () => {
let adapter = new ObjectDataTableAdapter([], []);
let columns = [
const adapter = new ObjectDataTableAdapter([], []);
const columns = [
<DataColumn> {},
<DataColumn> {}
];
@@ -112,7 +112,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should accept null for new columns array', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
expect(adapter.getColumns()).toBeDefined();
expect(adapter.getColumns().length).toBe(0);
@@ -122,7 +122,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should reset columns by null value', () => {
let adapter = new ObjectDataTableAdapter([], [
const adapter = new ObjectDataTableAdapter([], [
<DataColumn> {},
<DataColumn> {}
]);
@@ -135,31 +135,31 @@ describe('ObjectDataTableAdapter', () => {
});
it('should fail getting value with row not defined', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
expect(() => { adapter.getValue(null, null); }).toThrowError('Row not found');
});
it('should fail getting value with column not defined', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
expect(() => { adapter.getValue(<DataRow> {}, null); }).toThrowError('Column not found');
});
it('should get value from row with column key', () => {
let value = 'hello world';
const value = 'hello world';
let row = jasmine.createSpyObj('row', ['getValue']);
const row = jasmine.createSpyObj('row', ['getValue']);
row.getValue.and.returnValue(value);
let adapter = new ObjectDataTableAdapter([], []);
let result = adapter.getValue(row, <DataColumn> { key: 'col1' });
const adapter = new ObjectDataTableAdapter([], []);
const result = adapter.getValue(row, <DataColumn> { key: 'col1' });
expect(row.getValue).toHaveBeenCalledWith('col1');
expect(result).toBe(value);
});
it('should set new sorting', () => {
let sorting = new DataSorting('key', 'direction');
let adapter = new ObjectDataTableAdapter([], []);
const sorting = new DataSorting('key', 'direction');
const adapter = new ObjectDataTableAdapter([], []);
adapter.setSorting(sorting);
expect(adapter.getSorting()).toBe(sorting);
@@ -169,7 +169,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort rows with new sorting value', () => {
let adapter = new ObjectDataTableAdapter([{}, {}], []);
const adapter = new ObjectDataTableAdapter([{}, {}], []);
spyOn(adapter.getRows(), 'sort').and.stub();
adapter.setSorting(new DataSorting('key', 'direction'));
@@ -177,7 +177,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort rows only when sorting key provided', () => {
let adapter = new ObjectDataTableAdapter([{}, {}], []);
const adapter = new ObjectDataTableAdapter([{}, {}], []);
spyOn(adapter.getRows(), 'sort').and.stub();
adapter.setSorting(new DataSorting());
@@ -185,7 +185,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort by first column by default', () => {
let adapter = new ObjectDataTableAdapter(
const adapter = new ObjectDataTableAdapter(
[
{ id: 2, name: 'abs' },
{ id: 1, name: 'xyz' }
@@ -195,13 +195,13 @@ describe('ObjectDataTableAdapter', () => {
]
);
let rows = adapter.getRows();
const rows = adapter.getRows();
expect(rows[0].getValue('id')).toBe(1);
expect(rows[1].getValue('id')).toBe(2);
});
it('should take first sortable column by default', () => {
let adapter = new ObjectDataTableAdapter([], [
const adapter = new ObjectDataTableAdapter([], [
<DataColumn> { key: 'icon' },
new ObjectDataColumn({ key: 'id', sortable: true })
]);
@@ -215,7 +215,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort by dates', () => {
let adapter = new ObjectDataTableAdapter(
const adapter = new ObjectDataTableAdapter(
[
{ id: 1, created: new Date(2016, 7, 6, 15, 7, 2) },
{ id: 2, created: new Date(2016, 7, 6, 15, 7, 1) }
@@ -228,13 +228,13 @@ describe('ObjectDataTableAdapter', () => {
adapter.setSorting(new DataSorting('created', 'asc'));
let rows = adapter.getRows();
const rows = adapter.getRows();
expect(rows[0].getValue('id')).toBe(2);
expect(rows[1].getValue('id')).toBe(1);
});
it('should be sorting undefined if no sortable found', () => {
let adapter = new ObjectDataTableAdapter(
const adapter = new ObjectDataTableAdapter(
[
{ id: 2, name: 'abs' },
{ id: 1, name: 'xyz' }
@@ -249,7 +249,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should sort asc and desc', () => {
let adapter = new ObjectDataTableAdapter(
const adapter = new ObjectDataTableAdapter(
[
{ id: 2, name: 'abs' },
{ id: 1, name: 'xyz' }
@@ -269,7 +269,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should use asc for sort command by default', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
adapter.setSorting(null);
expect(adapter.getSorting()).toBe(null);
@@ -283,7 +283,7 @@ describe('ObjectDataTableAdapter', () => {
});
it('should use direction for sort command', () => {
let adapter = new ObjectDataTableAdapter([], []);
const adapter = new ObjectDataTableAdapter([], []);
adapter.setSorting(null);
expect(adapter.getSorting()).toBe(null);
@@ -305,19 +305,19 @@ describe('ObjectDataRow', () => {
});
it('should get top level property value', () => {
let row = new ObjectDataRow({
const row = new ObjectDataRow({
id: 1
});
expect(row.getValue('id')).toBe(1);
});
it('should not get top level property value', () => {
let row = new ObjectDataRow({});
const row = new ObjectDataRow({});
expect(row.getValue('missing')).toBeUndefined();
});
it('should get nested property value', () => {
let row = new ObjectDataRow({
const row = new ObjectDataRow({
name: {
firstName: 'John',
lastName: 'Doe'
@@ -328,19 +328,19 @@ describe('ObjectDataRow', () => {
});
it('should not get nested property value', () => {
let row = new ObjectDataRow({});
const row = new ObjectDataRow({});
expect(row.getValue('some.missing.property')).toBeUndefined();
});
it('should check top level value exists', () => {
let row = new ObjectDataRow({ id: 1 });
const row = new ObjectDataRow({ id: 1 });
expect(row.hasValue('id')).toBeTruthy();
expect(row.hasValue('other')).toBeFalsy();
});
it('should check nested value exists', () => {
let row = new ObjectDataRow({
const row = new ObjectDataRow({
name: {
firstName: 'John',
lastName: 'Doe'
@@ -353,12 +353,12 @@ describe('ObjectDataRow', () => {
});
it('should generateSchema generate a schema from data', () => {
let data = [
const data = [
{ id: 2, name: 'abs' },
{ id: 1, name: 'xyz' }
];
let schema = ObjectDataTableAdapter.generateSchema(data);
const schema = ObjectDataTableAdapter.generateSchema(data);
expect(schema.length).toBe(2);
expect(schema[0].title).toBe('id');
@@ -34,13 +34,13 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
rowsChanged: Subject<Array<DataRow>>;
static generateSchema(data: any[]) {
let schema = [];
const schema = [];
if (data && data.length) {
let rowToExaminate = data[0];
const rowToExaminate = data[0];
if (typeof rowToExaminate === 'object') {
for (let key in rowToExaminate) {
for (const key in rowToExaminate) {
if (rowToExaminate.hasOwnProperty(key)) {
schema.push({
type: 'text',
@@ -72,7 +72,7 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
});
// Sort by first sortable or just first column
let sortable = this._columns.filter((column) => column.sortable);
const sortable = this._columns.filter((column) => column.sortable);
if (sortable.length > 0) {
this.sort(sortable[0].key, 'asc');
}
@@ -107,7 +107,7 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
throw new Error('Column not found');
}
let value = row.getValue(col.key);
const value = row.getValue(col.key);
if (col.type === 'icon') {
const icon = row.getValue(col.key);
@@ -148,7 +148,7 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
}
sort(key?: string, direction?: string): void {
let sorting = this._sorting || new DataSorting();
const sorting = this._sorting || new DataSorting();
if (key) {
sorting.key = key;
sorting.direction = direction || 'asc';
+3 -3
View File
@@ -30,17 +30,17 @@ describe('DownloadZipDialogComponent', () => {
let component: DownloadZipDialogComponent;
let element: HTMLElement;
let downloadZipService: DownloadZipService;
let dialogRef = {
const dialogRef = {
close: jasmine.createSpy('close')
};
let dataMock = {
const dataMock = {
nodeIds: [
'123'
]
};
let pendingDownloadEntry = {
const pendingDownloadEntry = {
entry: {
bytesAdded: 0,
filesAdded: 0,
@@ -134,7 +134,7 @@ describe('CheckAllowableOperationDirective', () => {
spyOn(contentService, 'hasAllowableOperations').and.returnValue(false);
spyOn(changeDetectorMock, 'detectChanges');
let testComponent = new TestComponent();
const testComponent = new TestComponent();
testComponent.disabled = false;
const directive = new CheckAllowableOperationDirective(null, null, contentService, changeDetectorMock, testComponent);
directive.nodes = <any> [{}, {}];
@@ -150,7 +150,7 @@ describe('CheckAllowableOperationDirective', () => {
spyOn(contentService, 'hasAllowableOperations').and.returnValue(true);
spyOn(changeDetectorMock, 'detectChanges');
let testComponent = new TestComponent();
const testComponent = new TestComponent();
testComponent.disabled = true;
const directive = new CheckAllowableOperationDirective(null, null, contentService, changeDetectorMock, testComponent);
directive.nodes = <any> [{}, {}];
@@ -63,7 +63,7 @@ export class CheckAllowableOperationDirective implements OnChanges {
* @memberof CheckAllowableOperationDirective
*/
updateElement(): boolean {
let enable = this.hasAllowableOperations(this.nodes, this.permission);
const enable = this.hasAllowableOperations(this.nodes, this.permission);
if (enable) {
this.enable();
@@ -72,7 +72,7 @@ describe('NodeFavoriteDirective', () => {
it('should reset favorites if selection is empty', fakeAsync(() => {
spyOn(alfrescoApiService.getInstance().core.favoritesApi, 'getFavorite').and.returnValue(Promise.resolve());
let selection = [
const selection = [
{ entry: { id: '1', name: 'name1' } }
];
@@ -104,7 +104,7 @@ describe('NodeFavoriteDirective', () => {
{ entry: { id: '2', name: 'name2' } }
];
let change = new SimpleChange(null, selection, true);
const change = new SimpleChange(null, selection, true);
directive.ngOnChanges({'selection': change});
tick();
@@ -185,7 +185,7 @@ describe('NodeFavoriteDirective', () => {
});
it('should not perform action if favorites collection is empty', fakeAsync(() => {
let change = new SimpleChange(null, [], true);
const change = new SimpleChange(null, [], true);
directive.ngOnChanges({'selection': change});
tick();
@@ -330,7 +330,7 @@ describe('NodeFavoriteDirective', () => {
{ entry: { id: '1', name: 'name1', isFavorite: true } }
];
let change = new SimpleChange(null, selection, true);
const change = new SimpleChange(null, selection, true);
directive.ngOnChanges({'selection': change});
tick();
@@ -345,7 +345,7 @@ describe('NodeFavoriteDirective', () => {
{ entry: { id: '1', name: 'name1' } }
];
let change = new SimpleChange(null, selection, true);
const change = new SimpleChange(null, selection, true);
directive.ngOnChanges({'selection': change});
tick();
@@ -359,7 +359,7 @@ describe('NodeFavoriteDirective', () => {
{ entry: { id: '1', name: 'name1' } }
];
let change = new SimpleChange(null, selection, true);
const change = new SimpleChange(null, selection, true);
directive.ngOnChanges({'selection': change});
tick();
@@ -238,7 +238,7 @@ export class NodeRestoreDirective {
private notification(): void {
const status = Object.assign({}, this.restoreProcessStatus);
let message = this.getRestoreMessage();
const message = this.getRestoreMessage();
this.reset();
const action = (status.oneSucceeded && !status.someFailed) ? this.translation.instant('CORE.RESTORE_NODE.VIEW') : '';
+7 -7
View File
@@ -58,7 +58,7 @@ describe('UploadDirective', () => {
});
it('should prevent default event on dragover', () => {
let event = new Event('dom-event');
const event = new Event('dom-event');
spyOn(event, 'preventDefault').and.stub();
directive.enabled = true;
directive.onDragOver(event);
@@ -88,28 +88,28 @@ describe('UploadDirective', () => {
it('should prevent default event on drop', () => {
directive.enabled = true;
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
const event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
directive.onDrop(<DragEvent> event);
expect(event.preventDefault).toHaveBeenCalled();
});
it('should stop default event propagation on drop', () => {
directive.enabled = true;
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
const event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
directive.onDrop(<DragEvent> event);
expect(event.stopPropagation).toHaveBeenCalled();
});
it('should not prevent default event on drop when disabled', () => {
directive.enabled = false;
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
const event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
directive.onDrop(<DragEvent> event);
expect(event.preventDefault).not.toHaveBeenCalled();
});
it('should raise upload-files event on files drop', (done) => {
directive.enabled = true;
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
const event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
spyOn(directive, 'getDataTransfer').and.returnValue({});
spyOn(directive, 'getFilesDropped').and.returnValue(Promise.resolve([
<FileInfo> {},
@@ -123,10 +123,10 @@ describe('UploadDirective', () => {
it('should provide dropped files in upload-files event', (done) => {
directive.enabled = true;
let files = [
const files = [
<FileInfo> {}
];
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
const event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
spyOn(directive, 'getDataTransfer').and.returnValue({});
spyOn(directive, 'getFilesDropped').and.returnValue(Promise.resolve(files));
+4 -4
View File
@@ -63,7 +63,7 @@ export class UploadDirective implements OnInit, OnDestroy {
ngOnInit() {
if (this.isClickMode() && this.renderer) {
let inputUpload = this.renderer.createElement('input');
const inputUpload = this.renderer.createElement('input');
this.upload = this.el.nativeElement.parentElement.appendChild(inputUpload);
this.upload.type = 'file';
@@ -153,7 +153,7 @@ export class UploadDirective implements OnInit, OnDestroy {
onUploadFiles(files: FileInfo[]) {
if (this.enabled && files.length > 0) {
let customEvent = new CustomEvent('upload-files', {
const customEvent = new CustomEvent('upload-files', {
detail: {
sender: this,
data: this.data,
@@ -201,7 +201,7 @@ export class UploadDirective implements OnInit, OnDestroy {
if (items) {
for (let i = 0; i < items.length; i++) {
if (typeof items[i].webkitGetAsEntry !== 'undefined') {
let item = items[i].webkitGetAsEntry();
const item = items[i].webkitGetAsEntry();
if (item) {
if (item.isFile) {
iterations.push(Promise.resolve(<FileInfo> {
@@ -225,7 +225,7 @@ export class UploadDirective implements OnInit, OnDestroy {
}
} else {
// safari or FF
let files = FileUtils
const files = FileUtils
.toFileArray(dataTransfer.files)
.map((file) => <FileInfo> {
entry: null,
@@ -51,7 +51,7 @@ describe('FormFieldComponent', () => {
});
it('should create default component instance', (done) => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.TEXT,
id: 'FAKE-TXT-WIDGET'
});
@@ -69,7 +69,7 @@ describe('FormFieldComponent', () => {
it('should create custom component instance', (done) => {
formRenderingService.setComponentTypeResolver(FormFieldTypes.AMOUNT, () => CheckboxWidgetComponent, true);
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.AMOUNT,
id: 'FAKE-TXT-WIDGET'
});
@@ -85,7 +85,7 @@ describe('FormFieldComponent', () => {
});
it('should require component type to be resolved', (done) => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.TEXT,
id: 'FAKE-TXT-WIDGET'
});
@@ -102,7 +102,7 @@ describe('FormFieldComponent', () => {
});
it('should hide the field when it is not visible', (done) => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.TEXT,
id: 'FAKE-TXT-WIDGET'
});
@@ -117,7 +117,7 @@ describe('FormFieldComponent', () => {
});
it('should show the field when it is visible', (done) => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.TEXT,
id: 'FAKE-TXT-WIDGET'
});
@@ -132,7 +132,7 @@ describe('FormFieldComponent', () => {
});
it('should hide a visible element', () => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
type: FormFieldTypes.TEXT,
id: 'FAKE-TXT-WIDGET'
});
@@ -78,22 +78,22 @@ export class FormFieldComponent implements OnInit, OnDestroy {
if (w.adf === undefined) {
w.adf = {};
}
let originalField = this.getField();
const originalField = this.getField();
if (originalField) {
let customTemplate = this.field.form.customFieldTemplates[originalField.type];
const customTemplate = this.field.form.customFieldTemplates[originalField.type];
if (customTemplate && this.hasController(originalField.type)) {
let factory = this.getComponentFactorySync(originalField.type, customTemplate);
const factory = this.getComponentFactorySync(originalField.type, customTemplate);
this.componentRef = this.container.createComponent(factory);
let instance: any = this.componentRef.instance;
const instance: any = this.componentRef.instance;
if (instance) {
instance.field = originalField;
}
} else {
let componentType = this.formRenderingService.resolveComponentType(originalField);
const componentType = this.formRenderingService.resolveComponentType(originalField);
if (componentType) {
let factory = this.componentFactoryResolver.resolveComponentFactory(componentType);
const factory = this.componentFactoryResolver.resolveComponentFactory(componentType);
this.componentRef = this.container.createComponent(factory);
let instance = <WidgetComponent> this.componentRef.instance;
const instance = <WidgetComponent> this.componentRef.instance;
instance.field = this.field;
instance.fieldChanged.subscribe((field) => {
if (field && this.field.form) {
@@ -128,18 +128,18 @@ export class FormFieldComponent implements OnInit, OnDestroy {
}
private getComponentFactorySync(type: string, template: string): ComponentFactory<any> {
let componentInfo = adf.components[type];
const componentInfo = adf.components[type];
if (componentInfo.factory) {
return componentInfo.factory;
}
let metadata = {
const metadata = {
selector: `runtime-component-${type}`,
template: template
};
let factory = this.createComponentFactorySync(this.compiler, metadata, componentInfo.class);
const factory = this.createComponentFactorySync(this.compiler, metadata, componentInfo.class);
componentInfo.factory = factory;
return factory;
}
@@ -153,7 +153,7 @@ export class FormFieldComponent implements OnInit, OnDestroy {
class RuntimeComponentModule {
}
let module: ModuleWithComponentFactories<any> = compiler.compileModuleAndAllComponentsSync(RuntimeComponentModule);
const module: ModuleWithComponentFactories<any> = compiler.compileModuleAndAllComponentsSync(RuntimeComponentModule);
return module.componentFactories.find((x) => x.componentType === decoratedCmp);
}
+65 -65
View File
@@ -50,7 +50,7 @@ describe('FormComponent', () => {
});
it('should allow title if task name available', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
expect(formComponent.showTitle).toBeTruthy();
@@ -69,7 +69,7 @@ describe('FormComponent', () => {
});
it('should not allow title', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
formComponent.showTitle = false;
@@ -87,16 +87,16 @@ describe('FormComponent', () => {
});
it('should enable custom outcome buttons', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: 'action1', name: 'Action 1' });
const outcome = new FormOutcomeModel(formModel, { id: 'action1', name: 'Action 1' });
expect(formComponent.isOutcomeButtonVisible(outcome, formComponent.form.readOnly)).toBeTruthy();
});
it('should allow controlling [complete] button visibility', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.SAVE_ACTION });
const outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.SAVE_ACTION });
formComponent.showSaveButton = true;
expect(formComponent.isOutcomeButtonVisible(outcome, formComponent.form.readOnly)).toBeTruthy();
@@ -106,27 +106,27 @@ describe('FormComponent', () => {
});
it('should show only [complete] button with readOnly form ', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formModel.readOnly = true;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: '$complete', name: FormOutcomeModel.COMPLETE_ACTION });
const outcome = new FormOutcomeModel(formModel, { id: '$complete', name: FormOutcomeModel.COMPLETE_ACTION });
formComponent.showCompleteButton = true;
expect(formComponent.isOutcomeButtonVisible(outcome, formComponent.form.readOnly)).toBeTruthy();
});
it('should not show [save] button with readOnly form ', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formModel.readOnly = true;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.SAVE_ACTION });
const outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.SAVE_ACTION });
formComponent.showSaveButton = true;
expect(formComponent.isOutcomeButtonVisible(outcome, formComponent.form.readOnly)).toBeFalsy();
});
it('should show [custom-outcome] button with readOnly form and selected custom-outcome', () => {
let formModel = new FormModel({ selectedOutcome: 'custom-outcome' });
const formModel = new FormModel({ selectedOutcome: 'custom-outcome' });
formModel.readOnly = true;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: '$customoutome', name: 'custom-outcome' });
@@ -140,10 +140,10 @@ describe('FormComponent', () => {
});
it('should allow controlling [save] button visibility', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formModel.readOnly = false;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.COMPLETE_ACTION });
const outcome = new FormOutcomeModel(formModel, { id: '$save', name: FormOutcomeModel.COMPLETE_ACTION });
formComponent.showCompleteButton = true;
expect(formComponent.isOutcomeButtonVisible(outcome, formComponent.form.readOnly)).toBeTruthy();
@@ -251,7 +251,7 @@ describe('FormComponent', () => {
spyOn(formComponent, 'getFormByTaskId').and.stub();
const taskId = '<task id>';
let change = new SimpleChange(null, taskId, true);
const change = new SimpleChange(null, taskId, true);
formComponent.ngOnChanges({ 'taskId': change });
expect(formComponent.getFormByTaskId).toHaveBeenCalledWith(taskId);
@@ -261,7 +261,7 @@ describe('FormComponent', () => {
spyOn(formComponent, 'getFormDefinitionByFormId').and.stub();
const formId = '123';
let change = new SimpleChange(null, formId, true);
const change = new SimpleChange(null, formId, true);
formComponent.ngOnChanges({ 'formId': change });
expect(formComponent.getFormDefinitionByFormId).toHaveBeenCalledWith(formId);
@@ -271,7 +271,7 @@ describe('FormComponent', () => {
spyOn(formComponent, 'getFormDefinitionByFormName').and.stub();
const formName = '<form>';
let change = new SimpleChange(null, formName, true);
const change = new SimpleChange(null, formName, true);
formComponent.ngOnChanges({ 'formName': change });
expect(formComponent.getFormDefinitionByFormName).toHaveBeenCalledWith(formName);
@@ -305,24 +305,24 @@ describe('FormComponent', () => {
});
it('should complete form on custom outcome click', () => {
let formModel = new FormModel();
let outcomeName = 'Custom Action';
let outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
const formModel = new FormModel();
const outcomeName = 'Custom Action';
const outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
let saved = false;
formComponent.form = formModel;
formComponent.formSaved.subscribe((v) => saved = true);
spyOn(formComponent, 'completeTaskForm').and.stub();
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeTruthy();
expect(saved).toBeTruthy();
expect(formComponent.completeTaskForm).toHaveBeenCalledWith(outcomeName);
});
it('should save form on [save] outcome click', () => {
let formModel = new FormModel();
let outcome = new FormOutcomeModel(formModel, {
const formModel = new FormModel();
const outcome = new FormOutcomeModel(formModel, {
id: FormComponent.SAVE_OUTCOME_ID,
name: 'Save',
isSystem: true
@@ -331,14 +331,14 @@ describe('FormComponent', () => {
formComponent.form = formModel;
spyOn(formComponent, 'saveTaskForm').and.stub();
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeTruthy();
expect(formComponent.saveTaskForm).toHaveBeenCalled();
});
it('should complete form on [complete] outcome click', () => {
let formModel = new FormModel();
let outcome = new FormOutcomeModel(formModel, {
const formModel = new FormModel();
const outcome = new FormOutcomeModel(formModel, {
id: FormComponent.COMPLETE_OUTCOME_ID,
name: 'Complete',
isSystem: true
@@ -347,14 +347,14 @@ describe('FormComponent', () => {
formComponent.form = formModel;
spyOn(formComponent, 'completeTaskForm').and.stub();
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeTruthy();
expect(formComponent.completeTaskForm).toHaveBeenCalled();
});
it('should emit form saved event on custom outcome click', () => {
let formModel = new FormModel();
let outcome = new FormOutcomeModel(formModel, {
const formModel = new FormModel();
const outcome = new FormOutcomeModel(formModel, {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom',
isSystem: true
@@ -364,15 +364,15 @@ describe('FormComponent', () => {
formComponent.form = formModel;
formComponent.formSaved.subscribe((v) => saved = true);
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeTruthy();
expect(saved).toBeTruthy();
});
it('should do nothing when clicking outcome for readonly form', () => {
let formModel = new FormModel();
const formModel = new FormModel();
const outcomeName = 'Custom Action';
let outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
const outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
formComponent.form = formModel;
spyOn(formComponent, 'completeTaskForm').and.stub();
@@ -389,9 +389,9 @@ describe('FormComponent', () => {
});
it('should require loaded form when clicking outcome', () => {
let formModel = new FormModel();
const formModel = new FormModel();
const outcomeName = 'Custom Action';
let outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
const outcome = new FormOutcomeModel(formModel, { id: 'custom1', name: outcomeName });
formComponent.readOnly = false;
formComponent.form = null;
@@ -399,15 +399,15 @@ describe('FormComponent', () => {
});
it('should not execute unknown system outcome', () => {
let formModel = new FormModel();
let outcome = new FormOutcomeModel(formModel, { id: 'unknown', name: 'Unknown', isSystem: true });
const formModel = new FormModel();
const outcome = new FormOutcomeModel(formModel, { id: 'unknown', name: 'Unknown', isSystem: true });
formComponent.form = formModel;
expect(formComponent.onOutcomeClicked(outcome)).toBeFalsy();
});
it('should require custom action name to complete form', () => {
let formModel = new FormModel();
const formModel = new FormModel();
let outcome = new FormOutcomeModel(formModel, { id: 'custom' });
formComponent.form = formModel;
@@ -544,7 +544,7 @@ describe('FormComponent', () => {
savedForm = form;
});
let formModel = new FormModel({
const formModel = new FormModel({
taskId: '123',
fields: [
{ id: 'field1' },
@@ -606,7 +606,7 @@ describe('FormComponent', () => {
let completed = false;
formComponent.formCompleted.subscribe(() => completed = true);
let formModel = new FormModel({
const formModel = new FormModel({
taskId: '123',
fields: [
{ id: 'field1' },
@@ -626,7 +626,7 @@ describe('FormComponent', () => {
});
it('should parse form from json', () => {
let form = formComponent.parseForm({
const form = formComponent.parseForm({
id: 1,
fields: [
{ id: 'field1', type: FormFieldTypes.CONTAINER }
@@ -642,13 +642,13 @@ describe('FormComponent', () => {
it('should provide outcomes for form definition', () => {
spyOn(formComponent, 'getFormDefinitionOutcomes').and.callThrough();
let form = formComponent.parseForm({ id: 1 });
const form = formComponent.parseForm({ id: 1 });
expect(formComponent.getFormDefinitionOutcomes).toHaveBeenCalledWith(form);
});
it('should prevent default outcome execution', () => {
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
@@ -660,12 +660,12 @@ describe('FormComponent', () => {
expect(event.defaultPrevented).toBeTruthy();
});
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeFalsy();
});
it('should not prevent default outcome execution', () => {
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
@@ -678,7 +678,7 @@ describe('FormComponent', () => {
spyOn(formComponent, 'completeTaskForm').and.callThrough();
let result = formComponent.onOutcomeClicked(outcome);
const result = formComponent.onOutcomeClicked(outcome);
expect(result).toBeTruthy();
expect(formComponent.completeTaskForm).toHaveBeenCalledWith(outcome.name);
@@ -699,7 +699,7 @@ describe('FormComponent', () => {
});
it('should load form for ecm node', () => {
let metadata = {};
const metadata = {};
spyOn(nodeService, 'getNodeMetadata').and.returnValue(
new Observable((observer) => {
observer.next({ metadata: metadata });
@@ -709,7 +709,7 @@ describe('FormComponent', () => {
spyOn(formComponent, 'loadFormFromActiviti').and.stub();
const nodeId = '<id>';
let change = new SimpleChange(null, nodeId, false);
const change = new SimpleChange(null, nodeId, false);
formComponent.ngOnChanges({ 'nodeId': change });
expect(nodeService.getNodeMetadata).toHaveBeenCalledWith(nodeId);
@@ -718,11 +718,11 @@ describe('FormComponent', () => {
});
it('should disable outcome buttons for readonly form', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formModel.readOnly = true;
formComponent.form = formModel;
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
@@ -736,22 +736,22 @@ describe('FormComponent', () => {
});
it('should always enable save outcome for writeable form', () => {
let formModel = new FormModel();
const formModel = new FormModel();
let field = new FormFieldModel(formModel, {
const field = new FormFieldModel(formModel, {
type: 'text',
value: null,
required: true
});
let containerModel = new ContainerModel(field);
const containerModel = new ContainerModel(field);
formModel.fields.push(containerModel);
formComponent.form = formModel;
formModel.onFormFieldChanged(field);
expect(formModel.isValid).toBeFalsy();
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.SAVE_OUTCOME_ID,
name: FormOutcomeModel.SAVE_ACTION
});
@@ -761,21 +761,21 @@ describe('FormComponent', () => {
});
it('should disable outcome buttons for invalid form', () => {
let formModel = new FormModel();
let field = new FormFieldModel(formModel, {
const formModel = new FormModel();
const field = new FormFieldModel(formModel, {
type: 'text',
value: null,
required: true
});
let containerModel = new ContainerModel(field);
const containerModel = new ContainerModel(field);
formModel.fields.push(containerModel);
formComponent.form = formModel;
formModel.onFormFieldChanged(field);
expect(formModel.isValid).toBeFalsy();
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
@@ -784,23 +784,23 @@ describe('FormComponent', () => {
});
it('should disable complete outcome button when disableCompleteButton is true', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
formComponent.disableCompleteButton = true;
expect(formModel.isValid).toBeTruthy();
let completeOutcome = formComponent.form.outcomes.find((outcome) => outcome.name === FormOutcomeModel.COMPLETE_ACTION);
const completeOutcome = formComponent.form.outcomes.find((outcome) => outcome.name === FormOutcomeModel.COMPLETE_ACTION);
expect(formComponent.isOutcomeButtonEnabled(completeOutcome)).toBeFalsy();
});
it('should disable start process outcome button when disableStartProcessButton is true', () => {
let formModel = new FormModel();
const formModel = new FormModel();
formComponent.form = formModel;
formComponent.disableStartProcessButton = true;
expect(formModel.isValid).toBeTruthy();
let startProcessOutcome = formComponent.form.outcomes.find((outcome) => outcome.name === FormOutcomeModel.START_PROCESS_ACTION);
const startProcessOutcome = formComponent.form.outcomes.find((outcome) => outcome.name === FormOutcomeModel.START_PROCESS_ACTION);
expect(formComponent.isOutcomeButtonEnabled(startProcessOutcome)).toBeFalsy();
});
@@ -810,7 +810,7 @@ describe('FormComponent', () => {
done();
});
let outcome = new FormOutcomeModel(new FormModel(), {
const outcome = new FormOutcomeModel(new FormModel(), {
id: FormComponent.CUSTOM_OUTCOME_ID,
name: 'Custom'
});
@@ -828,13 +828,13 @@ describe('FormComponent', () => {
expect(labelField.value).toBe('empty');
expect(radioField.value).toBeNull();
let formValues: any = {};
const formValues: any = {};
formValues.label = {
id: 'option_2',
name: 'test2'
};
formValues.radio = { id: 'option_2', name: 'Option 2' };
let change = new SimpleChange(null, formValues, false);
const change = new SimpleChange(null, formValues, false);
formComponent.data = formValues;
formComponent.ngOnChanges({ 'data': change });
@@ -850,9 +850,9 @@ describe('FormComponent', () => {
let formFields = formComponent.form.getFormFields();
let radioFieldById = formFields.find((field) => field.id === 'radio');
let formValues: any = {};
const formValues: any = {};
formValues.radio = 'option_3';
let change = new SimpleChange(null, formValues, false);
const change = new SimpleChange(null, formValues, false);
formComponent.data = formValues;
formComponent.ngOnChanges({ 'data': change });
@@ -78,7 +78,7 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefinitionTwoTextFields));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
expect(fixture.debugElement.query(By.css('#adf-valid-form-icon'))).toBeDefined();
@@ -90,7 +90,7 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefinitionRequiredField));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
expect(fixture.debugElement.query(By.css('#adf-valid-form-icon'))).toBeNull();
@@ -102,7 +102,7 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefinitionTwoTextFields));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
component.showValidationIcon = false;
fixture.detectChanges();
@@ -117,15 +117,15 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefinitionTwoTextFields));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
let firstNameEl = fixture.debugElement.query(By.css('#firstname'));
const firstNameEl = fixture.debugElement.query(By.css('#firstname'));
expect(firstNameEl).not.toBeNull();
expect(firstNameEl).toBeDefined();
let lastNameEl = fixture.debugElement.query(By.css('#lastname'));
const lastNameEl = fixture.debugElement.query(By.css('#lastname'));
expect(lastNameEl).not.toBeNull();
expect(lastNameEl).toBeDefined();
});
@@ -134,7 +134,7 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefinitionDropdownField));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
@@ -165,14 +165,14 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefVisibilitiFieldDependsOnNextOne));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
let firstEl = fixture.debugElement.query(By.css('#field-country-container'));
const firstEl = fixture.debugElement.query(By.css('#field-country-container'));
expect(firstEl.nativeElement.hidden).toBeTruthy();
let secondEl = fixture.debugElement.query(By.css('#name'));
const secondEl = fixture.debugElement.query(By.css('#name'));
expect(secondEl).not.toBeNull();
expect(secondEl).toBeDefined();
expect(fixture.nativeElement.querySelector('#field-name-container').hidden).toBeFalsy();
@@ -182,16 +182,16 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefVisibilitiFieldDependsOnPreviousOne));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
let firstEl = fixture.debugElement.query(By.css('#name'));
const firstEl = fixture.debugElement.query(By.css('#name'));
expect(firstEl).not.toBeNull();
expect(firstEl).toBeDefined();
expect(fixture.nativeElement.querySelector('#field-name-container').hidden).toBeFalsy();
let secondEl = fixture.debugElement.query(By.css('#field-country-container'));
const secondEl = fixture.debugElement.query(By.css('#field-country-container'));
expect(secondEl.nativeElement.hidden).toBeTruthy();
});
@@ -199,7 +199,7 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formDefVisibilitiFieldDependsOnNextOne));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
@@ -209,7 +209,7 @@ describe('FormComponent UI and visibility', () => {
const secondEl = fixture.debugElement.query(By.css('#field-name-container'));
expect(secondEl.nativeElement.hidden).toBeFalsy();
let inputElement = fixture.nativeElement.querySelector('#name');
const inputElement = fixture.nativeElement.querySelector('#name');
inputElement.value = 'italy';
inputElement.dispatchEvent(new Event('input'));
fixture.detectChanges();
@@ -224,16 +224,16 @@ describe('FormComponent UI and visibility', () => {
spyOn(service, 'getTask').and.returnValue(of({}));
spyOn(service, 'getTaskForm').and.returnValue(of(formReadonlyTwoTextFields));
let change = new SimpleChange(null, 1, true);
const change = new SimpleChange(null, 1, true);
component.ngOnChanges({ 'taskId': change });
fixture.detectChanges();
let firstNameEl = fixture.debugElement.query(By.css('#firstname'));
const firstNameEl = fixture.debugElement.query(By.css('#firstname'));
expect(firstNameEl).not.toBeNull();
expect(firstNameEl).toBeDefined();
expect(firstNameEl.nativeElement.value).toEqual('fakeFirstName');
let lastNameEl = fixture.debugElement.query(By.css('#lastname'));
const lastNameEl = fixture.debugElement.query(By.css('#lastname'));
expect(lastNameEl).not.toBeNull();
expect(lastNameEl).toBeDefined();
expect(lastNameEl.nativeElement.value).toEqual('fakeLastName');
@@ -99,14 +99,14 @@ export class StartFormComponent extends FormComponent implements OnChanges, OnIn
}
ngOnChanges(changes: SimpleChanges) {
let processDefinitionId = changes['processDefinitionId'];
const processDefinitionId = changes['processDefinitionId'];
if (processDefinitionId && processDefinitionId.currentValue) {
this.visibilityService.cleanProcessVariable();
this.getStartFormDefinition(processDefinitionId.currentValue);
return;
}
let processId = changes['processId'];
const processId = changes['processId'];
if (processId && processId.currentValue) {
this.visibilityService.cleanProcessVariable();
this.loadStartForm(processId.currentValue);
@@ -22,12 +22,12 @@ import { FormModel } from './../core/form.model';
describe('ContainerColumnModel', () => {
it('should have max size by default', () => {
let column = new ContainerColumnModel();
const column = new ContainerColumnModel();
expect(column.size).toBe(12);
});
it('should check fields', () => {
let column = new ContainerColumnModel();
const column = new ContainerColumnModel();
column.fields = null;
expect(column.hasFields()).toBeFalsy();
@@ -23,9 +23,9 @@ import { ContainerWidgetComponentModel } from './container.widget.model';
describe('ContainerWidgetComponentModel', () => {
it('should store the form reference', () => {
let form = new FormModel();
let field = new FormFieldModel(form);
let model = new ContainerWidgetComponentModel(field);
const form = new FormModel();
const field = new FormFieldModel(form);
const model = new ContainerWidgetComponentModel(field);
expect(model.form).toBe(form);
});
@@ -64,7 +64,7 @@ describe('ContainerWidgetComponentModel', () => {
});
it('should be collapsed by default', () => {
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP,
params: {
allowCollapse: true,
@@ -49,7 +49,7 @@ describe('ContainerWidgetComponent', () => {
});
it('should wrap field with model instance', () => {
let field = new FormFieldModel(null);
const field = new FormFieldModel(null);
widget.field = field;
widget.ngOnInit();
expect(widget.content).toBeDefined();
@@ -57,7 +57,7 @@ describe('ContainerWidgetComponent', () => {
});
it('should toggle underlying group container', () => {
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP,
params: {
allowCollapse: true
@@ -74,7 +74,7 @@ describe('ContainerWidgetComponent', () => {
});
it('should toggle only collapsible container', () => {
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.GROUP
}));
@@ -87,7 +87,7 @@ describe('ContainerWidgetComponent', () => {
it('should toggle only group container', () => {
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), {
type: FormFieldTypes.CONTAINER,
params: {
allowCollapse: true
@@ -102,8 +102,8 @@ describe('ContainerWidgetComponent', () => {
});
it('should send an event when a value is changed in the form', (done) => {
let fakeForm = new FormModel();
let fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
const fakeForm = new FormModel();
const fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
widget.fieldChanged.subscribe((field) => {
expect(field).not.toBe(null);
expect(field.id).toBe('fakeField');
@@ -124,7 +124,7 @@ describe('ContainerWidgetComponent', () => {
field5 = <FormFieldModel> {id: '5'},
field6 = <FormFieldModel> {id: '6'};
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel()));
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel()));
container.columns = [
<ContainerColumnModel> { fields: [
field1,
@@ -157,7 +157,7 @@ describe('ContainerWidgetComponent', () => {
describe('getColumnWith', () => {
it('should calculate the column width based on the numberOfColumns and current field\'s colspan property', () => {
let container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), { numberOfColumns: 4 }));
const container = new ContainerWidgetComponentModel(new FormFieldModel(new FormModel(), { numberOfColumns: 4 }));
widget.content = container;
expect(widget.getColumnWith(undefined)).toBe('25%');
@@ -62,7 +62,7 @@ export class ContainerWidgetComponent extends WidgetComponent implements OnInit,
while (rowContainsElement) {
rowContainsElement = false;
for (let i = 0; i < this.content.columns.length; i++ ) {
let field = this.content.columns[i].fields[rowIndex];
const field = this.content.columns[i].fields[rowIndex];
if (field) {
rowContainsElement = true;
}
@@ -41,12 +41,12 @@ describe('ContentWidgetComponent', () => {
let serviceContent: ContentService;
function createFakeImageBlob() {
let data = atob('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==');
const data = atob('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==');
return new Blob([data], {type: 'image/png'});
}
function createFakePdfBlob(): Blob {
let pdfData = atob(
const pdfData = atob(
'JVBERi0xLjcKCjEgMCBvYmogICUgZW50cnkgcG9pbnQKPDwKICAvVHlwZSAvQ2F0YWxvZwog' +
'IC9QYWdlcyAyIDAgUgo+PgplbmRvYmoKCjIgMCBvYmoKPDwKICAvVHlwZSAvUGFnZXMKICAv' +
'TWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCiAgL0NvdW50IDEKICAvS2lkcyBbIDMgMCBSIF0K' +
@@ -99,12 +99,12 @@ describe('ContentWidgetComponent', () => {
component.content = new ContentLinkModel();
fixture.detectChanges();
let content = fixture.debugElement.query(By.css('div.upload-widget__content-thumbnail'));
const content = fixture.debugElement.query(By.css('div.upload-widget__content-thumbnail'));
expect(content).toBeDefined();
});
it('should load the thumbnail preview of the png image', (done) => {
let blob = createFakeImageBlob();
const blob = createFakeImageBlob();
spyOn(processContentService, 'getFileRawContent').and.returnValue(of(blob));
component.thumbnailLoaded.subscribe((res) => {
@@ -114,14 +114,14 @@ describe('ContentWidgetComponent', () => {
expect(res.changingThisBreaksApplicationSecurity).toContain('blob');
fixture.whenStable()
.then(() => {
let thumbnailPreview: any = element.querySelector('#thumbnailPreview');
const thumbnailPreview: any = element.querySelector('#thumbnailPreview');
expect(thumbnailPreview.src).toContain('blob');
});
done();
});
let contentId = 1;
let change = new SimpleChange(null, contentId, true);
const contentId = 1;
const change = new SimpleChange(null, contentId, true);
component.ngOnChanges({ 'id': change });
jasmine.Ajax.requests.mostRecent().respondWith({
@@ -147,7 +147,7 @@ describe('ContentWidgetComponent', () => {
});
it('should load the thumbnail preview of a pdf', (done) => {
let blob = createFakePdfBlob();
const blob = createFakePdfBlob();
spyOn(processContentService, 'getContentThumbnail').and.returnValue(of(blob));
component.thumbnailLoaded.subscribe((res) => {
@@ -157,14 +157,14 @@ describe('ContentWidgetComponent', () => {
expect(res.changingThisBreaksApplicationSecurity).toContain('blob');
fixture.whenStable()
.then(() => {
let thumbnailPreview: any = element.querySelector('#thumbnailPreview');
const thumbnailPreview: any = element.querySelector('#thumbnailPreview');
expect(thumbnailPreview.src).toContain('blob');
});
done();
});
let contentId = 1;
let change = new SimpleChange(null, contentId, true);
const contentId = 1;
const change = new SimpleChange(null, contentId, true);
component.ngOnChanges({'id': change});
jasmine.Ajax.requests.mostRecent().respondWith({
@@ -191,15 +191,15 @@ describe('ContentWidgetComponent', () => {
it('should show unsupported preview with unsupported file', (done) => {
let contentId = 1;
let change = new SimpleChange(null, contentId, true);
const contentId = 1;
const change = new SimpleChange(null, contentId, true);
component.ngOnChanges({'id': change});
component.contentLoaded.subscribe((res) => {
fixture.detectChanges();
fixture.whenStable()
.then(() => {
let thumbnailPreview: any = element.querySelector('#unsupported-thumbnail');
const thumbnailPreview: any = element.querySelector('#unsupported-thumbnail');
expect(thumbnailPreview).toBeDefined();
expect(element.querySelector('div.upload-widget__content-text').innerHTML).toEqual('FakeBlob.zip');
});
@@ -229,7 +229,7 @@ describe('ContentWidgetComponent', () => {
});
it('should open the viewer when the view button is clicked', (done) => {
let blob = createFakePdfBlob();
const blob = createFakePdfBlob();
spyOn(processContentService, 'getContentPreview').and.returnValue(of(blob));
spyOn(processContentService, 'getFileRawContent').and.returnValue(of(blob));
@@ -258,12 +258,12 @@ describe('ContentWidgetComponent', () => {
});
fixture.detectChanges();
let viewButton: any = element.querySelector('#view');
const viewButton: any = element.querySelector('#view');
viewButton.click();
});
it('should download the pdf when the download button is clicked', () => {
let blob = createFakePdfBlob();
const blob = createFakePdfBlob();
spyOn(processContentService, 'getFileRawContent').and.returnValue(of(blob));
spyOn(serviceContent, 'downloadBlob').and.callThrough();
@@ -285,7 +285,7 @@ describe('ContentWidgetComponent', () => {
});
fixture.detectChanges();
let downloadButton: any = element.querySelector('#download');
const downloadButton: any = element.querySelector('#download');
downloadButton.click();
fixture.whenStable()
@@ -22,8 +22,8 @@ import { FormModel } from './form.model';
describe('ContainerModel', () => {
it('should store the form reference', () => {
let form = new FormModel();
let model = new ContainerModel(new FormFieldModel(form));
const form = new FormModel();
const model = new ContainerModel(new FormFieldModel(form));
expect(model.form).toBe(form);
});
@@ -34,7 +34,7 @@ export class ErrorMessageModel {
getAttributesAsJsonObj() {
let result = {};
if (this.attributes.size > 0) {
let obj = Object.create(null);
const obj = Object.create(null);
this.attributes.forEach((value, key) => {
obj[key] = value;
});
@@ -45,7 +45,7 @@ describe('FormFieldValidator', () => {
});
it('should require [required] setting', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: '<value>'
});
@@ -60,12 +60,12 @@ describe('FormFieldValidator', () => {
});
it('should skip unsupported type', () => {
let field = new FormFieldModel(new FormModel(), { type: 'wrong-type' });
const field = new FormFieldModel(new FormModel(), { type: 'wrong-type' });
expect(validator.validate(field)).toBeTruthy();
});
it('should fail for dropdown with empty value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DROPDOWN,
value: '<empty>',
hasEmptyValue: true,
@@ -80,7 +80,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for radio buttons', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.RADIO_BUTTONS,
required: true,
options: [{ id: 'two', name: 'two' }]
@@ -91,7 +91,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for radio buttons', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.RADIO_BUTTONS,
required: true,
value: 'two',
@@ -102,7 +102,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for upload', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.UPLOAD,
value: null,
required: true
@@ -116,7 +116,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for upload', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.UPLOAD,
value: [{}],
required: true
@@ -126,7 +126,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for text', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: null,
required: true
@@ -140,7 +140,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATE,
value: '2016-12-31',
required: true
@@ -150,7 +150,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATE,
value: null,
required: true
@@ -164,7 +164,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for text', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: '<value>',
required: true
@@ -174,7 +174,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for check box', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.BOOLEAN,
required: true,
value: true,
@@ -185,7 +185,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for check box', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.BOOLEAN,
required: true,
value: false,
@@ -224,7 +224,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty number value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: null
});
@@ -233,7 +233,7 @@ describe('FormFieldValidator', () => {
});
it('should allow number value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: 44
});
@@ -242,7 +242,7 @@ describe('FormFieldValidator', () => {
});
it('should allow zero number value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: 0
});
@@ -251,7 +251,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for wrong number value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: '<value>'
});
@@ -272,7 +272,7 @@ describe('FormFieldValidator', () => {
});
it('should require minLength defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -283,7 +283,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
minLength: 10,
value: null
@@ -293,7 +293,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed text validation', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
minLength: 3,
value: '1234'
@@ -303,7 +303,7 @@ describe('FormFieldValidator', () => {
});
it('should fail text validation', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
minLength: 3,
value: '12'
@@ -325,7 +325,7 @@ describe('FormFieldValidator', () => {
});
it('should require maxLength defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -336,7 +336,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
maxLength: 10,
value: null
@@ -346,7 +346,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed text validation', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
maxLength: 3,
value: '123'
@@ -356,7 +356,7 @@ describe('FormFieldValidator', () => {
});
it('should fail text validation', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
maxLength: 3,
value: '1234'
@@ -377,7 +377,7 @@ describe('FormFieldValidator', () => {
});
it('should require minValue defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER
});
expect(validator.isSupported(field)).toBeFalsy();
@@ -387,7 +387,7 @@ describe('FormFieldValidator', () => {
});
it('should support numeric widgets only', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
minValue: '1'
});
@@ -399,7 +399,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: null,
minValue: '1'
@@ -409,7 +409,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for unsupported types', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -417,7 +417,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: '10',
minValue: '10'
@@ -427,7 +427,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: '9',
minValue: '10'
@@ -449,7 +449,7 @@ describe('FormFieldValidator', () => {
});
it('should require maxValue defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER
});
expect(validator.isSupported(field)).toBeFalsy();
@@ -459,7 +459,7 @@ describe('FormFieldValidator', () => {
});
it('should support numeric widgets only', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
maxValue: '1'
});
@@ -471,7 +471,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: null,
maxValue: '1'
@@ -481,7 +481,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for unsupported types', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -489,7 +489,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: '10',
maxValue: '10'
@@ -499,7 +499,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.NUMBER,
value: '11',
maxValue: '10'
@@ -521,7 +521,7 @@ describe('FormFieldValidator', () => {
});
it('should require regex pattern to be defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
expect(validator.isSupported(field)).toBeFalsy();
@@ -531,7 +531,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: null,
regexPattern: 'pattern'
@@ -541,7 +541,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating regex', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: 'pattern',
regexPattern: 'pattern'
@@ -551,7 +551,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating regex', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT,
value: 'some value',
regexPattern: 'pattern'
@@ -584,7 +584,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TYPEAHEAD,
value: null,
regexPattern: 'pattern'
@@ -594,7 +594,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for a valid input value in options', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TYPEAHEAD,
value: '1',
options: [{id: '1', name: 'Leanne Graham'}, {id: '2', name: 'Ervin Howell'}]
@@ -604,7 +604,7 @@ describe('FormFieldValidator', () => {
});
it('should fail for an invalid input value in options', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TYPEAHEAD,
value: 'Lean',
options: [{id: '1', name: 'Leanne Graham'}, {id: '2', name: 'Ervin Howell'}]
@@ -624,7 +624,7 @@ describe('FormFieldValidator', () => {
});
it('should require maxValue defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME
});
expect(validator.isSupported(field)).toBeFalsy();
@@ -634,7 +634,7 @@ describe('FormFieldValidator', () => {
});
it('should support date time widgets only', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
maxValue: '9999-02-08 10:10 AM'
});
@@ -646,7 +646,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: null,
maxValue: '9999-02-08 10:10 AM'
@@ -656,7 +656,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for unsupported types', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -669,7 +669,7 @@ describe('FormFieldValidator', () => {
const localValidValue = '2018-3-30 11:59 PM';
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: localValidValue,
maxValue: maxValueSavedInForm
@@ -682,9 +682,9 @@ describe('FormFieldValidator', () => {
const maxValueFromActivitiInput = '31-3-2018 12:00 AM';
const maxValueSavedInForm = moment(maxValueFromActivitiInput, 'DD-M-YYYY hh:mm A').utc().format();
let localInvalidValue = '2018-3-31 12:01 AM';
const localInvalidValue = '2018-3-31 12:01 AM';
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: localInvalidValue,
maxValue: maxValueSavedInForm
@@ -697,7 +697,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value checking the time', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 09:10 AM',
maxValue: '9999-02-08 10:10 AM'
@@ -707,7 +707,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value checking the time', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 11:10 AM',
maxValue: '9999-02-08 10:10 AM'
@@ -719,7 +719,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value checking the date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 09:10 AM',
maxValue: '9999-02-08 10:10 AM'
@@ -729,7 +729,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value checking the date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 12:10 AM',
maxValue: '9999-02-07 10:10 AM'
@@ -751,7 +751,7 @@ describe('FormFieldValidator', () => {
});
it('should require minValue defined', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME
});
expect(validator.isSupported(field)).toBeFalsy();
@@ -761,7 +761,7 @@ describe('FormFieldValidator', () => {
});
it('should support date time widgets only', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
minValue: '9999-02-08 09:10 AM'
});
@@ -773,7 +773,7 @@ describe('FormFieldValidator', () => {
});
it('should allow empty values', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: null,
minValue: '9999-02-08 09:10 AM'
@@ -783,7 +783,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed for unsupported types', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.TEXT
});
@@ -796,7 +796,7 @@ describe('FormFieldValidator', () => {
const localValidValue = '2018-3-02 06:01 AM';
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: localValidValue,
minValue: minValueSavedInForm
@@ -809,9 +809,9 @@ describe('FormFieldValidator', () => {
const minValueFromActivitiInput = '02-3-2018 06:00 AM';
const minValueSavedInForm = moment(minValueFromActivitiInput, 'DD-M-YYYY hh:mm A').utc().format();
let localInvalidValue = '2018-3-02 05:59 AM';
const localInvalidValue = '2018-3-02 05:59 AM';
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: localInvalidValue,
minValue: minValueSavedInForm
@@ -824,7 +824,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value by time', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 09:10 AM',
minValue: '9999-02-08 09:00 AM'
@@ -834,7 +834,7 @@ describe('FormFieldValidator', () => {
});
it('should succeed validating value by date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '09-02-9999 09:10 AM',
minValue: '9999-02-08 09:10 AM'
@@ -844,7 +844,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value by time', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '08-02-9999 09:00 AM',
minValue: '9999-02-08 09:10 AM'
@@ -856,7 +856,7 @@ describe('FormFieldValidator', () => {
});
it('should fail validating value by date', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DATETIME,
value: '07-02-9999 09:10 AM',
minValue: '9999-02-08 09:10 AM'
@@ -66,7 +66,7 @@ export class RequiredFieldValidator implements FormFieldValidator {
}
if (field.type === FormFieldTypes.RADIO_BUTTONS) {
let option = field.options.find((opt) => opt.id === field.value);
const option = field.options.find((opt) => opt.id === field.value);
return !!option;
}
@@ -117,7 +117,7 @@ export class NumberFieldValidator implements FormFieldValidator {
field.value === '') {
return true;
}
let valueStr = '' + field.value;
const valueStr = '' + field.value;
let pattern = new RegExp(/^-?\d+$/);
if (field.enableFractions) {
pattern = new RegExp(/^-?[0-9]+(\.[0-9]{1,2})?$/);
@@ -141,7 +141,7 @@ export class DateFieldValidator implements FormFieldValidator {
// Validates that the input string is a valid date formatted as <dateFormat> (default D-M-YYYY)
static isValidDate(inputDate: string, dateFormat: string = 'D-M-YYYY'): boolean {
if (inputDate) {
let d = moment(inputDate, dateFormat, true);
const d = moment(inputDate, dateFormat, true);
return d.isValid();
}
@@ -200,7 +200,7 @@ export class MinDateFieldValidator implements FormFieldValidator {
} else {
fieldValueData = field.value;
}
let min = moment(field.minValue, MIN_DATE_FORMAT);
const min = moment(field.minValue, MIN_DATE_FORMAT);
if (fieldValueData.isBefore(min)) {
field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_LESS_THAN`;
@@ -240,7 +240,7 @@ export class MaxDateFieldValidator implements FormFieldValidator {
} else {
d = field.value;
}
let max = moment(field.maxValue, this.MAX_DATE_FORMAT);
const max = moment(field.maxValue, this.MAX_DATE_FORMAT);
if (d.isAfter(max)) {
field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_GREATER_THAN`;
@@ -287,7 +287,7 @@ export class MinDateTimeFieldValidator implements FormFieldValidator {
} else {
fieldValueDate = field.value;
}
let min = moment(field.minValue, this.MIN_DATETIME_FORMAT);
const min = moment(field.minValue, this.MIN_DATETIME_FORMAT);
if (fieldValueDate.isBefore(min)) {
field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_LESS_THAN`;
@@ -334,7 +334,7 @@ export class MaxDateTimeFieldValidator implements FormFieldValidator {
} else {
fieldValueDate = field.value;
}
let max = moment(field.maxValue, this.MAX_DATETIME_FORMAT);
const max = moment(field.maxValue, this.MAX_DATETIME_FORMAT);
if (fieldValueDate.isAfter(max)) {
field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_GREATER_THAN`;
@@ -412,8 +412,8 @@ export class MinValueFieldValidator implements FormFieldValidator {
validate(field: FormFieldModel): boolean {
if (this.isSupported(field) && field.value && field.isVisible) {
let value: number = +field.value;
let minValue: number = +field.minValue;
const value: number = +field.value;
const minValue: number = +field.minValue;
if (value >= minValue) {
return true;
@@ -442,8 +442,8 @@ export class MaxValueFieldValidator implements FormFieldValidator {
validate(field: FormFieldModel): boolean {
if (this.isSupported(field) && field.value && field.isVisible) {
let value: number = +field.value;
let maxValue: number = +field.maxValue;
const value: number = +field.value;
const maxValue: number = +field.maxValue;
if (value <= maxValue) {
return true;
@@ -22,19 +22,19 @@ import { FormModel } from './form.model';
describe('FormFieldModel', () => {
it('should store the form reference', () => {
let form = new FormModel();
let model = new FormFieldModel(form);
const form = new FormModel();
const model = new FormFieldModel(form);
expect(model.form).toBe(form);
});
it('should store original json', () => {
let json = {};
let model = new FormFieldModel(new FormModel(), json);
const json = {};
const model = new FormFieldModel(new FormModel(), json);
expect(model.json).toBe(json);
});
it('should setup with json config', () => {
let json = {
const json = {
fieldType: '<fieldType>',
id: '<id>',
name: '<name>',
@@ -57,7 +57,7 @@ describe('FormFieldModel', () => {
displayText: '<text>',
value: '<value>'
};
let field = new FormFieldModel(new FormModel(), json);
const field = new FormFieldModel(new FormModel(), json);
Object.keys(json).forEach((key) => {
expect(field[key]).toBe(json[key]);
});
@@ -82,9 +82,9 @@ describe('FormFieldModel', () => {
});
it('should update form on every value change', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {id: 'field1'});
let value = 10;
const form = new FormModel();
const field = new FormFieldModel(form, {id: 'field1'});
const value = 10;
spyOn(field, 'updateForm').and.callThrough();
field.value = value;
@@ -95,8 +95,8 @@ describe('FormFieldModel', () => {
});
it('should get form readonly state', () => {
let form = new FormModel();
let field = new FormFieldModel(form, null);
const form = new FormModel();
const field = new FormFieldModel(form, null);
expect(field.readOnly).toBeFalsy();
form.readOnly = true;
@@ -104,15 +104,15 @@ describe('FormFieldModel', () => {
});
it('should take own readonly state if form is writable', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {readOnly: true});
const form = new FormModel();
const field = new FormFieldModel(form, {readOnly: true});
expect(form.readOnly).toBeFalsy();
expect(field.readOnly).toBeTruthy();
});
it('should parse and leave dropdown value as is', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DROPDOWN,
options: [],
value: 'deferred'
@@ -122,8 +122,8 @@ describe('FormFieldModel', () => {
});
it('should parse the date with the default format (D-M-YYYY) if the display format is missing', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
fieldType: 'FormFieldRepresentation',
id: 'mmddyyyy',
name: 'MM-DD-YYYY',
@@ -147,8 +147,8 @@ describe('FormFieldModel', () => {
});
it('should parse the date with the format MM-DD-YYYY', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
fieldType: 'FormFieldRepresentation',
id: 'mmddyyyy',
name: 'MM-DD-YYYY',
@@ -173,8 +173,8 @@ describe('FormFieldModel', () => {
});
it('should parse the date with the format MM-YY-DD', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
fieldType: 'FormFieldRepresentation',
id: 'mmyydd',
name: 'MM-YY-DD',
@@ -199,8 +199,8 @@ describe('FormFieldModel', () => {
});
it('should parse the date with the format DD-MM-YYYY', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
fieldType: 'FormFieldRepresentation',
id: 'ddmmyyy',
name: 'DD-MM-YYYY',
@@ -225,8 +225,8 @@ describe('FormFieldModel', () => {
});
it('should parse the date with the format DD-MM-YYYY when it is readonly', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
fieldType: 'FormFieldRepresentation',
id: 'ddmmyyy',
name: 'DD-MM-YYYY',
@@ -250,7 +250,7 @@ describe('FormFieldModel', () => {
});
it('should return the label of selected dropdown value ', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.DROPDOWN,
options: [
{id: 'fake-option-1', name: 'fake label 1'},
@@ -263,7 +263,7 @@ describe('FormFieldModel', () => {
});
it('should parse and resolve radio button value', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.RADIO_BUTTONS,
options: [
{id: 'opt1', name: 'Option 1'},
@@ -276,7 +276,7 @@ describe('FormFieldModel', () => {
});
it('should parse and leave radio button value as is', () => {
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
type: FormFieldTypes.RADIO_BUTTONS,
options: [],
value: 'deferred-radio'
@@ -285,8 +285,8 @@ describe('FormFieldModel', () => {
});
it('should update form with empty dropdown value', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'dropdown-1',
type: FormFieldTypes.DROPDOWN
});
@@ -299,8 +299,8 @@ describe('FormFieldModel', () => {
});
it('should update form with dropdown value', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'dropdown-2',
type: FormFieldTypes.DROPDOWN,
options: [
@@ -314,8 +314,8 @@ describe('FormFieldModel', () => {
});
it('should update form with radio button value', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'radio-1',
type: FormFieldTypes.RADIO_BUTTONS,
options: [
@@ -329,8 +329,8 @@ describe('FormFieldModel', () => {
});
it('radio button value should be null when no default is set', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'radio-2',
type: FormFieldTypes.RADIO_BUTTONS,
options: [
@@ -344,10 +344,10 @@ describe('FormFieldModel', () => {
});
it('should not update form with display-only field value', () => {
let form = new FormModel();
const form = new FormModel();
FormFieldTypes.READONLY_TYPES.forEach((typeName) => {
let field = new FormFieldModel(form, {
const field = new FormFieldModel(form, {
id: typeName,
type: typeName
});
@@ -358,8 +358,8 @@ describe('FormFieldModel', () => {
});
it('should be able to check if the field has options available', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'dropdown-happy',
type: FormFieldTypes.DROPDOWN,
options: [
@@ -372,8 +372,8 @@ describe('FormFieldModel', () => {
});
it('should return false if field has no options', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
id: 'dropdown-sad',
type: FormFieldTypes.DROPDOWN
});
@@ -382,8 +382,8 @@ describe('FormFieldModel', () => {
});
it('should calculate the columns in case of container type', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
type: FormFieldTypes.CONTAINER,
numberOfColumns: 888
});
@@ -392,8 +392,8 @@ describe('FormFieldModel', () => {
});
it('should calculate the columns in case of group type', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
type: FormFieldTypes.GROUP,
numberOfColumns: 999
});
@@ -121,8 +121,8 @@ export class FormFieldModel extends FormWidgetModel {
this.validationSummary = new ErrorMessageModel();
if (!this.readOnly) {
let validators = this.form.fieldValidators || [];
for (let validator of validators) {
const validators = this.form.fieldValidators || [];
for (const validator of validators) {
if (!validator.validate(this)) {
this._isValid = false;
return this._isValid;
@@ -229,7 +229,7 @@ export class FormFieldModel extends FormWidgetModel {
}
private getVariablesValue(variableName: string, form: FormModel) {
let variable = form.json.variables.find((currentVariable) => {
const variable = form.json.variables.find((currentVariable) => {
return currentVariable.name === variableName;
});
@@ -267,11 +267,11 @@ export class FormFieldModel extends FormWidgetModel {
this.colspan = 1;
if (json.fields) {
for (let currentField in json.fields) {
for (const currentField in json.fields) {
if (json.fields.hasOwnProperty(currentField)) {
let col = new ContainerColumnModel();
const col = new ContainerColumnModel();
let fields: FormFieldModel[] = (json.fields[currentField] || []).map((f) => new FormFieldModel(form, f));
const fields: FormFieldModel[] = (json.fields[currentField] || []).map((f) => new FormFieldModel(form, f));
col.fields = fields;
col.rowspan = json.fields[currentField].length;
@@ -295,9 +295,9 @@ export class FormFieldModel extends FormWidgetModel {
*/
if (json.type === FormFieldTypes.DROPDOWN) {
if (json.hasEmptyValue && json.options) {
let options = <FormFieldOption[]> json.options || [];
const options = <FormFieldOption[]> json.options || [];
if (options.length > 0) {
let emptyOption = json.options[0];
const emptyOption = json.options[0];
if (value === '' || value === emptyOption.id || value === emptyOption.name) {
value = emptyOption.id;
} else if (value.id && value.name) {
@@ -315,7 +315,7 @@ export class FormFieldModel extends FormWidgetModel {
// Activiti has a bug with default radio button value where initial selection passed as `name` value
// so try resolving current one with a fallback to first entry via name or id
// TODO: needs to be reported and fixed at Activiti side
let entry: FormFieldOption[] = this.options.filter((opt) =>
const entry: FormFieldOption[] = this.options.filter((opt) =>
opt.id === value || opt.name === value || (value && (opt.id === value.id || opt.name === value.name)));
if (entry.length > 0) {
value = entry[0].id;
@@ -357,7 +357,7 @@ export class FormFieldModel extends FormWidgetModel {
if (this.value === 'empty' || this.value === '') {
this.form.values[this.id] = {};
} else {
let entry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value);
const entry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value);
if (entry.length > 0) {
this.form.values[this.id] = entry[0];
}
@@ -368,7 +368,7 @@ export class FormFieldModel extends FormWidgetModel {
This is needed due to Activiti issue related to reading radio button values as value string
but saving back as object: { id: <id>, name: <name> }
*/
let rbEntry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value);
const rbEntry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value);
if (rbEntry.length > 0) {
this.form.values[this.id] = rbEntry[0];
}
@@ -381,7 +381,7 @@ export class FormFieldModel extends FormWidgetModel {
}
break;
case FormFieldTypes.TYPEAHEAD:
let taEntry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value || opt.name === this.value);
const taEntry: FormFieldOption[] = this.options.filter((opt) => opt.id === this.value || opt.name === this.value);
if (taEntry.length > 0) {
this.form.values[this.id] = taEntry[0];
} else if (this.options.length > 0) {
@@ -389,7 +389,7 @@ export class FormFieldModel extends FormWidgetModel {
}
break;
case FormFieldTypes.DATE:
let dateValue = moment(this.value, this.dateDisplayFormat, true);
const dateValue = moment(this.value, this.dateDisplayFormat, true);
if (dateValue && dateValue.isValid()) {
this.form.values[this.id] = `${dateValue.format('YYYY-MM-DD')}T00:00:00.000Z`;
} else {
@@ -435,7 +435,7 @@ export class FormFieldModel extends FormWidgetModel {
}
getOptionName(): string {
let option: FormFieldOption = this.options.find((opt) => opt.id === this.value);
const option: FormFieldOption = this.options.find((opt) => opt.id === this.value);
return option ? option.name : null;
}
@@ -21,24 +21,24 @@ import { FormModel } from './form.model';
describe('FormOutcomeModel', () => {
it('should setup with json config', () => {
let json = {
const json = {
id: '<id>',
name: '<name>'
};
let model = new FormOutcomeModel(null, json);
const model = new FormOutcomeModel(null, json);
expect(model.id).toBe(json.id);
expect(model.name).toBe(json.name);
});
it('should store the form reference', () => {
let form = new FormModel();
let model = new FormOutcomeModel(form);
const form = new FormModel();
const model = new FormOutcomeModel(form);
expect(model.form).toBe(form);
});
it('should store original json', () => {
let json = {};
let model = new FormOutcomeModel(null, json);
const json = {};
const model = new FormOutcomeModel(null, json);
expect(model.json).toBe(json);
});
@@ -27,14 +27,14 @@ describe('FormWidgetModel', () => {
}
it('should store the form reference', () => {
let form = new FormModel();
let model = new FormWidgetModelMock(form, null);
const form = new FormModel();
const model = new FormWidgetModelMock(form, null);
expect(model.form).toBe(form);
});
it('should store original json', () => {
let json = {};
let model = new FormWidgetModelMock(null, json);
const json = {};
const model = new FormWidgetModelMock(null, json);
expect(model.json).toBe(json);
});
@@ -35,19 +35,19 @@ describe('FormModel', () => {
});
it('should store original json', () => {
let json = {};
let form = new FormModel(json);
const json = {};
const form = new FormModel(json);
expect(form.json).toBe(json);
});
it('should setup properties with json', () => {
let json = {
const json = {
id: '<id>',
name: '<name>',
taskId: '<task-id>',
taskName: '<task-name>'
};
let form = new FormModel(json);
const form = new FormModel(json);
Object.keys(json).forEach((key) => {
expect(form[key]).toEqual(form[key]);
@@ -55,26 +55,26 @@ describe('FormModel', () => {
});
it('should take form name when task name is missing', () => {
let json = {
const json = {
id: '<id>',
name: '<name>'
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.taskName).toBe(json.name);
});
it('should use fallback value for task name', () => {
let form = new FormModel({});
const form = new FormModel({});
expect(form.taskName).toBe(FormModel.UNSET_TASK_NAME);
});
it('should set readonly state from params', () => {
let form = new FormModel({}, null, true);
const form = new FormModel({}, null, true);
expect(form.readOnly).toBeTruthy();
});
it('should check tabs', () => {
let form = new FormModel();
const form = new FormModel();
form.tabs = null;
expect(form.hasTabs()).toBeFalsy();
@@ -87,7 +87,7 @@ describe('FormModel', () => {
});
it('should check fields', () => {
let form = new FormModel();
const form = new FormModel();
form.fields = null;
expect(form.hasFields()).toBeFalsy();
@@ -95,13 +95,13 @@ describe('FormModel', () => {
form.fields = [];
expect(form.hasFields()).toBeFalsy();
let field = new FormFieldModel(form);
const field = new FormFieldModel(form);
form.fields = [new ContainerModel(field)];
expect(form.hasFields()).toBeTruthy();
});
it('should check outcomes', () => {
let form = new FormModel();
const form = new FormModel();
form.outcomes = null;
expect(form.hasOutcomes()).toBeFalsy();
@@ -114,21 +114,21 @@ describe('FormModel', () => {
});
it('should parse tabs', () => {
let json = {
const json = {
tabs: [
{ id: 'tab1' },
{ id: 'tab2' }
]
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.tabs.length).toBe(2);
expect(form.tabs[0].id).toBe('tab1');
expect(form.tabs[1].id).toBe('tab2');
});
it('should parse fields', () => {
let json = {
const json = {
fields: [
{
id: 'field1',
@@ -141,14 +141,14 @@ describe('FormModel', () => {
]
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.fields.length).toBe(2);
expect(form.fields[0].id).toBe('field1');
expect(form.fields[1].id).toBe('field2');
});
it('should parse fields from the definition', () => {
let json = {
const json = {
fields: null,
formDefinition: {
fields: [
@@ -164,24 +164,24 @@ describe('FormModel', () => {
}
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.fields.length).toBe(2);
expect(form.fields[0].id).toBe('field1');
expect(form.fields[1].id).toBe('field2');
});
it('should convert missing fields to empty collection', () => {
let json = {
const json = {
fields: null
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.fields).toBeDefined();
expect(form.fields.length).toBe(0);
});
it('should put fields into corresponding tabs', () => {
let json = {
const json = {
tabs: [
{ id: 'tab1' },
{ id: 'tab2' }
@@ -194,28 +194,28 @@ describe('FormModel', () => {
]
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.tabs.length).toBe(2);
expect(form.fields.length).toBe(4);
let tab1 = form.tabs[0];
const tab1 = form.tabs[0];
expect(tab1.fields.length).toBe(2);
expect(tab1.fields[0].id).toBe('field1');
expect(tab1.fields[1].id).toBe('field3');
let tab2 = form.tabs[1];
const tab2 = form.tabs[1];
expect(tab2.fields.length).toBe(1);
expect(tab2.fields[0].id).toBe('field2');
});
it('should create standard form outcomes', () => {
let json = {
const json = {
fields: [
{ id: 'container1' }
]
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.outcomes.length).toBe(3);
expect(form.outcomes[0].id).toBe(FormModel.SAVE_OUTCOME);
@@ -229,15 +229,15 @@ describe('FormModel', () => {
});
it('should create outcomes only when fields available', () => {
let json = {
const json = {
fields: null
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.outcomes.length).toBe(0);
});
it('should use custom form outcomes', () => {
let json = {
const json = {
fields: [
{ id: 'container1' }
],
@@ -246,7 +246,7 @@ describe('FormModel', () => {
]
};
let form = new FormModel(json);
const form = new FormModel(json);
expect(form.outcomes.length).toBe(2);
expect(form.outcomes[0].id).toBe(FormModel.SAVE_OUTCOME);
@@ -381,7 +381,7 @@ describe('FormModel', () => {
spyOn(form, 'getFormFields').and.returnValue([testField]);
let validator = <FormFieldValidator> {
const validator = <FormFieldValidator> {
isSupported(field: FormFieldModel): boolean {
return true;
},
@@ -95,12 +95,12 @@ export class FormModel {
this.selectedOutcome = json.selectedOutcome || {};
this.className = json.className || '';
let tabCache: FormWidgetModelCache<TabModel> = {};
const tabCache: FormWidgetModelCache<TabModel> = {};
this.processVariables = json.processVariables;
this.tabs = (json.tabs || []).map((t) => {
let model = new TabModel(this, t);
const model = new TabModel(this, t);
tabCache[model.id] = model;
return model;
});
@@ -112,9 +112,9 @@ export class FormModel {
}
for (let i = 0; i < this.fields.length; i++) {
let field = this.fields[i];
const field = this.fields[i];
if (field.tab) {
let tab = tabCache[field.tab];
const tab = tabCache[field.tab];
if (tab) {
tab.fields.push(field);
}
@@ -122,23 +122,23 @@ export class FormModel {
}
if (json.fields) {
let saveOutcome = new FormOutcomeModel(this, {
const saveOutcome = new FormOutcomeModel(this, {
id: FormModel.SAVE_OUTCOME,
name: 'SAVE',
isSystem: true
});
let completeOutcome = new FormOutcomeModel(this, {
const completeOutcome = new FormOutcomeModel(this, {
id: FormModel.COMPLETE_OUTCOME,
name: 'COMPLETE',
isSystem: true
});
let startProcessOutcome = new FormOutcomeModel(this, {
const startProcessOutcome = new FormOutcomeModel(this, {
id: FormModel.START_PROCESS_OUTCOME,
name: 'START PROCESS',
isSystem: true
});
let customOutcomes = (json.outcomes || []).map((obj) => new FormOutcomeModel(this, obj));
const customOutcomes = (json.outcomes || []).map((obj) => new FormOutcomeModel(this, obj));
this.outcomes = [saveOutcome].concat(
customOutcomes.length > 0 ? customOutcomes : [completeOutcome, startProcessOutcome]
@@ -162,13 +162,13 @@ export class FormModel {
// TODO: consider evaluating and caching once the form is loaded
getFormFields(): FormFieldModel[] {
let formFieldModel: FormFieldModel[] = [];
const formFieldModel: FormFieldModel[] = [];
for (let i = 0; i < this.fields.length; i++) {
let field = this.fields[i];
const field = this.fields[i];
if (field instanceof ContainerModel) {
let container = <ContainerModel> field;
const container = <ContainerModel> field;
formFieldModel.push(container.field);
container.field.columns.forEach((column) => {
@@ -192,9 +192,9 @@ export class FormModel {
validateForm(): void {
const validateFormEvent: any = new ValidateFormEvent(this);
let errorsField: FormFieldModel[] = [];
const errorsField: FormFieldModel[] = [];
let fields = this.getFormFields();
const fields = this.getFormFields();
for (let i = 0; i < fields.length; i++) {
if (!fields[i].validate()) {
errorsField.push(fields[i]);
@@ -254,13 +254,13 @@ export class FormModel {
fields = json.formDefinition.fields;
}
let formWidgetModel: FormWidgetModel[] = [];
const formWidgetModel: FormWidgetModel[] = [];
for (let field of fields) {
for (const field of fields) {
if (field.type === FormFieldTypes.DISPLAY_VALUE) {
// workaround for dynamic table on a completed/readonly form
if (field.params) {
let originalField = field.params['field'];
const originalField = field.params['field'];
if (originalField.type === FormFieldTypes.DYNAMIC_TABLE) {
formWidgetModel.push(new ContainerModel(new FormFieldModel(this, field)));
}
@@ -276,7 +276,7 @@ export class FormModel {
// Loads external data and overrides field values
// Typically used when form definition and form data coming from different sources
private loadData(formValues: FormValues) {
for (let field of this.getFormFields()) {
for (const field of this.getFormFields()) {
if (formValues[field.id]) {
field.json.value = formValues[field.id];
field.value = field.parseValue(field.json);
@@ -23,20 +23,20 @@ import { TabModel } from './tab.model';
describe('TabModel', () => {
it('should setup with json config', () => {
let json = {
const json = {
id: '<id>',
title: '<title>',
visibilityCondition: '<condition>'
};
let model = new TabModel(null, json);
const model = new TabModel(null, json);
expect(model.id).toBe(json.id);
expect(model.title).toBe(json.title);
expect(model.isVisible).toBe(true);
});
it('should not setup with json config', () => {
let model = new TabModel(null, null);
const model = new TabModel(null, null);
expect(model.id).toBeUndefined();
expect(model.title).toBeUndefined();
expect(model.isVisible).toBeDefined();
@@ -45,7 +45,7 @@ describe('TabModel', () => {
});
it('should evaluate content based on fields', () => {
let model = new TabModel(null, null);
const model = new TabModel(null, null);
model.fields = null;
expect(model.hasContent()).toBeFalsy();
@@ -53,21 +53,21 @@ describe('TabModel', () => {
model.fields = [];
expect(model.hasContent()).toBeFalsy();
let form = new FormModel();
let field = new FormFieldModel(form);
const form = new FormModel();
const field = new FormFieldModel(form);
model.fields = [new ContainerModel(field)];
expect(model.hasContent()).toBeTruthy();
});
it('should store the form reference', () => {
let form = new FormModel();
let model = new TabModel(form);
const form = new FormModel();
const model = new TabModel(form);
expect(model.form).toBe(form);
});
it('should store original json', () => {
let json = {};
let model = new TabModel(null, json);
const json = {};
const model = new TabModel(null, json);
expect(model.json).toBe(json);
});
@@ -50,7 +50,7 @@ describe('DateTimeWidgetComponent', () => {
});
it('should setup min value for date picker', () => {
let minValue = '1982-03-13T10:00Z';
const minValue = '1982-03-13T10:00Z';
widget.field = new FormFieldModel(null, {
id: 'date-id',
name: 'date-name',
@@ -60,7 +60,7 @@ describe('DateTimeWidgetComponent', () => {
fixture.detectChanges();
let expected = moment(minValue, 'YYYY-MM-DDTHH:mm:ssZ');
const expected = moment(minValue, 'YYYY-MM-DDTHH:mm:ssZ');
expect(widget.minDate.isSame(expected)).toBeTruthy();
});
@@ -77,20 +77,20 @@ describe('DateTimeWidgetComponent', () => {
});
it('should setup max value for date picker', () => {
let maxValue = '1982-03-13T10:00Z';
const maxValue = '1982-03-13T10:00Z';
widget.field = new FormFieldModel(null, {
maxValue: maxValue
});
fixture.detectChanges();
let expected = moment(maxValue, 'YYYY-MM-DDTHH:mm:ssZ');
const expected = moment(maxValue, 'YYYY-MM-DDTHH:mm:ssZ');
expect(widget.maxDate.isSame(expected)).toBeTruthy();
});
it('should eval visibility on date changed', () => {
spyOn(widget, 'onFieldChanged').and.callThrough();
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
id: 'date-field-id',
name: 'date-name',
value: '9-12-9999 10:00 AM',
@@ -119,7 +119,7 @@ describe('DateTimeWidgetComponent', () => {
.then(() => {
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toBe('30-11-9999 10:30 AM');
});
}));
@@ -141,7 +141,7 @@ describe('DateTimeWidgetComponent', () => {
.then(() => {
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toContain('11-29-9999 10:30 AM');
expect(element.querySelector('.adf-error-text').textContent).toBe('FORM.FIELD.VALIDATOR.NOT_LESS_THAN');
});
@@ -162,7 +162,7 @@ describe('DateTimeWidgetComponent', () => {
fixture.detectChanges();
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toContain('12-30-9999 10:30 AM');
});
}));
@@ -58,7 +58,7 @@ export class DateTimeWidgetComponent extends WidgetComponent implements OnInit {
this.dateAdapter.setLocale(locale);
});
let momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
const momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
momentDateAdapter.overrideDisplayFormat = this.field.dateDisplayFormat;
if (this.field) {
@@ -45,7 +45,7 @@ describe('DateWidgetComponent', () => {
});
it('should setup min value for date picker', () => {
let minValue = '13-03-1982';
const minValue = '13-03-1982';
widget.field = new FormFieldModel(null, {
id: 'date-id',
name: 'date-name',
@@ -54,12 +54,12 @@ describe('DateWidgetComponent', () => {
widget.ngOnInit();
let expected = moment(minValue, widget.field.dateDisplayFormat);
const expected = moment(minValue, widget.field.dateDisplayFormat);
expect(widget.minDate.isSame(expected)).toBeTruthy();
});
it('should date field be present', () => {
let minValue = '13-03-1982';
const minValue = '13-03-1982';
widget.field = new FormFieldModel(null, {
minValue: minValue
});
@@ -71,20 +71,20 @@ describe('DateWidgetComponent', () => {
});
it('should setup max value for date picker', () => {
let maxValue = '31-03-1982';
const maxValue = '31-03-1982';
widget.field = new FormFieldModel(null, {
maxValue: maxValue
});
widget.ngOnInit();
let expected = moment(maxValue, widget.field.dateDisplayFormat);
const expected = moment(maxValue, widget.field.dateDisplayFormat);
expect(widget.maxDate.isSame(expected)).toBeTruthy();
});
it('should eval visibility on date changed', () => {
spyOn(widget, 'onFieldChanged').and.callThrough();
let field = new FormFieldModel(new FormModel(), {
const field = new FormFieldModel(new FormModel(), {
id: 'date-field-id',
name: 'date-name',
value: '9-9-9999',
@@ -119,7 +119,7 @@ describe('DateWidgetComponent', () => {
fixture.whenStable().then(() => {
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toContain('9-9-9999');
});
}));
@@ -141,7 +141,7 @@ describe('DateWidgetComponent', () => {
fixture.detectChanges();
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toContain('11-30-9999');
expect(element.querySelector('.adf-error-text').textContent).toBe('FORM.FIELD.VALIDATOR.NOT_LESS_THAN');
});
@@ -163,7 +163,7 @@ describe('DateWidgetComponent', () => {
.then(() => {
expect(element.querySelector('#date-field-id')).toBeDefined();
expect(element.querySelector('#date-field-id')).not.toBeNull();
let dateElement: any = element.querySelector('#date-field-id');
const dateElement: any = element.querySelector('#date-field-id');
expect(dateElement.value).toContain('12-30-9999');
});
}));
@@ -55,7 +55,7 @@ export class DateWidgetComponent extends WidgetComponent implements OnInit {
this.dateAdapter.setLocale(locale);
});
let momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
const momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
momentDateAdapter.overrideDisplayFormat = this.field.dateDisplayFormat;
if (this.field) {
@@ -42,7 +42,7 @@ describe('DropdownWidgetComponent', () => {
fixture.detectChanges();
}
let fakeOptionList: FormFieldOption[] = [
const fakeOptionList: FormFieldOption[] = [
{ id: 'opt_1', name: 'option_1' },
{ id: 'opt_2', name: 'option_2' },
{ id: 'opt_3', name: 'option_3' }];
@@ -79,7 +79,7 @@ describe('DropdownWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -99,7 +99,7 @@ describe('DropdownWidgetComponent', () => {
});
it('should preserve empty option when loading fields', () => {
let restFieldValue: FormFieldOption = <FormFieldOption> { id: '1', name: 'Option1' };
const restFieldValue: FormFieldOption = <FormFieldOption> { id: '1', name: 'Option1' };
spyOn(formService, 'getRestFieldValues').and.callFake(() => {
return new Observable((observer) => {
observer.next([restFieldValue]);
@@ -107,8 +107,8 @@ describe('DropdownWidgetComponent', () => {
});
});
let form = new FormModel({ taskId: '<id>' });
let emptyOption: FormFieldOption = <FormFieldOption> { id: 'empty', name: 'Empty' };
const form = new FormModel({ taskId: '<id>' });
const emptyOption: FormFieldOption = <FormFieldOption> { id: 'empty', name: 'Empty' };
widget.field = new FormFieldModel(form, {
id: '<id>',
restUrl: '/some/url/address',
@@ -165,7 +165,7 @@ describe('DropdownWidgetComponent', () => {
fixture.detectChanges();
fixture.whenStable()
.then(() => {
let dropDownElement: any = element.querySelector('#dropdown-id');
const dropDownElement: any = element.querySelector('#dropdown-id');
expect(dropDownElement.attributes['ng-reflect-model'].value).toBe('option_2');
expect(dropDownElement.attributes['ng-reflect-model'].textContent).toBe('option_2');
});
@@ -182,7 +182,7 @@ describe('DropdownWidgetComponent', () => {
fixture.whenStable()
.then(() => {
let dropDownElement: any = element.querySelector('#dropdown-id');
const dropDownElement: any = element.querySelector('#dropdown-id');
expect(dropDownElement.attributes['ng-reflect-model'].value).toBe('empty');
});
}));
@@ -229,7 +229,7 @@ describe('DropdownWidgetComponent', () => {
fixture.detectChanges();
fixture.whenStable()
.then(() => {
let dropDownElement: any = element.querySelector('#dropdown-id');
const dropDownElement: any = element.querySelector('#dropdown-id');
expect(dropDownElement.attributes['ng-reflect-model'].value).toBe('option_2');
expect(dropDownElement.attributes['ng-reflect-model'].textContent).toBe('option_2');
});
@@ -246,7 +246,7 @@ describe('DropdownWidgetComponent', () => {
fixture.whenStable()
.then(() => {
let dropDownElement: any = element.querySelector('#dropdown-id');
const dropDownElement: any = element.querySelector('#dropdown-id');
expect(dropDownElement.attributes['ng-reflect-model'].value).toBe('empty');
});
}));
@@ -263,7 +263,7 @@ describe('DropdownWidgetComponent', () => {
fixture.detectChanges();
fixture.whenStable()
.then(() => {
let dropDownElement: HTMLSelectElement = <HTMLSelectElement> element.querySelector('#dropdown-id');
const dropDownElement: HTMLSelectElement = <HTMLSelectElement> element.querySelector('#dropdown-id');
expect(dropDownElement).not.toBeNull();
expect(dropDownElement.getAttribute('aria-disabled')).toBe('true');
});
@@ -55,7 +55,7 @@ export class DropdownWidgetComponent extends WidgetComponent implements OnInit {
)
.subscribe(
(formFieldOption: FormFieldOption[]) => {
let options = [];
const options = [];
if (this.field.emptyOption) {
options.push(this.field.emptyOption);
}
@@ -74,7 +74,7 @@ export class DropdownWidgetComponent extends WidgetComponent implements OnInit {
)
.subscribe(
(formFieldOption: FormFieldOption[]) => {
let options = [];
const options = [];
if (this.field.emptyOption) {
options.push(this.field.emptyOption);
}
@@ -36,8 +36,8 @@ export class DateCellValidator implements CellValidator {
validate(row: DynamicTableRow, column: DynamicTableColumn, summary?: DynamicRowValidationSummary): boolean {
if (this.isSupported(column)) {
let value = row.value[column.id];
let dateValue = moment(value, 'D-M-YYYY');
const value = row.value[column.id];
const dateValue = moment(value, 'D-M-YYYY');
if (!dateValue.isValid()) {
if (summary) {
summary.isValid = false;
@@ -105,7 +105,7 @@ export class DynamicTableModel extends FormWidgetModel {
}
moveRow(row: DynamicTableRow, offset: number) {
let oldIndex = this.rows.indexOf(row);
const oldIndex = this.rows.indexOf(row);
if (oldIndex > -1) {
let newIndex = (oldIndex + offset);
@@ -115,7 +115,7 @@ export class DynamicTableModel extends FormWidgetModel {
newIndex = this.rows.length;
}
let arr = this.rows.slice();
const arr = this.rows.slice();
arr.splice(oldIndex, 1);
arr.splice(newIndex, 0, row);
this.rows = arr;
@@ -129,7 +129,7 @@ export class DynamicTableModel extends FormWidgetModel {
if (this.selectedRow === row) {
this.selectedRow = null;
}
let idx = this.rows.indexOf(row);
const idx = this.rows.indexOf(row);
if (idx > -1) {
this.rows.splice(idx, 1);
this.flushValue();
@@ -158,8 +158,8 @@ export class DynamicTableModel extends FormWidgetModel {
}
if (row) {
for (let col of this.columns) {
for (let validator of this._validators) {
for (const col of this.columns) {
for (const validator of this._validators) {
if (!validator.validate(row, col, summary)) {
return summary;
}
@@ -171,7 +171,7 @@ export class DynamicTableModel extends FormWidgetModel {
}
getCellValue(row: DynamicTableRow, column: DynamicTableColumn): any {
let rowValue = row.value[column.id];
const rowValue = row.value[column.id];
if (column.type === 'Dropdown') {
if (rowValue) {
@@ -195,7 +195,7 @@ export class DynamicTableModel extends FormWidgetModel {
getDisplayText(column: DynamicTableColumn): string {
let columnName = column.name;
if (column.type === 'Amount') {
let currency = column.amountCurrency || '$';
const currency = column.amountCurrency || '$';
columnName = `${column.name} (${currency})`;
}
return columnName;
@@ -27,7 +27,7 @@ import { setupTestBed } from '../../../../testing/setupTestBed';
import { CoreModule } from '../../../../core.module';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
let fakeFormField = {
const fakeFormField = {
id: 'fake-dynamic-table',
name: 'fake-label',
value: [{1: 1, 2: 2, 3: 4}],
@@ -89,10 +89,10 @@ describe('DynamicTableWidgetComponent', () => {
logService = TestBed.get(LogService);
formService = TestBed.get(FormService);
table = new DynamicTableModel(field, formService);
let changeDetectorSpy = jasmine.createSpyObj('cd', ['detectChanges']);
let nativeElementSpy = jasmine.createSpyObj('nativeElement', ['querySelector']);
const changeDetectorSpy = jasmine.createSpyObj('cd', ['detectChanges']);
const nativeElementSpy = jasmine.createSpyObj('nativeElement', ['querySelector']);
changeDetectorSpy.nativeElement = nativeElementSpy;
let elementRefSpy = jasmine.createSpyObj('elementRef', ['']);
const elementRefSpy = jasmine.createSpyObj('elementRef', ['']);
elementRefSpy.nativeElement = nativeElementSpy;
fixture = TestBed.createComponent(DynamicTableWidgetComponent);
@@ -107,7 +107,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should select row on click', () => {
let row = <DynamicTableRow> {selected: false};
const row = <DynamicTableRow> {selected: false};
widget.onRowClicked(row);
expect(row.selected).toBeTruthy();
@@ -115,7 +115,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should require table to select clicked row', () => {
let row = <DynamicTableRow> {selected: false};
const row = <DynamicTableRow> {selected: false};
widget.content = null;
widget.onRowClicked(row);
@@ -123,7 +123,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should reset selected row', () => {
let row = <DynamicTableRow> {selected: false};
const row = <DynamicTableRow> {selected: false};
widget.content.rows.push(row);
widget.content.selectedRow = row;
expect(widget.content.selectedRow).toBe(row);
@@ -135,7 +135,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should check selection', () => {
let row = <DynamicTableRow> {selected: false};
const row = <DynamicTableRow> {selected: false};
widget.content.rows.push(row);
widget.content.selectedRow = row;
expect(widget.hasSelection()).toBeTruthy();
@@ -153,8 +153,8 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should move selection up', () => {
let row1 = <DynamicTableRow> {};
let row2 = <DynamicTableRow> {};
const row1 = <DynamicTableRow> {};
const row2 = <DynamicTableRow> {};
widget.content.rows.push(...[row1, row2]);
widget.content.selectedRow = row2;
@@ -168,8 +168,8 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should move selection down', () => {
let row1 = <DynamicTableRow> {};
let row2 = <DynamicTableRow> {};
const row1 = <DynamicTableRow> {};
const row2 = <DynamicTableRow> {};
widget.content.rows.push(...[row1, row2]);
widget.content.selectedRow = row1;
@@ -183,7 +183,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should delete selected row', () => {
let row = <DynamicTableRow> {};
const row = <DynamicTableRow> {};
widget.content.rows.push(row);
widget.content.selectedRow = row;
widget.deleteSelection();
@@ -213,7 +213,7 @@ describe('DynamicTableWidgetComponent', () => {
expect(widget.editMode).toBeFalsy();
expect(widget.editRow).toBeFalsy();
let row = <DynamicTableRow> {value: true};
const row = <DynamicTableRow> {value: true};
widget.content.selectedRow = row;
expect(widget.editSelection()).toBeTruthy();
@@ -223,8 +223,8 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should copy row', () => {
let row = <DynamicTableRow> {value: {opt: {key: '1', value: 1}}};
let copy = widget.copyRow(row);
const row = <DynamicTableRow> {value: {opt: {key: '1', value: 1}}};
const copy = widget.copyRow(row);
expect(copy.value).toEqual(row.value);
});
@@ -235,14 +235,14 @@ describe('DynamicTableWidgetComponent', () => {
it('should retrieve cell value', () => {
const value = '<value>';
let row = <DynamicTableRow> {value: {key: value}};
let column = <DynamicTableColumn> {id: 'key'};
const row = <DynamicTableRow> {value: {key: value}};
const column = <DynamicTableColumn> {id: 'key'};
expect(widget.getCellValue(row, column)).toBe(value);
});
it('should save changes and add new row', () => {
let row = <DynamicTableRow> {isNew: true, value: {key: 'value'}};
const row = <DynamicTableRow> {isNew: true, value: {key: 'value'}};
widget.editMode = true;
widget.editRow = row;
@@ -255,7 +255,7 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should save changes and update row', () => {
let row = <DynamicTableRow> {isNew: false, value: {key: 'value'}};
const row = <DynamicTableRow> {isNew: false, value: {key: 'value'}};
widget.editMode = true;
widget.editRow = row;
widget.content.selectedRow = row;
@@ -291,8 +291,8 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should take validation state from underlying field', () => {
let form = new FormModel();
let field = new FormFieldModel(form, {
const form = new FormModel();
const field = new FormFieldModel(form, {
type: FormFieldTypes.DYNAMIC_TABLE,
required: true,
value: null
@@ -312,16 +312,16 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should prepend default currency for amount columns', () => {
let row = <DynamicTableRow> {value: {key: '100'}};
let column = <DynamicTableColumn> {id: 'key', type: 'Amount'};
let actual = widget.getCellValue(row, column);
const row = <DynamicTableRow> {value: {key: '100'}};
const column = <DynamicTableColumn> {id: 'key', type: 'Amount'};
const actual = widget.getCellValue(row, column);
expect(actual).toBe('$ 100');
});
it('should prepend custom currency for amount columns', () => {
let row = <DynamicTableRow> {value: {key: '100'}};
let column = <DynamicTableColumn> {id: 'key', type: 'Amount', amountCurrency: 'GBP'};
let actual = widget.getCellValue(row, column);
const row = <DynamicTableRow> {value: {key: '100'}};
const column = <DynamicTableColumn> {id: 'key', type: 'Amount', amountCurrency: 'GBP'};
const actual = widget.getCellValue(row, column);
expect(actual).toBe('GBP 100');
});
@@ -340,25 +340,25 @@ describe('DynamicTableWidgetComponent', () => {
});
it('should select a row when press space bar', async(() => {
let rowElement = element.querySelector('#fake-dynamic-table-row-0');
const rowElement = element.querySelector('#fake-dynamic-table-row-0');
expect(element.querySelector('#dynamic-table-fake-dynamic-table')).not.toBeNull();
expect(rowElement).not.toBeNull();
expect(rowElement.className).not.toContain('adf-dynamic-table-widget__row-selected');
let event: any = new Event('keyup');
const event: any = new Event('keyup');
event.keyCode = 32;
rowElement.dispatchEvent(event);
fixture.detectChanges();
fixture.whenStable().then(() => {
let selectedRow = element.querySelector('#fake-dynamic-table-row-0');
const selectedRow = element.querySelector('#fake-dynamic-table-row-0');
expect(selectedRow.className).toContain('adf-dynamic-table-widget__row-selected');
});
}));
it('should focus on add button when a new row is saved', async(() => {
let addNewRowButton: HTMLButtonElement = <HTMLButtonElement> element.querySelector('#fake-dynamic-table-add-row');
const addNewRowButton: HTMLButtonElement = <HTMLButtonElement> element.querySelector('#fake-dynamic-table-add-row');
expect(element.querySelector('#dynamic-table-fake-dynamic-table')).not.toBeNull();
expect(addNewRowButton).not.toBeNull();
@@ -62,7 +62,7 @@ export class DynamicTableWidgetComponent extends WidgetComponent implements OnIn
forceFocusOnAddButton() {
if (this.content) {
this.cd.detectChanges();
let buttonAddRow = <HTMLButtonElement> this.elementRef.nativeElement.querySelector('#' + this.content.id + '-add-row');
const buttonAddRow = <HTMLButtonElement> this.elementRef.nativeElement.querySelector('#' + this.content.id + '-add-row');
if (this.isDynamicTableReady(buttonAddRow)) {
buttonAddRow.focus();
}
@@ -151,7 +151,7 @@ export class DynamicTableWidgetComponent extends WidgetComponent implements OnIn
getCellValue(row: DynamicTableRow, column: DynamicTableColumn): any {
if (this.content) {
let cellValue = this.content.getCellValue(row, column);
const cellValue = this.content.getCellValue(row, column);
if (column.type === 'Amount') {
return (column.amountCurrency || '$') + ' ' + (cellValue || 0);
}
@@ -163,7 +163,7 @@ export class DynamicTableWidgetComponent extends WidgetComponent implements OnIn
onSaveChanges() {
if (this.content) {
if (this.editRow.isNew) {
let row = this.copyRow(this.editRow);
const row = this.copyRow(this.editRow);
this.content.selectedRow = null;
this.content.addRow(row);
this.editRow.isNew = false;
@@ -29,9 +29,9 @@ describe('BooleanEditorComponent', () => {
});
it('should update row value on change', () => {
let row = <DynamicTableRow> { value: {} };
let column = <DynamicTableColumn> { id: 'key' };
let event = { checked: true } ;
const row = <DynamicTableRow> { value: {} };
const column = <DynamicTableColumn> { id: 'key' };
const event = { checked: true } ;
component.onValueChanged(row, column, event);
expect(row.value[column.id]).toBeTruthy();
@@ -39,7 +39,7 @@ export class BooleanEditorComponent {
column: DynamicTableColumn;
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
let value: boolean = (<HTMLInputElement> event).checked;
const value: boolean = (<HTMLInputElement> event).checked;
row.value[column.id] = value;
}
@@ -61,7 +61,7 @@ describe('DateEditorComponent', () => {
it('should update fow value on change', () => {
component.ngOnInit();
let newDate = moment('14-03-1879', 'DD-MM-YYYY');
const newDate = moment('14-03-1879', 'DD-MM-YYYY');
component.onDateChanged(newDate);
expect(row.value[column.id]).toBe('1879-03-14T00:00:00.000Z');
});
@@ -72,7 +72,7 @@ describe('DateEditorComponent', () => {
component.ngOnInit();
component.onDateChanged(input);
let actual = row.value[column.id];
const actual = row.value[column.id];
expect(actual).toBe('2016-03-14T00:00:00.000Z');
});
@@ -63,7 +63,7 @@ export class DateEditorComponent implements OnInit {
this.dateAdapter.setLocale(locale);
});
let momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
const momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
momentDateAdapter.overrideDisplayFormat = this.DATE_FORMAT;
this.value = moment(this.table.getCellValue(this.row, this.column), 'YYYY-MM-DD');
@@ -71,7 +71,7 @@ export class DateEditorComponent implements OnInit {
onDateChanged(newDateValue) {
if (newDateValue && newDateValue.value) {
let momentDate = moment(newDateValue.value, this.DATE_FORMAT, true);
const momentDate = moment(newDateValue.value, this.DATE_FORMAT, true);
if (!momentDate.isValid()) {
this.row.value[this.column.id] = '';
@@ -61,7 +61,7 @@ describe('DateTimeEditorComponent', () => {
it('should update fow value on change', () => {
component.ngOnInit();
let newDate = moment('22-6-2018 04:20 AM', 'D-M-YYYY hh:mm A');
const newDate = moment('22-6-2018 04:20 AM', 'D-M-YYYY hh:mm A');
component.onDateChanged(newDate);
expect(moment(row.value[column.id]).isSame(newDate)).toBeTruthy();
});
@@ -72,7 +72,7 @@ describe('DateTimeEditorComponent', () => {
component.ngOnInit();
component.onDateChanged(input);
let actual = row.value[column.id];
const actual = row.value[column.id];
expect(actual).toBe('22-6-2018 04:20 AM');
});
@@ -68,7 +68,7 @@ export class DateTimeEditorComponent implements OnInit {
this.dateAdapter.setLocale(locale);
});
let momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
const momentDateAdapter = <MomentDateAdapter> this.dateAdapter;
momentDateAdapter.overrideDisplayFormat = this.DATE_FORMAT;
this.value = moment(this.table.getCellValue(this.row, this.column), this.DATE_FORMAT);
@@ -92,7 +92,7 @@ describe('DropdownEditorComponent', () => {
column.optionType = 'rest';
row.value[column.id] = 'twelve';
let restResults = [
const restResults = [
<DynamicTableColumnOption> {id: '11', name: 'eleven'},
<DynamicTableColumnOption> {id: '12', name: 'twelve'}
];
@@ -155,8 +155,8 @@ describe('DropdownEditorComponent', () => {
it('should handle REST error getting option with processDefinitionId', () => {
column.optionType = 'rest';
let procForm = new FormModel({processDefinitionId: '<process-definition-id>'});
let procTable = new DynamicTableModel(new FormFieldModel(procForm, {id: '<field-id>'}), formService);
const procForm = new FormModel({processDefinitionId: '<process-definition-id>'});
const procTable = new DynamicTableModel(new FormFieldModel(procForm, {id: '<field-id>'}), formService);
component.table = procTable;
const error = 'error';
@@ -170,7 +170,7 @@ describe('DropdownEditorComponent', () => {
});
it('should update row on value change', () => {
let event = {value: 'two'};
const event = {value: 'two'};
component.onValueChanged(row, column, event);
expect(row.value[column.id]).toBe(column.options[1]);
});
@@ -180,7 +180,7 @@ describe('DropdownEditorComponent', () => {
let fixture: ComponentFixture<DropdownEditorComponent>;
let element: HTMLElement;
let stubFormService;
let fakeOptionList: DynamicTableColumnOption[] = [{
const fakeOptionList: DynamicTableColumnOption[] = [{
id: 'opt_1',
name: 'option_1'
}, {
@@ -49,7 +49,7 @@ export class DropdownEditorComponent implements OnInit {
}
ngOnInit() {
let field = this.table.field;
const field = this.table.field;
if (field) {
if (this.column.optionType === 'rest') {
if (this.table.form && this.table.form.taskId) {
@@ -28,11 +28,11 @@ describe('TextEditorComponent', () => {
});
it('should update row value on change', () => {
let row = <DynamicTableRow> { value: {} };
let column = <DynamicTableColumn> { id: 'key' };
const row = <DynamicTableRow> { value: {} };
const column = <DynamicTableColumn> { id: 'key' };
const value = '<value>';
let event = { target: { value } };
const event = { target: { value } };
editor.onValueChanged(row, column, event);
expect(row.value[column.id]).toBe(value);
@@ -45,7 +45,7 @@ export class TextEditorComponent implements OnInit {
}
onValueChanged(row: DynamicTableRow, column: DynamicTableColumn, event: any) {
let value: any = (<HTMLInputElement> event.target).value;
const value: any = (<HTMLInputElement> event.target).value;
row.value[column.id] = value;
}
@@ -44,7 +44,7 @@ export class NumberCellValidator implements CellValidator {
validate(row: DynamicTableRow, column: DynamicTableColumn, summary?: DynamicRowValidationSummary): boolean {
if (this.isSupported(column)) {
let value = row.value[column.id];
const value = row.value[column.id];
if (value === null ||
value === undefined ||
value === '' ||
@@ -38,7 +38,7 @@ export class RequiredCellValidator implements CellValidator {
validate(row: DynamicTableRow, column: DynamicTableColumn, summary?: DynamicRowValidationSummary): boolean {
if (this.isSupported(column)) {
let value = row.value[column.id];
const value = row.value[column.id];
if (column.required) {
if (value === null || value === undefined || value === '') {
if (summary) {
@@ -36,7 +36,7 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should setup text from underlying field on init', () => {
let group = new GroupModel({ name: 'group-1'});
const group = new GroupModel({ name: 'group-1'});
widget.field.value = group;
spyOn(formService, 'getWorkflowGroups').and.returnValue(
@@ -75,13 +75,13 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should prevent default behaviour on option item click', () => {
let event = jasmine.createSpyObj('event', ['preventDefault']);
const event = jasmine.createSpyObj('event', ['preventDefault']);
widget.onItemClick(null, event);
expect(event.preventDefault).toHaveBeenCalled();
});
it('should update values on item click', () => {
let item = new GroupModel({ name: 'group-1' });
const item = new GroupModel({ name: 'group-1' });
widget.onItemClick(item, null);
expect(widget.field.value).toBe(item);
@@ -95,7 +95,7 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should flush selected value', () => {
let groups: GroupModel[] = [
const groups: GroupModel[] = [
new GroupModel({ id: '1', name: 'group 1' }),
new GroupModel({ id: '2', name: 'group 2' })
];
@@ -109,7 +109,7 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should be case insensitive when flushing value', () => {
let groups: GroupModel[] = [
const groups: GroupModel[] = [
new GroupModel({ id: '1', name: 'group 1' }),
new GroupModel({ id: '2', name: 'gRoUp 2' })
];
@@ -123,7 +123,7 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should fetch groups and show popup on key up', () => {
let groups: GroupModel[] = [
const groups: GroupModel[] = [
new GroupModel(),
new GroupModel()
];
@@ -134,7 +134,7 @@ describe('FunctionalGroupWidgetComponent', () => {
})
);
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
widget.value = 'group';
widget.onKeyUp(keyboardEvent);
@@ -143,7 +143,7 @@ describe('FunctionalGroupWidgetComponent', () => {
});
it('should fetch groups with a group filter', () => {
let groups: GroupModel[] = [
const groups: GroupModel[] = [
new GroupModel(),
new GroupModel()
];
@@ -154,7 +154,7 @@ describe('FunctionalGroupWidgetComponent', () => {
})
);
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
widget.groupId = 'parentGroup';
widget.value = 'group';
widget.onKeyUp(keyboardEvent);
@@ -171,7 +171,7 @@ describe('FunctionalGroupWidgetComponent', () => {
})
);
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
widget.value = 'group';
widget.onKeyUp(keyboardEvent);
@@ -182,7 +182,7 @@ describe('FunctionalGroupWidgetComponent', () => {
it('should not fetch groups when value is missing', () => {
spyOn(formService, 'getWorkflowGroups').and.stub();
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
widget.value = null;
widget.onKeyUp(keyboardEvent);
@@ -192,7 +192,7 @@ describe('FunctionalGroupWidgetComponent', () => {
it('should not fetch groups when value violates constraints', () => {
spyOn(formService, 'getWorkflowGroups').and.stub();
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
widget.minTermLength = 4;
widget.value = '123';
widget.onKeyUp(keyboardEvent);
@@ -45,14 +45,14 @@ export class FunctionalGroupWidgetComponent extends WidgetComponent implements O
ngOnInit() {
if (this.field) {
let group = this.field.value;
const group = this.field.value;
if (group) {
this.value = group.name;
}
let params = this.field.params;
const params = this.field.params;
if (params && params['restrictWithGroup']) {
let restrictWithGroup = <GroupModel> params['restrictWithGroup'];
const restrictWithGroup = <GroupModel> params['restrictWithGroup'];
this.groupId = restrictWithGroup.id;
}
@@ -78,7 +78,7 @@ export class FunctionalGroupWidgetComponent extends WidgetComponent implements O
}
flushValue() {
let option = this.groups.find((item) => item.name.toLocaleLowerCase() === this.value.toLocaleLowerCase());
const option = this.groups.find((item) => item.name.toLocaleLowerCase() === this.value.toLocaleLowerCase());
if (option) {
this.field.value = option;
@@ -63,7 +63,7 @@ describe('PeopleWidgetComponent', () => {
});
it('should return full name for a given model', () => {
let model = new UserProcessModel({
const model = new UserProcessModel({
firstName: 'John',
lastName: 'Doe'
});
@@ -71,12 +71,12 @@ describe('PeopleWidgetComponent', () => {
});
it('should skip first name for display name', () => {
let model = new UserProcessModel({ firstName: null, lastName: 'Doe' });
const model = new UserProcessModel({ firstName: null, lastName: 'Doe' });
expect(widget.getDisplayName(model)).toBe('Doe');
});
it('should skip last name for display name', () => {
let model = new UserProcessModel({ firstName: 'John', lastName: null });
const model = new UserProcessModel({ firstName: 'John', lastName: null });
expect(widget.getDisplayName(model)).toBe('John');
});
@@ -129,7 +129,7 @@ describe('PeopleWidgetComponent', () => {
widget.field.value = null;
widget.ngOnInit();
fixture.detectChanges();
let input = widget.input;
const input = widget.input;
expect(input.nativeElement.value).toBe('');
expect(widget.groupId).toBeUndefined();
});
@@ -161,7 +161,7 @@ describe('PeopleWidgetComponent', () => {
describe('when template is ready', () => {
let fakeUserResult = [
const fakeUserResult = [
{ id: 1001, firstName: 'Test01', lastName: 'Test01', email: 'test' },
{ id: 1002, firstName: 'Test02', lastName: 'Test02', email: 'test2' }];
@@ -190,7 +190,7 @@ describe('PeopleWidgetComponent', () => {
});
it('should show an error message if the user is invalid', async(() => {
let peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
const peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
peopleHTMLElement.focus();
peopleHTMLElement.value = 'K';
peopleHTMLElement.dispatchEvent(new Event('keyup'));
@@ -203,7 +203,7 @@ describe('PeopleWidgetComponent', () => {
}));
it('should show the people if the typed result match', async(() => {
let peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
const peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
peopleHTMLElement.focus();
peopleHTMLElement.value = 'T';
peopleHTMLElement.dispatchEvent(new Event('keyup'));
@@ -217,7 +217,7 @@ describe('PeopleWidgetComponent', () => {
}));
it('should hide result list if input is empty', () => {
let peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
const peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
peopleHTMLElement.focus();
peopleHTMLElement.value = '';
peopleHTMLElement.dispatchEvent(new Event('keyup'));
@@ -230,7 +230,7 @@ describe('PeopleWidgetComponent', () => {
});
it('should display two options if we tap one letter', async(() => {
let peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
const peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
peopleHTMLElement.focus();
peopleHTMLElement.value = 'T';
peopleHTMLElement.dispatchEvent(new Event('keyup'));
@@ -244,8 +244,8 @@ describe('PeopleWidgetComponent', () => {
}));
it('should emit peopleSelected if option is valid', async() => {
let selectEmitSpy = spyOn(widget.peopleSelected, 'emit');
let peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
const selectEmitSpy = spyOn(widget.peopleSelected, 'emit');
const peopleHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('input');
peopleHTMLElement.focus();
peopleHTMLElement.value = 'Test01 Test01';
peopleHTMLElement.dispatchEvent(new Event('keyup'));
@@ -61,7 +61,7 @@ export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
}),
distinctUntilChanged(),
switchMap((searchTerm) => {
let value = searchTerm.email ? this.getDisplayName(searchTerm) : searchTerm;
const value = searchTerm.email ? this.getDisplayName(searchTerm) : searchTerm;
return this.formService.getWorkflowUsers(value, this.groupId)
.pipe(
catchError((err) => {
@@ -71,7 +71,7 @@ export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
);
}),
map((list: UserProcessModel[]) => {
let value = this.searchTerm.value.email ? this.getDisplayName(this.searchTerm.value) : this.searchTerm.value;
const value = this.searchTerm.value.email ? this.getDisplayName(this.searchTerm.value) : this.searchTerm.value;
this.checkUserAndValidateForm(list, value);
return list;
})
@@ -90,9 +90,9 @@ export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
if (this.field.readOnly) {
this.searchTerm.disable();
}
let params = this.field.params;
const params = this.field.params;
if (params && params.restrictWithGroup) {
let restrictWithGroup = <GroupModel> params.restrictWithGroup;
const restrictWithGroup = <GroupModel> params.restrictWithGroup;
this.groupId = restrictWithGroup.id;
}
}
@@ -125,7 +125,7 @@ export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
getDisplayName(model: UserProcessModel) {
if (model) {
let displayName = `${model.firstName || ''} ${model.lastName || ''}`;
const displayName = `${model.firstName || ''} ${model.lastName || ''}`;
return displayName.trim();
}
return '';
@@ -50,7 +50,7 @@ describe('RadioButtonsWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -71,7 +71,7 @@ describe('RadioButtonsWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -79,7 +79,7 @@ describe('RadioButtonsWidgetComponent', () => {
id: fieldId,
restUrl: '<url>'
});
let field = widget.field;
const field = widget.field;
spyOn(field, 'updateForm').and.stub();
spyOn(formService, 'getRestFieldValues').and.returnValue(new Observable((observer) => {
@@ -94,7 +94,7 @@ describe('RadioButtonsWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -107,7 +107,7 @@ describe('RadioButtonsWidgetComponent', () => {
observer.complete();
}));
let field = widget.field;
const field = widget.field;
widget.field = null;
widget.ngOnInit();
expect(formService.getRestFieldValues).not.toHaveBeenCalled();
@@ -134,7 +134,7 @@ describe('RadioButtonsWidgetComponent', () => {
let fixture: ComponentFixture<RadioButtonsWidgetComponent>;
let element: HTMLElement;
let stubFormService: FormService;
let restOption: FormFieldOption[] = [{ id: 'opt-1', name: 'opt-name-1' }, {
const restOption: FormFieldOption[] = [{ id: 'opt-1', name: 'opt-name-1' }, {
id: 'opt-2',
name: 'opt-name-2'
}];
@@ -161,7 +161,7 @@ describe('RadioButtonsWidgetComponent', () => {
restUrl: 'rest-url'
});
radioButtonWidget.field.isVisible = true;
let fakeContainer = new ContainerModel(radioButtonWidget.field);
const fakeContainer = new ContainerModel(radioButtonWidget.field);
radioButtonWidget.field.form.fields.push(fakeContainer);
fixture.detectChanges();
}));
@@ -175,7 +175,7 @@ describe('RadioButtonsWidgetComponent', () => {
}));
it('should trigger field changed event on click', async(() => {
let option: HTMLElement = <HTMLElement> element.querySelector('#radio-id-opt-1-input');
const option: HTMLElement = <HTMLElement> element.querySelector('#radio-id-opt-1-input');
expect(element.querySelector('#radio-id')).not.toBeNull();
expect(option).not.toBeNull();
option.click();
@@ -56,7 +56,7 @@ describe('TabsWidgetComponent', () => {
});
it('should emit tab changed event', (done) => {
let field = new FormFieldModel(null);
const field = new FormFieldModel(null);
widget.formTabChanged.subscribe((tab) => {
expect(tab).toBe(field);
done();
@@ -65,7 +65,7 @@ describe('TabsWidgetComponent', () => {
});
it('should remove invisible tabs', () => {
let fakeTab = new TabModel(null, { id: 'fake-tab-id', title: 'fake-tab-title' });
const fakeTab = new TabModel(null, { id: 'fake-tab-id', title: 'fake-tab-title' });
fakeTab.isVisible = false;
widget.tabs.push(fakeTab);
widget.ngAfterContentChecked();
@@ -74,7 +74,7 @@ describe('TabsWidgetComponent', () => {
});
it('should leave visible tabs', () => {
let fakeTab = new TabModel(null, { id: 'fake-tab-id', title: 'fake-tab-title' });
const fakeTab = new TabModel(null, { id: 'fake-tab-id', title: 'fake-tab-title' });
fakeTab.isVisible = true;
widget.tabs.push(fakeTab);
widget.ngAfterContentChecked();
@@ -101,8 +101,8 @@ export class InputMaskDirective implements OnChanges, ControlValueAccessor {
private maskValue(actualValue, startCaret, maskToApply, isMaskReversed, keyCode) {
if (this.byPassKeys.indexOf(keyCode) === -1) {
let value = this.getMasked(false, actualValue, maskToApply, isMaskReversed);
let calculatedCaret = this.calculateCaretPosition(startCaret, actualValue, keyCode);
const value = this.getMasked(false, actualValue, maskToApply, isMaskReversed);
const calculatedCaret = this.calculateCaretPosition(startCaret, actualValue, keyCode);
this.render.setAttribute(this.el.nativeElement, 'value', value);
this.el.nativeElement.value = value;
this.setValue(value);
@@ -117,9 +117,9 @@ export class InputMaskDirective implements OnChanges, ControlValueAccessor {
}
calculateCaretPosition(caretPosition, newValue, keyCode) {
let newValueLength = newValue.length;
let oldValue = this.getValue() || '';
let oldValueLength = oldValue.length;
const newValueLength = newValue.length;
const oldValue = this.getValue() || '';
const oldValueLength = oldValue.length;
if (keyCode === 8 && oldValue !== newValue) {
caretPosition = caretPosition - (newValue.slice(0, caretPosition).length - oldValue.slice(0, caretPosition).length);
@@ -134,18 +134,18 @@ export class InputMaskDirective implements OnChanges, ControlValueAccessor {
}
getMasked(skipMaskChars, val, mask, isReversed = false) {
let buf = [],
value = val,
maskIndex = 0,
maskLen = mask.length,
valueIndex = 0,
valueLength = value.length,
offset = 1,
addMethod = 'push',
resetPos = -1,
lastMaskChar,
lastUntranslatedMaskChar,
check;
const buf = [];
const value = val;
let maskIndex = 0;
const maskLen = mask.length;
let valueIndex = 0;
const valueLength = value.length;
let offset = 1;
let addMethod = 'push';
let resetPos = -1;
let lastMaskChar;
let lastUntranslatedMaskChar;
let check;
if (isReversed) {
addMethod = 'unshift';
@@ -158,7 +158,7 @@ export class InputMaskDirective implements OnChanges, ControlValueAccessor {
}
check = this.isToCheck(isReversed, maskIndex, maskLen, valueIndex, valueLength);
while (check) {
let maskDigit = mask.charAt(maskIndex),
const maskDigit = mask.charAt(maskIndex),
valDigit = value.charAt(valueIndex),
translation = this.translationMask[maskDigit];
@@ -203,7 +203,7 @@ export class InputMaskDirective implements OnChanges, ControlValueAccessor {
check = this.isToCheck(isReversed, maskIndex, maskLen, valueIndex, valueLength);
}
let lastMaskCharDigit = mask.charAt(lastMaskChar);
const lastMaskCharDigit = mask.charAt(lastMaskChar);
if (maskLen === valueLength + 1 && !this.translationMask[lastMaskCharDigit]) {
buf.push(lastMaskCharDigit);
}
@@ -151,7 +151,7 @@ describe('TextWidgetComponent', () => {
inputElement.value = 'F';
widget.field.value = 'F';
let event: any = new Event('keyup');
const event: any = new Event('keyup');
event.keyCode = '70';
inputElement.dispatchEvent(event);
fixture.detectChanges();
@@ -183,13 +183,13 @@ describe('TextWidgetComponent', () => {
inputElement.value = '1';
widget.field.value = '1';
let event: any = new Event('keyup');
const event: any = new Event('keyup');
event.keyCode = '49';
inputElement.dispatchEvent(event);
fixture.whenStable().then(() => {
fixture.detectChanges();
let textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
const textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
expect(textEle.value).toBe('1');
});
}));
@@ -199,13 +199,13 @@ describe('TextWidgetComponent', () => {
inputElement.value = '12345678';
widget.field.value = '12345678';
let event: any = new Event('keyup');
const event: any = new Event('keyup');
event.keyCode = '49';
inputElement.dispatchEvent(event);
fixture.whenStable().then(() => {
fixture.detectChanges();
let textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
const textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
expect(textEle.value).toBe('12-345,67%');
});
}));
@@ -239,13 +239,13 @@ describe('TextWidgetComponent', () => {
inputElement.value = '1234';
widget.field.value = '1234';
let event: any = new Event('keyup');
const event: any = new Event('keyup');
event.keyCode = '49';
inputElement.dispatchEvent(event);
fixture.whenStable().then(() => {
fixture.detectChanges();
let textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
const textEle: HTMLInputElement = <HTMLInputElement> element.querySelector('#text-id');
expect(textEle.value).toBe('12,34%');
});
}));
@@ -58,7 +58,7 @@ describe('TypeaheadWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -79,7 +79,7 @@ describe('TypeaheadWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -96,7 +96,7 @@ describe('TypeaheadWidgetComponent', () => {
const taskId = '<form-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
taskId: taskId
});
@@ -118,7 +118,7 @@ describe('TypeaheadWidgetComponent', () => {
const processDefinitionId = '<process-id>';
const fieldId = '<field-id>';
let form = new FormModel({
const form = new FormModel({
processDefinitionId: processDefinitionId
});
@@ -170,7 +170,7 @@ describe('TypeaheadWidgetComponent', () => {
});
it('should setup field options on load', () => {
let options: FormFieldOption[] = [
const options: FormFieldOption[] = [
{ id: '1', name: 'One' },
{ id: '2', name: 'Two' }
];
@@ -197,27 +197,27 @@ describe('TypeaheadWidgetComponent', () => {
});
it('should get filtered options', () => {
let options: FormFieldOption[] = [
const options: FormFieldOption[] = [
{ id: '1', name: 'Item one' },
{ id: '2', name: 'Item two' }
];
widget.field.options = options;
widget.value = 'tw';
let filtered = widget.getOptions();
const filtered = widget.getOptions();
expect(filtered.length).toBe(1);
expect(filtered[0]).toEqual(options[1]);
});
it('should be case insensitive when filtering options', () => {
let options: FormFieldOption[] = [
const options: FormFieldOption[] = [
{ id: '1', name: 'Item one' },
{ id: '2', name: 'iTEM TWo' }
];
widget.field.options = options;
widget.value = 'tW';
let filtered = widget.getOptions();
const filtered = widget.getOptions();
expect(filtered.length).toBe(1);
expect(filtered[0]).toEqual(options[1]);
});
@@ -227,7 +227,7 @@ describe('TypeaheadWidgetComponent', () => {
let fixture: ComponentFixture<TypeaheadWidgetComponent>;
let element: HTMLElement;
let stubFormService;
let fakeOptionList: FormFieldOption[] = [{
const fakeOptionList: FormFieldOption[] = [{
id: '1',
name: 'Fake Name 1 '
}, {
@@ -259,7 +259,7 @@ describe('TypeaheadWidgetComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
let readonlyInput: HTMLInputElement = <HTMLInputElement> element.querySelector('#typeahead-id');
const readonlyInput: HTMLInputElement = <HTMLInputElement> element.querySelector('#typeahead-id');
expect(readonlyInput.disabled).toBeTruthy();
expect(readonlyInput).not.toBeNull();
expect(readonlyInput.value).toBe('FakeProcessValue');
@@ -294,8 +294,8 @@ describe('TypeaheadWidgetComponent', () => {
}));
it('should show typeahead options', async(() => {
let typeaheadElement = fixture.debugElement.query(By.css('#typeahead-id'));
let typeaheadHTMLElement: HTMLInputElement = <HTMLInputElement> typeaheadElement.nativeElement;
const typeaheadElement = fixture.debugElement.query(By.css('#typeahead-id'));
const typeaheadHTMLElement: HTMLInputElement = <HTMLInputElement> typeaheadElement.nativeElement;
typeaheadHTMLElement.focus();
typeaheadWidgetComponent.value = 'F';
typeaheadHTMLElement.value = 'F';
@@ -311,8 +311,8 @@ describe('TypeaheadWidgetComponent', () => {
}));
it('should hide the option when the value is empty', async(() => {
let typeaheadElement = fixture.debugElement.query(By.css('#typeahead-id'));
let typeaheadHTMLElement: HTMLInputElement = <HTMLInputElement> typeaheadElement.nativeElement;
const typeaheadElement = fixture.debugElement.query(By.css('#typeahead-id'));
const typeaheadHTMLElement: HTMLInputElement = <HTMLInputElement> typeaheadElement.nativeElement;
typeaheadHTMLElement.focus();
typeaheadWidgetComponent.value = 'F';
typeaheadHTMLElement.value = 'F';
@@ -339,7 +339,7 @@ describe('TypeaheadWidgetComponent', () => {
typeaheadWidgetComponent.field.value = 'Fake Name';
typeaheadWidgetComponent.field.options = fakeOptionList;
expect(element.querySelector('.adf-error-text')).toBeNull();
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
typeaheadWidgetComponent.onKeyUp(keyboardEvent);
fixture.detectChanges();
fixture.whenStable().then(() => {
@@ -372,7 +372,7 @@ describe('TypeaheadWidgetComponent', () => {
}));
it('should show typeahead options', async(() => {
let keyboardEvent = new KeyboardEvent('keypress');
const keyboardEvent = new KeyboardEvent('keypress');
typeaheadWidgetComponent.value = 'F';
typeaheadWidgetComponent.onKeyUp(keyboardEvent);
fixture.detectChanges();
@@ -62,12 +62,12 @@ export class TypeaheadWidgetComponent extends WidgetComponent implements OnInit
)
.subscribe(
(formFieldOption: FormFieldOption[]) => {
let options = formFieldOption || [];
const options = formFieldOption || [];
this.field.options = options;
let fieldValue = this.field.value;
const fieldValue = this.field.value;
if (fieldValue) {
let toSelect = options.find((item) => item.id === fieldValue || item.name.toLocaleLowerCase() === fieldValue.toLocaleLowerCase());
const toSelect = options.find((item) => item.id === fieldValue || item.name.toLocaleLowerCase() === fieldValue.toLocaleLowerCase());
if (toSelect) {
this.value = toSelect.name;
}
@@ -87,12 +87,12 @@ export class TypeaheadWidgetComponent extends WidgetComponent implements OnInit
)
.subscribe(
(formFieldOption: FormFieldOption[]) => {
let options = formFieldOption || [];
const options = formFieldOption || [];
this.field.options = options;
let fieldValue = this.field.value;
const fieldValue = this.field.value;
if (fieldValue) {
let toSelect = options.find((item) => item.id === fieldValue);
const toSelect = options.find((item) => item.id === fieldValue);
if (toSelect) {
this.value = toSelect.name;
}
@@ -105,15 +105,15 @@ export class TypeaheadWidgetComponent extends WidgetComponent implements OnInit
}
getOptions(): FormFieldOption[] {
let val = this.value.trim().toLocaleLowerCase();
const val = this.value.trim().toLocaleLowerCase();
return this.field.options.filter((item) => {
let name = item.name.toLocaleLowerCase();
const name = item.name.toLocaleLowerCase();
return name.indexOf(val) > -1;
});
}
isValidOptionName(optionName: string): boolean {
let option = this.field.options.find((item) => item.name && item.name.toLocaleLowerCase() === optionName.toLocaleLowerCase());
const option = this.field.options.find((item) => item.name && item.name.toLocaleLowerCase() === optionName.toLocaleLowerCase());
return option ? true : false;
}
@@ -67,7 +67,7 @@ export class UploadFolderWidgetComponent extends WidgetComponent implements OnIn
}
onFileChanged(event: any) {
let files = event.target.files;
const files = event.target.files;
let filesSaved = [];
if (this.field.json.value) {
@@ -112,7 +112,7 @@ export class UploadFolderWidgetComponent extends WidgetComponent implements OnIn
}
private removeElementFromList(file) {
let index = this.field.value.indexOf(file);
const index = this.field.value.indexOf(file);
if (index !== -1) {
this.field.value.splice(index, 1);
@@ -29,7 +29,7 @@ import { setupTestBed } from '../../../../testing/setupTestBed';
import { CoreModule } from '../../../../core.module';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
let fakePngAnswer = {
const fakePngAnswer = {
'id': 1155,
'name': 'a_png_file.png',
'created': '2017-07-25T17:17:37.099Z',
@@ -43,7 +43,7 @@ let fakePngAnswer = {
'thumbnailStatus': 'queued'
};
let fakeJpgAnswer = {
const fakeJpgAnswer = {
'id': 1156,
'name': 'a_jpg_file.jpg',
'created': '2017-07-25T17:17:37.118Z',
@@ -77,8 +77,8 @@ describe('UploadWidgetComponent', () => {
let contentService: ProcessContentService;
let filePngFake = new File(['fakePng'], 'file-fake.png', { type: 'image/png' });
let filJpgFake = new File(['fakeJpg'], 'file-fake.jpg', { type: 'image/jpg' });
const filePngFake = new File(['fakePng'], 'file-fake.png', { type: 'image/png' });
const filJpgFake = new File(['fakeJpg'], 'file-fake.jpg', { type: 'image/jpg' });
setupTestBed({
imports: [
@@ -193,10 +193,10 @@ describe('UploadWidgetComponent', () => {
uploadWidgetComponent.field.params.multiple = false;
fixture.detectChanges();
let inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
const inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
inputDebugElement.triggerEventHandler('change', { target: { files: [filJpgFake] } });
let filesList = fixture.debugElement.query(By.css('#file-1156'));
const filesList = fixture.debugElement.query(By.css('#file-1156'));
expect(filesList).toBeDefined();
}));
@@ -216,12 +216,12 @@ describe('UploadWidgetComponent', () => {
spyOn(uploadWidgetComponent.field, 'updateForm');
fixture.detectChanges();
let inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
const inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
inputDebugElement.triggerEventHandler('change', { target: { files: [filePngFake, filJpgFake] } });
fixture.whenStable().then(() => {
fixture.detectChanges();
let deleteButton = <HTMLInputElement> element.querySelector('#file-1155-remove');
const deleteButton = <HTMLInputElement> element.querySelector('#file-1155-remove');
deleteButton.click();
expect(uploadWidgetComponent.field.updateForm).toHaveBeenCalled();
@@ -242,7 +242,7 @@ describe('UploadWidgetComponent', () => {
uploadWidgetComponent.field.params.multiple = true;
fixture.detectChanges();
let inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
const inputDebugElement = fixture.debugElement.query(By.css('#upload-id'));
inputDebugElement.triggerEventHandler('change', { target: { files: [filePngFake, filJpgFake] } });
fixture.whenStable().then(() => {
@@ -266,8 +266,8 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-1156');
let pngElement = element.querySelector('#file-1155');
const jpegElement = element.querySelector('#file-1156');
const pngElement = element.querySelector('#file-1155');
expect(jpegElement).not.toBeNull();
expect(pngElement).not.toBeNull();
expect(jpegElement.textContent).toBe('a_jpg_file.jpg');
@@ -281,20 +281,20 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-10');
const jpegElement = element.querySelector('#file-10');
expect(jpegElement).not.toBeNull();
expect(jpegElement.textContent).toBe(`±!@#$%^&*()_+{}:”|<>?§™£-=[];\\,./.jpg`);
});
}));
it('should show correctly the file name when is formed with Arabic characters', async(() => {
let name = 'غ ظ ض ذ خ ث ت ش ر ق ص ف ع س ن م ل ك ي ط ح ز و ه د ج ب ا.jpg';
const name = 'غ ظ ض ذ خ ث ت ش ر ق ص ف ع س ن م ل ك ي ط ح ز و ه د ج ب ا.jpg';
uploadWidgetComponent.field.value.push(fakeCreationFile(name, 11));
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-11');
const jpegElement = element.querySelector('#file-11');
expect(jpegElement).not.toBeNull();
expect(jpegElement.textContent).toBe('غ ظ ض ذ خ ث ت ش ر ق ص ف ع س ن م ل ك ي ط ح ز و ه د ج ب ا.jpg');
});
@@ -308,7 +308,7 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-12');
const jpegElement = element.querySelector('#file-12');
expect(jpegElement).not.toBeNull();
// cspell: disable-next
expect(jpegElement.textContent).toBe('Àâæçéèêëïîôœùûüÿ.jpg');
@@ -323,7 +323,7 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-13');
const jpegElement = element.querySelector('#file-13');
expect(jpegElement).not.toBeNull();
// cspell: disable-next
expect(jpegElement.textContent).toBe('άέήίϊϊΐόύϋΰώθωερτψυιοπασδφγηςκλζχξωβνμ.jpg');
@@ -336,7 +336,7 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-14');
const jpegElement = element.querySelector('#file-14');
expect(jpegElement).not.toBeNull();
expect(jpegElement.textContent).toBe('Ą Ć Ę Ł Ń Ó Ś Ź Żą ć ę ł ń ó ś ź ż.jpg');
});
@@ -348,7 +348,7 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-15');
const jpegElement = element.querySelector('#file-15');
expect(jpegElement).not.toBeNull();
expect(jpegElement.textContent).toBe('á, é, í, ó, ú, ñ, Ñ, ü, Ü, ¿, ¡. Á, É, Í, Ó, Ú.jpg');
});
@@ -361,7 +361,7 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let jpegElement = element.querySelector('#file-16');
const jpegElement = element.querySelector('#file-16');
expect(jpegElement).not.toBeNull();
// cspell: disable-next
expect(jpegElement.textContent).toBe('Äåéö.jpg');
@@ -376,10 +376,10 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let buttonElement = <HTMLButtonElement> element.querySelector('#file-1156-remove');
const buttonElement = <HTMLButtonElement> element.querySelector('#file-1156-remove');
buttonElement.click();
fixture.detectChanges();
let jpegElement = element.querySelector('#file-1156');
const jpegElement = element.querySelector('#file-1156');
expect(jpegElement).toBeNull();
expect(uploadWidgetComponent.field.value.length).toBe(1);
});
@@ -402,7 +402,7 @@ describe('UploadWidgetComponent', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let fileJpegIcon = debugElement.query(By.css('#file-1156-icon'));
const fileJpegIcon = debugElement.query(By.css('#file-1156-icon'));
fileJpegIcon.nativeElement.dispatchEvent(new MouseEvent('click'));
});
@@ -67,7 +67,7 @@ export class UploadWidgetComponent extends WidgetComponent implements OnInit {
}
onFileChanged(event: any) {
let files = event.target.files;
const files = event.target.files;
let filesSaved = [];
if (this.field.json.value) {
@@ -109,7 +109,7 @@ export class UploadWidgetComponent extends WidgetComponent implements OnInit {
}
private removeElementFromList(file) {
let index = this.field.value.indexOf(file);
const index = this.field.value.indexOf(file);
if (index !== -1) {
this.field.value.splice(index, 1);
@@ -64,8 +64,8 @@ describe('WidgetComponent', () => {
});
it('should send an event after view init', (done) => {
let fakeForm = new FormModel();
let fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
const fakeForm = new FormModel();
const fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
widget.field = fakeField;
widget.fieldChanged.subscribe((field) => {
@@ -79,8 +79,8 @@ describe('WidgetComponent', () => {
});
it('should send an event when a field is changed', (done) => {
let fakeForm = new FormModel();
let fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
const fakeForm = new FormModel();
const fakeField = new FormFieldModel(fakeForm, {id: 'fakeField', value: 'fakeValue'});
widget.fieldChanged.subscribe((field) => {
expect(field).not.toBe(null);
expect(field.id).toBe('fakeField');
@@ -62,11 +62,11 @@ export class FormDefinitionModel extends FormSaveRepresentation {
}
private metadataToFields(metadata: any): any[] {
let fields = [];
const fields = [];
if (metadata) {
metadata.forEach(function(property) {
if (property) {
let field = {
const field = {
type: 'text',
id: property.name,
name: property.name,
@@ -43,8 +43,8 @@ export class ActivitiContentService {
* @param folderId
*/
getAlfrescoNodes(accountId: string, folderId: string): Observable<[ExternalContent]> {
let apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
let accountShortId = accountId.replace('alfresco-', '');
const apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const accountShortId = accountId.replace('alfresco-', '');
return from(apiService.activiti.alfrescoApi.getContentInFolder(accountShortId, folderId))
.pipe(
map(this.toJsonArray),
@@ -59,7 +59,7 @@ export class ActivitiContentService {
* @param folderId
*/
getAlfrescoRepositories(tenantId: number, includeAccount: boolean): Observable<any> {
let apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const opts = {
tenantId: tenantId,
includeAccounts: includeAccount
@@ -94,7 +94,7 @@ export class ActivitiContentService {
}
applyAlfrescoNode(node: MinimalNode, siteId: string, accountId: string) {
let apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const currentSideId = siteId ? siteId : this.getSiteNameFromNodePath(node);
const params: RelatedContentRepresentation = {
source: accountId,
@@ -63,7 +63,7 @@ describe('EcmModelService', () => {
it('Should fetch ECM types', (done) => {
let modelName = 'modelTest';
const modelName = 'modelTest';
service.getEcmType(modelName).subscribe(() => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + modelName + '/types')).toBeTruthy();
@@ -79,7 +79,7 @@ describe('EcmModelService', () => {
it('Should create ECM types', (done) => {
let typeName = 'typeTest';
const typeName = 'typeTest';
service.createEcmType(typeName, EcmModelService.MODEL_NAME, EcmModelService.TYPE_MODEL).subscribe(() => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + EcmModelService.MODEL_NAME + '/types')).toBeTruthy();
@@ -98,8 +98,8 @@ describe('EcmModelService', () => {
it('Should create ECM types with a clean and preserve real name in the title', (done) => {
let typeName = 'typeTest:testName@#$*!';
let cleanName = 'testName';
const typeName = 'typeTest:testName@#$*!';
const cleanName = 'testName';
service.createEcmType(typeName, EcmModelService.MODEL_NAME, EcmModelService.TYPE_MODEL).subscribe(() => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + EcmModelService.MODEL_NAME + '/types')).toBeTruthy();
@@ -118,8 +118,8 @@ describe('EcmModelService', () => {
it('Should add property to a type', (done) => {
let typeName = 'typeTest';
let formFields = {
const typeName = 'typeTest';
const formFields = {
values: {
test: 'test',
test2: 'test2'
@@ -157,9 +157,9 @@ describe('EcmModelService', () => {
it('Should add property to a type and clean name type', (done) => {
let typeName = 'typeTest:testName@#$*!';
let cleanName = 'testName';
let formFields = {
const typeName = 'typeTest:testName@#$*!';
const cleanName = 'testName';
const formFields = {
values: {
test: 'test',
test2: 'test2'
+4 -4
View File
@@ -160,7 +160,7 @@ export class EcmModelService {
}
public createEcmType(typeName: string, modelName: string, parentType: string): Observable<any> {
let name = this.cleanNameType(typeName);
const name = this.cleanNameType(typeName);
return from(this.apiService.getInstance().core.customModelApi.createCustomType(modelName, name, parentType, typeName, ''))
.pipe(
@@ -170,11 +170,11 @@ export class EcmModelService {
}
public addPropertyToAType(modelName: string, typeName: string, formFields: any) {
let name = this.cleanNameType(typeName);
const name = this.cleanNameType(typeName);
let properties = [];
const properties = [];
if (formFields && formFields.values) {
for (let key in formFields.values) {
for (const key in formFields.values) {
if (key) {
properties.push({
name: key,
@@ -33,37 +33,37 @@ describe('FormRenderingService', () => {
});
it('should resolve Upload field as Upload widget', () => {
let field = new FormFieldModel(null, {
const field = new FormFieldModel(null, {
type: FormFieldTypes.UPLOAD,
params: {
link: null
}
});
let type = service.resolveComponentType(field);
const type = service.resolveComponentType(field);
expect(type).toBe(UploadWidgetComponent);
});
it('should resolve Upload widget for Upload field', () => {
let resolver = service.getComponentTypeResolver(FormFieldTypes.UPLOAD);
let type = resolver(null);
const resolver = service.getComponentTypeResolver(FormFieldTypes.UPLOAD);
const type = resolver(null);
expect(type).toBe(UploadWidgetComponent);
});
it('should resolve Unknown widget for unknown field type', () => {
let resolver = service.getComponentTypeResolver('missing-type');
let type = resolver(null);
const resolver = service.getComponentTypeResolver('missing-type');
const type = resolver(null);
expect(type).toBe(UnknownWidgetComponent);
});
it('should fallback to default resolver when field type missing', () => {
let resolver = service.getComponentTypeResolver(null);
let type = resolver(null);
const resolver = service.getComponentTypeResolver(null);
const type = resolver(null);
expect(type).toBe(UnknownWidgetComponent);
});
it('should fallback to custom resolver when field type missing', () => {
let resolver = service.getComponentTypeResolver(null, UploadWidgetComponent);
let type = resolver(null);
const resolver = service.getComponentTypeResolver(null, UploadWidgetComponent);
const type = resolver(null);
expect(type).toBe(UploadWidgetComponent);
});
@@ -96,13 +96,13 @@ describe('FormRenderingService', () => {
});
it('should override existing resolver with explicit flag', () => {
let customResolver = DynamicComponentResolver.fromType(UnknownWidgetComponent);
const customResolver = DynamicComponentResolver.fromType(UnknownWidgetComponent);
service.setComponentTypeResolver(FormFieldTypes.TEXT, customResolver, true);
expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver);
});
it('should override existing resolver without explicit flag', () => {
let customResolver = DynamicComponentResolver.fromType(UnknownWidgetComponent);
const customResolver = DynamicComponentResolver.fromType(UnknownWidgetComponent);
service.setComponentTypeResolver(FormFieldTypes.TEXT, customResolver);
expect(service.getComponentTypeResolver(FormFieldTypes.TEXT)).toBe(customResolver);
});
+12 -12
View File
@@ -26,7 +26,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
declare let jasmine: any;
let fakeGroupResponse = {
const fakeGroupResponse = {
'size': 2,
'total': 2,
'start': 0,
@@ -39,7 +39,7 @@ let fakeGroupResponse = {
}, { 'id': 2005, 'name': 'PEOPLE_GROUP_2', 'externalId': null, 'status': 'active', 'groups': null }]
};
let fakePeopleResponse = {
const fakePeopleResponse = {
'size': 3,
'total': 3,
'start': 0,
@@ -78,19 +78,19 @@ describe('Form service', () => {
describe('Content tests', () => {
let responseBody = {
const responseBody = {
data: [
{ id: '1' },
{ id: '2' }
]
};
let values = {
const values = {
field1: 'one',
field2: 'two'
};
let simpleResponseBody = { id: 1, modelType: 'test' };
const simpleResponseBody = { id: 1, modelType: 'test' };
it('should fetch and parse process definitions', (done) => {
service.getProcessDefinitions().subscribe((result) => {
@@ -211,7 +211,7 @@ describe('Form service', () => {
it('should get form definition id by name', (done) => {
const formName = 'form1';
const formId = 1;
let response = {
const response = {
data: [
{ id: formId }
]
@@ -232,7 +232,7 @@ describe('Form service', () => {
it('should get start form definition by process definition id', (done) => {
let processApiSpy = jasmine.createSpyObj(['getProcessDefinitionStartForm']);
const processApiSpy = jasmine.createSpyObj(['getProcessDefinitionStartForm']);
spyOn(apiService, 'getInstance').and.returnValue({
activiti: {
processApi: processApiSpy
@@ -327,7 +327,7 @@ describe('Form service', () => {
});
it('should search for Form with modelType=2', (done) => {
let response = { data: [{ id: 1, name: 'findMe' }, { id: 2, name: 'testForm' }] };
const response = { data: [{ id: 1, name: 'findMe' }, { id: 2, name: 'testForm' }] };
service.searchFrom('findMe').subscribe((result) => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('models?modelType=2')).toBeTruthy();
@@ -360,7 +360,7 @@ describe('Form service', () => {
it('should return list of people', (done) => {
spyOn(service, 'getUserProfileImageApi').and.returnValue('/app/rest/users/2002/picture');
let fakeFilter: string = 'whatever';
const fakeFilter: string = 'whatever';
service.getWorkflowUsers(fakeFilter).subscribe((result) => {
expect(result).toBeDefined();
@@ -378,7 +378,7 @@ describe('Form service', () => {
});
it('should return list of groups', (done) => {
let fakeFilter: string = 'whatever';
const fakeFilter: string = 'whatever';
service.getWorkflowGroups(fakeFilter).subscribe((result) => {
expect(result).toBeDefined();
@@ -403,9 +403,9 @@ describe('Form service', () => {
it('should create a Form form a Node', (done) => {
let nameForm = 'testNode';
const nameForm = 'testNode';
let formId = 100;
const formId = 100;
stubCreateForm();
+10 -10
View File
@@ -102,7 +102,7 @@ export class FormService {
*/
parseForm(json: any, data?: FormValues, readOnly: boolean = false): FormModel {
if (json) {
let form = new FormModel(json, data, readOnly, this);
const form = new FormModel(json, data, readOnly, this);
if (!json.fields) {
form.outcomes = [
new FormOutcomeModel(form, {
@@ -128,7 +128,7 @@ export class FormService {
(form) => {
this.ecmModelService.searchEcmType(formName, EcmModelService.MODEL_NAME).subscribe(
(customType) => {
let formDefinitionModel = new FormDefinitionModel(form.id, form.name, form.lastUpdatedByFullName, form.lastUpdated, customType.entry.properties);
const formDefinitionModel = new FormDefinitionModel(form.id, form.name, form.lastUpdatedByFullName, form.lastUpdated, customType.entry.properties);
from(
this.editorApi.saveForm(form.id, formDefinitionModel)
).subscribe((formData) => {
@@ -148,7 +148,7 @@ export class FormService {
* @returns The new form
*/
createForm(formName: string): Observable<any> {
let dataModel = {
const dataModel = {
name: formName,
description: '',
modelType: 2,
@@ -178,7 +178,7 @@ export class FormService {
* @returns Form model(s) matching the search name
*/
searchFrom(name: string): Observable<any> {
let opts = {
const opts = {
'modelType': 2
};
@@ -198,7 +198,7 @@ export class FormService {
* @returns List of form models
*/
getForms(): Observable<any> {
let opts = {
const opts = {
'modelType': 2
};
@@ -266,7 +266,7 @@ export class FormService {
* @returns Null response when the operation is complete
*/
saveTaskForm(taskId: string, formValues: FormValues): Observable<any> {
let saveFormRepresentation = <SaveFormRepresentation> { values: formValues };
const saveFormRepresentation = <SaveFormRepresentation> { values: formValues };
return from(this.taskApi.saveTaskForm(taskId, saveFormRepresentation))
.pipe(
@@ -282,7 +282,7 @@ export class FormService {
* @returns Null response when the operation is complete
*/
completeTaskForm(taskId: string, formValues: FormValues, outcome?: string): Observable<any> {
let completeFormRepresentation: any = <CompleteFormRepresentation> { values: formValues };
const completeFormRepresentation: any = <CompleteFormRepresentation> { values: formValues };
if (outcome) {
completeFormRepresentation.outcome = outcome;
}
@@ -325,7 +325,7 @@ export class FormService {
* @returns Form definition
*/
getFormDefinitionByName(name: string): Observable<any> {
let opts = {
const opts = {
'filter': 'myReusableForms',
'filterText': name,
'modelType': 2
@@ -447,7 +447,7 @@ export class FormService {
* @returns Array of users
*/
getWorkflowUsers(filter: string, groupId?: string): Observable<UserProcessModel[]> {
let option: any = { filter: filter };
const option: any = { filter: filter };
if (groupId) {
option.groupId = groupId;
}
@@ -471,7 +471,7 @@ export class FormService {
* @returns Array of groups
*/
getWorkflowGroups(filter: string, groupId?: string): Observable<GroupModel[]> {
let option: any = { filter: filter };
const option: any = { filter: filter };
if (groupId) {
option.groupId = groupId;
}
+8 -8
View File
@@ -54,7 +54,7 @@ describe('NodeService', () => {
});
it('Should fetch and node metadata', (done) => {
let responseBody = {
const responseBody = {
entry: {
id: '111-222-33-44-1123',
nodeType: 'typeTest',
@@ -67,7 +67,7 @@ describe('NodeService', () => {
service.getNodeMetadata('-nodeid-').subscribe((result) => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('nodes/-nodeid-')).toBeTruthy();
let node = new NodeMetadata({
const node = new NodeMetadata({
test: 'test',
testdata: 'testdata'
}, 'typeTest');
@@ -83,7 +83,7 @@ describe('NodeService', () => {
});
it('Should clean the metadata from :', (done) => {
let responseBody = {
const responseBody = {
entry: {
id: '111-222-33-44-1123',
nodeType: 'typeTest',
@@ -96,7 +96,7 @@ describe('NodeService', () => {
service.getNodeMetadata('-nodeid-').subscribe((result) => {
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('nodes/-nodeid-')).toBeTruthy();
let node = new NodeMetadata({
const node = new NodeMetadata({
test: 'test',
testdata: 'testdata'
}, 'typeTest');
@@ -112,12 +112,12 @@ describe('NodeService', () => {
});
it('Should create a node with metadata', (done) => {
let data = {
const data = {
test: 'test',
testdata: 'testdata'
};
let responseBody = {
const responseBody = {
id: 'a74d91fb-ea8a-4812-ad98-ad878366b5be',
isFile: false,
isFolder: true
@@ -136,7 +136,7 @@ describe('NodeService', () => {
});
it('Should add activitiForms suffix to the metadata properties', (done) => {
let data = {
const data = {
test: 'test',
testdata: 'testdata'
};
@@ -156,7 +156,7 @@ describe('NodeService', () => {
});
it('Should assign an UUID to the name when name not passed', (done) => {
let data = {
const data = {
test: 'test',
testdata: 'testdata'
};
+7 -7
View File
@@ -50,8 +50,8 @@ export class NodeService {
* @returns The created node
*/
public createNodeMetadata(nodeType: string, nameSpace: any, data: any, path: string, name?: string): Observable<NodeEntry> {
let properties = {};
for (let key in data) {
const properties = {};
for (const key in data) {
if (data[key]) {
properties[nameSpace + ':' + key] = data[key];
}
@@ -69,29 +69,29 @@ export class NodeService {
* @returns The created node
*/
public createNode(name: string, nodeType: string, properties: any, path: string): Observable<NodeEntry> {
let body = {
const body = {
name: name,
nodeType: nodeType,
properties: properties,
relativePath: path
};
let apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
const apiService: AlfrescoApiCompatibility = this.apiService.getInstance();
return from(apiService.nodes.addNode('-root-', body, {}));
}
private generateUuid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
let r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
private cleanMetadataFromSemicolon(nodeEntry: NodeEntry): NodeMetadata {
let metadata = {};
const metadata = {};
if (nodeEntry && nodeEntry.entry.properties) {
for (let key in nodeEntry.entry.properties) {
for (const key in nodeEntry.entry.properties) {
if (key) {
if (key.indexOf(':') !== -1) {
metadata [key.split(':')[1]] = nodeEntry.entry.properties[key];
@@ -26,7 +26,7 @@ import { AlfrescoApiServiceMock } from '../../mock/alfresco-api.service.mock';
declare let jasmine: any;
let fileContentPdfResponseBody = {
const fileContentPdfResponseBody = {
id: 999,
name: 'fake-name.pdf',
created: '2017-01-23T12:12:53.219+0000',
@@ -40,7 +40,7 @@ let fileContentPdfResponseBody = {
thumbnailStatus: 'created'
};
let fileContentJpgResponseBody = {
const fileContentJpgResponseBody = {
id: 888,
name: 'fake-name.jpg',
created: '2017-01-23T12:12:53.219+0000',
@@ -55,9 +55,9 @@ let fileContentJpgResponseBody = {
};
function createFakeBlob() {
let data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==';
const data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==';
let bytes = new Uint8Array(data.length / 2);
const bytes = new Uint8Array(data.length / 2);
for (let i = 0; i < data.length; i += 2) {
bytes[i / 2] = parseInt(data.substring(i, i + 2), /* base = */ 16);
@@ -144,7 +144,7 @@ describe('ProcessContentService', () => {
});
it('should return the unsupported content when the file is an image', (done) => {
let contentId: number = 888;
const contentId: number = 888;
service.getFileContent(contentId).subscribe((result) => {
expect(result.id).toEqual(contentId);
@@ -162,7 +162,7 @@ describe('ProcessContentService', () => {
});
it('should return the supported content when the file is a pdf', (done) => {
let contentId: number = 999;
const contentId: number = 999;
service.getFileContent(contentId).subscribe((result) => {
expect(result.id).toEqual(contentId);
@@ -180,14 +180,14 @@ describe('ProcessContentService', () => {
});
it('should return the raw content URL', () => {
let contentId: number = 999;
let contentUrl = service.getFileRawContentUrl(contentId);
const contentId: number = 999;
const contentUrl = service.getFileRawContentUrl(contentId);
expect(contentUrl).toContain(`/api/enterprise/content/${contentId}/raw`);
});
it('should return a Blob as thumbnail', (done) => {
let contentId: number = 999;
let blob = createFakeBlob();
const contentId: number = 999;
const blob = createFakeBlob();
spyOn(service, 'getContentThumbnail').and.returnValue(of(blob));
service.getContentThumbnail(contentId).subscribe((result) => {
expect(result).toEqual(jasmine.any(Blob));
@@ -38,7 +38,7 @@ describe('WidgetVisibilityService', () => {
let service: WidgetVisibilityService;
let booleanResult: boolean;
let stubFormWithFields = new FormModel(fakeFormJson);
const stubFormWithFields = new FormModel(fakeFormJson);
setupTestBed({
imports: [
@@ -186,9 +186,9 @@ describe('WidgetVisibilityService', () => {
});
describe('should retrieve the process variables', () => {
let fakeFormWithField = new FormModel(fakeFormJson);
const fakeFormWithField = new FormModel(fakeFormJson);
let visibilityObjTest: WidgetVisibilityModel;
let chainedVisibilityObj = new WidgetVisibilityModel();
const chainedVisibilityObj = new WidgetVisibilityModel();
beforeEach(() => {
visibilityObjTest = new WidgetVisibilityModel();
@@ -216,7 +216,7 @@ describe('WidgetVisibilityService', () => {
service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => {
expect(res).toBeDefined();
let varValue = service.getVariableValue(formTest, 'TEST_VAR_1', res);
const varValue = service.getVariableValue(formTest, 'TEST_VAR_1', res);
expect(varValue).not.toBeUndefined();
expect(varValue).toBe('test_value_1');
done();
@@ -232,7 +232,7 @@ describe('WidgetVisibilityService', () => {
it('should return undefined if the variable does not exist', (done) => {
service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => {
let varValue = service.getVariableValue(formTest, 'TEST_MYSTERY_VAR', res);
const varValue = service.getVariableValue(formTest, 'TEST_MYSTERY_VAR', res);
expect(varValue).toBeUndefined();
done();
}
@@ -248,7 +248,7 @@ describe('WidgetVisibilityService', () => {
service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => {
visibilityObjTest.rightRestResponseId = 'TEST_VAR_2';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).not.toBeNull();
expect(rightValue).toBe('test_value_2');
@@ -266,7 +266,7 @@ describe('WidgetVisibilityService', () => {
service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => {
visibilityObjTest.leftRestResponseId = 'TEST_VAR_2';
let rightValue = service.getLeftValue(formTest, visibilityObjTest);
const rightValue = service.getLeftValue(formTest, visibilityObjTest);
expect(rightValue).not.toBeNull();
expect(rightValue).toBe('test_value_2');
@@ -286,7 +286,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightRestResponseId = 'TEST_VAR_2';
let isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
const isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
expect(isVisible).toBeTruthy();
done();
@@ -310,7 +310,7 @@ describe('WidgetVisibilityService', () => {
chainedVisibilityObj.operator = '!empty';
visibilityObjTest.nextCondition = chainedVisibilityObj;
let isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
const isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
expect(isVisible).toBeTruthy();
done();
@@ -337,13 +337,13 @@ describe('WidgetVisibilityService', () => {
describe('should return the value of the field', () => {
let visibilityObjTest: WidgetVisibilityModel;
let fakeFormWithField = new FormModel(fakeFormJson);
let jsonFieldFake = {
const fakeFormWithField = new FormModel(fakeFormJson);
const jsonFieldFake = {
id: 'FAKE_FORM_FIELD_ID',
value: 'FAKE_FORM_FIELD_VALUE',
visibilityCondition: undefined
};
let fakeForm = new FormModel({
const fakeForm = new FormModel({
variables: [
{
name: 'FORM_VARIABLE_TEST',
@@ -363,28 +363,28 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to retrieve a field value searching in the form', () => {
let formValue = service.searchValueInForm(stubFormWithFields, 'FIELD_WITH_CONDITION');
const formValue = service.searchValueInForm(stubFormWithFields, 'FIELD_WITH_CONDITION');
expect(formValue).not.toBeNull();
expect(formValue).toBe('field_with_condition_value');
});
it('should return empty string if the field value is not in the form', () => {
let formValue = service.searchValueInForm(stubFormWithFields, 'FIELD_MYSTERY');
const formValue = service.searchValueInForm(stubFormWithFields, 'FIELD_MYSTERY');
expect(formValue).not.toBeUndefined();
expect(formValue).toBe('');
});
it('should search in the form if element value is not in form values', () => {
let value = service.getFormValue(fakeFormWithField, 'FIELD_WITH_CONDITION');
const value = service.getFormValue(fakeFormWithField, 'FIELD_WITH_CONDITION');
expect(value).not.toBeNull();
expect(value).toBe('field_with_condition_value');
});
it('should return empty string if the element is not present anywhere', () => {
let formValue = service.getFormValue(fakeFormWithField, 'FIELD_MYSTERY');
const formValue = service.getFormValue(fakeFormWithField, 'FIELD_MYSTERY');
expect(formValue).not.toBeUndefined();
expect(formValue).toBe('');
@@ -392,35 +392,35 @@ describe('WidgetVisibilityService', () => {
it('should retrieve the value for the right field when it is a value', () => {
visibilityObjTest.rightValue = '100';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).toBe('100');
});
it('should return formatted date when right value is a date', () => {
visibilityObjTest.rightValue = '9999-12-31';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).toBe('9999-12-31T00:00:00.000Z');
});
it('should return the value when right value is not a date', () => {
visibilityObjTest.rightValue = '9999-99-99';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).toBe('9999-99-99');
});
it('should retrieve the value for the right field when it is a form variable', () => {
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest);
const rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest);
expect(rightValue).not.toBeNull();
expect(rightValue).toBe('RIGHT_FORM_FIELD_VALUE');
});
it('should take the value from form values if it is present', () => {
let formValue = service.getFormValue(formTest, 'test_1');
const formValue = service.getFormValue(formTest, 'test_1');
expect(formValue).not.toBeNull();
expect(formValue).toBe('value_1');
@@ -428,7 +428,7 @@ describe('WidgetVisibilityService', () => {
it('should retrieve right value from form values if it is present', () => {
visibilityObjTest.rightFormFieldId = 'test_2';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).not.toBeNull();
expect(formTest.values).toEqual(formValues);
@@ -437,7 +437,7 @@ describe('WidgetVisibilityService', () => {
it('should retrieve the value for the left field when it is a form value', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_WITH_CONDITION';
let leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest);
const leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest);
expect(leftValue).not.toBeNull();
expect(leftValue).toBe('field_with_condition_value');
@@ -445,14 +445,14 @@ describe('WidgetVisibilityService', () => {
it('should retrieve left value from form values if it is present', () => {
visibilityObjTest.leftFormFieldId = 'test_2';
let leftValue = service.getLeftValue(formTest, visibilityObjTest);
const leftValue = service.getLeftValue(formTest, visibilityObjTest);
expect(leftValue).not.toBeNull();
expect(leftValue).toBe('value_2');
});
it('should return an empty string for a value that is not on variable or form', () => {
let leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest);
const leftValue = service.getLeftValue(fakeFormWithField, visibilityObjTest);
expect(leftValue).toBe('');
});
@@ -461,7 +461,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'test_1';
visibilityObjTest.operator = '==';
visibilityObjTest.rightFormFieldId = 'test_3';
let isVisible = service.isFieldVisible(formTest, visibilityObjTest);
const isVisible = service.isFieldVisible(formTest, visibilityObjTest);
expect(isVisible).toBeTruthy();
});
@@ -470,14 +470,14 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'test_1';
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'value_1';
let isVisible = service.isFieldVisible(formTest, visibilityObjTest);
const isVisible = service.isFieldVisible(formTest, visibilityObjTest);
expect(isVisible).toBeTruthy();
});
it('should return empty string for a value that is not on variable or form', () => {
visibilityObjTest.rightFormFieldId = 'NO_FIELD_FORM';
let rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest);
const rightValue = service.getRightValue(fakeFormWithField, visibilityObjTest);
expect(rightValue).not.toBeUndefined();
expect(rightValue).toBe('');
@@ -487,7 +487,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'LEFT_FORM_FIELD_ID';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
const isVisible = service.isFieldVisible(fakeFormWithField, visibilityObjTest);
expect(isVisible).toBeTruthy();
});
@@ -496,7 +496,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'test_1';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'test_3';
let fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
const fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
service.refreshEntityVisibility(fakeFormField);
expect(fakeFormField.isVisible).toBeFalsy();
@@ -506,14 +506,14 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = '';
visibilityObjTest.leftRestResponseId = '';
visibilityObjTest.operator = '!=';
let isVisible = service.evaluateVisibility(formTest, visibilityObjTest);
const isVisible = service.evaluateVisibility(formTest, visibilityObjTest);
expect(isVisible).toBeTruthy();
});
it('should return always true when field does not have a visibility condition', () => {
jsonFieldFake.visibilityCondition = null;
let fakeFormField: FormFieldModel = new FormFieldModel(fakeFormWithField, jsonFieldFake);
const fakeFormField: FormFieldModel = new FormFieldModel(fakeFormWithField, jsonFieldFake);
fakeFormField.isVisible = false;
service.refreshEntityVisibility(fakeFormField);
@@ -521,28 +521,28 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to retrieve the value of a form variable', () => {
let varValue = service.getVariableValue(fakeForm, 'FORM_VARIABLE_TEST', null);
const varValue = service.getVariableValue(fakeForm, 'FORM_VARIABLE_TEST', null);
expect(varValue).not.toBeUndefined();
expect(varValue).toBe('form_value_test');
});
it('should return undefined for not existing form variable', () => {
let varValue = service.getVariableValue(fakeForm, 'MYSTERY_FORM_VARIABLE', null);
const varValue = service.getVariableValue(fakeForm, 'MYSTERY_FORM_VARIABLE', null);
expect(varValue).toBeUndefined();
});
it('should retrieve the value for the left field when it is a form variable', () => {
visibilityObjTest.leftRestResponseId = 'FORM_VARIABLE_TEST';
let leftValue = service.getLeftValue(fakeForm, visibilityObjTest);
const leftValue = service.getLeftValue(fakeForm, visibilityObjTest);
expect(leftValue).not.toBeNull();
expect(leftValue).toBe('form_value_test');
});
it('should determine visibility for dropdown on label condition', () => {
let dropdownValue = service.getFieldValue(formTest.values, 'dropdown_LABEL');
const dropdownValue = service.getFieldValue(formTest.values, 'dropdown_LABEL');
expect(dropdownValue).not.toBeNull();
expect(dropdownValue).toBeDefined();
@@ -550,7 +550,7 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to get the value for a dropdown filtered with Label', () => {
let dropdownValue = service.getFieldValue(formTest.values, 'dropdown_LABEL');
const dropdownValue = service.getFieldValue(formTest.values, 'dropdown_LABEL');
expect(dropdownValue).not.toBeNull();
expect(dropdownValue).toBeDefined();
@@ -558,7 +558,7 @@ describe('WidgetVisibilityService', () => {
});
it('should be able to get the value for a standard field', () => {
let dropdownValue = service.getFieldValue(formTest.values, 'test_2');
const dropdownValue = service.getFieldValue(formTest.values, 'test_2');
expect(dropdownValue).not.toBeNull();
expect(dropdownValue).toBeDefined();
@@ -566,7 +566,7 @@ describe('WidgetVisibilityService', () => {
});
it('should get the dropdown label value from a form', () => {
let dropdownValue = service.getFormValue(formTest, 'dropdown_LABEL');
const dropdownValue = service.getFormValue(formTest, 'dropdown_LABEL');
expect(dropdownValue).not.toBeNull();
expect(dropdownValue).toBeDefined();
@@ -574,7 +574,7 @@ describe('WidgetVisibilityService', () => {
});
it('should get the dropdown id value from a form', () => {
let dropdownValue = service.getFormValue(formTest, 'dropdown');
const dropdownValue = service.getFormValue(formTest, 'dropdown');
expect(dropdownValue).not.toBeNull();
expect(dropdownValue).toBeDefined();
@@ -583,7 +583,7 @@ describe('WidgetVisibilityService', () => {
it('should retrieve the value for the right field when it is a dropdown id', () => {
visibilityObjTest.rightFormFieldId = 'dropdown';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).toBeDefined();
expect(rightValue).toBe('dropdown_id');
@@ -591,7 +591,7 @@ describe('WidgetVisibilityService', () => {
it('should retrieve the value for the right field when it is a dropdown label', () => {
visibilityObjTest.rightFormFieldId = 'dropdown_LABEL';
let rightValue = service.getRightValue(formTest, visibilityObjTest);
const rightValue = service.getRightValue(formTest, visibilityObjTest);
expect(rightValue).toBeDefined();
expect(rightValue).toBe('dropdown_label');
@@ -601,7 +601,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'test_5';
visibilityObjTest.operator = '==';
visibilityObjTest.rightFormFieldId = 'dropdown_LABEL';
let fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
const fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
service.refreshEntityVisibility(fakeFormField);
expect(fakeFormField.isVisible).toBeTruthy();
@@ -611,14 +611,14 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'test_4';
visibilityObjTest.operator = '==';
visibilityObjTest.rightFormFieldId = 'dropdown';
let fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
const fakeFormField: FormFieldModel = new FormFieldModel(formTest, jsonFieldFake);
service.refreshEntityVisibility(fakeFormField);
expect(fakeFormField.isVisible).toBeTruthy();
});
it('should be able to get value from form values', () => {
let res = service.getFormValue(formTest, 'test_1');
const res = service.getFormValue(formTest, 'test_1');
expect(res).not.toBeNull();
expect(res).toBeDefined();
@@ -630,9 +630,9 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let container = <ContainerModel> fakeFormWithField.fields[0];
let column0 = container.field.columns[0];
let column1 = container.field.columns[1];
const container = <ContainerModel> fakeFormWithField.fields[0];
const column0 = container.field.columns[0];
const column1 = container.field.columns[1];
column0.fields[0].visibilityCondition = visibilityObjTest;
service.refreshVisibility(fakeFormWithField);
@@ -647,7 +647,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
const tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
tab.visibilityCondition = visibilityObjTest;
fakeFormWithField.tabs.push(tab);
service.refreshVisibility(fakeFormWithField);
@@ -659,7 +659,7 @@ describe('WidgetVisibilityService', () => {
service.getTaskProcessVariable('9999').subscribe(
(res: TaskProcessVariableModel[]) => {
expect(res).toBeDefined();
let varValue = service.getVariableValue(formTest, 'FIELD_FORM_EMPTY', res);
const varValue = service.getVariableValue(formTest, 'FIELD_FORM_EMPTY', res);
expect(varValue).not.toBeUndefined();
expect(varValue).toBe('PROCESS_RIGHT_FORM_FIELD_VALUE');
@@ -667,7 +667,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'RIGHT_FORM_FIELD_VALUE';
let myForm = new FormModel({
const myForm = new FormModel({
id: '9999',
name: 'FORM_PROCESS_VARIABLE_VISIBILITY',
processDefinitionId: 'PROCESS_TEST:9:9999',
@@ -733,7 +733,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'PROCESS_RIGHT_FORM_FIELD_VALUE';
let myForm = new FormModel({
const myForm = new FormModel({
id: '9999',
name: 'FORM_PROCESS_VARIABLE_VISIBILITY',
processDefinitionId: 'PROCESS_TEST:9:9999',
@@ -799,7 +799,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.operator = '==';
visibilityObjTest.rightValue = 'RIGHT_FORM_FIELD_VALUE';
let myForm = new FormModel({
const myForm = new FormModel({
id: '9999',
name: 'FORM_PROCESS_VARIABLE_VISIBILITY',
processDefinitionId: 'PROCESS_TEST:9:9999',
@@ -859,7 +859,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
const tab = new TabModel(fakeFormWithField, { id: 'fake-tab-id', title: 'fake-tab-title', isVisible: true });
tab.visibilityCondition = visibilityObjTest;
service.refreshEntityVisibility(tab);
@@ -870,7 +870,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '==';
visibilityObjTest.rightFormFieldId = 'LEFT_FORM_FIELD_ID';
let contModel = new ContainerModel(new FormFieldModel(fakeFormWithField, {
const contModel = new ContainerModel(new FormFieldModel(fakeFormWithField, {
id: 'fake-container-id',
type: FormFieldTypes.GROUP,
name: 'fake-container-name',
@@ -887,7 +887,7 @@ describe('WidgetVisibilityService', () => {
visibilityObjTest.leftFormFieldId = 'FIELD_TEST';
visibilityObjTest.operator = '!=';
visibilityObjTest.rightFormFieldId = 'RIGHT_FORM_FIELD_ID';
let contModel = new ContainerModel(new FormFieldModel(fakeFormWithField, {
const contModel = new ContainerModel(new FormFieldModel(fakeFormWithField, {
id: 'fake-container-id',
type: FormFieldTypes.GROUP,
name: 'fake-container-name',
@@ -47,12 +47,12 @@ export class WidgetVisibilityService {
}
refreshEntityVisibility(element: FormFieldModel | TabModel) {
let visible = this.evaluateVisibility(element.form, element.visibilityCondition);
const visible = this.evaluateVisibility(element.form, element.visibilityCondition);
element.isVisible = visible;
}
evaluateVisibility(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
let isLeftFieldPresent = visibilityObj && ( visibilityObj.leftFormFieldId || visibilityObj.leftRestResponseId );
const isLeftFieldPresent = visibilityObj && ( visibilityObj.leftFormFieldId || visibilityObj.leftRestResponseId );
if (!isLeftFieldPresent || isLeftFieldPresent === 'null') {
return true;
} else {
@@ -61,9 +61,9 @@ export class WidgetVisibilityService {
}
isFieldVisible(form: FormModel, visibilityObj: WidgetVisibilityModel): boolean {
let leftValue = this.getLeftValue(form, visibilityObj);
let rightValue = this.getRightValue(form, visibilityObj);
let actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
const leftValue = this.getLeftValue(form, visibilityObj);
const rightValue = this.getRightValue(form, visibilityObj);
const actualResult = this.evaluateCondition(leftValue, rightValue, visibilityObj.operator);
if (visibilityObj.nextCondition) {
return this.evaluateLogicalOperation(
visibilityObj.nextConditionOperator,
@@ -150,7 +150,7 @@ export class WidgetVisibilityService {
if (field.value && field.value.name) {
value = field.value.name;
} else if (field.options) {
let option = field.options.find((opt) => opt.id === field.value);
const option = field.options.find((opt) => opt.id === field.value);
if (option) {
value = this.getValueFromOption(fieldId, option);
}
@@ -169,7 +169,7 @@ export class WidgetVisibilityService {
}
private isSearchedField(field: FormFieldModel, fieldToFind: string): boolean {
let formattedFieldName = this.removeLabel(field, fieldToFind);
const formattedFieldName = this.removeLabel(field, fieldToFind);
return field.id ? field.id.toUpperCase() === formattedFieldName.toUpperCase() : false;
}
@@ -188,14 +188,14 @@ export class WidgetVisibilityService {
private getFormVariableValue(form: FormModel, name: string) {
if (form.json.variables) {
let formVariable = form.json.variables.find((formVar) => formVar.name === name);
const formVariable = form.json.variables.find((formVar) => formVar.name === name);
return formVariable ? formVariable.value : formVariable;
}
}
private getProcessVariableValue(name: string, processVarList: TaskProcessVariableModel[]) {
if (this.processVarList) {
let processVariable = this.processVarList.find((variable) => variable.id === name);
const processVariable = this.processVarList.find((variable) => variable.id === name);
return processVariable ? processVariable.value : processVariable;
}
}
@@ -249,7 +249,7 @@ export class WidgetVisibilityService {
return from(this.apiService.getInstance().activiti.taskFormsApi.getTaskFormVariables(taskId))
.pipe(
map((res) => {
let jsonRes = this.toJson(res);
const jsonRes = this.toJson(res);
this.processVarList = <TaskProcessVariableModel[]> jsonRes;
return jsonRes;
}),
@@ -47,13 +47,13 @@ describe('InfoDrawerComponent', () => {
});
it('should define InfoDrawerTabLayout', () => {
let infoDrawerTabLayout = element.querySelector('adf-info-drawer-layout');
const infoDrawerTabLayout = element.querySelector('adf-info-drawer-layout');
expect(infoDrawerTabLayout).toBeDefined();
});
it('should emit when tab is changed', () => {
let tabEmitSpy = spyOn(component.currentTab, 'emit');
let event = {index: 1, tab: {textLabel: 'DETAILS'}};
const tabEmitSpy = spyOn(component.currentTab, 'emit');
const event = {index: 1, tab: {textLabel: 'DETAILS'}};
component.onTabChange(<MatTabChangeEvent> event);
expect(tabEmitSpy).toHaveBeenCalledWith(1);
});
@@ -61,7 +61,7 @@ describe('InfoDrawerComponent', () => {
it('should render the title', () => {
component.title = 'FakeTitle';
fixture.detectChanges();
let title: any = fixture.debugElement.queryAll(By.css('[info-drawer-title]'));
const title: any = fixture.debugElement.queryAll(By.css('[info-drawer-title]'));
expect(title.length).toBe(1);
expect(title[0].nativeElement.innerText).toBe('FakeTitle');
});
@@ -106,14 +106,14 @@ describe('Custom InfoDrawer', () => {
it('should render the title', () => {
fixture.detectChanges();
let title: any = fixture.debugElement.queryAll(By.css('[info-drawer-title]'));
const title: any = fixture.debugElement.queryAll(By.css('[info-drawer-title]'));
expect(title.length).toBe(1);
expect(title[0].nativeElement.innerText).toBe('Fake Title Custom');
});
it('should select the tab 1 (index 0) as default', () => {
fixture.detectChanges();
let tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
const tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
expect(tab.length).toBe(1);
expect(tab[0].nativeElement.innerText).toContain('Tab1');
});
@@ -121,7 +121,7 @@ describe('Custom InfoDrawer', () => {
it('should select the tab 2 (index 1)', () => {
component.tabIndex = 1;
fixture.detectChanges();
let tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
const tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
expect(tab.length).toBe(1);
expect(tab[0].nativeElement.innerText).toContain('Tab2');
});
@@ -129,7 +129,7 @@ describe('Custom InfoDrawer', () => {
it('should render a tab with icon', () => {
component.tabIndex = 2;
fixture.detectChanges();
let tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
const tab: any = fixture.debugElement.queryAll(By.css('.mat-tab-label-active'));
expect(tab[0].nativeElement.innerText).not.toBe('Tab3');
expect(tab[0].nativeElement.innerText).toContain('tab-icon');
});
@@ -49,8 +49,8 @@ describe('LoginComponent', () => {
};
const getLoginErrorMessage = () => {
let errorMessage = undefined;
let errorElement = element.querySelector('#login-error .adf-login-error-message');
const errorMessage = undefined;
const errorElement = element.querySelector('#login-error .adf-login-error-message');
if (errorElement) {
return errorElement.innerText;
+4 -4
View File
@@ -150,7 +150,7 @@ export class LoginComponent implements OnInit {
ngOnInit() {
if (this.authService.isOauth()) {
let oauth: OauthConfigModel = this.appConfig.get<OauthConfigModel>(AppConfigValues.OAUTHCONFIG, null);
const oauth: OauthConfigModel = this.appConfig.get<OauthConfigModel>(AppConfigValues.OAUTHCONFIG, null);
if (oauth && oauth.implicitFlow) {
this.implicitFlow = true;
}
@@ -220,15 +220,15 @@ export class LoginComponent implements OnInit {
*/
onValueChanged(data: any) {
this.disableError();
for (let field in this.formError) {
for (const field in this.formError) {
if (field) {
this.formError[field] = '';
let hasError =
const hasError =
(this.form.controls[field].errors && data[field] !== '') ||
(this.form.controls[field].dirty &&
!this.form.controls[field].valid);
if (hasError) {
for (let key in this.form.controls[field].errors) {
for (const key in this.form.controls[field].errors) {
if (key) {
const message = this._message[field][key];
if (message && message.value) {
+2 -2
View File
@@ -18,14 +18,14 @@
export class EventMock {
static keyDown(key: any) {
let event: any = document.createEvent('Event');
const event: any = document.createEvent('Event');
event.keyCode = key;
event.initEvent('keydown');
document.dispatchEvent(event);
}
static keyUp(key: any) {
let event: any = document.createEvent('Event');
const event: any = document.createEvent('Event');
event.keyCode = key;
event.initEvent('keyup');
document.dispatchEvent(event);
@@ -36,7 +36,7 @@ class TestPaginatedComponent implements PaginatedComponent {
get pagination(): BehaviorSubject<PaginationModel> {
if (!this._pagination) {
let defaultPagination = <PaginationModel> {
const defaultPagination = <PaginationModel> {
maxItems: 10,
skipCount: 0,
totalItems: 0,
@@ -90,7 +90,7 @@ describe('InfinitePaginationComponent', () => {
component.target = null;
changeDetectorRef.detectChanges();
let loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
const loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
expect(loadingSpinner).not.toBeNull();
});
@@ -100,7 +100,7 @@ describe('InfinitePaginationComponent', () => {
component.isLoading = false;
changeDetectorRef.detectChanges();
let loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
const loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
expect(loadingSpinner).toBeNull();
});
@@ -110,7 +110,7 @@ describe('InfinitePaginationComponent', () => {
component.isLoading = false;
changeDetectorRef.detectChanges();
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
expect(loadMoreButton).not.toBeNull();
});
@@ -124,7 +124,7 @@ describe('InfinitePaginationComponent', () => {
component.onLoadMore();
fixture.whenStable().then(() => {
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
expect(loadMoreButton).toBeNull();
done();
});
@@ -138,7 +138,7 @@ describe('InfinitePaginationComponent', () => {
changeDetectorRef.detectChanges();
fixture.whenStable().then(() => {
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
expect(loadMoreButton).not.toBeNull();
done();
});
@@ -149,9 +149,9 @@ describe('InfinitePaginationComponent', () => {
component.target.updatePagination(pagination);
changeDetectorRef.detectChanges();
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
expect(loadMoreButton).toBeNull();
let loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
const loadingSpinner = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-spinner"]'));
expect(loadingSpinner).toBeNull();
});
@@ -169,7 +169,7 @@ describe('InfinitePaginationComponent', () => {
done();
});
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
loadMoreButton.triggerEventHandler('click', {});
});
@@ -187,7 +187,7 @@ describe('InfinitePaginationComponent', () => {
done();
});
let loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
const loadMoreButton = fixture.debugElement.query(By.css('[data-automation-id="adf-infinite-pagination-button"]'));
loadMoreButton.triggerEventHandler('click', {});
});
});
@@ -245,7 +245,7 @@ describe('InfinitePaginationComponent', () => {
fixture.destroy();
const emitNewPaginationEvent = () => {
let newPagination = { maxItems: 1, skipCount: 0, totalItems: 2, hasMoreItems: true };
const newPagination = { maxItems: 1, skipCount: 0, totalItems: 2, hasMoreItems: true };
component.target.pagination.next(newPagination);
};
+7 -7
View File
@@ -26,40 +26,40 @@ describe('FormatSpacePipe', () => {
});
it('should replace the white space with an underscore by default', () => {
let result = pipe.transform('FAKE TEST');
const result = pipe.transform('FAKE TEST');
expect(result).toBe('fake_test');
});
it('should replace all the white spaces with an underscore by default', () => {
let result = pipe.transform('FAKE TEST CHECK ');
const result = pipe.transform('FAKE TEST CHECK ');
expect(result).toBe('fake_test_check');
});
it('should trim the space at the end of the string and replace the ones in the middle', () => {
let result = pipe.transform(' FAKE TEST CHECK ');
const result = pipe.transform(' FAKE TEST CHECK ');
expect(result).toBe('fake_test_check');
});
it('should return a lower case string by default', () => {
const testString = 'FAKE_TEST_LOWERCASE';
let result = pipe.transform(testString);
const result = pipe.transform(testString);
expect(result).toBe(testString.toLocaleLowerCase());
});
it('should replace the empty space with the character given', () => {
const testString = 'FAKE TEST LOWERCASE';
let result = pipe.transform(testString, '+');
const result = pipe.transform(testString, '+');
expect(result).toBe('fake+test+lowercase');
});
it('should leave the string uppercase if explicitly set', () => {
const testString = 'FAKE TEST LOWERCASE';
let result = pipe.transform(testString, '-', false);
const result = pipe.transform(testString, '-', false);
expect(result).toBe('FAKE-TEST-LOWERCASE');
});
it('should return an empty string when input is null', () => {
let result = pipe.transform(null);
const result = pipe.transform(null);
expect(result).toBe('');
});
});
@@ -48,7 +48,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(`${nodeTitle}\n${nodeDescription}`);
});
@@ -58,7 +58,7 @@ describe('NodeNameTooltipPipe', () => {
name: nodeName
}
};
let tooltip = pipe.transform(<NodeEntry> node);
const tooltip = pipe.transform(<NodeEntry> node);
expect(tooltip).toBe(nodeName);
});
@@ -69,7 +69,7 @@ describe('NodeNameTooltipPipe', () => {
properties: {}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(nodeName);
});
@@ -83,7 +83,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(`${nodeName}\n${nodeDescription}`);
});
@@ -97,7 +97,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(`${nodeName}\n${nodeTitle}`);
});
@@ -111,7 +111,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(nodeName);
});
@@ -125,7 +125,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(nodeName);
});
@@ -139,7 +139,7 @@ describe('NodeNameTooltipPipe', () => {
}
}
};
let tooltip = pipe.transform(node);
const tooltip = pipe.transform(node);
expect(tooltip).toBe(nodeName);
});
});
+3 -3
View File
@@ -27,12 +27,12 @@ describe('TimeAgoPipe', () => {
}));
it('should return time difference for a given date', () => {
let date = new Date();
const date = new Date();
expect(pipe.transform(date)).toBe('a few seconds ago');
});
it('should return exact date if given date is more than seven days ', () => {
let date = new Date('1990-11-03T15:25:42.749');
const date = new Date('1990-11-03T15:25:42.749');
expect(pipe.transform(date)).toBe('03/11/1990 15:25');
});
@@ -44,7 +44,7 @@ describe('TimeAgoPipe', () => {
describe('When a locale is given', () => {
it('should return a localised message', async(() => {
let date = new Date();
const date = new Date();
const transformedDate = pipe.transform(date, 'de');
/* cspell:disable-next-line */
expect(transformedDate).toBe('vor ein paar Sekunden');

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