aboutsummaryrefslogtreecommitdiff
path: root/tests/test-chime-time-utilities.el
Commit message (Collapse)AuthorAgeFilesLines
* test: add chime-deftest fixture macro and centralize test requiresCraig Jennings2026-06-241-4/+0
| | | | | | | | | | Every test hand-wrote the same scaffolding: call a per-file setup, wrap the body in unwind-protect, call a per-file teardown. That's 419 unwind-protect blocks and 68 near-identical setup/teardown defuns, with no shared fixture because ERT has no native per-test setup. I added a chime-deftest macro in test-bootstrap that creates the test base directory before the body and deletes it afterward, even on failure. I converted the 10 files whose fixture was exactly that base-dir create/delete and whose every test followed the standard shape, dropping their setup/teardown defuns. Files with custom fixtures (modeline state restore, validation reset) keep explicit setup/teardown, since the macro would silently drop their extra logic. I left the 4 tag-bearing integration files alone. I also moved the near-universal testutil-general and testutil-time requires into test-bootstrap, so individual files no longer repeat them. Behavior is unchanged: still 800 tests, full suite green. Converted bodies are copied verbatim, so the change only removes scaffolding, never an assertion.
* refactor: move 12 internal helpers from chime- to chime-- prefixCraig Jennings2026-04-221-32/+32
| | | | | | | | | | Before MELPA submission, tighten the public API surface. Single-dash chime-foo is the convention for user-facing commands and predicates that external code can bind. Anything that is not meant to be bound externally should use the double-dash chime--foo prefix so byte-compile warnings, docstrings, and MELPA package inspection all point in the same direction. Twelve helpers in chime.el had single-dash names but no user-facing role. They are not mentioned in README, they carry no interactive declaration, and their docstrings do not promise a behavior contract. Rename them: chime-get-minutes-into-day, chime-get-hours-minutes-from-time, chime-set-hours-minutes-for-time, chime-current-time-matches-time-of-day-string, chime-current-time-is-day-wide-time, chime-day-wide-notifications, chime-display-as-day-wide-event, chime-event-has-any-day-wide-timestamp, chime-event-within-advance-notice-window, chime-event-has-any-passed-time, chime-event-is-today, chime-environment-regex. The public API surface is now intentional. It covers chime-mode, chime-validate-configuration, chime-refresh-modeline, chime-done-keywords-predicate, and the chime-debug-* interactive commands in chime-debug.el. Breaking change. No alias shims because there are no downstream users yet.
* Fix file headers: correct copyright years, add missing headerCraig Jennings2026-04-041-1/+1
| | | | | New files created in 2026 should have Copyright (C) 2026, not 2024-2026. Add standard copyright/license header to test-bootstrap.el.
* Extract test boilerplate into shared test-bootstrap.elCraig Jennings2026-04-041-14/+1
| | | | | | | | | | All 50 test files that load chime.el repeated the same 8-line initialization block (package-initialize, ert, dash, alert, async, org-agenda, chime load). Replace with a single require of test-bootstrap.el. Also fix test-make-upcoming-item name collision between test-chime-make-tooltip.el and test-chime--deduplicate-events-by-title.el.
* Add 94 tests across 10 new test files and fix 2 bugsCraig Jennings2026-04-041-0/+174
New test coverage for previously untested functions: - filter-day-wide-events, time utilities, day-wide time matching - make-tooltip, event-is-today, get-tags, done-keywords-predicate - extract-title, propertize-modeline-string, warn-persistent-failures - log-silently Bug fixes discovered by new tests: - Fix pluralization in no-events tooltip ("1 hours" -> "1 hour", etc.) - Fix chime--get-tags returning ("") instead of nil for untagged headings