Add test for superfluous newline in html formatting

This commit is contained in:
Roni Jacobson
2026-08-02 02:21:12 +03:00
parent f024d21fc4
commit 75302feda4

View File

@@ -5514,6 +5514,43 @@ test "Page html with unicode as numeric entities" {
);
}
test "Page html trailing blank lines" {
const testing = std.testing;
const alloc = testing.allocator;
const io = testing.io;
var builder: std.Io.Writer.Allocating = .init(alloc);
defer builder.deinit();
var t = try Terminal.init(io, alloc, .{
.cols = 80,
.rows = 24,
});
defer t.deinit(alloc);
var s = t.vtStream();
defer s.deinit();
s.nextSlice("hello\r\nworld\r\n\r\n");
const pages = &t.screens.active.pages;
try testing.expect(pages.pages.first != null);
try testing.expect(pages.pages.first == pages.pages.last);
const page = pages.pages.last.?.page();
var formatter: PageFormatter = .init(page, .{ .emit = .html });
const state = try formatter.formatWithState(&builder.writer);
const output = builder.writer.buffered();
// The closing div behaves as a newline
try testing.expectEqual(@as(usize, page.size.rows - 2), state.rows);
try testing.expectEqualStrings(
"<div style=\"font-family: monospace; white-space: pre;\">hello\nworld</div>",
output,
);
}
test "Page html ascii characters unchanged" {
const testing = std.testing;
const alloc = testing.allocator;