X-Git-Url: https://jxself.org/git/?p=8sync.git;a=blobdiff_plain;f=tests.scm;fp=tests.scm;h=f0edcfbdb7941a6daba6973a0e3add7e393ce88f;hp=b865ca809bb728c6798db8a25b1e3e9bc6fa9cdc;hb=c46a7611c4db5d4c8413b859ba6f790945f581de;hpb=68e8784ebff46e4cfe588d6f13593709b51fe242 diff --git a/tests.scm b/tests.scm index b865ca8..f0edcfb 100644 --- a/tests.scm +++ b/tests.scm @@ -184,10 +184,45 @@ (test-equal (run-request-when run-two-squared) '(88 . 0))) -;; Agenda tests -;; ------------ +;;; Agenda tests +;;; ------------ +;; helpers +(define (speak-it) + (let ((messages '())) + (lambda* (#:optional message) + (if message (set! messages (append messages (list message)))) + messages))) + +;; the dummy test + +(define speaker (speak-it)) + +(define (dummy-func) + (speaker "I'm a dummy\n")) + +(define (run-dummy) + (speaker "I bet I can make you say you're a dummy!\n") + (run dummy-func)) + +(let ((q (make-q))) + (set! speaker (speak-it)) ; reset the speaker + (enq! q run-dummy) + (start-agenda (make-agenda #:queue q) + (true-after-n-times 2)) + (test-equal (speaker) + '("I bet I can make you say you're a dummy!\n" + "I'm a dummy\n"))) + +;; should only do the first one after one round though +(let ((q (make-q))) + (set! speaker (speak-it)) ; reset the speaker + (enq! q run-dummy) + (start-agenda (make-agenda #:queue q) + (true-after-n-times 1)) + (test-equal (speaker) + '("I bet I can make you say you're a dummy!\n"))) ;; End tests