Fix <Switch/> checked callback attribute value (#5360)

This commit is contained in:
Alex Andreev authored and GitHub committed 2022-05-11 10:33:01 -04:00
1 parent d99cc5a015
commit cc9ee67dc2
2 files changed
+27 -1

No files matched your search

@@ -48,4 +48,24 @@ describe("<Switch/>", () => {
expect(onClick).not.toHaveBeenCalled();
});
it("returns true checked attribute in a onChange callback", () => {
const onClick = jest.fn();
const { getByTestId } = render(<Switch onChange={onClick} checked={true}/>);
const switcher = getByTestId("switch");
fireEvent.click(switcher);
expect(onClick).toHaveBeenCalledWith(false, expect.any(Object));
});
it("returns false checked attribute in a onChange callback", () => {
const onClick = jest.fn();
const { getByTestId } = render(<Switch onChange={onClick}/>);
const switcher = getByTestId("switch");
fireEvent.click(switcher);
expect(onClick).toHaveBeenCalledWith(true, expect.any(Object));
});
});
+7 -1
View File
@@ -17,7 +17,13 @@ export function Switch({ children, disabled, onChange, ...props }: SwitchProps)
return (
<label className={cssNames(styles.Switch, { [styles.disabled]: disabled })} data-testid="switch">
{children}
<input type="checkbox" role="switch" disabled={disabled} onChange={(event) => onChange?.(props.checked, event)} {...props}/>
<input
type="checkbox"
role="switch"
disabled={disabled}
onChange={(event) => onChange?.(event.target.checked, event)}
{...props}
/>
</label>
);
}