|
1 | 1 | (ns orchard.info-test
|
2 | 2 | (:require
|
3 |
| - [clojure.test :as test :refer [deftest is testing use-fixtures]] |
4 |
| - [clojure.string :as str] |
| 3 | + [clojure.java.io :refer [resource]] |
| 4 | + [clojure.string :as str :refer [replace-first]] |
| 5 | + [clojure.test :refer [are deftest is testing use-fixtures]] |
| 6 | + [orchard.cljs.test-env :as test-env] |
5 | 7 | [orchard.info :as info]
|
6 | 8 | [orchard.java :as java]
|
7 | 9 | [orchard.misc :as misc]
|
8 |
| - [clojure.java.io :refer [resource]] |
9 |
| - [orchard.cljs.test-env :as test-env] |
10 | 10 | [orchard.test-ns]))
|
11 | 11 |
|
12 | 12 | @java/cache-initializer ;; make tests more deterministic
|
|
352 | 352 |
|
353 | 353 | (deftest info-macros-referred-var-test
|
354 | 354 | (testing "Macro - referred"
|
355 |
| - (let [params '[{:sym orchard.test-ns/my-add} |
| 355 | + (let [params '[{:sym orchard.test-ns/my-add}, |
| 356 | + |
356 | 357 | {:ns orchard.test-ns
|
357 | 358 | :sym my-add}]
|
358 | 359 | expected '{:name my-add
|
|
368 | 369 | (map #(select-keys % [:ns :name :arglists :macro :file]))))))
|
369 | 370 |
|
370 | 371 | (testing "- :clj"
|
371 |
| - (is (= (take 2 (repeat expected)) |
| 372 | + (is (= [{}, expected] |
372 | 373 | (->> params
|
373 | 374 | (map #(info/info* %))
|
374 | 375 | (map #(select-keys % [:ns :name :arglists :macro :file])))))))))
|
|
467 | 468 | :returns int}))
|
468 | 469 | (is (re-find #"Returns the greater of two" (:doc i))))))
|
469 | 470 |
|
| 471 | +(def some-var nil) |
| 472 | + |
470 | 473 | (deftest info-undefined-namespace-test
|
471 |
| - (testing "Fully qualified sym can still be resolved" |
472 |
| - (is (= '{:added "1.2" |
473 |
| - :ns clojure.string |
474 |
| - :name upper-case |
475 |
| - :file "clojure/string.clj"} |
476 |
| - (select-keys (info/info* {:ns 'gibberish :sym 'clojure.string/upper-case}) |
477 |
| - [:added :ns :name :file])))) |
478 |
| - (testing "clojure.core syms can still be resolved" |
479 |
| - (is (= '{:added "1.0" |
480 |
| - :ns clojure.core |
481 |
| - :name merge |
482 |
| - :file "clojure/core.clj"} |
483 |
| - (select-keys (info/info* {:ns 'gibberish :sym 'merge}) |
484 |
| - [:added :ns :name :file]))))) |
| 474 | + (let [current-ns (-> ::_ namespace symbol)] |
| 475 | + (are [input expected] (= expected |
| 476 | + (select-keys (info/info* input) |
| 477 | + [:added :ns :name :file])) |
| 478 | + {:ns current-ns :sym 'some-var} '{:ns orchard.info-test, |
| 479 | + :name some-var, |
| 480 | + :file "orchard/info_test.clj"} |
| 481 | + {:ns current-ns :sym 'replace-first} '{:added "1.2", |
| 482 | + :ns clojure.string, |
| 483 | + :name replace-first, |
| 484 | + :file "clojure/string.clj"} |
| 485 | + {:ns current-ns :sym 'merge} '{:added "1.0" |
| 486 | + :ns clojure.core |
| 487 | + :name merge |
| 488 | + :file "clojure/core.clj"} |
| 489 | + {:ns current-ns :sym 'non.existing.ns/merge} {} |
| 490 | + {:ns current-ns :sym 'clojure.string/upper-case} '{:added "1.2" |
| 491 | + :ns clojure.string |
| 492 | + :name upper-case |
| 493 | + :file "clojure/string.clj"} |
| 494 | + {:ns current-ns :sym 'non.existing.ns/upper-case} {} |
| 495 | + |
| 496 | + {:ns 'gibberish :sym 'some-var} {} |
| 497 | + {:ns 'gibberish :sym 'replace-first} {} |
| 498 | + {:ns 'gibberish :sym 'merge} '{:added "1.0" |
| 499 | + :ns clojure.core |
| 500 | + :name merge |
| 501 | + :file "clojure/core.clj"} |
| 502 | + {:ns 'gibberish :sym 'non.existing.ns/merge} {} |
| 503 | + {:ns 'gibberish :sym 'clojure.string/upper-case} '{:added "1.2" |
| 504 | + :ns clojure.string |
| 505 | + :name upper-case |
| 506 | + :file "clojure/string.clj"} |
| 507 | + {:ns 'gibberish :sym 'non.existing.ns/upper-case} {}))) |
485 | 508 |
|
486 | 509 | (deftest javadoc-info-unit-test
|
487 | 510 | (testing "Get an HTTP URL for a Sun/Oracle Javadoc"
|
|
0 commit comments