Skip to content

Commit

Permalink
tabular data resource formatter respects list expansion limits
Browse files Browse the repository at this point in the history
  • Loading branch information
colombod committed Jul 5, 2023
1 parent 69a9616 commit 458a4a8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ public void can_generate_tabular_json_from_data_with_nullable_types()
}

[Fact]
public void Tabular_data_resource_with_is_formatted_as_a_table()
public void Tabular_data_resource_is_formatted_as_a_table()
{
var tabularDataResource = CreateTabularDataResource();

Expand All @@ -197,6 +197,20 @@ public void Tabular_data_resource_with_is_formatted_as_a_table()
.Be($"<table><thead><tr><td><span>name</span></td><td><span>deliciousness</span></td><td><span>color</span></td><td><span>available</span></td></tr></thead><tbody><tr><td>Granny Smith apple</td><td>{PlainTextBegin}12{PlainTextEnd}</td><td>green</td><td>{PlainTextBegin}True{PlainTextEnd}</td></tr><tr><td>Rainier cherry</td><td>{PlainTextBegin}9000{PlainTextEnd}</td><td>yellow</td><td>{PlainTextBegin}True{PlainTextEnd}</td></tr></tbody></table>");
}

[Fact]
public void Tabular_data_resource_is_formatted_as_a_table_with_list_expansion_limit()
{
var tabularDataResource = CreateTabularDataResource();
Formatter.ListExpansionLimit = 1;
var formatted = tabularDataResource
.ToDisplayString("text/html")
.RemoveStyleElement();
Formatter.ListExpansionLimit = 0;

formatted.Should()
.Be($"<table><thead><tr><td><span>name</span></td><td><span>deliciousness</span></td><td><span>color</span></td><td><span>available</span></td></tr></thead><tbody><tr><td>Granny Smith apple</td><td>{PlainTextBegin}12{PlainTextEnd}</td><td>green</td><td>{PlainTextBegin}True{PlainTextEnd}</td></tr><tr><td colspan=\"4\"><i>(1 more)</i></td></tr></tbody></table>");
}

[Fact]
public void Serialization_as_MIME_type_application_json_uses_custom_formatter()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@ public IEnumerable<ITypeFormatter> CreateTypeFormatters()
.Select(f => (IHtmlContent)td(span(f.Name)))
.ToArray();
IReadOnlyList<IHtmlContent> rows =
value.Data
var (rowData, remainingCount) = value.Data
.TakeAndCountRemaining(Formatter.ListExpansionLimit, true);
var rows =
rowData
.Select(d => (IHtmlContent)tr(d.Select(v => td(v.Value))))
.ToArray();
.ToList();
if (remainingCount > 0)
{
rows.Add(tr(td[colspan: $"{headers.Count}"](i($"({remainingCount} more)"))));
}
Html.Table(headers, rows).WriteTo(context);
});
Expand Down

0 comments on commit 458a4a8

Please sign in to comment.