summaryrefslogtreecommitdiff
path: root/tests/ss-capture-tests.el
diff options
context:
space:
mode:
authorSzymon Szukalski <szymon@szymonszukalski.com>2026-04-09 11:22:48 +1000
committerSzymon Szukalski <szymon@szymonszukalski.com>2026-04-09 11:22:48 +1000
commit08d06ed00c9d6e98f0f8a02d243a2eb36ee4bff1 (patch)
treedad98d4ac64219e047223c82564d93c00ddf0501 /tests/ss-capture-tests.el
parentbc75732b9d37b77945a977ee9f7892cf6efc79c3 (diff)
Improve CRM and journal workflows
Diffstat (limited to 'tests/ss-capture-tests.el')
-rw-r--r--tests/ss-capture-tests.el75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/ss-capture-tests.el b/tests/ss-capture-tests.el
new file mode 100644
index 0000000..4ea4ff6
--- /dev/null
+++ b/tests/ss-capture-tests.el
@@ -0,0 +1,75 @@
+;;; ss-capture-tests.el --- Tests for ss-capture -*- lexical-binding: t; -*-
+
+;;; Commentary:
+
+;; Focused ERT coverage for journal capture structure helpers.
+
+;;; Code:
+
+(add-to-list 'load-path (expand-file-name "../lisp" (file-name-directory load-file-name)))
+
+(require 'cl-lib)
+(require 'ert)
+(require 'ss-capture)
+(require 'ss-org)
+
+(ert-deftest ss-journal-ensure-day-sections-adds-all-standard-sections ()
+ (with-temp-buffer
+ (org-mode)
+ (insert "#+title: Journal\n"
+ "#+startup: overview\n\n"
+ "* 2026\n"
+ "** 2026-04-08 Wednesday\n"
+ "*** Tasks\n"
+ "**** TODO Existing\n\n"
+ "** 2026-04-09 Thursday\n")
+ (goto-char (point-min))
+ (re-search-forward "^\\*\\* 2026-04-09 Thursday$")
+ (goto-char (match-beginning 0))
+ (ss-journal-ensure-day-sections)
+ (should (string-match-p
+ (regexp-quote
+ "** 2026-04-09 Thursday\n*** Tasks\n*** Notes\n*** Meetings\n")
+ (buffer-string)))))
+
+(ert-deftest ss-open-journal-narrows-to-today-when-entry-exists ()
+ (let* ((file (make-temp-file "ss-journal" nil ".org"))
+ (ss-journal-file file))
+ (unwind-protect
+ (progn
+ (with-temp-file file
+ (insert "#+title: Journal\n"
+ "* 2026\n"
+ "** 2026-04-09 Thursday\n"
+ "*** Notes\n"))
+ (let ((org-overriding-default-time (encode-time 0 0 12 9 4 2026)))
+ (ss-open-journal)
+ (should (buffer-narrowed-p))
+ (should (equal (org-get-outline-path t)
+ '("2026" "2026-04-09 Thursday")))
+ (should (looking-at-p "^\\*\\* 2026-04-09 Thursday$"))))
+ (when (buffer-live-p (current-buffer))
+ (kill-buffer (current-buffer)))
+ (when (file-exists-p file)
+ (delete-file file)))))
+
+(ert-deftest ss-open-journal-keeps-end-fallback-when-today-missing ()
+ (let* ((file (make-temp-file "ss-journal" nil ".org"))
+ (ss-journal-file file))
+ (unwind-protect
+ (progn
+ (with-temp-file file
+ (insert "#+title: Journal\n"
+ "* 2026\n"
+ "** 2026-04-08 Wednesday\n"
+ "*** Notes\n"))
+ (let ((org-overriding-default-time (encode-time 0 0 12 9 4 2026)))
+ (ss-open-journal)
+ (should-not (buffer-narrowed-p))
+ (should (eobp))))
+ (when (buffer-live-p (current-buffer))
+ (kill-buffer (current-buffer)))
+ (when (file-exists-p file)
+ (delete-file file)))))
+
+;;; ss-capture-tests.el ends here