import { describe, test, expect } from "vitest"; import { effectScope } from "vue"; import { useDateTimePicker } from "../src/datetime-picker"; describe("useDateTimePicker", () => { test("默认值", () => { const scope = effectScope(); scope.run(() => { const { value, show, text } = useDateTimePicker({}); expect(value.value).toBeNull(); expect(show.value).toBe(false); expect(text.value).toBe("请选择"); }); scope.stop(); }); test("自定义 placeholder", () => { const scope = effectScope(); scope.run(() => { const { text } = useDateTimePicker({ placeholder: "选择时间" }); expect(text.value).toBe("选择时间"); }); scope.stop(); }); test("有 value 时 text 显示 value", () => { const scope = effectScope(); scope.run(() => { const { value, text } = useDateTimePicker({ value: "2024-01-15 10:00" }); expect(text.value).toBe("2024-01-15 10:00"); value.value = "2024-06-01 08:30"; expect(text.value).toBe("2024-06-01 08:30"); }); scope.stop(); }); test("showPicker / hidePicker", () => { const scope = effectScope(); scope.run(() => { const { show, showPicker, hidePicker } = useDateTimePicker({}); expect(show.value).toBe(false); showPicker(); expect(show.value).toBe(true); hidePicker(); expect(show.value).toBe(false); }); scope.stop(); }); test("handleConfirm 关闭弹窗(不更新 value)", () => { const scope = effectScope(); scope.run(() => { const { value, show, handleConfirm } = useDateTimePicker({ value: "2024-01-01", }); show.value = true; const event = { indexs: [], value: [], values: [] } as any; handleConfirm(event); expect(show.value).toBe(false); expect(value.value).toBe("2024-01-01"); }); scope.stop(); }); test("handleCancel 关闭弹窗", () => { const scope = effectScope(); scope.run(() => { const { show, handleCancel } = useDateTimePicker({}); show.value = true; handleCancel(); expect(show.value).toBe(false); }); scope.stop(); }); });