;;; ecss-package-tests.el --- Package boundary tests -*- lexical-binding: t; -*- ;; Copyright (C) 2026 Geekinney ;; SPDX-License-Identifier: GPL-3.0-or-later ;;; Code: (require 'ert) (require 'package) (require 'ecss) (defconst ecss-package-test--root (file-name-directory (directory-file-name (file-name-directory (or load-file-name buffer-file-name)))) "Absolute ecss repository root used by package tests.") (defun ecss-package-test--source (file) "Return FILE contents below the repository root." (with-temp-buffer (insert-file-contents (expand-file-name file ecss-package-test--root)) (buffer-string))) (ert-deftest ecss-package-test-facade-loads-public-features-only () (should (featurep 'ecss)) (should (featurep 'ecss-selector)) (should (featurep 'ecss-cascade)) (should-not (featurep 'tp)) (should-not (featurep 'ebox))) (ert-deftest ecss-package-test-production-has-no-tp-or-ebox-dependency () (dolist (file '("ecss.el" "ecss-selector.el" "ecss-cascade.el")) (let ((source (ecss-package-test--source file))) (should-not (string-match-p "(require[ \t\n]+['\"]tp" source)) (should-not (string-match-p "(require[ \t\n]+['\"]ebox" source)) (should-not (string-match-p "\\_