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"]
|
[prone "1.1.4"]
|
||||||
[ring/ring-anti-forgery "1.1.0"]
|
[ring/ring-anti-forgery "1.1.0"]
|
||||||
[ring-server "0.4.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}
|
: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