diff --git a/example/project.clj b/example/project.clj index 6e9c6b7..50709d9 100644 --- a/example/project.clj +++ b/example/project.clj @@ -10,7 +10,7 @@ [org.clojure/clojurescript "1.10.520"] [reagent "0.8.1"] [devcards "0.2.6"] - [kamera "0.1.1-SNAPSHOT"]] + [kamera "0.1.3-SNAPSHOT"]] :source-paths ["src"] :resource-paths ["resources"] @@ -20,5 +20,5 @@ "fig:min" ["run" "-m" "figwheel.main" "-O" "advanced" "-bo" "dev"] "fig:test" ["run" "-m" "figwheel.main" "-co" "test.cljs.edn" "-m" example.test-runner]} - :profiles {:dev {:dependencies [[com.bhauman/figwheel-main "0.1.9"] + :profiles {:dev {:dependencies [[com.bhauman/figwheel-main "0.2.9"] [com.bhauman/rebel-readline-cljs "0.1.4"]]}}) diff --git a/example/test-resources/kamera/example.core_test.png b/example/test-resources/kamera/example.core_test.png index b128f9e..0cdeaf4 100644 Binary files a/example/test-resources/kamera/example.core_test.png and b/example/test-resources/kamera/example.core_test.png differ diff --git a/project.clj b/project.clj index 01f2946..f05fc1e 100644 --- a/project.clj +++ b/project.clj @@ -45,7 +45,9 @@ "resources/public/kamera.js"] :plugins [[lein-sass "0.4.0"]]} :repl {:prep-tasks ^:replace []} - :build {:prep-tasks ^:replace []}} + :build {:prep-tasks ^:replace []} + :example-test {:prep-tasks ^:replace [] + :source-paths ["test-resources"]}} :sass {:src "resources/sass" :output-directory "resources/public/css"} diff --git a/resources/sass/kamera.scss b/resources/sass/kamera.scss index 8f97d0c..e4655ca 100644 --- a/resources/sass/kamera.scss +++ b/resources/sass/kamera.scss @@ -191,11 +191,11 @@ body { } .step-name.expanded:before { - content: 'remove_circle_outline'; + content: '\e15d'; } .step-name.contracted:before { - content: 'add_circle_outline'; + content: '\e148'; } .step-name { diff --git a/test-example-project.sh b/test-example-project.sh index 7a47b28..3a2b903 100755 --- a/test-example-project.sh +++ b/test-example-project.sh @@ -11,9 +11,11 @@ if [ $? -eq 0 ]; then exit 1; else echo "Example project failed as expected" + FILE=./target/kamera/results.edn if [ -f "$FILE" ]; then - echo "Report $FILE generated as expected"; + echo "Report $FILE generated as expected, running assertions"; + cd .. && lein with-profile +example-test run -m assert-example-results else echo "Report $FILE was not generated, failing"; exit 1; diff --git a/test-resources/assert_example_results.clj b/test-resources/assert_example_results.clj new file mode 100644 index 0000000..efc8d04 --- /dev/null +++ b/test-resources/assert_example_results.clj @@ -0,0 +1,28 @@ +(ns assert-example-results + (:require [clojure.edn :as edn] + [clojure.test :refer [deftest testing is run-tests successful?]])) + +(deftest example-report-test [] + (let [{:keys [results] :as report} (edn/read-string (slurp "example/target/kamera/results.edn"))] + (is report) + (is (= 2 (count results))) + + (testing "first devcard fails on purpose" + (let [result (first results)] + (is (false? (:passed? result))) + (is (pos? (:metric result))) + (is (= "example.another_core_test.png" + (get-in result [:target :reference-file]))))) + + (testing "second devcard passes" + (let [result (second results)] + (is (true? (:passed? result))) + (is (< (:metric result) 0.05)) + (is (= "example.core_test.png" + (get-in result [:target :reference-file]))))))) + +(defn -main [& args] + (let [test-report (run-tests 'assert-example-results)] + (println "Example project results:" test-report) + (when-not (successful? test-report) + (System/exit 1))))