Convert manual js indent tests to unit tests

* test/lisp/progmodes/js-tests.el (ert-x): Require.
(js-deftest-indent): New macro.  Use it to define tests for indenting
the below files.

* test/manual/indent/js-chain.js:
* test/manual/indent/js-indent-align-list-continuation-nil.js:
* test/manual/indent/js-indent-init-dynamic.js:
* test/manual/indent/js-indent-init-t.js:
* test/manual/indent/js.js:
* test/manual/indent/jsx-align-gt-with-lt.jsx:
* test/manual/indent/jsx-comment-string.jsx:
* test/manual/indent/jsx-indent-level.jsx:
* test/manual/indent/jsx-quote.jsx:
* test/manual/indent/jsx-self-closing.jsx:
* test/manual/indent/jsx-unclosed-1.jsx:
* test/manual/indent/jsx-unclosed-2.jsx:
* test/manual/indent/jsx.jsx: Move from here...
* test/lisp/progmodes/js-resources/js-chain.js:
* test/lisp/progmodes/js-resources/js-indent-align-list-continuation-nil.js:
* test/lisp/progmodes/js-resources/js-indent-init-dynamic.js:
* test/lisp/progmodes/js-resources/js-indent-init-t.js:
* test/lisp/progmodes/js-resources/js.js:
* test/lisp/progmodes/js-resources/jsx-align-gt-with-lt.jsx:
* test/lisp/progmodes/js-resources/jsx-comment-string.jsx:
* test/lisp/progmodes/js-resources/jsx-indent-level.jsx:
* test/lisp/progmodes/js-resources/jsx-quote.jsx:
* test/lisp/progmodes/js-resources/jsx-self-closing.jsx:
* test/lisp/progmodes/js-resources/jsx-unclosed-1.jsx:
* test/lisp/progmodes/js-resources/jsx-unclosed-2.jsx:
* test/lisp/progmodes/js-resources/jsx.jsx: ...to here.
This commit is contained in:
Stefan Kangas 2020-10-18 02:28:22 +02:00
parent f287fb45f5
commit 335e3cf89f
14 changed files with 28 additions and 0 deletions

View file

@ -22,6 +22,7 @@
;;; Code:
(require 'ert)
(require 'ert-x)
(require 'js)
(require 'syntax)
@ -196,6 +197,33 @@ if (!/[ (:,='\"]/.test(value)) {
;; The bug was a hang.
(should t)))
;;;; Indentation tests.
(defmacro js-deftest-indent (file)
`(ert-deftest ,(intern (format "js-indent-test/%s" file)) ()
:tags '(:expensive-test)
(let ((buf (find-file-noselect (ert-resource-file ,file))))
(unwind-protect
(with-current-buffer buf
(let ((orig (buffer-string)))
(indent-region (point-min) (point-max))
(should (equal (buffer-string) orig))))
(kill-buffer buf)))))
(js-deftest-indent "js-chain.js")
(js-deftest-indent "js-indent-align-list-continuation-nil.js")
(js-deftest-indent "js-indent-init-dynamic.js")
(js-deftest-indent "js-indent-init-t.js")
(js-deftest-indent "js.js")
(js-deftest-indent "jsx-align-gt-with-lt.jsx")
(js-deftest-indent "jsx-comment-string.jsx")
(js-deftest-indent "jsx-indent-level.jsx")
(js-deftest-indent "jsx-quote.jsx")
(js-deftest-indent "jsx-self-closing.jsx")
(js-deftest-indent "jsx-unclosed-1.jsx")
(js-deftest-indent "jsx-unclosed-2.jsx")
(js-deftest-indent "jsx.jsx")
(provide 'js-tests)
;;; js-tests.el ends here