aboutsummaryrefslogtreecommitdiff
path: root/tests/test-org-drill-custom-groups.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-org-drill-custom-groups.el')
-rw-r--r--tests/test-org-drill-custom-groups.el37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test-org-drill-custom-groups.el b/tests/test-org-drill-custom-groups.el
new file mode 100644
index 0000000..fe1e22c
--- /dev/null
+++ b/tests/test-org-drill-custom-groups.el
@@ -0,0 +1,37 @@
+;;; test-org-drill-custom-groups.el --- Customize sub-group structure -*- lexical-binding: t; -*-
+
+;;; Commentary:
+;; The defcustoms are split across four sub-groups under the top-level
+;; org-drill group so M-x customize-group org-drill is navigable instead of
+;; dumping 37 options in one flat list. (There is no leitner sub-group: the
+;; Leitner settings are defvars, not defcustoms.)
+
+;;; Code:
+
+(require 'ert)
+(require 'org-drill)
+
+(defconst test-org-drill-subgroups
+ '(org-drill-display org-drill-algorithm org-drill-session org-drill-leech)
+ "The customize sub-groups org-drill defines.")
+
+(ert-deftest test-org-drill-subgroups-exist-and-nest-under-org-drill ()
+ "Each sub-group is defined and is a child of the org-drill group."
+ (dolist (g test-org-drill-subgroups)
+ (should (get g 'group-documentation))
+ (should (assq g (get 'org-drill 'custom-group)))))
+
+(ert-deftest test-org-drill-defcustoms-land-in-expected-subgroups ()
+ "A representative defcustom from each sub-group is a member of it."
+ (should (assq 'org-drill-spaced-repetition-algorithm
+ (get 'org-drill-algorithm 'custom-group)))
+ (should (assq 'org-drill-leech-method
+ (get 'org-drill-leech 'custom-group)))
+ (should (assq 'org-drill-scope
+ (get 'org-drill-session 'custom-group)))
+ (should (assq 'org-drill-use-visible-cloze-face-p
+ (get 'org-drill-display 'custom-group))))
+
+(provide 'test-org-drill-custom-groups)
+
+;;; test-org-drill-custom-groups.el ends here