@@ -94,6 +94,37 @@ public void Generate_OrdersUrlsAlphabetically()
9494 locs . Should ( ) . BeInAscendingOrder ( ) ;
9595 }
9696
97+ [ Fact ]
98+ public void Generate_ExcludesApiDocsFromSitemap ( )
99+ {
100+ // Arrange
101+ var fs = new MockFileSystem ( ) ;
102+ var outputDir = fs . DirectoryInfo . New ( "/output" ) ;
103+
104+ var now = DateTimeOffset . UtcNow ;
105+ var entries = new Dictionary < string , DateTimeOffset >
106+ {
107+ [ "/docs/elasticsearch/getting-started" ] = now ,
108+ [ "/docs/api/elasticsearch/rest" ] = now ,
109+ [ "/docs/api/kibana/actions" ] = now ,
110+ [ "/docs/kibana/dashboard" ] = now ,
111+ } ;
112+
113+ // Act
114+ SitemapBuilder . Generate ( entries , fs , outputDir ) ;
115+
116+ // Assert
117+ var content = fs . File . ReadAllText ( fs . Path . Join ( "/output" , "sitemap.xml" ) ) ;
118+ var doc = XDocument . Parse ( content ) ;
119+ XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9" ;
120+
121+ var locs = doc . Descendants ( ns + "loc" ) . Select ( e => e . Value ) . ToList ( ) ;
122+ locs . Should ( ) . HaveCount ( 2 ) ;
123+ locs . Should ( ) . NotContain ( l => l . Contains ( "/docs/api/" ) ) ;
124+ locs . Should ( ) . Contain ( "https://www.elastic.co/docs/elasticsearch/getting-started" ) ;
125+ locs . Should ( ) . Contain ( "https://www.elastic.co/docs/kibana/dashboard" ) ;
126+ }
127+
97128 [ Fact ]
98129 public void BuildSearchBody_FirstPage_HasPitButNoSearchAfter ( )
99130 {
0 commit comments