-
-
Notifications
You must be signed in to change notification settings - Fork 290
/
copied_config_test.clj
54 lines (51 loc) · 2.54 KB
/
copied_config_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
(ns clj-kondo.impl.copied-config-test
(:require [babashka.fs :as fs]
[clj-kondo.impl.core :as core-impl]
[clj-kondo.impl.utils :as utils]
[clojure.string :as str]
[clojure.test :refer [deftest is testing]]))
(deftest copied-configs-resolution-test
(testing "no findings"
(testing "when clj-kondo :config-dir is not present"
(is (nil? (core-impl/copied-config-paths {:detected-configs (atom ["cfg1" "cfg2"])}))))
(testing "when no configs are copied"
(is (nil? (core-impl/copied-config-paths {:config-dir "cfg-dir"
:detected-configs (atom [])})))))
(testing "found copied configs"
(testing "are sorted"
(is (= ["cfg-dir/cfg/b"
"cfg-dir/cfg/c"
"cfg-dir/cfg/w"
"cfg-dir/cfg/z"]
(core-impl/copied-config-paths {:config-dir "cfg-dir"
:detected-configs (atom ["cfg/c" "cfg/z" "cfg/b" "cfg/w"])}))))
(testing "returns config-dir relative to current dir"
(is (= ["cfg-dir/cfg1"]
(core-impl/copied-config-paths {:config-dir (str (fs/absolutize "cfg-dir"))
:detected-configs (atom ["cfg1"])}))))
(when utils/windows?
(testing "unixifies all paths on Windows"
(is (= ["cfg-dir/cfg/b" "cfg-dir/cfg/c" "cfg-dir/cfg/w" "cfg-dir/cfg/z"]
(core-impl/copied-config-paths {:config-dir (str (fs/absolutize "cfg-dir"))
:detected-configs (atom ["cfg\\c" "cfg\\z" "cfg\\b" "cfg\\w"])})))))))
(deftest print-copied-configs-test
(is (= (apply str (interleave
["Configs copied:"
"- cfg/a/b"
"- cfg/c/d"]
(repeat (System/getProperty "line.separator"))))
(let [s (new java.io.StringWriter)]
(binding [*err* s]
(core-impl/print-copied-configs ["cfg/a/b" "cfg/c/d"] ".clj-kondo"))
(str s)))))
(deftest print-no-copied-configs-test
(is (= (str "No configs copied." (System/getProperty "line.separator"))
(let [s (new java.io.StringWriter)]
(binding [*err* s]
(core-impl/print-copied-configs [] ".clj-kondo"))
(str s))))
(is (str/includes? (let [s (new java.io.StringWriter)]
(binding [*err* s]
(core-impl/print-copied-configs ["cfg/a/b" "cfg/c/d"] nil))
(str s))
"config dir")))