diff --git a/plantuml-mode.el b/plantuml-mode.el index a94426d..097e208 100644 --- a/plantuml-mode.el +++ b/plantuml-mode.el @@ -161,18 +161,20 @@ (defvar-local plantuml-exec-mode plantuml-default-exec-mode "The Plantuml execution mode. See `plantuml-default-exec-mode' for acceptable values.") -(defun plantuml-set-exec-mode () - "Set the execution mode for PlantUML." - (interactive) - (let* ((completion-ignore-case t) - (supported-modes '("jar" "server"))) - (setq plantuml-exec-mode (intern (completing-read (format "Exec mode [%s]: " plantuml-exec-mode) - supported-modes - nil - t - nil - nil - plantuml-exec-mode))))) +(defun plantuml-set-exec-mode (mode) + "Set the execution mode MODE for PlantUML." + (interactive (let* ((completion-ignore-case t) + (supported-modes '("jar" "server"))) + (completing-read (format "Exec mode [%s]: " plantuml-exec-mode) + supported-modes + nil + t + nil + nil + plantuml-exec-mode))) + (if (member mode '("jar" "server")) + (setq plantuml-exec-mode (intern mode)) + (error (concat "Unsupported mode:" mode)))) (defun plantuml-enable-debug () "Enables debug messages into the *PLANTUML Messages* buffer." diff --git a/test/plantuml-config-test.el b/test/plantuml-config-test.el new file mode 100644 index 0000000..8fc4a2a --- /dev/null +++ b/test/plantuml-config-test.el @@ -0,0 +1,33 @@ +;;; plantuml-config-test.el --- tests for plantuml-mode configuration knobs -*- lexical-binding: t; -*- + +;; Author: Carlo Sciolla +;; Maintainer: Carlo Sciolla +;; URL: https://github.com/skuro/plantuml-mode + +;;; Commentary: + +;; Test user-accessible configuration knobs + +;;; Code: + +(require 'plantuml-mode) + +(ert-deftest plantuml-config-test/set-exec-mode-happy-path () + "Test switching execution modes" + (let ((orig-mode plantuml-exec-mode)) + ;; happy flows: + (plantuml-set-exec-mode "server") + (should (equal 'server plantuml-exec-mode)) + (plantuml-set-exec-mode "jar") + (should (equal 'jar plantuml-exec-mode)) + + (setq plantuml-exec-mode orig-mode))) + +(ert-deftest plantuml-config-test/set-exec-mode-wrong-mode () + "Test setting the exec mode with the wrong text" + :expected-result :failed + (plantuml-set-exec-mode "turing-machine")) + +(provide 'plantuml-mode-config-test) + +;;; plantuml-config-test.el ends here