@@ -243,3 +243,168 @@ test('<TextField> - renders a input which correctly reacts on change (DatePicker
243243
244244 expect ( onChange ) . toHaveBeenLastCalledWith ( 'x' , date ) ;
245245} ) ;
246+
247+ test ( '<TextField> - renders a initial value on time field (TimePicker)' , ( ) => {
248+ const time = '10:00' ;
249+ const element = (
250+ < TextField required = { true } name = "x" label = "y" type = { 'time' } />
251+ ) ;
252+ const wrapper = mount (
253+ element ,
254+ createContext ( { x : { type : String } } , { model : { x : time } } )
255+ ) ;
256+
257+ expect ( wrapper . find ( 'TimePicker' ) ) . toHaveLength ( 1 ) ;
258+ expect ( wrapper . find ( 'TimePicker' ) . prop ( 'value' ) ) . toBe ( time ) ;
259+ } ) ;
260+
261+ test ( '<TextField> - renders a disabled date field (TimePicker)' , ( ) => {
262+ const element = (
263+ < TextField
264+ required = { true }
265+ name = "x"
266+ label = "y"
267+ type = { 'time' }
268+ disabled = { true }
269+ />
270+ ) ;
271+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
272+
273+ expect ( wrapper . find ( 'TimePicker' ) ) . toHaveLength ( 1 ) ;
274+ expect ( wrapper . find ( 'input' ) . prop ( 'disabled' ) ) . toBe ( true ) ;
275+ } ) ;
276+
277+ test ( '<TextField> - renders a input which correctly reacts on change (TimePicker)' , ( ) => {
278+ const onChange = jest . fn ( ) ;
279+
280+ const time = '10:10' ;
281+ const element = (
282+ < TextField required = { true } name = "x" label = "y" type = { 'time' } />
283+ ) ;
284+ const wrapper = mount (
285+ element ,
286+ createContext ( { x : { type : String } } , { onChange } )
287+ ) ;
288+
289+ act ( ( ) => {
290+ wrapper . find ( 'TimePicker' ) . find ( 'input' ) . prop ( 'onChange' ) ! ( {
291+ currentTarget : { value : time } ,
292+ } as any ) ;
293+ } ) ;
294+
295+ expect ( wrapper . find ( 'label' ) ) . toHaveLength ( 1 ) ;
296+ expect ( wrapper . find ( 'label' ) . text ( ) ) . toBe ( 'y *' ) ;
297+ expect ( onChange ) . toHaveBeenLastCalledWith ( 'x' , '10:10:00' ) ;
298+ } ) ;
299+
300+ test ( '<TextField> - renders a input which correctly reacts on change (TimePicker - empty)' , ( ) => {
301+ const onChange = jest . fn ( ) ;
302+
303+ const time = '' ;
304+ const element = (
305+ < TextField required = { true } name = "x" label = "y" type = { 'time' } />
306+ ) ;
307+ const wrapper = mount (
308+ element ,
309+ createContext ( { x : { type : String } } , { onChange } )
310+ ) ;
311+
312+ expect ( wrapper . find ( 'label' ) ) . toHaveLength ( 1 ) ;
313+ expect ( wrapper . find ( 'label' ) . text ( ) ) . toBe ( 'y *' ) ;
314+
315+ act ( ( ) => {
316+ wrapper . find ( 'TimePicker' ) . find ( 'input' ) . prop ( 'onChange' ) ! ( {
317+ currentTarget : { value : time } ,
318+ } as any ) ;
319+ } ) ;
320+
321+ expect ( onChange ) . toHaveBeenLastCalledWith ( 'x' , time ) ;
322+ } ) ;
323+
324+ test ( '<TextField> - test max property (TimePicker - valid)' , ( ) => {
325+ const time = '10:00' ;
326+ const max = '12:00' ;
327+ const element = (
328+ < TextField name = "x" label = "y" max = { max } type = { 'time' } value = { time } />
329+ ) ;
330+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
331+
332+ expect ( wrapper . text ( ) . includes ( 'Should be before' ) ) . toBe ( false ) ;
333+ } ) ;
334+
335+ test ( '<TextField> - test max property (TimePicker - invalid)' , ( ) => {
336+ const time = '13:00' ;
337+ const max = '12:00' ;
338+ const element = (
339+ < TextField name = "x" label = "y" max = { max } type = { 'time' } value = { time } />
340+ ) ;
341+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
342+
343+ expect ( wrapper . text ( ) . includes ( 'Should be before' ) ) . toBe ( true ) ;
344+ } ) ;
345+
346+ test ( '<TextField> - test min property (TimePicker - valid)' , ( ) => {
347+ const time = '13:00' ;
348+ const min = '12:00' ;
349+ const element = (
350+ < TextField name = "x" label = "y" min = { min } type = { 'time' } value = { time } />
351+ ) ;
352+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
353+
354+ expect ( wrapper . text ( ) . includes ( 'Should be after' ) ) . toBe ( false ) ;
355+ } ) ;
356+
357+ test ( '<TextField> - test min property (TimePicker - invalid)' , ( ) => {
358+ const time = '10:00' ;
359+ const min = '12:00' ;
360+ const element = (
361+ < TextField name = "x" label = "y" min = { min } type = { 'time' } value = { time } />
362+ ) ;
363+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
364+
365+ expect ( wrapper . text ( ) . includes ( 'Should be after' ) ) . toBe ( true ) ;
366+ } ) ;
367+
368+ test ( '<TextField> - test max property (DatePicker - valid)' , ( ) => {
369+ const date = '2000-01-01' ;
370+ const max = '2000-01-02' ;
371+ const element = (
372+ < TextField name = "x" label = "y" max = { max } type = { 'date' } value = { date } />
373+ ) ;
374+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
375+
376+ expect ( wrapper . text ( ) . includes ( 'Should be before' ) ) . toBe ( false ) ;
377+ } ) ;
378+
379+ test ( '<TextField> - test max property (DatePicker - invalid)' , ( ) => {
380+ const date = '2000-01-02' ;
381+ const max = '2000-01-01' ;
382+ const element = (
383+ < TextField name = "x" label = "y" max = { max } type = { 'date' } value = { date } />
384+ ) ;
385+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
386+
387+ expect ( wrapper . text ( ) . includes ( 'Should be before' ) ) . toBe ( true ) ;
388+ } ) ;
389+
390+ test ( '<TextField> - test min property (DatePicker - valid)' , ( ) => {
391+ const date = '2000-01-02' ;
392+ const min = '2000-01-01' ;
393+ const element = (
394+ < TextField name = "x" label = "y" min = { min } type = { 'date' } value = { date } />
395+ ) ;
396+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
397+
398+ expect ( wrapper . text ( ) . includes ( 'Should be after' ) ) . toBe ( false ) ;
399+ } ) ;
400+
401+ test ( '<TextField> - test min property (DatePicker - invalid)' , ( ) => {
402+ const date = '2000-01-01' ;
403+ const min = '2000-01-02' ;
404+ const element = (
405+ < TextField name = "x" label = "y" min = { min } type = { 'date' } value = { date } />
406+ ) ;
407+ const wrapper = mount ( element , createContext ( { x : { type : String } } ) ) ;
408+
409+ expect ( wrapper . text ( ) . includes ( 'Should be after' ) ) . toBe ( true ) ;
410+ } ) ;
0 commit comments