diff --git a/examples/operations-console.el b/examples/operations-console.el index 5d2bb58..48a5d67 100644 --- a/examples/operations-console.el +++ b/examples/operations-console.el @@ -237,7 +237,7 @@ (intern (format "operations-console-row-%s" (plist-get row :id))))) (row-press (lambda (row) - (etaf-data-select controller (plist-get row :id)))) + (etaf-data-select-one controller (plist-get row :id)))) (clear-selection (lambda () (etaf-data-clear-selection controller)))) (lambda () diff --git a/tests/etaf-playground-tests.el b/tests/etaf-playground-tests.el index bda804a..fa4ca2a 100644 --- a/tests/etaf-playground-tests.el +++ b/tests/etaf-playground-tests.el @@ -113,6 +113,26 @@ (etaf-playground-close buffer)))) (etaf-playground-test--close buffer)))) +(ert-deftest etaf-playground-data-grid-row-selection-is-repeatable () + "Repeated row presses replace the single selected row without a bar." + (let ((buffer " *etaf-operations-console-row-selection-test*")) + (unwind-protect + (progn + (etaf-playground-open buffer) + (let ((runtime (etaf-runtime-for-buffer buffer))) + (etaf-dispatch-event runtime 'operations-console-nav-data 'press) + (dolist (entry '((operations-console-row-1 . "Selected Ada") + (operations-console-row-2 . "Selected Grace") + (operations-console-row-3 . "Selected Lin") + (operations-console-row-1 . "Selected Ada") + (operations-console-row-2 . "Selected Grace"))) + (etaf-focus runtime (car entry)) + (etaf-dispatch-event runtime (car entry) 'press) + (let ((text (etaf-playground-test--text buffer))) + (should (string-match-p (regexp-quote (cdr entry)) text)) + (should-not (string-match-p "#DCEBDD" text)))))) + (etaf-playground-test--close buffer)))) + (ert-deftest etaf-playground-behavior-toggle-uses-one-retained-publication () "Behavior content and paint changes stay in two fixed owners per turn." (let ((buffer " *etaf-operations-console-behavior-retained-test*"))