formatTime.spec.js 1.07 KB
import { formatTime } from "@/utils/index.js";

describe("Utils:formatTime", () => {
  const d = new Date("2018-07-13 17:54:01"); // "2018-07-13 17:54:01"
  const retrofit = 5 * 1000;

  it("ten digits timestamp", () => {
    expect(formatTime((d / 1000).toFixed(0))).toBe("7月13日17时54分");
  });
  it("test now", () => {
    expect(formatTime(+new Date() - 1)).toBe("刚刚");
  });
  it("less two minute", () => {
    expect(formatTime(+new Date() - 60 * 2 * 1000 + retrofit)).toBe("2分钟前");
  });
  it("less two hour", () => {
    expect(formatTime(+new Date() - 60 * 60 * 2 * 1000 + retrofit)).toBe(
      "2小时前"
    );
  });
  it("less one day", () => {
    expect(formatTime(+new Date() - 60 * 60 * 24 * 1 * 1000)).toBe("1天前");
  });
  it("more than one day", () => {
    expect(formatTime(d)).toBe("7月13日17时54分");
  });
  it("format", () => {
    expect(formatTime(d, "{y}-{m}-{d} {h}:{i}")).toBe("2018-07-13 17:54");
    expect(formatTime(d, "{y}-{m}-{d}")).toBe("2018-07-13");
    expect(formatTime(d, "{y}/{m}/{d} {h}-{i}")).toBe("2018/07/13 17-54");
  });
});