mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Add priority to protected branch (#32286)
## Solves Currently for rules to re-order them you have to alter the creation date. so you basicly have to delete and recreate them in the right order. This is more than just inconvinient ... ## Solution Add a new col for prioritization ## Demo WebUI Video https://github.com/user-attachments/assets/92182a31-9705-4ac5-b6e3-9bb74108cbd1 --- *Sponsored by Kithara Software GmbH*
This commit is contained in:
		
							
								
								
									
										71
									
								
								web_src/js/features/repo-settings-branches.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								web_src/js/features/repo-settings-branches.test.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| import {beforeEach, describe, expect, test, vi} from 'vitest'; | ||||
| import {initRepoBranchesSettings} from './repo-settings-branches.ts'; | ||||
| import {POST} from '../modules/fetch.ts'; | ||||
| import {createSortable} from '../modules/sortable.ts'; | ||||
|  | ||||
| vi.mock('../modules/fetch.ts', () => ({ | ||||
|   POST: vi.fn(), | ||||
| })); | ||||
|  | ||||
| vi.mock('../modules/sortable.ts', () => ({ | ||||
|   createSortable: vi.fn(), | ||||
| })); | ||||
|  | ||||
| describe('Repository Branch Settings', () => { | ||||
|   beforeEach(() => { | ||||
|     document.body.innerHTML = ` | ||||
|       <div id="protected-branches-list" data-update-priority-url="some/repo/branches/priority"> | ||||
|         <div class="flex-item tw-items-center item" data-id="1" > | ||||
|           <div class="drag-handle"></div> | ||||
|         </div> | ||||
|         <div class="flex-item tw-items-center item" data-id="2" > | ||||
|           <div class="drag-handle"></div> | ||||
|         </div> | ||||
|         <div class="flex-item tw-items-center item" data-id="3" > | ||||
|           <div class="drag-handle"></div> | ||||
|         </div> | ||||
|       </div> | ||||
|     `; | ||||
|  | ||||
|     vi.clearAllMocks(); | ||||
|   }); | ||||
|  | ||||
|   test('should initialize sortable for protected branches list', () => { | ||||
|     initRepoBranchesSettings(); | ||||
|  | ||||
|     expect(createSortable).toHaveBeenCalledWith( | ||||
|       document.querySelector('#protected-branches-list'), | ||||
|       expect.objectContaining({ | ||||
|         handle: '.drag-handle', | ||||
|         animation: 150, | ||||
|       }), | ||||
|     ); | ||||
|   }); | ||||
|  | ||||
|   test('should not initialize if protected branches list is not present', () => { | ||||
|     document.body.innerHTML = ''; | ||||
|  | ||||
|     initRepoBranchesSettings(); | ||||
|  | ||||
|     expect(createSortable).not.toHaveBeenCalled(); | ||||
|   }); | ||||
|  | ||||
|   test('should post new order after sorting', async () => { | ||||
|     vi.mocked(POST).mockResolvedValue({ok: true} as Response); | ||||
|  | ||||
|     // Mock createSortable to capture and execute the onEnd callback | ||||
|     vi.mocked(createSortable).mockImplementation((_el, options) => { | ||||
|       options.onEnd(); | ||||
|       return {destroy: vi.fn()}; | ||||
|     }); | ||||
|  | ||||
|     initRepoBranchesSettings(); | ||||
|  | ||||
|     expect(POST).toHaveBeenCalledWith( | ||||
|       'some/repo/branches/priority', | ||||
|       expect.objectContaining({ | ||||
|         data: {ids: [1, 2, 3]}, | ||||
|       }), | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user