blob: 99efcfb7751490c2ac767ab814002bdec612f1aa (
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
(ns weepinbell.janitor-test
(:require [clojure.test :refer [deftest testing is]]
[weepinbell.processor.janitor :refer [clean]]))
(def old-unverified {:ok? true
:verified? false
:new? false
:id "1234"
:old-data {}})
(def new-unverified {:ok? true
:verified? false
:new? true
:id "1234"
:old-data {}})
(def old-verified {:ok? true
:verified? true
:new? false
:id "1234"
:old-data {}})
(def new-verified {:ok? true
:verified? true
:new? true
:id "1234"
:old-data {}})
(defn- not-if [condition value]
(if condition (not value) value))
(defn- test-clean [testdata should-clean?]
(let [deleted (promise)
storage {:delete (fn [_] (deliver deleted true))}
callbacked (promise)
callbacks {:on-delete (fn [_] (deliver callbacked true))}
cleaned (clean testdata storage callbacks)]
(is (not-if should-clean? (:ok? cleaned)))
(is (not-if should-clean? (not (deref deleted 10 false))))
(is (not-if should-clean? (not (deref callbacked 10 false))))))
(deftest janitor-test
(testing "janitor cleans old unverified webmention"
(test-clean old-unverified true))
(testing "janitor does nothing for new unverified and all verified webmentions"
(doall (map #(test-clean % false) [old-verified new-verified new-unverified]))))
|