aboutsummaryrefslogtreecommitdiff
path: root/tests/test-testutil-general.el
blob: 7b4e445e1c345b356dc30bb7942057946f211a2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;;; test-testutil-general.el --- Tests for shared test file utilities -*- lexical-binding: t; -*-

;; Copyright (C) 2026 Craig Jennings

;;; Commentary:

;; Tests for the shared filesystem helpers in testutil-general.el.

;;; Code:

(require 'test-bootstrap (expand-file-name "test-bootstrap.el"))
(require 'testutil-general (expand-file-name "testutil-general.el"))

(ert-deftest test-chime-test-default-base-dir-uses-env-override ()
  "Normal: CHIME_TEST_TMPDIR selects an explicit test root."
  (cl-letf (((symbol-function 'getenv)
             (lambda (name)
               (when (string= name "CHIME_TEST_TMPDIR")
                 "/tmp/chime-explicit-root"))))
    (should (equal "/tmp/chime-explicit-root/"
                   (chime-test--default-base-dir)))))

(ert-deftest test-chime-test-default-base-dir-uses-temporary-directory ()
  "Normal: absent override uses a unique temp-directory path."
  (let ((temporary-file-directory "/tmp/chime-parent/"))
    (cl-letf (((symbol-function 'getenv) (lambda (_name) nil)))
      (should (string-prefix-p
               "/tmp/chime-parent/chime-tests-"
               (chime-test--default-base-dir))))))

(ert-deftest test-chime-test-base-dir-is-not-fixed-home-path ()
  "Regression: default test root is no longer ~/.temp-chime-tests/."
  (skip-unless (not (getenv "CHIME_TEST_TMPDIR")))
  (should-not
   (equal (expand-file-name "~/.temp-chime-tests/")
          chime-test-base-dir)))

(ert-deftest test-chime-test-base-dir-create-and-delete-roundtrip ()
  "Normal: create and delete work for the configured test root."
  (unwind-protect
      (progn
        (should (equal (file-name-as-directory chime-test-base-dir)
                       (chime-create-test-base-dir)))
        (should (file-directory-p chime-test-base-dir)))
    (chime-delete-test-base-dir))
  (should-not (file-exists-p chime-test-base-dir)))

(provide 'test-testutil-general)
;;; test-testutil-general.el ends here