#1113 - Fix for show values on completed form

This commit is contained in:
Vito Albano
2016-11-23 01:58:30 +00:00
committed by Mario Romano
parent 98f3cc25f8
commit 424511d1f6
15 changed files with 261 additions and 73 deletions

View File

@@ -18,15 +18,18 @@
import { DynamicTableWidget } from './dynamic-table.widget';
import { DynamicTableModel, DynamicTableRow, DynamicTableColumn } from './dynamic-table.widget.model';
import { FormModel, FormFieldTypes } from './../core/index';
import { WidgetVisibilityService } from '../../../services/widget-visibility.service';
describe('DynamicTableWidget', () => {
let widget: DynamicTableWidget;
let table: DynamicTableModel;
let visibilityService: WidgetVisibilityService;
beforeEach(() => {
table = new DynamicTableModel(null);
widget = new DynamicTableWidget(null);
visibilityService = new WidgetVisibilityService(null, null, null);
widget = new DynamicTableWidget(null, visibilityService);
widget.content = table;
});
@@ -92,8 +95,8 @@ describe('DynamicTableWidget', () => {
});
it('should move selection down', () => {
let row1 = <DynamicTableRow> { };
let row2 = <DynamicTableRow> { };
let row1 = <DynamicTableRow> {};
let row2 = <DynamicTableRow> {};
widget.content.rows.push(...[row1, row2]);
widget.content.selectedRow = row1;
@@ -248,5 +251,124 @@ describe('DynamicTableWidget', () => {
let actual = widget.getCellValue(row, column);
expect(actual).toBe('GBP 100');
});
/*
describe('when template is ready', () => {
let dynamicTableWidget: DynamicTableWidget;
let fixture: ComponentFixture<DynamicTableWidget>;
let element: HTMLElement;
let componentHandler;
let stubFormService;
beforeEach(async(() => {
componentHandler = jasmine.createSpyObj('componentHandler', ['upgradeAllRegistered', 'upgradeElement']);
window['componentHandler'] = componentHandler;
TestBed.configureTestingModule({
imports: [CoreModule],
declarations: [DynamicTableWidget],
providers: [EcmModelService]
}).compileComponents().then(() => {
fixture = TestBed.createComponent(DropdownEditorComponent);
dropDownEditorComponent = fixture.componentInstance;
element = fixture.nativeElement;
});
}));
afterEach(() => {
fixture.destroy();
TestBed.resetTestingModule();
});
describe('and dropdown is populated via taskId', () => {
beforeEach(async(() => {
stubFormService = fixture.debugElement.injector.get(FormService);
spyOn(stubFormService, 'getRestFieldValuesColumn').and.returnValue(Observable.of(fakeOptionList));
row = <DynamicTableRow> { value: { dropdown: 'one' } };
column = <DynamicTableColumn> {
id: 'column-id',
optionType: 'rest',
options: [
<DynamicTableColumnOption> { id: '1', name: 'one' },
<DynamicTableColumnOption> { id: '2', name: 'two' }
]
};
form = new FormModel({ taskId: '<task-id>' });
dynamicTable = new DynamicTableModel(form, null);
dynamicTable.field = new FormFieldModel(form, { id: '<field-id>' });
dynamicTable.rows.push(row);
dynamicTable.columns.push(column);
dropDownEditorComponent.table = dynamicTable;
dropDownEditorComponent.column = column;
dropDownEditorComponent.row = row;
dropDownEditorComponent.table.field = new FormFieldModel(form, {
id: 'dropdown-id',
name: 'date-name',
type: 'dropdown',
readOnly: 'false',
restUrl: 'fake-rest-url'
});
dropDownEditorComponent.table.field.isVisible = true;
fixture.detectChanges();
}));
it('should show visible dropdown widget', async(() => {
expect(element.querySelector('#column-id')).toBeDefined();
expect(element.querySelector('#column-id')).not.toBeNull();
expect(element.querySelector('#opt_1')).not.toBeNull();
expect(element.querySelector('#opt_2')).not.toBeNull();
expect(element.querySelector('#opt_3')).not.toBeNull();
}));
});
describe('and dropdown is populated via processDefinitionId', () => {
beforeEach(async(() => {
stubFormService = fixture.debugElement.injector.get(FormService);
spyOn(stubFormService, 'getRestFieldValuesColumnByProcessId').and.returnValue(Observable.of(fakeOptionList));
row = <DynamicTableRow> { value: { dropdown: 'one' } };
column = <DynamicTableColumn> {
id: 'column-id',
optionType: 'rest',
options: [
<DynamicTableColumnOption> { id: '1', name: 'one' },
<DynamicTableColumnOption> { id: '2', name: 'two' }
]
};
form = new FormModel({ processDefinitionId: '<proc-id>' });
dynamicTable = new DynamicTableModel(form, null);
dynamicTable.field = new FormFieldModel(form, { id: '<field-id>' });
dynamicTable.rows.push(row);
dynamicTable.columns.push(column);
dropDownEditorComponent.table = dynamicTable;
dropDownEditorComponent.column = column;
dropDownEditorComponent.row = row;
dropDownEditorComponent.table.field = new FormFieldModel(form, {
id: 'dropdown-id',
name: 'date-name',
type: 'dropdown',
readOnly: 'false',
restUrl: 'fake-rest-url'
});
dropDownEditorComponent.table.field.isVisible = true;
fixture.detectChanges();
}));
it('should show visible dropdown widget', async(() => {
expect(element.querySelector('#column-id')).toBeDefined();
expect(element.querySelector('#column-id')).not.toBeNull();
expect(element.querySelector('#opt_1')).not.toBeNull();
expect(element.querySelector('#opt_2')).not.toBeNull();
expect(element.querySelector('#opt_3')).not.toBeNull();
}));
it('should show visible dropdown widget', async(() => {
expect(element.querySelector('#column-id')).toBeDefined();
expect(element.querySelector('#column-id')).not.toBeNull();
expect(element.querySelector('#opt_1')).not.toBeNull();
expect(element.querySelector('#opt_2')).not.toBeNull();
expect(element.querySelector('#opt_3')).not.toBeNull();
}));
});
});*/
});