From fc0ec684471671d7c1ee870ef78d95e86578c00f Mon Sep 17 00:00:00 2001 From: Kinneyzhang Date: Fri, 28 Aug 2026 00:46:19 +0800 Subject: [PATCH] perf: attribute SQLite work through the Data boundary --- etaf-sqlite.el | 1 + tests/etaf-sqlite-tests.el | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/etaf-sqlite.el b/etaf-sqlite.el index 19955b2..89ef862 100644 --- a/etaf-sqlite.el +++ b/etaf-sqlite.el @@ -421,6 +421,7 @@ state and lifecycle." (list 'etaf-sqlite-database-p database))) (etaf-data-source :name 'etaf-sqlite + :provider 'sqlite :load (lambda (query page page-size) (etaf-sqlite--select-items database query page page-size)) :mutate (lambda (operation payload) diff --git a/tests/etaf-sqlite-tests.el b/tests/etaf-sqlite-tests.el index 1620ef6..f7c251a 100644 --- a/tests/etaf-sqlite-tests.el +++ b/tests/etaf-sqlite-tests.el @@ -81,6 +81,15 @@ (should (= (etaf-value (etaf-data-total controller)) 2))) (etaf-data-stop controller))))) +(ert-deftest etaf-sqlite-source-declares-provider-identity () + "Expose SQLite identity without depending on ETAF observer internals." + (etaf-sqlite-test--with-database (database) + (let ((source (etaf-sqlite-source database))) + (should (eq 'sqlite (plist-get source :provider))) + (should (functionp (plist-get source :load))) + (should (functionp (plist-get source :mutate))) + (should-not (plist-member source :dispose))))) + (provide 'etaf-sqlite-tests) ;;; etaf-sqlite-tests.el ends here