blob: 73b831a3017da765b130320025f3c3790b04e8a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
(ns weepinbell.test-utility
(:require [compojure.core :refer [GET routes]]
[org.httpkit.server :refer [run-server]]))
(defmacro with-webmention [existance [source-route source-resp target-route target-resp] & body]
(let [source-url (str "http://localhost:38888" source-route)
target-url (str "http://localhost:38888" target-route)]
`(let [handler# (routes
(GET ~source-route [] ~source-resp)
(GET ~target-route [] ~target-resp))
~'created (promise)
~'deleted (promise)
~'updated (promise)
~'storage {:append (fn [~'_] (deliver ~'created true))
:update (fn [~'_ ~'_ ~'_] (deliver ~'updated true))
:delete (fn [~'_ ~'_] (deliver ~'deleted true))
:get (fn [~'_ ~'_]
(when (= ~existance :old)
{:webmention {:id "test-id"
:source ~source-url
:target ~target-url}}))}
~'server (run-server handler# {:port 38888 :join? false})]
(try
~@body
(finally (~'server))))))
|