diff --git a/src/Spectre.Console/Widgets/Rows.cs b/src/Spectre.Console/Widgets/Rows.cs
index 95394407..2ee2723b 100644
--- a/src/Spectre.Console/Widgets/Rows.cs
+++ b/src/Spectre.Console/Widgets/Rows.cs
@@ -37,10 +37,15 @@ public sealed class Rows : Renderable, IExpandable
}
else
{
- var measurements = _children.Select(c => c.Measure(options, maxWidth));
- return new Measurement(
- measurements.Min(c => c.Min),
- measurements.Min(c => c.Max));
+ var measurements = _children.Select(c => c.Measure(options, maxWidth)).ToArray();
+ if (measurements.Length > 0)
+ {
+ return new Measurement(
+ measurements.Min(c => c.Min),
+ measurements.Min(c => c.Max));
+ }
+
+ return new Measurement(0, 0);
}
}
diff --git a/test/Spectre.Console.Tests/Expectations/Widgets/Rows/Render_Empty.Output.verified.txt b/test/Spectre.Console.Tests/Expectations/Widgets/Rows/Render_Empty.Output.verified.txt
new file mode 100644
index 00000000..47ab7650
--- /dev/null
+++ b/test/Spectre.Console.Tests/Expectations/Widgets/Rows/Render_Empty.Output.verified.txt
@@ -0,0 +1,6 @@
+┌─────────────┬─────┐
+│ Foo │ Bar │
+├─────────────┼─────┤
+│ HELLO WORLD │ │
+│ │ Qux │
+└─────────────┴─────┘
diff --git a/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj b/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj
index e9e959e4..e01a0f5f 100644
--- a/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj
+++ b/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj
@@ -12,6 +12,9 @@
+
+ Always
+
diff --git a/test/Spectre.Console.Tests/Unit/Widgets/RowsTests.cs b/test/Spectre.Console.Tests/Unit/Widgets/RowsTests.cs
index 9ebb6f99..9d95e64b 100644
--- a/test/Spectre.Console.Tests/Unit/Widgets/RowsTests.cs
+++ b/test/Spectre.Console.Tests/Unit/Widgets/RowsTests.cs
@@ -50,6 +50,25 @@ public sealed class RowsTests
return Verifier.Verify(console.Output);
}
+ [Fact]
+ [Expectation("Render_Empty")]
+ public Task Should_Not_Throw_Exception_On_Empty_Rows()
+ {
+ // Given
+ var console = new TestConsole().Width(60);
+ var table = new Table()
+ .AddColumns("Foo", "Bar")
+ .AddRow("HELLO WORLD")
+ .AddRow(
+ new Rows(), new Text("Qux"));
+
+ // When
+ console.Write(table);
+
+ // Then
+ return Verifier.Verify(console.Output);
+ }
+
[Fact]
[Expectation("Render_Expanded_And_Nested")]
public Task Should_Render_Rows_Correctly_Inside_Other_Widget_When_Expanded()