
























@@ -84,29 +84,17 @@ function getButtonByText(container: Element, text: string) {
8484}
85858686describe("cron view", () => {
87-it("shows all-job history mode by default", () => {
87+it("shows all-job history mode and toggles the run status filter", () => {
8888const container = document.createElement("div");
89-render(renderCron(createProps()), container);
89+const onRunsFiltersChange = vi.fn();
90+render(renderCron(createProps({ onRunsFiltersChange })), container);
90919192expect(container.textContent).toContain("Latest runs across all jobs.");
9293expect(container.textContent).toContain("Status");
9394expect(container.textContent).toContain("All statuses");
9495expect(container.textContent).toContain("Delivery");
9596expect(container.textContent).toContain("All delivery");
9697expect(container.textContent).not.toContain("multi-select");
97-});
98-99-it("toggles run status filter via dropdown checkboxes", () => {
100-const container = document.createElement("div");
101-const onRunsFiltersChange = vi.fn();
102-render(
103-renderCron(
104-createProps({
105- onRunsFiltersChange,
106-}),
107-),
108-container,
109-);
1109811199const statusOk = container.querySelector(
112100'.cron-filter-dropdown[data-filter="status"] input[value="ok"]',
@@ -171,19 +159,23 @@ describe("cron view", () => {
171159expect(onLoadRuns).toHaveBeenCalledWith("job-1");
172160});
173161174-it("renders run chat links when session keys are present", () => {
162+it("shows selected job run history sorted newest first with chat links", () => {
175163const container = document.createElement("div");
164+const job = createJob("job-1");
176165render(
177166renderCron(
178167createProps({
179168basePath: "/ui",
169+jobs: [job],
180170runsJobId: "job-1",
171+runsScope: "job",
181172runs: [
173+{ ts: 1, jobId: "job-1", status: "ok", summary: "older run" },
182174{
183-ts: Date.now(),
175+ts: 2,
184176jobId: "job-1",
185177status: "ok",
186-summary: "done",
178+summary: "newer run",
187179sessionKey: "agent:main:cron:job-1:run:abc",
188180},
189181],
@@ -197,25 +189,6 @@ describe("cron view", () => {
197189expect(link?.getAttribute("href")).toContain(
198190"/ui/chat?session=agent%3Amain%3Acron%3Ajob-1%3Arun%3Aabc",
199191);
200-});
201-202-it("shows selected job name and sorts run history newest first", () => {
203-const container = document.createElement("div");
204-const job = createJob("job-1");
205-render(
206-renderCron(
207-createProps({
208-jobs: [job],
209-runsJobId: "job-1",
210-runsScope: "job",
211-runs: [
212-{ ts: 1, jobId: "job-1", status: "ok", summary: "older run" },
213-{ ts: 2, jobId: "job-1", status: "ok", summary: "newer run" },
214-],
215-}),
216-),
217-container,
218-);
219192220193expect(container.textContent).toContain("Latest runs for Daily ping.");
221194此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。