15 lines
576 B
TypeScript
15 lines
576 B
TypeScript
import { expect, test } from "bun:test";
|
|
import { useForm } from "../src/index.ts";
|
|
|
|
test("form state binds fields, validates, submits and resets", async () => {
|
|
const form = useForm({ name: "", active: false }, (value) => ({
|
|
name: value.name ? undefined : "Required",
|
|
}));
|
|
form.field("name").onInput({ value: "Ada" });
|
|
form.field("active").onInput({ checked: true });
|
|
expect(form.dirty.get()).toBe(true);
|
|
expect(await form.submit(async (value) => value.name)).toBe("Ada");
|
|
form.reset();
|
|
expect(form.values.get()).toEqual({ name: "", active: false });
|
|
});
|