import { describe, expect, test } from "bun:test"; function shouldEnableHistory( selectedTargetId: null | number, timeFrom: string, timeTo: string, activeTab: string, ): boolean { return selectedTargetId !== null && !!timeFrom && !!timeTo && activeTab === "history"; } function shouldEnableMetrics(selectedTargetId: null | number, timeFrom: string, timeTo: string): boolean { return selectedTargetId !== null && !!timeFrom && !!timeTo; } describe("metrics enabled 条件", () => { test("未选中目标时不启用", () => { expect(shouldEnableMetrics(null, "", "")).toBe(false); }); test("选中目标但无时间范围时不启用", () => { expect(shouldEnableMetrics(1, "", "")).toBe(false); }); test("选中目标且有时间范围时启用", () => { expect(shouldEnableMetrics(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z")).toBe(true); }); }); describe("history enabled 条件", () => { test("未选中目标时不启用", () => { expect(shouldEnableHistory(null, "from", "to", "history")).toBe(false); }); test("选中目标但概览 Tab 时不启用", () => { expect(shouldEnableHistory(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z", "overview")).toBe(false); }); test("选中目标且记录 Tab 激活但无时间范围时不启用", () => { expect(shouldEnableHistory(1, "", "", "history")).toBe(false); }); test("选中目标、有时间范围且记录 Tab 激活时启用", () => { expect(shouldEnableHistory(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z", "history")).toBe(true); }); test("打开 Drawer 默认概览 Tab 时不启用 history", () => { expect(shouldEnableHistory(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z", "overview")).toBe(false); }); test("概览 Tab 时间变化时不启用 history", () => { expect(shouldEnableHistory(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z", "overview")).toBe(false); }); test("记录 Tab 时间变化时启用 history", () => { expect(shouldEnableHistory(1, "2025-01-01T00:00:00.000Z", "2025-01-02T00:00:00.000Z", "history")).toBe(true); }); }); describe("默认概览 Tab 行为", () => { test("打开 Drawer 时 activeTab 应为 overview", () => { const resetTab = "overview"; expect(resetTab).toBe("overview"); }); test("切换目标时 activeTab 应重置为 overview", () => { const previousTab = "history"; const resetTab = "overview"; expect(previousTab).not.toBe(resetTab); expect(resetTab).toBe("overview"); }); }); describe("history 页码重置", () => { test("时间变化时 historyPage 应重置为 1", () => { const previousPage = 3; const resetPage = 1; expect(previousPage).not.toBe(resetPage); expect(resetPage).toBe(1); }); });