@@ -326,6 +326,40 @@ def test_show_new_draft_page_in_menu(self):
326
326
self .assertEqual (CacheKey .objects .count (), 1 )
327
327
self .assertEqual (page .get_title (), nodes [- 1 ].title )
328
328
329
+ def test_show_page_in_menu_after_move_page (self ):
330
+ """
331
+ Test checks if the menu cache is cleaned after move page.
332
+ """
333
+ page = create_page ('page to move' , 'nav_playground.html' , 'en' , published = True )
334
+
335
+ request = self .get_request ('/' )
336
+ renderer = menu_pool .get_renderer (request )
337
+ renderer .draft_mode_active = True
338
+ nodes_before = renderer .get_nodes ()
339
+ index_before = [i for i , s in enumerate (nodes_before ) if s .title == page .get_title ()]
340
+ self .assertEqual (CacheKey .objects .count (), 1 )
341
+
342
+ with self .login_user_context (self .get_superuser ()):
343
+ # Moves the page to the second position in the tree
344
+ data = {'id' : page .pk , 'position' : 1 }
345
+ endpoint = self .get_admin_url (Page , 'move_page' , page .pk )
346
+ response = self .client .post (endpoint , data )
347
+ self .assertEqual (response .status_code , 200 )
348
+ self .assertEqual (CacheKey .objects .count (), 0 )
349
+
350
+ request = self .get_request ('/' )
351
+ renderer = menu_pool .get_renderer (request )
352
+ renderer .draft_mode_active = True
353
+ nodes_after = renderer .get_nodes ()
354
+ index_after = [i for i , s in enumerate (nodes_after ) if s .title == page .get_title ()]
355
+
356
+ self .assertEqual (CacheKey .objects .count (), 1 )
357
+ self .assertNotEqual (
358
+ index_before ,
359
+ index_after ,
360
+ 'Index should not be the same after move page in navigation'
361
+ )
362
+
329
363
def test_cms_menu_public_with_multiple_languages (self ):
330
364
for page in Page .objects .drafts ():
331
365
create_title (
0 commit comments