/
swagger_test.clj
69 lines (63 loc) · 2.97 KB
/
swagger_test.clj
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
65
66
67
68
69
(ns xiana.swagger-test
(:require
[clojure.test :as t :refer [deftest is testing]]
[xiana.swagger :as sut]))
(def sample-routes
"Sample routes structure."
{:routes [["/" {:action :action}]]})
(def sample-routes-with-handler
"Sample routes structure."
{:routes [["/" {:handler :handler}]]})
(def sample-routes-without-action
"Sample routes structure (without action or handler)."
{:routes [["/" {}]]})
(deftest swagger-route-data-generation
(testing "Swagger Data generation from Routes\n"
(testing "Swagger Data from Empty Route"
(let [generated (-> []
:routes
(sut/swagger-dot-json :type :edn)
:paths)
count-of-generated-routes-data (count generated)]
(is generated)
(is (zero? count-of-generated-routes-data))))
(testing "Swagger Data from Sample Route /w handle\n"
(let [generated-swagger-data (-> sample-routes-with-handler
:routes
(sut/swagger-dot-json :type :edn))]
(testing "One swagger route for one route entry?"
(let [generated-route-count (-> generated-swagger-data
:paths
count)]
(is (= generated-route-count 1))))
(testing "Actions should generate every methods"
(let [index-generated-methods-by-sample (->
generated-swagger-data
:paths
(get "/")
keys
set)]
(is (= index-generated-methods-by-sample
(set sut/all-methods)))))))
(testing "Swagger Data from Sample Route /w action"
(let [generated-swagger-data (-> sample-routes
:routes
(sut/swagger-dot-json :type :edn))]
(testing "One swagger route for one route entry?"
(let [generated-route-count (->
generated-swagger-data
:paths
keys
count)]
(is (= generated-route-count
1))))
(testing "Actions should generate every methods"
(let [index-generated-methods-by-sample (->
generated-swagger-data
:paths
(get "/")
keys
set)]
(is (=
index-generated-methods-by-sample
(set sut/all-methods)))))))))