-
Notifications
You must be signed in to change notification settings - Fork 9
/
assert.cljs
64 lines (52 loc) · 1.7 KB
/
assert.cljs
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(ns ^{:author "Alexander James King",
:doc "Assertion functions wrapping spy.core functions,
providing assertions using cljs.test/is and messages
to aid debugging when test expectations are not met.
Differs from the Clojure version as macros are not used
due to added complexity and the fact that cljs does not
provide the line number on failure at present."}
spy.assert
(:require [spy.core :as spy]
[spy.assert-messages :as assert-messages]
[cljs.test :refer [do-report] :refer-macros [is]]))
(defn called-n-times?
[f n]
(is (spy/called-n-times? f n)
(assert-messages/expected-calls f n)))
(defn not-called?
[f]
(is (spy/not-called? f)
(assert-messages/expected-calls f 0)))
(defn called-once?
[f]
(is (spy/called-once? f)
(assert-messages/expected-calls f 1)))
(defn called-with?
[f & args]
(is (apply spy/called-with? f args)
(apply assert-messages/called-with f args)))
(defn not-called-with?
[f & args]
(is (apply spy/not-called-with? f args)
(apply assert-messages/not-called-with f args)))
(defn called-once-with?
[f & args]
(is (apply spy/called-once-with? f args)
(apply assert-messages/called-once-with f args)))
(defn called-at-least-n-times?
[f n]
(is (spy/called-at-least-n-times? f n)
(assert-messages/called-at-least-n-times f n)))
(defn called?
[f]
(called-at-least-n-times? f 1))
(defn called-at-least-once?
[f]
(called-at-least-n-times? f 1))
(defn called-no-more-than-n-times?
[f n]
(is (spy/called-no-more-than-n-times? f n)
(assert-messages/called-no-more-than-n-times f n)))
(defn called-no-more-than-once?
[f]
(called-no-more-than-n-times? f 1))