Skip to content

Commit b63dd67

Browse files
committed
add additional test
1 parent 6ba77d8 commit b63dd67

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

src/nextjournal/clerk/viewer.cljc

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -446,15 +446,16 @@
446446
[{:as result :nextjournal/keys [value viewer]}]
447447
(if viewer
448448
(let [viewer-fn? (or (var? viewer) (fn? viewer))
449-
unwrap? (and (var-from-def? value)
450-
(or viewer-fn?
451-
(-> viewer normalize-viewer :var-from-def? not)))
452-
value' (if unwrap? (unwrap-var-value value) value)
453449
value+viewer (if viewer-fn?
454-
(viewer value')
455-
{:nextjournal/value value'
456-
:nextjournal/viewer (normalize-viewer viewer)})]
457-
(assoc result :nextjournal/value value+viewer))
450+
(viewer value)
451+
{:nextjournal/value value
452+
:nextjournal/viewer (normalize-viewer viewer)})
453+
result-value (:nextjournal/value value+viewer)
454+
unwrap? (and (var-from-def? result-value)
455+
(-> value+viewer ->viewer :var-from-def? not))]
456+
(assoc result :nextjournal/value
457+
(cond-> value+viewer
458+
unwrap? (update :nextjournal/value unwrap-var-value))))
458459
result))
459460

460461
#?(:clj

test/nextjournal/clerk/viewer_test.clj

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,17 @@
229229
:nextjournal/viewer (assoc v/html-viewer :var-from-def? true)}))))
230230

231231
(testing "function viewer with var-from-def"
232-
(is (= [1]
232+
(is (= [{:nextjournal.clerk/var-from-def #'nextjournal.clerk.viewer-test/my-test-var2, :nextjournal.clerk/var-snapshot 1}]
233233
(apply+get-value {:nextjournal/value {:nextjournal.clerk/var-from-def #'my-test-var2
234234
:nextjournal.clerk/var-snapshot 1}
235-
:nextjournal/viewer v/row}))))))
236-
235+
:nextjournal/viewer v/row}))))
236+
(testing "function viewer that preserves var-from-def"
237+
(let [viewer-fn (fn [v] (v/with-viewer (assoc v/html-viewer :var-from-def? true) v))]
238+
(is (= {:nextjournal.clerk/var-from-def #'my-test-var
239+
:nextjournal.clerk/var-snapshot [:h1 "hi"]}
240+
(apply+get-value {:nextjournal/value {:nextjournal.clerk/var-from-def #'my-test-var
241+
:nextjournal.clerk/var-snapshot [:h1 "hi"]}
242+
:nextjournal/viewer viewer-fn})))))))
237243

238244
(deftest resolve-aliases
239245
(testing "it resolves aliases"

0 commit comments

Comments
 (0)