feat(logging): Display failed test console logs in default mode

This commit is contained in:
2025-05-15 19:40:46 +00:00
parent 553d5f0df7
commit 42cd08eb1c
7 changed files with 328 additions and 38 deletions

41
readme.plan.md Normal file
View File

@ -0,0 +1,41 @@
# Plan for showing logs for failed tests
!! FIRST: Reread /home/philkunz/.claude/CLAUDE.md to ensure following all guidelines !!
## Goal
When a test fails, we want to display all the console logs from that failed test in the terminal, even without the --verbose flag. This makes debugging failed tests much easier.
## Current Behavior
- Default mode: Only shows test results, no console logs
- Verbose mode: Shows all console logs from all tests
- When a test fails: Only shows the error message
## Desired Behavior
- Default mode: Shows test results, and IF a test fails, shows all console logs from that failed test
- Verbose mode: Shows all console logs from all tests (unchanged)
- When a test fails: Shows all console logs from that test plus the error
## Implementation Plan
### 1. Update TapParser
- Store console logs for each test temporarily
- When a test fails, mark that its logs should be shown
### 2. Update TsTestLogger
- Add a new method to handle failed test logs
- Modify testConsoleOutput to buffer logs when not in verbose mode
- When a test fails, flush the buffered logs for that test
### 3. Update test result handling
- When a test fails, trigger display of all buffered logs for that test
- Clear logs after each test completes successfully
## Code Changes Needed
1. Add log buffering to TapParser
2. Update TsTestLogger to handle failed test logs
3. Modify test result processing to show logs on failure
## Files to Modify
- `ts/tstest.classes.tap.parser.ts` - Add log buffering
- `ts/tstest.logging.ts` - Add failed test log handling
- `ts/tstest.classes.tap.testresult.ts` - May need to store logs