@@ -246,13 +246,13 @@ afterEach(() => {
246246describe ( 'MkEmojiPicker emoji suggestions QA flows' , ( ) => {
247247 test ( 'shows eligible public suggestions and emits the existing chosen reaction path' , async ( ) => {
248248 mockedMisskeyApi . mockResolvedValueOnce ( {
249- items : [ {
250- name : suggestedEmoji . name ,
251- score : 0.98 ,
252- aliases : suggestedEmoji . aliases ,
253- category : suggestedEmoji . category ,
254- } ] ,
255- reason : 'component-test' ,
249+ items : [ {
250+ name : suggestedEmoji . name ,
251+ score : 0.98 ,
252+ aliases : suggestedEmoji . aliases ,
253+ category : suggestedEmoji . category ,
254+ } ] ,
255+ reason : 'component-test' ,
256256 } ) ;
257257
258258 const result = await renderPicker ( {
@@ -286,6 +286,42 @@ describe('MkEmojiPicker emoji suggestions QA flows', () => {
286286 expect ( result . emitted ( 'chosen' ) ) . toEqual ( [ [ ':suggest_smile:' ] ] ) ;
287287 } ) ;
288288
289+ test ( 'refreshes stale custom emoji cache before rendering suggestions' , async ( ) => {
290+ customEmojis . value = [ fallbackEmoji ] ;
291+ customEmojisMap . clear ( ) ;
292+ customEmojisMap . set ( fallbackEmoji . name , fallbackEmoji ) ;
293+
294+ const uncachedSuggestedEmoji : Misskey . entities . EmojiSimple = {
295+ ...suggestedEmoji ,
296+ category : null ,
297+ } ;
298+
299+ mockedMisskeyApi
300+ . mockResolvedValueOnce ( {
301+ items : [ {
302+ name : uncachedSuggestedEmoji . name ,
303+ score : 0.412465 ,
304+ aliases : [ ] ,
305+ category : null ,
306+ } ] ,
307+ reason : null ,
308+ } )
309+ . mockResolvedValueOnce ( {
310+ emojis : [ fallbackEmoji , uncachedSuggestedEmoji ] ,
311+ } ) ;
312+
313+ const result = await renderPicker ( {
314+ targetNote : createNote ( ) ,
315+ pinnedEmojis : [ ':fallback_ok:' ] ,
316+ } ) ;
317+
318+ await waitFor ( ( ) => expect ( result . getByText ( 'Suggested' ) ) . not . toBeNull ( ) ) ;
319+ await waitFor ( ( ) => expect ( mockedMisskeyApi ) . toHaveBeenCalledTimes ( 2 ) ) ;
320+ expect ( mockedMisskeyApi . mock . calls [ 0 ] [ 0 ] ) . toBe ( 'notes/reactions/suggestions' ) ;
321+ expect ( mockedMisskeyApi . mock . calls [ 1 ] [ 0 ] ) . toBe ( 'emojis' ) ;
322+ expect ( result . container . querySelector ( '[data-emoji=":suggest_smile:"]' ) ) . not . toBeNull ( ) ;
323+ } ) ;
324+
289325 test ( 'does not request suggestions when disabled and pinned picker behavior still works' , async ( ) => {
290326 setEmojiSuggestionPublicMeta ( { enabled : false , maxSuggestions : 4 } ) ;
291327
0 commit comments