-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathresources_test.cljc
More file actions
69 lines (64 loc) · 2.97 KB
/
resources_test.cljc
File metadata and controls
69 lines (64 loc) · 2.97 KB
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 xapi-schema.spec.resources-test
(:require [clojure.test :refer [deftest is] :include-macros true]
[clojure.spec.alpha :as s :include-macros true]
[xapi-schema.spec.resources :as xsr :refer [*read-json-fn*
*write-json-fn*
json-string-conformer]]))
(deftest parse-json-test
(is (= {"foo" "bar"}
(*read-json-fn* "{\"foo\":\"bar\"}"))))
(deftest unparse-json-test
(is (= "{\"foo\":\"bar\"}"
(*write-json-fn* {"foo" "bar"}))))
(deftest json-string-conformer-test
(is (= {"foo" "bar"}
(s/conform json-string-conformer
"{\"foo\":\"bar\"}")))
(is (s/valid? json-string-conformer
"{\"foo\":\"bar\"}"))
(is (not
(s/valid? json-string-conformer
"{\"foo\":\"bar\"")))
(is (= {"foo" "bar"}
(s/conform json-string-conformer
{"foo" "bar"})))
(is (= "{\"foo\":\"bar\"}"
(s/unform json-string-conformer
{"foo" "bar"})))
(is (= "{\"foo\":\"bar\"}"
(s/unform json-string-conformer
"{\"foo\":\"bar\"}"))))
(deftest agent-param-test
(is (s/valid? :xapi.common.param/agent
"{\"mbox\":\"mailto:milt@yetanalytics.com\"}"))
(is (not (s/valid? :xapi.common.param/agent
"{\"mbox\":\"milt@yetanalytics.com\"}")))
(is (not (s/valid? :xapi.common.param/agent
"{\"email\":\"mailto:milt@yetanalytics.com\"}")))
(is (not (s/valid? :xapi.common.param/agent
"{\"objectType\": \"Group\",
\"mbox\": \"mailto:group@example.com\",
\"member\": [{\"mbox\": \"mailto:foo@example.com\"}]}")))
(is (not (s/valid? :xapi.common.param/agent
"{\"objectType\": \"Group\",
\"member\": [{\"mbox\": \"mailto:foo@example.com\"}]}"))))
(deftest statements-get-params-test
(is (s/valid? :xapi.statements.GET.request.params/agent
"{\"objectType\": \"Group\",
\"mbox\": \"mailto:group@example.com\",
\"member\": [{\"mbox\": \"mailto:foo@example.com\"}]}"))
(is (not (s/valid? :xapi.statements.GET.request.params/agent
"{\"objectType\": \"Group\",
\"member\": [{\"mbox\": \"mailto:foo@example.com\"}]}")))
(is (s/valid? :xapi.statements.GET.request/params
{:statementId (str #?(:clj (java.util.UUID/randomUUID)
:cljs (random-uuid)))
:format "ids"}))
#_(is (not
(s/valid? :xapi.statements.GET.request/params
{"statementId" (str #?(:clj (java.util.UUID/randomUUID)
:cljs (random-uuid)))
"ascending" true})))
(is (s/valid? :xapi.statements.GET.request/params
{:ascending true
:format "ids"})))