Ihor Radchenko <[email protected]> writes: > > Morgan, looks like this fell through the cracks. Or should we close this RFC?
This has been on my todo list for a long time now. I'll get around to it eventually probably. In the mean time I've adapted the test to just test the current behaviour and included that here.
>From 0a536d3b83e4b525ffa81e73cfbd30f7eab0a104 Mon Sep 17 00:00:00 2001 From: Morgan Smith <[email protected]> Date: Fri, 22 May 2026 15:14:19 -0400 Subject: [PATCH] test-org-agenda/log-mode: New test * testing/lisp/test-org-agenda.el (test-org-agenda/log-mode): New test. --- testing/lisp/test-org-agenda.el | 121 ++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/testing/lisp/test-org-agenda.el b/testing/lisp/test-org-agenda.el index 9af012b7d..89bf2db71 100644 --- a/testing/lisp/test-org-agenda.el +++ b/testing/lisp/test-org-agenda.el @@ -1134,6 +1134,127 @@ test-org-agenda/bulk-custom-arg-func (should (= arg-f-call-cnt 1)) (should (equal f-called-args '(1 2 3)))))) +(ert-deftest test-org-agenda/log-mode () + "Test agenda in \"log mode\"." + (org-test-at-time "2026-05-20" + (org-test-agenda-with-agenda "* follow golden rule +DEADLINE: <2026-05-22> +CLOCK: [2026-05-21 Thu 10:00]--[2026-05-21 Thu 10:01] => 0:01 +* DONE write more tests +CLOSED: [2026-05-22 Fri 10:10] +:LOGBOOK: +CLOCK: [2026-05-22 Fri 10:10]--[2026-05-22 Fri 10:30] => 0:20 +- wrote test `test-org-agenda/log-mode' +CLOCK: [2026-05-20 Wed 10:37]--[2026-05-20 Wed 10:49] => 0:12 +:END: +* TODO do everyday +SCHEDULED: <2026-05-22 Fri +1d> +- State \"DONE\" from \"STRT\" [2026-05-21 Thu 09:00] +- State \"STRT\" from \"TODO\" [2026-05-21 Thu 08:00] +- State \"DONE\" from \"STRT\" [2026-05-20 Wed 15:57] +- State \"STRT\" from \"TODO\" [2026-05-20 Wed 12:57] +:LOGBOOK: +CLOCK: [2026-05-22 Fri 09:00]--[2026-05-22 Fri 10:00] => 1:00 +CLOCK: [2026-05-21 Thu 08:00]--[2026-05-21 Thu 09:00] => 1:00 +CLOCK: [2026-05-20 Wed 12:57]--[2026-05-20 Wed 15:57] => 3:00 +:END:" + (let ((org-agenda-custom-commands + '(("l" "log-mode" agenda "" + ((org-agenda-overriding-header "") + (org-agenda-use-time-grid nil) + (org-agenda-prefix-format "%?-12t% s") + (org-agenda-format-date "%F") + (org-agenda-show-all-dates nil))))) + ;; Defer to `org-agenda-log-mode-items' for what to show + (org-agenda-start-with-log-mode 'only)) + (dolist (org-agenda-log-mode-items + ;; Every combination (ignoring order) + '((closed) (clock) (state) + (closed clock) (closed state) (clock state) + (closed clock state))) + (should + (string-equal + (string-trim + (progn + (org-agenda nil "l") + (substring-no-properties (buffer-string)))) + (pcase-exhaustive org-agenda-log-mode-items + ('(closed clock state) + "2026-05-20 +10:37-10:49 Clocked: (0:12) DONE write more tests +12:57-15:57 Clocked: (3:00) TODO do everyday +15:57...... State: (DONE) TODO do everyday +2026-05-21 + 8:00-9:00 Clocked: (1:00) TODO do everyday + 9:00...... State: (DONE) TODO do everyday +10:00-10:01 Clocked: (0:01) follow golden rule +2026-05-22 + 9:00-10:00 Clocked: (1:00) TODO do everyday +10:10...... Closed: DONE write more tests +10:10-10:30 Clocked: (0:20) DONE write more tests - wrote test `test-org-agenda/log-mode'") + ('(closed) + "2026-05-22\n10:10...... Closed: DONE write more tests") + ('(clock) + "2026-05-20 +10:37-10:49 Clocked: (0:12) DONE write more tests +12:57-15:57 Clocked: (3:00) TODO do everyday +2026-05-21 + 8:00-9:00 Clocked: (1:00) TODO do everyday +10:00-10:01 Clocked: (0:01) follow golden rule +2026-05-22 + 9:00-10:00 Clocked: (1:00) TODO do everyday +10:10-10:30 Clocked: (0:20) DONE write more tests - wrote test `test-org-agenda/log-mode'") + ('(state) + "2026-05-20 +15:57...... State: (DONE) TODO do everyday +2026-05-21 + 9:00...... State: (DONE) TODO do everyday") + ('(closed clock) + "2026-05-20 +10:37-10:49 Clocked: (0:12) DONE write more tests +12:57-15:57 Clocked: (3:00) TODO do everyday +2026-05-21 + 8:00-9:00 Clocked: (1:00) TODO do everyday +10:00-10:01 Clocked: (0:01) follow golden rule +2026-05-22 + 9:00-10:00 Clocked: (1:00) TODO do everyday +10:10...... Closed: DONE write more tests +10:10-10:30 Clocked: (0:20) DONE write more tests - wrote test `test-org-agenda/log-mode'") + ('(closed state) + "2026-05-20 +15:57...... State: (DONE) TODO do everyday +2026-05-21 + 9:00...... State: (DONE) TODO do everyday +2026-05-22 +10:10...... Closed: DONE write more tests") + ('(clock state) + "2026-05-20 +10:37-10:49 Clocked: (0:12) DONE write more tests +12:57-15:57 Clocked: (3:00) TODO do everyday +15:57...... State: (DONE) TODO do everyday +2026-05-21 + 8:00-9:00 Clocked: (1:00) TODO do everyday + 9:00...... State: (DONE) TODO do everyday +10:00-10:01 Clocked: (0:01) follow golden rule +2026-05-22 + 9:00-10:00 Clocked: (1:00) TODO do everyday +10:10-10:30 Clocked: (0:20) DONE write more tests - wrote test `test-org-agenda/log-mode'"))))) + (let ((org-agenda-start-with-log-mode 'clockcheck)) + (should + (string-equal + (string-trim + (progn + (org-agenda nil "l") + (substring-no-properties (buffer-string)))) + "2026-05-20 +10:37-10:49 Clocked: (0:12) DONE write more tests +12:57-15:57 Clocked: (3:00) TODO do everyday +2026-05-21 + 8:00-9:00 Clocked: (1:00) TODO do everyday +10:00-10:01 Clocked: (0:01) follow golden rule +2026-05-22 + 9:00-10:00 Clocked: (1:00) TODO do everyday +10:10-10:30 Clocked: (0:20) DONE write more tests - wrote test `test-org-agenda/log-mode'"))))))) (provide 'test-org-agenda) -- 2.54.0
