diff --git a/src/material/datepicker/datepicker-input-base.ts b/src/material/datepicker/datepicker-input-base.ts index e8065b7b1e71..ff4f8b910ad2 100644 --- a/src/material/datepicker/datepicker-input-base.ts +++ b/src/material/datepicker/datepicker-input-base.ts @@ -344,9 +344,8 @@ export abstract class MatDatepickerInputBase { + const adapter = fixture.debugElement.injector.get(DateAdapter); + const input = await loader.getHarness(datepickerInputHarness.with({selector: '#basic'})); + const validValues: any[] = [new Date(0), '', 0, false]; + const invalidValues: any[] = [null, undefined]; + spyOn(adapter, 'format').and.returnValue('FORMATTED_VALUE'); + spyOn(adapter, 'isValid').and.callFake(value => validValues.includes(value)); + spyOn(adapter, 'deserialize').and.callFake(value => + validValues.includes(value) ? value : null, + ); + spyOn(adapter, 'getValidDateOrNull').and.callFake(value => + adapter.isValid(value) ? value : null, + ); + + for (let value of validValues) { + fixture.componentInstance.date = value; + expect(await input.getValue()).toBe('FORMATTED_VALUE'); + } + + for (let value of invalidValues) { + fixture.componentInstance.date = value; + expect(await input.getValue()).toBe(''); + } + }); + it('should get the input placeholder', async () => { const inputs = await loader.getAllHarnesses(datepickerInputHarness); expect(