2026-04-20 17:54:26 +08:00
|
|
|
|
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(() => {
|
2026-05-28 11:30:35 +08:00
|
|
|
|
const { value, show, handleConfirm } = useDateTimePicker({
|
|
|
|
|
|
value: "2024-01-01",
|
|
|
|
|
|
});
|
2026-04-20 17:54:26 +08:00
|
|
|
|
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();
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|