formsquare
Version:
Serialize html5 forms the smart way
32 lines (26 loc) • 810 B
JavaScript
import test from "ava";
import formsquare from "../src/module.js";
import { form, input } from "./utils.js";
test("basic", (t) => {
const inputs = form([input({ value: "foo" })]);
t.is(formsquare.map(() => "bar").parse(inputs), "bar");
});
test("data-type", (t) => {
const inputs = form([
input({ name: "date", value: "2018-09-01", "data-type": "date" }),
input({ name: "number", value: "1", "data-type": "number" }),
]);
t.deepEqual(
formsquare
.map((defaultValue, el) =>
el.dataset.type === "number"
? Number.parseFloat(el.value)
: defaultValue,
)
.map((defaultValue, el) =>
el.dataset.type === "date" ? new Date(el.value) : defaultValue,
)
.parse(inputs),
{ date: new Date("2018-09-01"), number: 1 },
);
});