Skip to content

Commit 8047ed6

Browse files
committed
test: correct slider test
1 parent 6407481 commit 8047ed6

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

web/containers/SliderRightPanel/index.test.tsx

+7-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react'
22
import { render } from '@testing-library/react'
3-
import { fireEvent, screen } from '@testing-library/dom'
3+
import { fireEvent } from '@testing-library/dom'
44
import SliderRightPanel from './index'
55
import '@testing-library/jest-dom'
66

@@ -12,8 +12,9 @@ class ResizeObserverMock {
1212

1313
global.ResizeObserver = ResizeObserverMock
1414

15-
jest.mock('@radix-ui/react-slider', () => ({
16-
Root: ({ children, onValueChange, ...props }: any) => (
15+
jest.mock('@janhq/joi', () => ({
16+
...jest.requireActual('@janhq/joi'),
17+
Slider: ({ children, onValueChange, ...props }: any) => (
1718
<div data-testid="slider-root" {...props}>
1819
<input
1920
data-testid="slider-input"
@@ -26,11 +27,6 @@ jest.mock('@radix-ui/react-slider', () => ({
2627
{children}
2728
</div>
2829
),
29-
Track: ({ children }: any) => (
30-
<div data-testid="slider-track">{children}</div>
31-
),
32-
Range: () => <div data-testid="slider-range" />,
33-
Thumb: () => <div data-testid="slider-thumb" />,
3430
}))
3531

3632
describe('SliderRightPanel', () => {
@@ -46,9 +42,7 @@ describe('SliderRightPanel', () => {
4642
}
4743

4844
it('renders correctly with given props', () => {
49-
const { getByText } = render(
50-
<SliderRightPanel {...defaultProps} />
51-
)
45+
const { getByText } = render(<SliderRightPanel {...defaultProps} />)
5246
expect(getByText('Test Slider')).toBeInTheDocument()
5347
})
5448

@@ -63,8 +57,9 @@ describe('SliderRightPanel', () => {
6357

6458
it('calls onValueChanged with correct value when slider is changed', () => {
6559
defaultProps.onValueChanged = jest.fn()
60+
const { getByTestId } = render(<SliderRightPanel {...defaultProps} />)
6661

67-
const input = screen.getByTestId('slider-input')
62+
const input = getByTestId('slider-input')
6863
fireEvent.change(input, { target: { value: '75' } })
6964
expect(defaultProps.onValueChanged).toHaveBeenCalledWith(75)
7065
})

web/containers/SliderRightPanel/index.tsx

+6-10
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,12 @@ const SliderRightPanel = ({
9090
// Should not accept invalid value or NaN
9191
// E.g. anything changes that trigger onValueChanged
9292
// Which is incorrect
93-
if (
94-
Number(e.target.value) > Number(max) ||
95-
Number(e.target.value) < Number(min) ||
96-
Number.isNaN(Number(e.target.value))
97-
) {
98-
if (/^\d*\.?\d*$/.test(e.target.value)) {
99-
setVal(e.target.value)
100-
}
101-
return
102-
}
93+
if (Number(e.target.value) > Number(max)) {
94+
setVal(max.toString())
95+
} else if (Number(e.target.value) < Number(min)) {
96+
setVal(min.toString())
97+
} else if (Number.isNaN(Number(e.target.value))) return
98+
10399
onValueChanged?.(Number(e.target.value))
104100
// TODO: How to support negative number input?
105101
if (/^\d*\.?\d*$/.test(e.target.value)) {

0 commit comments

Comments
 (0)