From 335e3cf89f28b38ac0f5c9396ad6a49ca0261180 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sun, 18 Oct 2020 02:28:22 +0200 Subject: [PATCH] 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. --- .../progmodes/js-resources}/js-chain.js | 0 .../js-indent-align-list-continuation-nil.js | 0 .../js-resources}/js-indent-init-dynamic.js | 0 .../js-resources}/js-indent-init-t.js | 0 .../progmodes/js-resources}/js.js | 0 .../js-resources}/jsx-align-gt-with-lt.jsx | 0 .../js-resources}/jsx-comment-string.jsx | 0 .../js-resources}/jsx-indent-level.jsx | 0 .../progmodes/js-resources}/jsx-quote.jsx | 0 .../js-resources}/jsx-self-closing.jsx | 0 .../js-resources}/jsx-unclosed-1.jsx | 0 .../js-resources}/jsx-unclosed-2.jsx | 0 .../progmodes/js-resources}/jsx.jsx | 0 test/lisp/progmodes/js-tests.el | 28 +++++++++++++++++++ 14 files changed, 28 insertions(+) rename test/{manual/indent => lisp/progmodes/js-resources}/js-chain.js (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/js-indent-align-list-continuation-nil.js (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/js-indent-init-dynamic.js (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/js-indent-init-t.js (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/js.js (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-align-gt-with-lt.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-comment-string.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-indent-level.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-quote.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-self-closing.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-unclosed-1.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx-unclosed-2.jsx (100%) rename test/{manual/indent => lisp/progmodes/js-resources}/jsx.jsx (100%) diff --git a/test/manual/indent/js-chain.js b/test/lisp/progmodes/js-resources/js-chain.js similarity index 100% rename from test/manual/indent/js-chain.js rename to test/lisp/progmodes/js-resources/js-chain.js diff --git a/test/manual/indent/js-indent-align-list-continuation-nil.js b/test/lisp/progmodes/js-resources/js-indent-align-list-continuation-nil.js similarity index 100% rename from test/manual/indent/js-indent-align-list-continuation-nil.js rename to test/lisp/progmodes/js-resources/js-indent-align-list-continuation-nil.js diff --git a/test/manual/indent/js-indent-init-dynamic.js b/test/lisp/progmodes/js-resources/js-indent-init-dynamic.js similarity index 100% rename from test/manual/indent/js-indent-init-dynamic.js rename to test/lisp/progmodes/js-resources/js-indent-init-dynamic.js diff --git a/test/manual/indent/js-indent-init-t.js b/test/lisp/progmodes/js-resources/js-indent-init-t.js similarity index 100% rename from test/manual/indent/js-indent-init-t.js rename to test/lisp/progmodes/js-resources/js-indent-init-t.js diff --git a/test/manual/indent/js.js b/test/lisp/progmodes/js-resources/js.js similarity index 100% rename from test/manual/indent/js.js rename to test/lisp/progmodes/js-resources/js.js diff --git a/test/manual/indent/jsx-align-gt-with-lt.jsx b/test/lisp/progmodes/js-resources/jsx-align-gt-with-lt.jsx similarity index 100% rename from test/manual/indent/jsx-align-gt-with-lt.jsx rename to test/lisp/progmodes/js-resources/jsx-align-gt-with-lt.jsx diff --git a/test/manual/indent/jsx-comment-string.jsx b/test/lisp/progmodes/js-resources/jsx-comment-string.jsx similarity index 100% rename from test/manual/indent/jsx-comment-string.jsx rename to test/lisp/progmodes/js-resources/jsx-comment-string.jsx diff --git a/test/manual/indent/jsx-indent-level.jsx b/test/lisp/progmodes/js-resources/jsx-indent-level.jsx similarity index 100% rename from test/manual/indent/jsx-indent-level.jsx rename to test/lisp/progmodes/js-resources/jsx-indent-level.jsx diff --git a/test/manual/indent/jsx-quote.jsx b/test/lisp/progmodes/js-resources/jsx-quote.jsx similarity index 100% rename from test/manual/indent/jsx-quote.jsx rename to test/lisp/progmodes/js-resources/jsx-quote.jsx diff --git a/test/manual/indent/jsx-self-closing.jsx b/test/lisp/progmodes/js-resources/jsx-self-closing.jsx similarity index 100% rename from test/manual/indent/jsx-self-closing.jsx rename to test/lisp/progmodes/js-resources/jsx-self-closing.jsx diff --git a/test/manual/indent/jsx-unclosed-1.jsx b/test/lisp/progmodes/js-resources/jsx-unclosed-1.jsx similarity index 100% rename from test/manual/indent/jsx-unclosed-1.jsx rename to test/lisp/progmodes/js-resources/jsx-unclosed-1.jsx diff --git a/test/manual/indent/jsx-unclosed-2.jsx b/test/lisp/progmodes/js-resources/jsx-unclosed-2.jsx similarity index 100% rename from test/manual/indent/jsx-unclosed-2.jsx rename to test/lisp/progmodes/js-resources/jsx-unclosed-2.jsx diff --git a/test/manual/indent/jsx.jsx b/test/lisp/progmodes/js-resources/jsx.jsx similarity index 100% rename from test/manual/indent/jsx.jsx rename to test/lisp/progmodes/js-resources/jsx.jsx diff --git a/test/lisp/progmodes/js-tests.el b/test/lisp/progmodes/js-tests.el index 681e51de0ed..1de2df0e85a 100644 --- a/test/lisp/progmodes/js-tests.el +++ b/test/lisp/progmodes/js-tests.el @@ -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 -- 2.39.2