From 32329d9a384642dd231ed1f5a16aa6c85b8d0ef0 Mon Sep 17 00:00:00 2001 From: cashmere Date: Sat, 12 Sep 2026 00:30:11 +0200 Subject: relic: 2026-09-12T00:30:15+02:00 --- test/fossil-ui-test.el | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'test') diff --git a/test/fossil-ui-test.el b/test/fossil-ui-test.el index 6b61bd9..081a701 100644 --- a/test/fossil-ui-test.el +++ b/test/fossil-ui-test.el @@ -231,6 +231,62 @@ (should-not (string-search (string ?\e) rendered)) (should (text-property-not-all 0 (length rendered) 'face nil rendered)))) +(ert-deftest fossil-ui-delta-color-mode-follows-frame-background () + (let ((fossil-ui-delta-color-mode 'auto) + (fossil-ui-delta-arguments '("--paging=never" "--color-only"))) + (cl-letf (((symbol-function 'frame-parameter) + (lambda (_frame parameter) + (and (eq parameter 'background-mode) 'light)))) + (should (equal (fossil-ui--effective-delta-arguments) + '("--light" "--paging=never" "--color-only")))) + (cl-letf (((symbol-function 'frame-parameter) + (lambda (_frame parameter) + (and (eq parameter 'background-mode) 'dark)))) + (should (equal (fossil-ui--effective-delta-arguments) + '("--dark" "--paging=never" "--color-only")))))) + +(ert-deftest fossil-ui-delta-color-mode-respects-explicit-arguments () + (let ((fossil-ui-delta-color-mode 'auto)) + (dolist (arguments '(("--light" "--color-only") + ("--dark" "--color-only") + ("--syntax-theme" "GitHub" "--color-only") + ("--syntax-theme=GitHub" "--color-only"))) + (let ((fossil-ui-delta-arguments arguments)) + (should (eq (fossil-ui--effective-delta-arguments) arguments)))))) + +(ert-deftest fossil-ui-theme-change-rerenders-open-diff-in-place () + (save-window-excursion + (with-temp-buffer + (let* ((buffer (current-buffer)) + (raw (mapconcat (lambda (number) (format "line %d" number)) (number-sequence 1 80) "\n")) + (context (list :root "/tmp/project/" :path "example.el" :diff raw))) + (fossil-ui-diff-mode) + (let ((inhibit-read-only t)) + (insert raw)) + (set-buffer-modified-p nil) + (setq-local fossil-ui-diff-context context) + (switch-to-buffer buffer) + (goto-char (point-min)) + (forward-line 40) + (let ((point-before (point)) + (window-before (selected-window))) + (set-window-start window-before (save-excursion + (goto-char (point-min)) + (forward-line 20) + (point))) + (let ((start-before (window-start window-before))) + (cl-letf (((symbol-function 'fossil-ui--display-diff) + (lambda (_diff &optional _frame) + (propertize raw 'face 'success)))) + (fossil-ui--theme-enabled 'test-theme)) + (should (eq (selected-window) window-before)) + (should (= (point) point-before)) + (should (= (window-start window-before) start-before)) + (should-not (buffer-modified-p)) + (should (equal fossil-ui-diff-context context)) + (should (equal (buffer-substring-no-properties (point-min) (point-max)) raw)) + (should (eq (get-text-property (point-min) 'face) 'success)))))))) + (ert-deftest fossil-ui-status-opens-rendered-dashboard () (fossil-ui-test--with-checkout (fossil-ui-test--write (expand-file-name "tracked.txt" root) "changed content\n") -- cgit v1.3.1