mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
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:
committed by
Eugenio Romano
parent
26c5982a1a
commit
a7a48e8b2b
@@ -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(() => {
|
||||
|
||||
+14
-14
@@ -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 });
|
||||
|
||||
+14
-14
@@ -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());
|
||||
|
||||
+5
-5
@@ -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();
|
||||
|
||||
+19
-19
@@ -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);
|
||||
});
|
||||
}));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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') : '';
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
+3
-3
@@ -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] = '';
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+5
-5
@@ -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'
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user