|
1 | 1 | (ns refactor-nrepl.ns.rebuild-test |
2 | 2 | (:require |
3 | | - [clojure.test :as t] |
4 | | - [refactor-nrepl.ns.rebuild :as rebuild])) |
| 3 | + [clojure.test :as t :refer [deftest is testing]] |
| 4 | + [refactor-nrepl.ns.rebuild :as sut])) |
5 | 5 |
|
6 | 6 | (t/deftest build-cljc-dep-forms |
7 | 7 | (t/testing "shared :requires only, no conditionals" |
8 | 8 | (t/is (= '((:require [clojure.string :as str])) |
9 | | - (rebuild/build-cljc-dep-forms |
| 9 | + (sut/build-cljc-dep-forms |
10 | 10 | '{:clj {:require ({:ns clojure.string, :as str, :rename {}}) |
11 | 11 | :import ()} |
12 | 12 | :cljs {:require ({:ns clojure.string, :as str, :rename {}}) |
13 | 13 | :import ()} |
14 | 14 | :source-dialect :cljc})))) |
15 | 15 | (t/testing "single segment namespaces" |
16 | 16 | (t/is (= '((:require [single-segment-ns])) |
17 | | - (rebuild/build-cljc-dep-forms |
| 17 | + (sut/build-cljc-dep-forms |
18 | 18 | '{:clj {:require ({:ns single-segment-ns :rename {}}) |
19 | 19 | :import ()} |
20 | 20 | :cljs {:require ({:ns single-segment-ns, :rename {}}) |
|
26 | 26 | :cljs |
27 | 27 | [(:require [clojure.string :as str]) |
28 | 28 | (:require-macros [conditional-with-require-macros :refer [my-when]])])) |
29 | | - (rebuild/build-cljc-dep-forms |
| 29 | + (sut/build-cljc-dep-forms |
30 | 30 | '{:clj {:require ({:ns clojure.string, :as str, :rename {}}) |
31 | 31 | :import ()} |
32 | 32 | :cljs {:require ({:ns clojure.string, :as str, :rename {}}) |
|
37 | 37 | (t/testing "should rebuild cljc ns declarations that consist of only conditionals for a single language correctly (#296)" |
38 | 38 | (t/is (= (list (symbol "#?@") |
39 | 39 | '(:cljs [(:require-macros [conditional-with-require-macros :refer [my-when]])])) |
40 | | - (rebuild/build-cljc-dep-forms |
| 40 | + (sut/build-cljc-dep-forms |
41 | 41 | '{:clj {:require () |
42 | 42 | :import ()} |
43 | 43 | :cljs {:require () |
|
47 | 47 |
|
48 | 48 | (t/testing "Empty declaration should be rebuilt as-is" |
49 | 49 | (t/is (= nil |
50 | | - (rebuild/build-cljc-dep-forms |
| 50 | + (sut/build-cljc-dep-forms |
51 | 51 | '{:clj {:require () |
52 | 52 | :import ()} |
53 | 53 | :cljs {:require () |
54 | 54 | :import ()} |
55 | | - :source-dialect :cljc}))))) |
| 55 | + :source-dialect :cljc})))) |
| 56 | + |
| 57 | + (testing "`:as-alias`" |
| 58 | + (let [input '{:require ({:ns foo, :as-alias str}) |
| 59 | + :import ()}] |
| 60 | + (t/testing "is kept" |
| 61 | + (t/is (= '((:require [foo :as-alias str])) |
| 62 | + (sut/build-cljc-dep-forms |
| 63 | + {:clj input |
| 64 | + :cljs input |
| 65 | + :source-dialect :cljc}))))))) |
| 66 | + |
| 67 | +(deftest rebuild-ns-form |
| 68 | + (let [input '(ns refactor-nrepl.ns.clean-ns (:require [foo :as-alias f]))] |
| 69 | + (is (= input (sut/rebuild-ns-form '{:clj {:require ({:ns foo, :as-alias f}) |
| 70 | + :import nil} |
| 71 | + :ns refactor-nrepl.ns.clean-ns |
| 72 | + :source-dialect :clj} |
| 73 | + input)) |
| 74 | + "`:as-alias` directives are kept"))) |
0 commit comments