Function: cider-test-render-assertion
cider-test-render-assertion is a byte-compiled function defined in
cider-test.el.
Signature
(cider-test-render-assertion BUFFER TEST)
Documentation
Emit into BUFFER report detail for the TEST assertion.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-test.el
(defun cider-test-render-assertion (buffer test)
"Emit into BUFFER report detail for the TEST assertion."
(with-current-buffer buffer
(nrepl-dbind-response test (var context type message expected actual diffs error gen-input)
(cl-flet ((insert-label (s)
(cider-insert (format "%8s: " s) 'font-lock-comment-face))
(insert-align-label (s)
(insert (format "%12s" s)))
(insert-rect (s)
(let ((start (point)))
(insert-rectangle (thread-first
s
cider-font-lock-as-clojure
(split-string "\n")))
(ansi-color-apply-on-region start (point)))
(beginning-of-line)))
(cider-propertize-region (cider-intern-keys (cdr test))
(let ((beg (point))
(type-face (cider-test-type-simple-face type))
(bg `(:background ,cider-test-items-background-color :extend t)))
(cider-insert (capitalize type) type-face nil " in ")
(cider-propertize-region `(keymap ,cider-test-var-keymap)
(cider-insert (propertize var 'mouse-face 'highlight)
'font-lock-function-name-face t))
(when context (cider-insert context 'font-lock-doc-face t))
(when message (cider-insert message 'font-lock-string-face t))
(when expected
(insert-label "expected")
(insert-rect expected)
;; Only place a newline between expected and actual when the values are deemed 'dense',
;; otherwise favor compact output:
(when (or (cider-test--string-contains-newline expected)
(cider-test--string-contains-newline actual))
(insert "\n")))
(if diffs
(dolist (d diffs)
(pcase-let ((`(,actual (,removed ,added)) d))
(insert-label "actual")
(insert-rect actual)
(insert "\n")
(insert-label "diff")
(insert "- ")
(insert-rect removed)
(insert-align-label "+ ")
(insert-rect added)
(insert "\n")))
(when actual
(insert-label "actual")
(insert-rect actual)))
(when error
(insert-label "error")
(insert-text-button error
'follow-link t
'action '(lambda (_button) (cider-test-stacktrace))
'help-echo "View causes and stacktrace")
(insert "\n"))
(when gen-input
(insert-label "input")
(insert (cider-font-lock-as-clojure gen-input)))
(overlay-put (make-overlay beg (point)) 'font-lock-face bg))
(insert "\n"))))))