@ -78,6 +78,25 @@ public class AbpSelectTagHelperService_Tests
service . LastSelectTag ! . Attributes . ContainsName ( "aria-describedby" ) . ShouldBeFalse ( ) ;
}
[Fact]
public async Task Aria_describedby_should_preserve_existing_value_set_by_caller ( )
{
var service = new TestAbpSelectTagHelperService ( existingAriaDescribedby : "custom-id" ) ;
var tagHelper = new AbpSelectTagHelper ( service )
{
AspFor = CreateModelExpression ( ) ,
InfoText = "Description"
} ;
var output = CreateOutput ( ) ;
await tagHelper . ProcessAsync ( CreateContext ( ) , output ) ;
service . LastSelectTag . ShouldNotBeNull ( ) ;
service . LastSelectTag ! . Attributes [ "aria-describedby" ] . Value . ToString ( ) . ShouldBe ( "custom-id TestSelectInfoText" ) ;
service . LastGroupHtml . ShouldContain ( "aria-describedby=\"custom-id TestSelectInfoText\"" ) ;
}
[Fact]
public async Task InputInfoText_attribute_should_render_info_text_with_single_aria_describedby ( )
{
@ -143,15 +162,17 @@ public class AbpSelectTagHelperService_Tests
private sealed class TestAbpSelectTagHelperService : AbpSelectTagHelperService
{
private readonly string? _ selectId ;
private readonly string? _ existingAriaDescribedby ;
public string LastGroupHtml { get ; private set ; } = string . Empty ;
public TagHelperOutput ? LastSelectTag { get ; private set ; }
public TestAbpSelectTagHelperService ( string? selectId = "TestSelect" )
public TestAbpSelectTagHelperService ( string? selectId = "TestSelect" , string? existingAriaDescribedby = null )
: base ( null ! , HtmlEncoder . Default , new FakeTagHelperLocalizer ( ) , null ! , null ! )
{
_ selectId = selectId ;
_ existingAriaDescribedby = existingAriaDescribedby ;
}
protected override Task < TagHelperOutput > GetSelectTagAsync ( TagHelperContext context , TagHelperOutput output , TagHelperContent childContent )
@ -161,6 +182,10 @@ public class AbpSelectTagHelperService_Tests
{
attributes . Add ( "id" , _ selectId ) ;
}
if ( ! string . IsNullOrEmpty ( _ existingAriaDescribedby ) )
{
attributes . Add ( "aria-describedby" , _ existingAriaDescribedby ) ;
}
LastSelectTag = new TagHelperOutput (
"select" ,