From 49e4b49f4ebc72ef769f1d2fe3a57f262aae5f0c Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 30 Mar 2022 14:59:23 +0200 Subject: [PATCH] Remove description for merged filter fields. --- .../Queries/FilterSchema.cs | 6 ++++- .../Queries/FilterSchemaTests.cs | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/backend/src/Squidex.Infrastructure/Queries/FilterSchema.cs b/backend/src/Squidex.Infrastructure/Queries/FilterSchema.cs index aa71597b1..030f7fe88 100644 --- a/backend/src/Squidex.Infrastructure/Queries/FilterSchema.cs +++ b/backend/src/Squidex.Infrastructure/Queries/FilterSchema.cs @@ -88,10 +88,14 @@ namespace Squidex.Infrastructure.Queries { var firstType = group.First().Schema.Type; - if (group.All(x => x.Schema.Type == firstType)) + if (group.Count() == 1) { return group.Take(1); } + else if (group.All(x => x.Schema.Type == firstType)) + { + return group.Take(1).Select(x => x with { Description = null }); + } else { return Enumerable.Empty(); diff --git a/backend/tests/Squidex.Infrastructure.Tests/Queries/FilterSchemaTests.cs b/backend/tests/Squidex.Infrastructure.Tests/Queries/FilterSchemaTests.cs index eb50756ed..3d4ff02db 100644 --- a/backend/tests/Squidex.Infrastructure.Tests/Queries/FilterSchemaTests.cs +++ b/backend/tests/Squidex.Infrastructure.Tests/Queries/FilterSchemaTests.cs @@ -77,6 +77,33 @@ namespace Squidex.Infrastructure.Queries Assert.Equal(expected, actual); } + [Fact] + public void Should_remove_Descriptions_for_merged_fields() + { + var schema = new FilterSchema(FilterSchemaType.Object) + { + Fields = new[] + { + new FilterField(FilterSchema.String, "property1", "Description1"), + new FilterField(FilterSchema.String, "property2", "Description2"), + new FilterField(FilterSchema.String, "property2", "Description3") + }.ToReadonlyList() + }; + + var expected = new FilterSchema(FilterSchemaType.Object) + { + Fields = new[] + { + new FilterField(FilterSchema.String, "property1", "Description1"), + new FilterField(FilterSchema.String, "property2") + }.ToReadonlyList() + }; + + var actual = schema.Flatten(); + + Assert.Equal(expected, actual); + } + [Fact] public void Should_filter_out_fields_by_predicate_when_flatten() {