aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Bundle multiple day-wide events into a single notificationCraig Jennings2026-04-041-0/+57
| | | | | | | | | | When all-day event alert times trigger, multiple events (overdue tasks, birthdays, holidays) previously fired individual notifications — one sound and one popup each. With 8-10 events this was overwhelming. Now multiple day-wide events are bundled into a single notification with all messages joined by newlines. Single events still notify normally without bundling.
* Restructure README and address review commentsCraig Jennings2026-04-041-2/+1
| | | | | | | | | | | | | | - Remove About section (merged into intro) - Rename Credits to History, fold Migration under it - Fold Manual Check and Known Limitations under Usage - Fold Full Example Configuration under Configuration - Add straight.el and quelpa install methods - Move requirements into Installation with auto-deps note - Add notification daemon check to troubleshooting - Add Development subsection with clone/lint/issues info - Add LICENSE file (GPL-3.0) - Update nav bar to match new structure - Fix startup integration test for new modeline error state
* Show modeline icon immediately on chime-mode enableCraig Jennings2026-04-041-0/+45
| | | | | | | | | Previously chime-modeline-string was nil until the first async check completed (~10-15 seconds after startup). Now the icon appears instantly with a "waiting for first event check" tooltip. On validation or async failure, the icon stays visible and the tooltip updates to show the error state instead of going blank.
* Remove dead code and reduce default tooltip lookahead to 1 weekCraig Jennings2026-04-041-22/+0
| | | | | | | | | | | Remove chime--agenda-buffer-name (unused variable) and chime--extract-birthday-year (superseded by chime--parse-birthday). Reduce chime-tooltip-lookahead-hours from 8760 (1 year) to 168 (1 week). The 1-year default caused org-agenda-list to scan a 365-day span every check cycle, which is slow for large org collections. The tooltip only shows 5 events, so a week is sufficient for most users.
* Nil chime--timer after cancellation in chime--stopCraig Jennings2026-04-041-0/+11
| | | | | The timer variable was left pointing at a cancelled timer object. Now set to nil so state accurately reflects no active timer.
* Fix file headers: correct copyright years, add missing headerCraig Jennings2026-04-0412-11/+28
| | | | | 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-0451-656/+96
| | | | | | | | | | 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.
* Consolidate birthday utilities into convert-org-contacts-birthdaysCraig Jennings2026-04-041-153/+4
| | | | | | | | | | chime-org-contacts.el duplicated parse, format, and insert-after-drawer functions from convert-org-contacts-birthdays.el. Remove the duplicates and have chime-org-contacts require the convert module instead. Removes ~35 lines of duplicated code. The finalize function now delegates to chime--insert-birthday-timestamp-after-drawer with condition-case for graceful handling of invalid birthday formats during capture.
* Add integration test for chime-mode deactivation cleanupCraig Jennings2026-04-041-0/+10
| | | | | Verifies disabling chime-mode removes chime-modeline-string from global-mode-string and sets it to nil.
* Add integration test for chime-mode modeline registrationCraig Jennings2026-04-041-0/+61
| | | | | Verifies enabling chime-mode adds chime-modeline-string to global-mode-string so events appear in the modeline.
* Add 94 tests across 10 new test files and fix 2 bugsCraig Jennings2026-04-0410-0/+1545
| | | | | | | | | | | | 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
* Add test config macros and migrate startup tests to use themCraig Jennings2026-02-262-155/+186
| | | | | | Add with-chime-config and with-org-event-file macros to testutil-events.el, replacing the manual defvar/save/restore pattern with let-bindings that auto-restore on exit. Migrate test-integration-startup.el as first adopter.
* Improve org-agenda-files validation to distinguish files from directoriesCraig Jennings2026-02-231-4/+4
|
* Fix flaky validation failure test by resetting shared stateCraig Jennings2026-02-231-0/+6
| | | | | | The test checks that chime-modeline-string and chime--upcoming-events are nil after early return, but previous tests could leave them set. Reset these and chime--validation-retry-count at test start.
* Update copyright years to 2026 across all source filesCraig Jennings2026-02-1737-37/+37
| | | | | Updated 41 files: chime.el, chime-debug.el, chime-org-contacts.el, convert-org-contacts-birthdays.el, and all test/utility files.
* Add notification boundary tests for time comparison fixCraig Jennings2026-02-171-0/+361
| | | | | 12 ERT tests covering exact interval matching, cross-month/year boundaries, midnight crossing, multiple intervals, and escalating notifications.
* changed repositoriesCraig Jennings2025-11-1845-0/+13475