/ test / solidity-flycheck-tests.el
solidity-flycheck-tests.el
 1  ;;; solidity-flycheck-tests.el --- Setup and execute all tests
 2  
 3  ;;; Commentary:
 4  
 5  ;; This package contains tests for the solidity-flycheck package.
 6  
 7  ;;; Code:
 8  
 9  (require 'solidity-flycheck)
10  
11  (ert-deftest test-solidity-flycheck--solc-allow-paths ()
12    "Test that `solidity-flycheck--solc-allow-paths' contains `solidity-flycheck-solc-additional-allow-paths'."
13    (let ((solidity-flycheck-solc-additional-allow-paths '("/tmp/test1" "/tmp/test2")))
14      (should (equal
15               (solidity-flycheck--solc-allow-paths)
16               '("/tmp/test1" "/tmp/test2" ".")))))
17  
18  (defmacro with-temp-dirs (temp-dirs &rest body)
19    (let ((bindings (mapcar (lambda (d) `(,d (make-temp-file "" t)))
20                            temp-dirs)))
21      `(let ,bindings
22         (unwind-protect
23             (progn
24               ,@body)
25           (progn
26             (dolist (d (list ,@temp-dirs))
27               (delete-directory d t)))))))
28  
29  (ert-deftest test-solidity-flycheck--solc-remappings ()
30    "Test that `solidity-flycheck--solc-remappings' creates remappings for path in `solidity-flycheck--solc-allow-paths'"
31    (with-temp-dirs
32     (test-dir-1 test-dir-2 test-dir-3)
33     (let* ((default-directory test-dir-1)
34            (solidity-flycheck-solc-additional-allow-paths (list test-dir-2 test-dir-3)))
35       (make-directory (concat (file-name-as-directory test-dir-2) "subdir1"))
36       (make-directory (concat (file-name-as-directory test-dir-3) "@subdir2"))
37       (should (equal
38                (solidity-flycheck--solc-remappings)
39                (list (concat "subdir1=" (concat (file-name-as-directory test-dir-2) "subdir1"))
40                      (concat "@subdir2=" (concat (file-name-as-directory test-dir-3) "@subdir2")))))))
41    )
42  
43  (provide 'solidity-flycheck-tests)
44  ;;; solidity-flycheck-tests.el ends here