blob: e5a64465b210816ccce186a838864c8722cf9264 (
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
|
(ns weepinbell.writer-test
(:require [clojure.test :refer [deftest testing is]]
[weepinbell.processor.writer :refer [write]]))
(defn test-write [data behavior]
(let [appended (promise)
updated (promise)
append-callbacked (promise)
update-callbacked (promise)
storage {:append (fn [& _] (deliver appended true))
:update (fn [& _] (deliver updated true))}
callbacks {:on-create (fn [_] (deliver append-callbacked true))
:on-update (fn [_] (deliver update-callbacked true))}
written (write data storage callbacks)]
(is (:ok? written))
(when (= behavior :should-append)
(is (deref appended 10 false)
(deref append-callbacked 10 false)))
(when (= behavior :should-update)
(is (deref updated 10 false)
(deref update-callbacked 10 false)))))
(deftest writer-test
(testing "Append new webmentin"
(test-write {:ok? true :new? true :id "1" :new-data {}} :should-append))
(testing "Update old webmentin"
(test-write {:ok? true :new? false :id "1" :new-data {}} :should-update)))
|