aboutsummaryrefslogtreecommitdiff
path: root/tests/test-integration-recording-toggle-workflow.el
Commit message (Collapse)AuthorAgeFilesLines
* fix(test): stop silently skipping every integration testHEADmainCraig Jennings24 hours1-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INTEGRATION_TESTS globbed test-integration-%.el through $(wildcard ...), which takes a shell glob where % is a literal character, not a pattern. It expanded to nothing, so test-all skipped the integration phase and still printed "All tests complete". Fourteen files never ran, for as long as the variable has existed. The % is right one line up, because filter-out does take make patterns. The glob is now test-integration-*.el, and the counts add up: 597 unit + 14 integration = the 611 test files on disk. Turning the gate on surfaced five failures, none of them in production code. Four were rotting fixtures. parse-ics drops events outside a rolling window of today minus calendar-sync-past-months to plus future-months, and four tests fed it dates pinned to November 2025 or February 2026. They passed when written and began failing once the window slid past them. Their neighbours survived for two reasons: some hand their fixture to parse-event, which applies no window, and the weekly ones use unbounded RRULEs that keep generating into the window however old the DTSTART is. The fixtures now build dates relative to now, which is what the timezone file's own helper already did. The fifth was a real regression, caught five months late. The recording toggle test asserted on a fixture device and got whatever hardware is plugged into the developer's machine. cj/recording-get-devices runs --validate-system-audio, which shells to pactl, finds the fixture device isn't a real source, and auto-fixes the configured device to the default sink's monitor. The test mocked start-process-shell-command but not shell-command-to-string, so validation reached the real machine. It passes at 5bdd3420~1 and fails at 5bdd3420, the commit that added that validation in February. I faked pactl at the shell boundary rather than stubbing --validate-system-audio out, so the validation logic still runs, against a fixture machine.
* fix(test): add missing testutil require for sanitize-org-body testsCraig Jennings2026-02-061-5/+5
|
* feat(recording): rewrite device setup, fix video stop, update modeline iconsCraig Jennings2026-02-061-15/+11
| | | | | | | | | | | | | | | Video stop fix: kill wf-recorder (producer) first on Wayland so ffmpeg gets clean EOF, then signal process group. Replaces sit-for with poll-based wait-for-exit. Fixes zero-byte output files. Device selection: rewrite quick setup to show all available mics with PulseAudio descriptions, auto-detect default sink monitor for system audio. Skip confirmation dialog, add Cancel option to mic list. Modeline: replace red dot emoji with nerd font icons (mic/camcorder). Rename quick-setup-for-calls to quick-setup, rebind C-; r s / C-; r S. 173 recording tests pass (was 165).
* Revert "checking in modified/removed tests and other misc changes"Craig Jennings2025-11-141-0/+347
| | | | This reverts commit d36afc3f277b9a4228eb7b2464ec4e503695b8d4.
* checking in modified/removed tests and other misc changesCraig Jennings2025-11-141-347/+0
|
* a/v recording: fix setup, add test functionality and indicatorCraig Jennings2025-11-111-0/+347
Integrates a modeline indicator to display active recording status in Emacs. The indicator shows "🔴Audio", "🔴Video", or "🔴A+V" based on the active recording processes. Includes functions for starting and stopping audio/video recordings, with sentinel processes ensuring timely updates to the modeline. Also adds extensive integration tests to validate modeline synchronization.