@@ -175,6 +175,27 @@ if (errors.length === 0) {
175175 check ( await page . evaluate ( ( ) => localStorage . getItem ( 'orbit-theme' ) ) === 'light' , `${ label } : light tema localStorage'a yazılmadı.` ) ;
176176
177177 if ( viewport . width === 390 || viewport . width === 1440 ) {
178+ await page . goto ( baseUrl , { waitUntil : 'networkidle' } ) ;
179+ await page . locator ( '[data-feed-view="replies"]' ) . click ( ) ;
180+ let feedState = await page . evaluate ( ( ) => ( {
181+ url : location . href ,
182+ visible : [ ...document . querySelectorAll ( '[data-feed-post]' ) ]
183+ . filter ( ( item ) => ! item . hidden )
184+ . map ( ( item ) => ( { agent : item . dataset . agent , type : item . dataset . recordType } ) ) ,
185+ } ) ) ;
186+ check ( feedState . url . includes ( 'view=replies' ) , `${ label } : yanıt görünümü URL state yazmadı.` ) ;
187+ check ( feedState . visible . length === 5 , `${ label } : yanıt görünümü beş gerçek yanıt döndürmedi (${ feedState . visible . length } ).` ) ;
188+ check ( feedState . visible . every ( ( item ) => item . type === 'reply' ) , `${ label } : yanıt görünümünde kök gönderi kaldı.` ) ;
189+ await page . locator ( '[data-feed-filter="selene"]' ) . click ( ) ;
190+ feedState = await page . evaluate ( ( ) => ( {
191+ url : location . href ,
192+ visible : [ ...document . querySelectorAll ( '[data-feed-post]' ) ]
193+ . filter ( ( item ) => ! item . hidden )
194+ . map ( ( item ) => ( { agent : item . dataset . agent , type : item . dataset . recordType } ) ) ,
195+ } ) ) ;
196+ check ( feedState . url . includes ( 'agent=selene' ) , `${ label } : birleşik ajan filtresi URL state yazmadı.` ) ;
197+ check ( feedState . visible . length === 1 && feedState . visible [ 0 ] . agent === 'selene' && feedState . visible [ 0 ] . type === 'reply' , `${ label } : Selene + Yanıtlar birleşik filtresi yanlış.` ) ;
198+
178199 await page . goto ( `${ baseUrl } /search?q=Selene` , { waitUntil : 'networkidle' } ) ;
179200 const searchState = await page . evaluate ( ( ) => ( {
180201 innerWidth,
@@ -189,9 +210,34 @@ if (errors.length === 0) {
189210 check ( searchState . visible . length === 3 , `${ label } : Selene araması üç sonuç döndürmedi (${ searchState . visible . length } ).` ) ;
190211 check ( searchState . visible . every ( ( item ) => item . includes ( 'Selene' ) ) , `${ label } : Selene aramasında ilgisiz sonuç var.` ) ;
191212
213+ await page . locator ( '[data-search-topic]' ) . selectOption ( 'editoryal' ) ;
214+ const topicFiltered = await page . evaluate ( ( ) => ( {
215+ url : location . href ,
216+ visible : [ ...document . querySelectorAll ( '[data-search-item]' ) ]
217+ . filter ( ( item ) => getComputedStyle ( item ) . display !== 'none' )
218+ . map ( ( item ) => item . textContent . trim ( ) . replace ( / \s + / g, ' ' ) ) ,
219+ } ) ) ;
220+ check ( topicFiltered . url . includes ( 'topic=editoryal' ) , `${ label } : arama konu filtresi URL state yazmadı.` ) ;
221+ check ( topicFiltered . visible . length === 1 && topicFiltered . visible [ 0 ] . includes ( 'Selene' ) , `${ label } : Selene + Editoryal arama filtresi yanlış.` ) ;
222+
192223 await page . locator ( '[data-search-input]' ) . fill ( 'eşleşmeyecek-bir-ifade' ) ;
193224 check ( await page . locator ( '[data-search-empty]' ) . isVisible ( ) , `${ label } : sonuçsuz aramada boş durum görünmüyor.` ) ;
194225 check ( await page . evaluate ( ( ) => [ ...document . querySelectorAll ( '[data-search-item]' ) ] . every ( ( item ) => getComputedStyle ( item ) . display === 'none' ) ) , `${ label } : sonuçsuz aramada kayıtlar gizlenmedi.` ) ;
226+
227+ await page . goto ( baseUrl , { waitUntil : 'networkidle' } ) ;
228+ const firstSave = page . locator ( '[data-feed-post]:not([hidden]) [data-save-button]' ) . first ( ) ;
229+ const savedSlug = await firstSave . getAttribute ( 'data-save-slug' ) ;
230+ await firstSave . click ( ) ;
231+ check ( await page . evaluate ( ( slug ) => JSON . parse ( localStorage . getItem ( 'orbit-saved-posts' ) || '[]' ) . includes ( slug ) , savedSlug ) , `${ label } : kaydetme localStorage'a yazılmadı.` ) ;
232+ await page . goto ( `${ baseUrl } /saved` , { waitUntil : 'networkidle' } ) ;
233+ check ( await page . locator ( '[data-saved-card]:visible' ) . count ( ) === 1 , `${ label } : Kaydedilenler tek kaydı göstermedi.` ) ;
234+ check ( ( await page . locator ( '[data-saved-summary]' ) . textContent ( ) ) ?. includes ( '1 kayıt' ) , `${ label } : Kaydedilenler özeti yanlış.` ) ;
235+ await page . locator ( '[data-saved-card]:visible [data-save-button]' ) . click ( ) ;
236+ check ( await page . locator ( '[data-saved-empty]' ) . isVisible ( ) , `${ label } : kayıt kaldırılınca boş durum görünmedi.` ) ;
237+
238+ await page . goto ( `${ baseUrl } /topics/ajanlar` , { waitUntil : 'networkidle' } ) ;
239+ check ( await page . locator ( '.topic-feed [data-feed-post]' ) . count ( ) === 5 , `${ label } : Ajan muhakemesi konusu beş kayıt göstermedi.` ) ;
240+ check ( await page . evaluate ( ( ) => document . documentElement . scrollWidth <= innerWidth ) , `${ label } : konu sayfası yatay taşıyor.` ) ;
195241 }
196242 await context . close ( ) ;
197243 }
0 commit comments