summaryrefslogtreecommitdiff
path: root/tests/README-DEBUG-TESTS.org
blob: ed303f8d059bbf5ac44dda9f75ab7ddcada43a72 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#+TITLE: Wttrin Debug Integration Tests

This directory contains integration tests with debug logging enabled.

* Running the Tests

#+begin_src bash
cd /path/to/wttrin
emacs --batch --eval "(progn
  (package-initialize)
  (add-to-list 'load-path \".\")
  (setq wttrin-debug t)
  (load-file \"wttrin.el\")
  (load-file \"tests/test-integration-debug.el\")
  (ert-run-tests-batch-and-exit))"
#+end_src

* What the Tests Show

The integration tests demonstrate:

1. *Debug logging captures all key events:*
   - URL fetch starting
   - Data received (with byte count)
   - Mode-line display updates
   - Emoji extraction
   - Error handling

2. *Example debug output from a successful fetch:*

#+begin_example
[wttrin-debug 11:51:46.490] mode-line-fetch: Starting fetch for Berkeley, CA
[wttrin-debug 11:51:46.490] mode-line-fetch: URL = https://wttr.in/Berkeley%2C%20CA?m&format=%l:+%c+%t+%C
[wttrin-debug 11:51:46.490] mode-line-fetch: Received data = "Berkeley, CA: ☀️ +62°F Clear"
[wttrin-debug 11:51:46.490] mode-line-display: Updating display with: "Berkeley, CA: ☀️ +62°F Clear"
[wttrin-debug 11:51:46.490] mode-line-display: Extracted emoji = "☀", font = Noto Color Emoji
[wttrin-debug 11:51:46.490] mode-line-display: Complete. mode-line-string set = YES
#+end_example

* Using Debug Mode in Your Configuration

** Enable Debug Before Loading

#+begin_src emacs-lisp
;; In your init.el, BEFORE (require 'wttrin):
(setq wttrin-debug t)
(require 'wttrin)
#+end_src

** Or Enable Later

#+begin_src emacs-lisp
M-x debug-wttrin-enable
#+end_src

** View Debug Log

#+begin_src emacs-lisp
M-x wttrin-debug-show-log
#+end_src

This opens a buffer showing all debug events with timestamps.

** Clear Debug Log

#+begin_src emacs-lisp
M-x wttrin-debug-clear-log
#+end_src

* Test Fixtures

- =fixtures/test-init.el= - Minimal init file with debug enabled for manual testing

* Troubleshooting

If wttrin isn't loading in your configuration:

1. *Enable debug mode* (set =wttrin-debug= to =t= before loading)
2. *Check dependencies:* Run =M-x package-list-packages= and ensure =xterm-color= is installed
3. *View debug log:* Run =M-x wttrin-debug-show-log= after trying to use wttrin
4. *Check for errors:* Look in =*Messages*= buffer for any error messages

The debug log will show you exactly where the process stops or fails.