@@ -961,6 +961,55 @@ public async Task ParsesAndRefinesUnionOfPrimitiveValuesAsync()
961
961
var unionType = modelCodeFile . GetChildElements ( ) . Where ( x => x is CodeFunction function && TypeScriptRefiner . GetOriginalComposedType ( function . OriginalLocalMethod . ReturnType ) is not null ) . ToList ( ) ;
962
962
Assert . True ( unionType . Count > 0 ) ;
963
963
}
964
+ [ Fact ]
965
+ public async Task ParsesAndRefinesPathsWithTrailingSlashAsync ( )
966
+ {
967
+ var generationConfiguration = new GenerationConfiguration { Language = GenerationLanguage . TypeScript } ;
968
+ var tempFilePath = Path . Combine ( Path . GetTempPath ( ) , Path . GetTempFileName ( ) ) ;
969
+ await File . WriteAllTextAsync ( tempFilePath , TrailingSlashSampleYml . OpenApiYaml ) ;
970
+ var mockLogger = new Mock < ILogger < KiotaBuilder > > ( ) ;
971
+ var builder = new KiotaBuilder ( mockLogger . Object , new GenerationConfiguration { ClientClassName = "Testing" , Serializers = [ "none" ] , Deserializers = [ "none" ] } , _httpClient ) ;
972
+ await using var fs = new FileStream ( tempFilePath , FileMode . Open ) ;
973
+ var document = await builder . CreateOpenApiDocumentAsync ( fs ) ;
974
+ var node = builder . CreateUriSpace ( document ) ;
975
+ builder . SetApiRootUrl ( ) ;
976
+ var codeModel = builder . CreateSourceModel ( node ) ;
977
+ var rootNS = codeModel . FindNamespaceByName ( "ApiSdk" ) ;
978
+ Assert . NotNull ( rootNS ) ;
979
+ await ILanguageRefiner . RefineAsync ( generationConfiguration , rootNS ) ;
980
+ Assert . NotNull ( rootNS ) ;
981
+
982
+ var fooNS = rootNS . FindNamespaceByName ( "ApiSdk.foo" ) ;
983
+ Assert . NotNull ( fooNS ) ;
984
+ var fooCodeFile = fooNS . FindChildByName < CodeFile > ( "fooRequestBuilder" , false ) ;
985
+ Assert . NotNull ( fooCodeFile ) ;
986
+ var fooRequestBuilder = fooCodeFile . FindChildByName < CodeInterface > ( "fooRequestBuilder" , false ) ;
987
+ var fooSlashRequestBuilder = fooCodeFile . FindChildByName < CodeInterface > ( "fooSlashRequestBuilder" , false ) ;
988
+ Assert . NotNull ( fooRequestBuilder ) ;
989
+ Assert . NotNull ( fooSlashRequestBuilder ) ;
990
+
991
+ var messageNS = rootNS . FindNamespaceByName ( "ApiSdk.message" ) ;
992
+ Assert . NotNull ( messageNS ) ;
993
+ var messageCodeFile = messageNS . FindChildByName < CodeFile > ( "messageRequestBuilder" , false ) ;
994
+ Assert . NotNull ( messageCodeFile ) ;
995
+ var messageRequestBuilder = messageCodeFile . FindChildByName < CodeInterface > ( "messageRequestBuilder" , false ) ;
996
+ Assert . NotNull ( messageRequestBuilder ) ;
997
+ var messageWithIdSlashMethod = messageRequestBuilder . FindChildByName < CodeMethod > ( "withIdSlash" , false ) ;
998
+ var messageByIdMethod = messageRequestBuilder . FindChildByName < CodeMethod > ( "byId" , false ) ;
999
+ Assert . NotNull ( messageWithIdSlashMethod ) ;
1000
+ Assert . NotNull ( messageByIdMethod ) ;
1001
+
1002
+ var bucketNS = rootNS . FindNamespaceByName ( "ApiSdk.bucket" ) ;
1003
+ Assert . NotNull ( bucketNS ) ;
1004
+ var bucketItemNS = bucketNS . FindChildByName < CodeNamespace > ( "ApiSdk.bucket.item" , false ) ;
1005
+ Assert . NotNull ( bucketItemNS ) ;
1006
+ var bucketItemCodeFile = bucketItemNS . FindChildByName < CodeFile > ( "WithNameItemRequestBuilder" , false ) ;
1007
+ Assert . NotNull ( bucketItemCodeFile ) ;
1008
+ var bucketWithNameItemRequestBuilder = bucketItemCodeFile . FindChildByName < CodeInterface > ( "WithNameItemRequestBuilder" , false ) ;
1009
+ var bucketWithNameSlashRequestBuilder = bucketItemCodeFile . FindChildByName < CodeInterface > ( "WithNameSlashRequestBuilder" , false ) ;
1010
+ Assert . NotNull ( bucketWithNameItemRequestBuilder ) ;
1011
+ Assert . NotNull ( bucketWithNameSlashRequestBuilder ) ;
1012
+ }
964
1013
965
1014
[ Fact ]
966
1015
public void GetOriginalComposedType_ReturnsNull_WhenElementIsNull ( )
0 commit comments