blob: 7d40f893195f858943a5627a3b2f8df7aae9ae37 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
;;; test-integration-card-types-integration-test.el --- Integration test for card types
;;; Commentary:
;; Integration test verifying that the card type system works correctly.
;;; Code:
(require 'ert)
(require 'assess)
(require 'org-drill)
;;; Integration Tests - Card Type System
(ert-deftest test-integration-card-types-integration-card-type-system-complete ()
"Test that card type system handles all expected types.
Verifies all card types are registered in org-drill-card-type-alist."
;; "translate_number" is intentionally absent: issue #43 removed it from
;; org-drill-card-type-alist because its presenter never existed (see
;; test-org-drill-translate-number-regression.el). Listing it here would
;; re-assert a registration the project deliberately dropped.
(let ((expected-types '(nil "simple" "simpletyped" "twosided" "multisided"
"hide1cloze" "hide2cloze" "show1cloze" "show2cloze"
"multicloze" "hidefirst" "hidelast"
"hide1_firstmore" "show1_lastmore" "show1_firstless"
"conjugate" "decline_noun" "spanish_verb")))
(dolist (type expected-types)
(let ((entry (assoc type org-drill-card-type-alist)))
(should entry)
(should (cadr entry))))))
(ert-deftest test-integration-card-types-integration-simple-vs-twosided ()
"Test that simple and twosided cards use different presentation functions."
(let ((simple-fn (cadr (assoc "simple" org-drill-card-type-alist)))
(twosided-fn (cadr (assoc "twosided" org-drill-card-type-alist))))
(should simple-fn)
(should twosided-fn)
(should-not (eq simple-fn twosided-fn))))
(ert-deftest test-integration-card-types-integration-hide-vs-show-cloze ()
"Test that hide and show cloze variants use different functions."
(let ((hide1-fn (cadr (assoc "hide1cloze" org-drill-card-type-alist)))
(show1-fn (cadr (assoc "show1cloze" org-drill-card-type-alist)))
(hide2-fn (cadr (assoc "hide2cloze" org-drill-card-type-alist)))
(show2-fn (cadr (assoc "show2cloze" org-drill-card-type-alist))))
(should hide1-fn)
(should show1-fn)
(should hide2-fn)
(should show2-fn)
;; All different
(should-not (eq hide1-fn show1-fn))
(should-not (eq hide1-fn hide2-fn))
(should-not (eq show1-fn show2-fn))))
(ert-deftest test-integration-card-types-integration-default-equals-simple ()
"Test that default (nil) card type maps to same function as simple."
(let ((default-fn (cadr (assoc nil org-drill-card-type-alist)))
(simple-fn (cadr (assoc "simple" org-drill-card-type-alist))))
(should default-fn)
(should simple-fn)
(should (eq default-fn simple-fn))
(should (eq default-fn 'org-drill-present-simple-card))))
(ert-deftest test-integration-card-types-integration-presentation-functions-exist ()
"Test that all presentation functions are defined."
(let ((all-types '("simple" "twosided" "hide1cloze" "show1cloze" "multicloze")))
(dolist (type all-types)
(let* ((entry (assoc type org-drill-card-type-alist))
(fn (cadr entry)))
(should fn)
(should (fboundp fn))))))
(provide 'test-integration-card-types-integration-test)
;;; test-integration-card-types-integration-test.el ends here
|