Fixes #3864. Border isn't cleared after margin thickness change. (#3868)

This commit is contained in:
BDisp
2024-11-29 18:00:42 +00:00
committed by GitHub
parent f6db2fc847
commit d4d0675194
2 changed files with 85 additions and 0 deletions

View File

@@ -511,4 +511,66 @@ public class AdornmentTests (ITestOutputHelper output)
bool result = adornment.Contains (new (pointX, pointY));
Assert.Equal (expected, result);
}
[Fact]
[SetupFakeDriver]
public void Border_Is_Cleared_After_Margin_Thickness_Change ()
{
View view = new () { Text = "View", Width = 6, Height = 3, BorderStyle = LineStyle.Rounded };
// Remove border bottom thickness
view.Border!.Thickness = new (1, 1, 1, 0);
// Add margin bottom thickness
view.Margin!.Thickness = new (0, 0, 0, 1);
Assert.Equal (6, view.Width);
Assert.Equal (3, view.Height);
view.Draw ();
TestHelpers.AssertDriverContentsWithFrameAre (
@"
╭────╮
│View│
",
output
);
// Add border bottom thickness
view.Border!.Thickness = new (1, 1, 1, 1);
// Remove margin bottom thickness
view.Margin!.Thickness = new (0, 0, 0, 0);
view.Draw ();
Assert.Equal (6, view.Width);
Assert.Equal (3, view.Height);
TestHelpers.AssertDriverContentsWithFrameAre (
@"
╭────╮
│View│
╰────╯
",
output
);
// Remove border bottom thickness
view.Border!.Thickness = new (1, 1, 1, 0);
// Add margin bottom thickness
view.Margin!.Thickness = new (0, 0, 0, 1);
Assert.Equal (6, view.Width);
Assert.Equal (3, view.Height);
View.SetClipToScreen ();
view.Draw ();
TestHelpers.AssertDriverContentsWithFrameAre (
@"
╭────╮
│View│
",
output
);
}
}