@payfit/unity-components
Version:
39 lines (38 loc) • 1.38 kB
JavaScript
import { CalendarDate as e } from "@internationalized/date";
import { userEvent as t, within as n } from "storybook/test";
//#region src/components/date-range-picker-field/test-utils.ts
var r = (r) => {
let i = (e) => {
let t = n(r.canvasElement).getAllByLabelText(e, {
exact: !1,
selector: "span"
});
if (t.length !== 6) throw Error(`Date range field for ${e} not found. Expected 6 segments, got ${t.length}`);
return {
start: t.slice(0, 3),
end: t.slice(3, 6)
};
}, a = async (e, n) => {
await t.type(e.find((e) => e.getAttribute("data-type") === "day"), String(n.day)), await t.type(e.find((e) => e.getAttribute("data-type") === "month"), String(n.month)), await t.type(e.find((e) => e.getAttribute("data-type") === "year"), String(n.year));
}, o = (t) => {
let n = (e) => parseInt(t.find((t) => t.getAttribute("data-type") === e)?.textContent ?? "");
return new e(n("year"), n("month"), n("day"));
};
return {
fillCalendarDateRange: async ({ labelText: e, startDate: t, endDate: n }) => {
await r.step(`Fill date range picker ${e}`, async () => {
let { start: r, end: o } = i(e);
await a(r, t), await a(o, n);
});
},
getCalendarDateRangeValue: ({ labelText: e }) => {
let { start: t, end: n } = i(e);
return {
start: o(t),
end: o(n)
};
}
};
};
//#endregion
export { r as getTestingUtilsDateRangePicker };