feat(diff): Add diff rendering helpers for GUI
- Add get_line_color() to classify diff lines - Add render_diff_text_immediate() for immediate mode rendering - Add tests for rendering functions
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import pytest
|
||||
from src.diff_viewer import parse_diff, DiffFile, DiffHunk, parse_hunk_header
|
||||
from src.diff_viewer import parse_diff, DiffFile, DiffHunk, parse_hunk_header, get_line_color, render_diff_text_immediate
|
||||
|
||||
def test_parse_diff_empty() -> None:
|
||||
result = parse_diff("")
|
||||
@@ -80,4 +80,25 @@ def test_diff_line_classification() -> None:
|
||||
hunk = result[0].hunks[0]
|
||||
assert any(line.startswith("-") for line in hunk.lines)
|
||||
assert any(line.startswith("+") for line in hunk.lines)
|
||||
assert any(line.startswith(" ") or not line.startswith(("-", "+")) for line in hunk.lines)
|
||||
assert any(line.startswith(" ") or not line.startswith(("-", "+")) for line in hunk.lines)
|
||||
|
||||
def test_get_line_color() -> None:
|
||||
assert get_line_color("+added") == "green"
|
||||
assert get_line_color("-removed") == "red"
|
||||
assert get_line_color("@@ -1,3 +1,4 @@") == "cyan"
|
||||
assert get_line_color(" context") == None
|
||||
|
||||
def test_render_diff_text_immediate() -> None:
|
||||
diff_text = """--- a/test.py
|
||||
+++ b/test.py
|
||||
@@ -1 +1 @@
|
||||
-old
|
||||
+new"""
|
||||
diff_files = parse_diff(diff_text)
|
||||
output = render_diff_text_immediate(diff_files)
|
||||
|
||||
assert len(output) > 0
|
||||
assert ("File: test.py", "white") in output
|
||||
assert ("@@ -1 +1 @@", "cyan") in output
|
||||
assert ("-old", "red") in output
|
||||
assert ("+new", "green") in output
|
||||
Reference in New Issue
Block a user