mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Added test for date component fix
This commit is contained in:
@@ -2,11 +2,13 @@
|
|||||||
<div class="mdl-cell mdl-cell--11-col">
|
<div class="mdl-cell mdl-cell--11-col">
|
||||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label date-widget"
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label date-widget"
|
||||||
[class.date-widget__invalid]="!field.isValid">
|
[class.date-widget__invalid]="!field.isValid">
|
||||||
<input class="mdl-textfield__input"
|
<input id="dateInput"
|
||||||
|
class="mdl-textfield__input"
|
||||||
type="text"
|
type="text"
|
||||||
[attr.id]="field.id"
|
[attr.id]="field.id"
|
||||||
[attr.required]="isRequired()"
|
[attr.required]="isRequired()"
|
||||||
[(ngModel)]="field.value"
|
[(ngModel)]="field.value"
|
||||||
|
[value]="field.value"
|
||||||
(ngModelChange)="onDateChanged()"
|
(ngModelChange)="onDateChanged()"
|
||||||
(onOk)="onDateSelected()"
|
(onOk)="onDateSelected()"
|
||||||
[disabled]="field.readOnly">
|
[disabled]="field.readOnly">
|
||||||
|
@@ -36,6 +36,8 @@ describe('DateWidget', () => {
|
|||||||
};
|
};
|
||||||
elementRef = new ElementRef(nativeElement);
|
elementRef = new ElementRef(nativeElement);
|
||||||
widget = new DateWidget(elementRef);
|
widget = new DateWidget(elementRef);
|
||||||
|
let componentHandler = jasmine.createSpyObj('componentHandler', ['upgradeAllRegistered', 'upgradeElement']);
|
||||||
|
window['componentHandler'] = componentHandler;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should setup basic date picker settings on init ', () => {
|
it('should setup basic date picker settings on init ', () => {
|
||||||
@@ -155,19 +157,36 @@ describe('DateWidget', () => {
|
|||||||
w.datePicker.time = moment();
|
w.datePicker.time = moment();
|
||||||
w.fieldChanged.subscribe((field) => {
|
w.fieldChanged.subscribe((field) => {
|
||||||
expect(field).toBeDefined();
|
expect(field).toBeDefined();
|
||||||
|
expect(field).not.toBeNull();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
w.onDateSelected();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should send field change event when date is changed in input text', (done) => {
|
||||||
|
let w = new DateWidget(null);
|
||||||
|
spyOn(w, 'setupMaterialTextField').and.callThrough();
|
||||||
|
w.field = new FormFieldModel(null, {type: 'date'});
|
||||||
|
w.ngOnInit();
|
||||||
|
w.datePicker.time = moment();
|
||||||
|
w.fieldChanged.subscribe((field) => {
|
||||||
|
expect(field).toBeDefined();
|
||||||
|
expect(field).not.toBeNull();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
w.onDateSelected();
|
w.onDateChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('template check', () => {
|
describe('template check', () => {
|
||||||
let dateWidget: DateWidget;
|
let dateWidget: DateWidget;
|
||||||
let fixture: ComponentFixture<DateWidget>;
|
let fixture: ComponentFixture<DateWidget>;
|
||||||
let element: HTMLElement;
|
let element: HTMLElement;
|
||||||
// let componentHandler;
|
let componentHandler;
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
|
componentHandler = jasmine.createSpyObj('componentHandler', ['upgradeAllRegistered', 'upgradeElement']);
|
||||||
|
window['componentHandler'] = componentHandler;
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [CoreModule],
|
imports: [CoreModule],
|
||||||
declarations: [DateWidget]
|
declarations: [DateWidget]
|
||||||
@@ -179,12 +198,16 @@ describe('DateWidget', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
spyOn(dateWidget, 'setupMaterialTextField').and.stub();
|
||||||
dateWidget.field = new FormFieldModel(new FormModel(), {
|
dateWidget.field = new FormFieldModel(new FormModel(), {
|
||||||
id: 'date-field-id',
|
id: 'date-field-id',
|
||||||
name: 'date-name',
|
name: 'date-name',
|
||||||
type: 'date'
|
value: '9-9-9999',
|
||||||
|
type: 'date',
|
||||||
|
readOnly: 'false'
|
||||||
});
|
});
|
||||||
dateWidget.field.isVisible = true;
|
dateWidget.field.isVisible = true;
|
||||||
|
fixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@@ -192,21 +215,53 @@ describe('DateWidget', () => {
|
|||||||
TestBed.resetTestingModule();
|
TestBed.resetTestingModule();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should show visible date widget', () => {
|
it('should show visible date widget', async(() => {
|
||||||
|
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');
|
||||||
|
expect(dateElement.value).toEqual('9-9-9999');
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should hide not visible date widget', async(() => {
|
||||||
|
dateWidget.field.isVisible = false;
|
||||||
|
fixture.detectChanges();
|
||||||
|
fixture.whenStable()
|
||||||
|
.then(() => {
|
||||||
|
fixture.detectChanges();
|
||||||
|
expect(element.querySelector('#date-field-id')).toBeNull();
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should become visibile if the visibility change to true', async(() => {
|
||||||
|
dateWidget.field.isVisible = false;
|
||||||
|
fixture.detectChanges();
|
||||||
|
dateWidget.fieldChanged.subscribe((field) => {
|
||||||
|
field.isVisible = true;
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
fixture.whenStable()
|
fixture.whenStable()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
expect(element.querySelector('#date-field-id')).toBeDefined();
|
expect(element.querySelector('#date-field-id')).toBeDefined();
|
||||||
|
expect(element.querySelector('#date-field-id')).not.toBeNull();
|
||||||
|
let dateElement: any = element.querySelector('#date-field-id');
|
||||||
|
expect(dateElement.value).toEqual('9-9-9999');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
dateWidget.checkVisibility(dateWidget.field);
|
||||||
|
}));
|
||||||
|
|
||||||
it('should hide not visible date widget', () => {
|
it('should be hided if the visibility change to false', async(() => {
|
||||||
dateWidget.field.isVisible = false;
|
dateWidget.fieldChanged.subscribe((field) => {
|
||||||
|
field.isVisible = false;
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
fixture.whenStable()
|
fixture.whenStable()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
expect(element.querySelector('#date-field-id')).toBeNull();
|
expect(element.querySelector('#date-field-id')).toBeNull();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
dateWidget.checkVisibility(dateWidget.field);
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user