fix: tangle.py write-once-then-append logic (was always-appending, triplicating files); confirm-dialog option plist comparison; mouse-event button type (or keyword null)
This commit is contained in:
@@ -4,88 +4,6 @@
|
||||
(def-suite slot-suite :description "Slot system tests")
|
||||
(in-suite slot-suite)
|
||||
|
||||
(def-test defslot-register ( )
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "hello"))
|
||||
(is-true (slot-p :test-slot)))
|
||||
|
||||
(def-test slot-render-calls ( )
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "a"))
|
||||
(defslot :test-slot :order 2 :render-fn (lambda () "b"))
|
||||
(is (equal '("a" "b") (slot-render :test-slot))))
|
||||
|
||||
(def-test slot-render-empty ( )
|
||||
(clear-slot :ghost)
|
||||
(is-false (slot-render :ghost)))
|
||||
|
||||
(def-test clear-slot-removes ( )
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "x"))
|
||||
(clear-slot :test-slot)
|
||||
(is-false (slot-p :test-slot)))
|
||||
|
||||
(def-test defslot-nil-render-fn ( )
|
||||
"defslot with nil (default) render-fn should not crash slot-render."
|
||||
(clear-slot :nil-slot)
|
||||
(defslot :nil-slot :order 1)
|
||||
(is-true (slot-p :nil-slot))
|
||||
(is (equal '(nil) (slot-render :nil-slot)))
|
||||
(clear-slot :nil-slot))
|
||||
|
||||
(def-test defslot-duplicate-same-order ( )
|
||||
"Multiple defslot calls with the same order should all register."
|
||||
(clear-slot :dup-slot)
|
||||
(defslot :dup-slot :order 5 :render-fn (lambda () "first"))
|
||||
(defslot :dup-slot :order 5 :render-fn (lambda () "second"))
|
||||
(let ((result (slot-render :dup-slot)))
|
||||
(is (= 2 (length result)))
|
||||
;; Entries with same order are prepended, so "second" comes first
|
||||
(is (equal "second" (first result)))
|
||||
(is (equal "first" (second result))))
|
||||
(clear-slot :dup-slot))
|
||||
|
||||
(def-test slot-render-with-args ( )
|
||||
"slot-render passes arguments to all registered render-fns."
|
||||
(clear-slot :args-slot)
|
||||
(defslot :args-slot :order 1 :render-fn (lambda (x y) (format nil "~a+~a" x y)))
|
||||
(let ((result (slot-render :args-slot 3 4)))
|
||||
(is (equal '("3+4") result)))
|
||||
(clear-slot :args-slot))
|
||||
|
||||
(defpackage :cl-tty-slot-test (:use :cl :cl-tty.slot :fiveam))
|
||||
(in-package :cl-tty-slot-test)
|
||||
|
||||
(def-suite slot-suite :description "Slot system tests")
|
||||
(in-suite slot-suite)
|
||||
|
||||
(def-test defslot-register ()
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "hello"))
|
||||
(is-true (slot-p :test-slot)))
|
||||
|
||||
(def-test slot-render-calls ()
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "a"))
|
||||
(defslot :test-slot :order 2 :render-fn (lambda () "b"))
|
||||
(is (equal '("a" "b") (slot-render :test-slot))))
|
||||
|
||||
(def-test slot-render-empty ()
|
||||
(clear-slot :ghost)
|
||||
(is-false (slot-render :ghost)))
|
||||
|
||||
(def-test clear-slot-removes ()
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "x"))
|
||||
(clear-slot :test-slot)
|
||||
(is-false (slot-p :test-slot)))
|
||||
|
||||
(defpackage :cl-tty-slot-test (:use :cl :cl-tty.slot :fiveam))
|
||||
(in-package :cl-tty-slot-test)
|
||||
|
||||
(def-suite slot-suite :description "Slot system tests")
|
||||
(in-suite slot-suite)
|
||||
|
||||
(def-test defslot-register ()
|
||||
(clear-slot :test-slot)
|
||||
(defslot :test-slot :order 1 :render-fn (lambda () "hello"))
|
||||
|
||||
Reference in New Issue
Block a user