Skip to content

Commit ed0f439

Browse files
committed
Merge branch 'master' into circleci-20-test
2 parents 6581545 + 1fcb78e commit ed0f439

File tree

2 files changed

+31
-78
lines changed

2 files changed

+31
-78
lines changed

test/clj/cljss/core_test.clj

Lines changed: 17 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,31 @@
11
(ns cljss.core-test
22
(:require [clojure.test :refer :all]
33
[cljss.core :refer :all]
4+
[cljss.rum :refer :all]
45
[cljss.builder :refer :all]
56
[cljss.font-face :as ff]
67
[cljss.inject-global :as ig]))
78

8-
(def basic-styles {:color "red"})
9+
(deftest test-styles-builder
10+
(testing "static"
11+
(is (= (build-styles "cls" {:color "#fff"})
12+
["cls" [".cls{color:#fff;}"] []])))
913

10-
(def dynamic-styles {:background-color #(:bg %)
11-
:margin #(if (:large %) "10px" "5px")})
14+
(testing "pseudos"
15+
(is (= (build-styles "cls" {:&:hover {:color "red"}})
16+
["cls" [".cls{}" ".cls:hover{color:red;}"] []])))
1217

13-
(def pseudo-styles (merge basic-styles {:&:hover {:color "blue"}}))
18+
(testing "string selector"
19+
(is (= (build-styles "cls" {"a" {:color "blue"}})
20+
["cls" [".cls{}" ".cls a{color:blue;}"] []])))
1421

15-
(def pseudo-dynamic-styles
16-
(assoc
17-
pseudo-styles
18-
:&:active
19-
{:color #(:active-color %)}))
22+
(testing "dynamic"
23+
(is (= (build-styles "cls" {:color 'x})
24+
'["cls" [".cls{color:var(--var-cls-0);}"] [["--var-cls-0" x]]])))
2025

21-
(def complete-styles
22-
(merge
23-
basic-styles
24-
dynamic-styles
25-
pseudo-dynamic-styles))
26-
27-
;;; unique ids for style classes are generated
28-
;;; from the hashed set of non pseudo styles
29-
;;; this function replicates initialization
30-
;;; of styles in cljss.builder/build-styles
31-
;;; and produces the same hashed value used in
32-
;;; style ids
33-
(defn remove-pseudo [styles]
34-
(filterv
35-
(comp not #'cljss.builder/pseudo?)
36-
styles))
37-
38-
(deftest test-build-styles
39-
(testing "building basic styles"
40-
(let [[[id static vals]] (build-styles "test" basic-styles)]
41-
(is (= "test" id))
42-
(is (= ".test{color:red;}" static))
43-
(is (empty? vals))))
44-
45-
(testing "building dynamic styles"
46-
(let [[[id static vals]] (build-styles "test" dynamic-styles)]
47-
(is (= "test" id))
48-
(is (= ".test{background-color:var(--var-test-0);margin:var(--var-test-1);}" static))
49-
(is (= [["--var-test-0" (:background-color dynamic-styles)] ["--var-test-1" (:margin dynamic-styles)]] vals))))
50-
51-
(testing "building basic pseudo styles"
52-
(let [result (build-styles "test" pseudo-styles)]
53-
(is (= result
54-
[["test" ".test{color:red;}" []]
55-
[".test:hover" ".test:hover{color:blue;}" []]]))))
56-
57-
(testing "building dynamic pseudo styles"
58-
(let [result (build-styles "test" pseudo-dynamic-styles)]
59-
(is (= result
60-
[["test"
61-
".test{color:red;}"
62-
[["--var-test-1" (get-in pseudo-dynamic-styles [:&:active :color])]]]
63-
[".test:hover" ".test:hover{color:blue;}" []]
64-
[".test:active" ".test:active{color:var(--var-test-1);}" []]]))))
65-
66-
(testing "building a complete set of styles"
67-
(let [result (build-styles "test" complete-styles)]
68-
(is (= result
69-
[["test"
70-
".test{color:red;background-color:var(--var-test-0);margin:var(--var-test-1);}"
71-
[["--var-test-0" (:background-color complete-styles)]
72-
["--var-test-1" (:margin complete-styles)]
73-
["--var-test-3" (get-in complete-styles [:&:active :color])]]]
74-
[".test:hover" ".test:hover{color:blue;}" []]
75-
[".test:active" ".test:active{color:var(--var-test-3);}" []]])))))
26+
(testing "dynamic pseudos"
27+
(is (= (build-styles "cls" {:&:hover {:color 'x}})
28+
'["cls" [".cls{}" ".cls:hover{color:var(--var-cls-0);}"] [["--var-cls-0" x]]]))))
7629

7730
(deftest test-font-face
7831
(testing "build @font-face"

test/cljs/cljss/core_test.cljs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
(testing "static css only"
77
(let [[tag static vals attrs] (test-styled Test :h1 {:color "white"})]
88
(is (= "h1" tag))
9-
(is (= ".cljss_core-test__Test{color:white;}" static))))
9+
(is (= [".cljss_core-test__Test{color:white;}"] static))))
1010

1111
(testing "static with attrs"
1212
(let [[tag static vals attrs] (test-styled Test :h1 {:v-margin "8px"
@@ -15,21 +15,21 @@
1515
varname (aget val 0)
1616
class-name ".cljss_core-test__Test"
1717
attr (aget attrs 0)]
18-
(is (= static (str class-name "{v-margin:8px;margin-top:var(" varname ");}")))
18+
(is (= static [(str class-name "{v-margin:8px;margin-top:var(" varname ");}")]))
1919
(is (= :v-margin attr))))
2020

2121
(testing "dynamic values"
2222
(let [[tag static vals attrs] (test-styled Test :h1 {:margin #(if (:large %) "10px" "5px")})
2323
val (aget vals 0)
2424
varname (aget val 0)]
2525
(is (= "--var-cljss_core-test__Test-0" varname))
26-
(is (= (str ".cljss_core-test__Test{margin:var(" varname ");}") static))))
26+
(is (= [(str ".cljss_core-test__Test{margin:var(" varname ");}")] static))))
2727

2828
(testing "pseudo styles"
2929
(let [[tag static vals attrs]
3030
(test-styled Test :h1 {:color "white" :&:hover {:color "red"}})
3131
class-name ".cljss_core-test__Test"]
32-
(is (= static (str class-name "{color:white;}" class-name ":hover{color:red;}")))))
32+
(is (= static [(str class-name "{color:white;}") (str class-name ":hover{color:red;}")]))))
3333

3434
(testing "dynamic pseudo styles"
3535
(let [[tag static vals attrs]
@@ -40,8 +40,8 @@
4040
val (aget vals 0)
4141
varname (aget val 0)
4242
class-name ".cljss_core-test__Test"]
43-
(is (= "--var-cljss_core-test__Test:hover-0" varname))
44-
(is (= static (str class-name "{color:blue;}" class-name ":hover{color:var(" varname ");}")))))
43+
(is (= "--var-cljss_core-test__Test-0" varname))
44+
(is (= static [(str class-name "{color:blue;}") (str class-name ":hover{color:var(" varname ");}")]))))
4545

4646
(testing "status attributes"
4747
(let [[tag static vals attrs]
@@ -50,7 +50,7 @@
5050
val (aget vals 0)
5151
varname (aget val 0)
5252
func (aget val 1)]
53-
(is (= static (str class-name "{font-size:var(" varname ");}")))
53+
(is (= static [(str class-name "{font-size:var(" varname ");}")]))
5454
(is (= "14px" (func {:active? true})))))
5555

5656
(testing "a complete set of styles"
@@ -72,10 +72,10 @@
7272
varname-1 (aget val-1 0)
7373
val-2 (aget vals 2)
7474
varname-2 (aget val-2 0)]
75-
(is (= static (-> class-name
76-
(str "{color:white;")
77-
(str "font-size:var(" varname-0 ");")
78-
(str "background-color:var(" varname-1 ");}")
79-
(str class-name ":hover")
80-
(str "{color:green;")
81-
(str "text-decoration:var(" varname-2 ");}")))))))
75+
(is (= static [(-> class-name
76+
(str "{color:white;")
77+
(str "font-size:var(" varname-0 ");")
78+
(str "background-color:var(" varname-1 ");}"))
79+
(-> (str class-name ":hover")
80+
(str "{color:green;")
81+
(str "text-decoration:var(" varname-2 ");}"))])))))

0 commit comments

Comments
 (0)