Skip to content

Commit c39ceeb

Browse files
committed
fix: test for no-default-values & fix
1 parent 0e8cbca commit c39ceeb

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

Diff for: packages/core/src/dom/dom.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ export const getNextNativeValue = ({
171171
}
172172

173173
if (element.type === "number") {
174-
if (typeof currentValue === "number") return Number(derivedValue);
175-
return String(derivedValue);
174+
if (typeof currentValue === "string") return String(derivedValue);
175+
return Number(derivedValue);
176176
}
177177

178178
return derivedValue;

Diff for: packages/react/src/test/input-types.test.tsx

+26
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,32 @@ describe("number inputs", () => {
3131
expect(screen.getByTestId("age-value").textContent).toEqual("254");
3232
});
3333

34+
it("no default value", async () => {
35+
const TestComp = () => {
36+
const form = useForm({
37+
validator: successValidator,
38+
});
39+
40+
return (
41+
<form {...form.getFormProps()}>
42+
<input
43+
data-testid="age"
44+
{...form.field("age").getInputProps({ type: "number" })}
45+
/>
46+
<pre data-testid="age-value">{JSON.stringify(form.value("age"))}</pre>
47+
</form>
48+
);
49+
};
50+
render(<TestComp />);
51+
52+
expect(screen.getByTestId("age")).not.toHaveValue();
53+
expect(screen.getByTestId("age-value").textContent).toEqual("");
54+
55+
await userEvent.type(screen.getByTestId("age"), "4");
56+
expect(screen.getByTestId("age")).toHaveValue(4);
57+
expect(screen.getByTestId("age-value").textContent).toEqual("4");
58+
});
59+
3460
it("default values set as strings", async () => {
3561
const TestComp = () => {
3662
const form = useForm({

0 commit comments

Comments
 (0)