From a25e94fe23e17de6bb833bfd70634f0d499cf216 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 7 Apr 2026 10:13:16 +0800 Subject: [PATCH] Address Copilot review: fix nullability and add whitespace tests --- .../QueryStringTenantResolveContributor.cs | 2 +- ...eMultiTenancy_Without_DomainResolver_Tests.cs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/QueryStringTenantResolveContributor.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/QueryStringTenantResolveContributor.cs index 47f3b8eb99..80706a5669 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/QueryStringTenantResolveContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/QueryStringTenantResolveContributor.cs @@ -21,7 +21,7 @@ public class QueryStringTenantResolveContributor : HttpTenantResolveContributorB var tenantValue = httpContext.Request.Query[tenantKey].ToString(); if (!tenantValue.IsNullOrWhiteSpace()) { - return Task.FromResult(tenantValue)!; + return Task.FromResult(tenantValue); } } } diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs index 24cdc3591a..dd648ad725 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs @@ -86,4 +86,20 @@ public class AspNetCoreMultiTenancy_Without_DomainResolver_Tests : AspNetCoreMul var result = await GetResponseAsObjectAsync>($"http://abp.io?{_options.TenantKey}="); result["TenantId"].ShouldBe(""); } + + [Fact] + public async Task Should_Use_Header_Tenant_Id_When_QueryString_Tenant_Is_Whitespace() + { + Client.DefaultRequestHeaders.Add(_options.TenantKey, _testTenantId.ToString()); + + var result = await GetResponseAsObjectAsync>($"http://abp.io?{_options.TenantKey}=%20"); + result["TenantId"].ShouldBe(_testTenantId.ToString()); + } + + [Fact] + public async Task Should_Fallback_To_Host_When_QueryString_Tenant_Is_Whitespace_And_No_Other_Resolver() + { + var result = await GetResponseAsObjectAsync>($"http://abp.io?{_options.TenantKey}=%20"); + result["TenantId"].ShouldBe(""); + } }