From 931207da3dac008b4bc67bccea78f187f8a9a66c Mon Sep 17 00:00:00 2001 From: Lee Chase Date: Thu, 27 Oct 2022 19:33:47 +0100 Subject: [PATCH 1/4] feat: add read only time picker --- .../__snapshots__/PublicAPI-test.js.snap | 3 + .../components/TimePicker/TimePicker-test.js | 48 ++++++++++++++- .../src/components/TimePicker/TimePicker.js | 59 +++++++++++++++++-- .../components/time-picker/_time-picker.scss | 14 +++++ 4 files changed, 117 insertions(+), 7 deletions(-) diff --git a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap index 95e718146d54..78025d0890dc 100644 --- a/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap +++ b/packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap @@ -8312,6 +8312,9 @@ Map { "placeholder": Object { "type": "string", }, + "readOnly": Object { + "type": "bool", + }, "size": Object { "args": Array [ Array [ diff --git a/packages/react/src/components/TimePicker/TimePicker-test.js b/packages/react/src/components/TimePicker/TimePicker-test.js index 7aec125bb018..49352eb953b2 100644 --- a/packages/react/src/components/TimePicker/TimePicker-test.js +++ b/packages/react/src/components/TimePicker/TimePicker-test.js @@ -7,7 +7,8 @@ import React from 'react'; import { default as TimePicker } from './TimePicker'; - +import SelectItem from '../../SelectItem'; +import TimePickerSelect from '../../TimePickerSelect/next/TimePickerSelect.js'; import { render, screen, fireEvent } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; @@ -40,6 +41,51 @@ describe('TimePicker', () => { expect(onClick).not.toHaveBeenCalled(); }); + it('should behave readonly as expected', () => { + const onClick = jest.fn(); + const onChange = jest.fn(); + + render( + + + + + + + + + + + ); + + const input = screen.getByRole('textbox'); + userEvent.click(input); + expect(onClick).toHaveBeenCalled(); + expect(input).toHaveAttribute('readonly'); + + userEvent.type(input, '01:50'); + expect(onChange).not.toHaveBeenCalled(); + + screen.getByDisplayValue('AM'); + screen.getByDisplayValue('Time zone 1'); + + //------------------------------------------------------------------------ + // Testing library - userEvent.type() does not work on