Skip to content

Commit 6a153eb

Browse files
committed
test(time-picker): add jest test for time-picker
1 parent 4e7c043 commit 6a153eb

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import '../../../../../assets/src/index.jsx'
2+
import { render, screen, fireEvent } from '@testing-library/react'
3+
import {
4+
rendersWithMinimal,
5+
rendersWithoutLabelThrowWarning,
6+
rendersLabelAndDescription
7+
} from '../../../utils/fields.js'
8+
9+
const fields = window.tangibleFields
10+
11+
describe('Time Picker component', () => {
12+
13+
it('renders with minimal config', () =>
14+
rendersWithMinimal({ type: 'time-picker' })
15+
)
16+
17+
it('renders when no label but throws a warning', () =>
18+
rendersWithoutLabelThrowWarning({ type: 'time-picker' })
19+
)
20+
21+
it('renders label and description', () =>
22+
rendersLabelAndDescription({ type: 'time-picker' })
23+
)
24+
25+
test('TimePicker allows changing time via keyboard', () => {
26+
27+
const { container } = render(
28+
fields.render({
29+
type: 'time-picker',
30+
label: 'Pick a time',
31+
name: 'time-field',
32+
value: '14:30',
33+
})
34+
)
35+
36+
const input = container.querySelector('input[name="time-field"]');
37+
expect(input.value).toBe('14:30:00');
38+
const segments = screen.getAllByRole('spinbutton');
39+
40+
fireEvent.keyDown(segments[0], { key: 'ArrowUp' });
41+
fireEvent.keyDown(segments[1], { key: 'ArrowUp' });
42+
43+
expect(input.value).not.toBe('14:30:00');
44+
expect(input.value).toBe('15:31:00');
45+
});
46+
47+
})

0 commit comments

Comments
 (0)