Skip to content

Commit 11b7b9c

Browse files
committed
Add stylish buffer tests
1 parent 6c87d4a commit 11b7b9c

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

tests/haskell-mode-tests.el

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,4 +556,74 @@ moves over sexps."
556556
(should (equal "-e\n-x\n./T1.hs\n./src/T2.hs\n"
557557
(buffer-substring (point-min) (point-max))))))))
558558

559+
(defun haskell-stylish-haskell-add-first-line ()
560+
(message-stdout "-- HEADER")
561+
(let (line)
562+
(while (setq line (read-stdin))
563+
(message-stdout line))))
564+
565+
(defun haskell-stylish-haskell-no-change ()
566+
(let (line)
567+
(while (setq line (read-stdin))
568+
(message-stdout line))))
569+
570+
(defun haskell-stylish-haskell-bad-exit-code ()
571+
(when noninteractive
572+
(kill-emacs 34)))
573+
574+
(defun haskell-stylish-haskell-error-message ()
575+
(message-stderr "Something wrong"))
576+
577+
(ert-deftest haskell-stylish-on-save-add-first-line ()
578+
(with-temp-dir-structure
579+
(("T.hs" . "main :: IO ()"))
580+
(with-script-path
581+
haskell-mode-stylish-haskell-path
582+
haskell-stylish-haskell-add-first-line
583+
(let ((haskell-stylish-on-save t))
584+
(with-current-buffer (find-file-noselect "T.hs")
585+
(insert "main = return ()\n")
586+
(save-buffer)
587+
(goto-char (point-min))
588+
(should (looking-at-p "-- HEADER")))))))
589+
590+
(ert-deftest haskell-stylish-on-save-no-change ()
591+
(with-temp-dir-structure
592+
(("T.hs" . "main :: IO ()"))
593+
(with-script-path
594+
haskell-mode-stylish-haskell-path
595+
haskell-stylish-haskell-no-change
596+
(let ((haskell-stylish-on-save t))
597+
(with-current-buffer (find-file-noselect "T.hs")
598+
(insert "main = return ()\n")
599+
(save-buffer)
600+
(goto-char (point-min))
601+
(should (looking-at-p "main = return")))))))
602+
603+
(ert-deftest haskell-stylish-on-save-bad-exit-code ()
604+
(with-temp-dir-structure
605+
(("T.hs" . "main :: IO ()"))
606+
(with-script-path
607+
haskell-mode-stylish-haskell-path
608+
haskell-stylish-haskell-bad-exit-code
609+
(let ((haskell-stylish-on-save t))
610+
(with-current-buffer (find-file-noselect "T.hs")
611+
(insert "main = return ()\n")
612+
(save-buffer)
613+
(goto-char (point-min))
614+
(should (looking-at-p "main = return ()")))))))
615+
616+
(ert-deftest haskell-stylish-on-save-error-message ()
617+
(with-temp-dir-structure
618+
(("T.hs" . "main :: IO ()"))
619+
(with-script-path
620+
haskell-mode-stylish-haskell-path
621+
haskell-stylish-haskell-error-message
622+
(let ((haskell-stylish-on-save t))
623+
(with-current-buffer (find-file-noselect "T.hs")
624+
(insert "main = return ()\n")
625+
(save-buffer)
626+
(goto-char (point-min))
627+
(should (looking-at-p "main = return ()")))))))
628+
559629
(provide 'haskell-mode-tests)

0 commit comments

Comments
 (0)