mirror of
https://github.com/journeyman-cc/smeagol.git
synced 2026-04-12 18:05:06 +00:00
use dependency injection in order to make include resolving testable
This commit is contained in:
parent
6be21214b0
commit
464e9af7d6
3 changed files with 29 additions and 1 deletions
|
|
@ -29,7 +29,8 @@
|
|||
[prone "1.1.4"]
|
||||
[ring/ring-anti-forgery "1.1.0"]
|
||||
[ring-server "0.4.0"]
|
||||
[selmer "1.11.0"]]
|
||||
[selmer "1.11.0"]
|
||||
[com.stuartsierra/component "0.3.2"]]
|
||||
|
||||
:repl-options {:init-ns smeagol.repl}
|
||||
|
||||
|
|
|
|||
11
src/smeagol/include.clj
Normal file
11
src/smeagol/include.clj
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(ns smeagol.include
|
||||
(:require
|
||||
[com.stuartsierra.component :as component]))
|
||||
|
||||
(defrecord Resolver [resolver-fn])
|
||||
|
||||
(defn new-resolver [resolver-fn]
|
||||
(map->Resolver {:resolver-fn resolver-fn}))
|
||||
|
||||
(defn resolve-include [resolver uri]
|
||||
(apply (:resolver-fn resolver) [uri]))
|
||||
16
test/smeagol/test/include.clj
Normal file
16
test/smeagol/test/include.clj
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(ns smeagol.test.include
|
||||
(:require [clojure.test :refer :all]
|
||||
[com.stuartsierra.component :as component]
|
||||
[smeagol.include :as sut]))
|
||||
|
||||
(defn test-include-resolver [uri]
|
||||
(cond
|
||||
(= uri "./simple.md") "Simple content."))
|
||||
|
||||
(def system-under-test
|
||||
(component/system-map
|
||||
:resolver (sut/new-resolver test-include-resolver)))
|
||||
|
||||
(deftest test-local-links
|
||||
(testing "Rewriting of local links"
|
||||
(is (= "Simple content." (sut/resolve-include (:resolver system-under-test) "./simple.md")))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue