firehose/demos/demo-20260515-111539-source-viewer-fix.md

56 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Demo: Source Viewer Fix
*2026-05-15T10:15:39Z by Showboat dev*
<!-- showboat-id: 50614918-1e97-44de-9247-3f39ca35af4a -->
## Bug Fix: Source Viewer Showing Wrong File
**Issue**: The source viewer in the Microprints page always showed 'defmodule Blogex' regardless of which file's Expand button was clicked.
**Root Cause**: In `resolve_absolute_paths/1`, app files (e.g., `lib/firehose.ex`) were resolved using `Path.expand(path)` which expands relative to the current working directory instead of relative to the `app_root`. This caused app files to resolve to wrong paths.
**Fix**: Changed `resolve_absolute_paths/1` to use `Path.join(app_root, path)` for all paths, ensuring both app files and `../blogex/...` files resolve correctly relative to the app directory.
## Test Suite
```bash
cd app && mix test test/firehose_web/live/microprints_live_test.exs --color
```
```output
Running ExUnit with seed: 924777, max_cases: 32
........
Finished in 0.9 seconds (0.9s async, 0.00s sync)
8 tests, 0 failures
```
All 8 tests pass, confirming that `scan_source_files/0` returns correct paths for both app and blogex files.
## UI Verification
```bash {image}
![Microprints page showing all source files](demos/screenshots/microprints-page.png)
```
![Microprints page showing all source files](f5e7eb02-2026-05-15.png)
```bash {image}
![Source viewer correctly shows defmodule Firehose for lib/firehose.ex](demos/screenshots/source-viewer-firehose.png)
```
![Source viewer correctly shows defmodule Firehose for lib/firehose.ex](28c17b37-2026-05-15.png)
```bash {image}
![Source viewer correctly shows defmodule FirehoseWeb.Router for lib/firehose_web/router.ex](demos/screenshots/source-viewer-router.png)
```
![Source viewer correctly shows defmodule FirehoseWeb.Router for lib/firehose_web/router.ex](1b3aa9ee-2026-05-15.png)
## Acceptance Criteria Verification
- [x] Source viewer displays actual source code of the specific file -- see UI Verification screenshots above
- [x] App files (e.g., `lib/firehose.ex`) show correct content -- see source-viewer-firehose.png
- [x] Router files (e.g., `lib/firehose_web/router.ex`) show correct content -- see source-viewer-router.png
- [x] All 8 tests pass