mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 10:08:37 +08:00 
			
		
		
		
	Add jest tests for fetchDepth and fetchTags options
This commit is contained in:
		
							parent
							
								
									b896fd2f38
								
							
						
					
					
						commit
						68d6795380
					
				|  | @ -88,3 +88,179 @@ describe('git-auth-helper tests', () => { | |||
|     expect(branches.sort()).toEqual(['foo'].sort()) | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| describe('Test fetchDepth and fetchTags options', () => { | ||||
|   beforeEach(async () => { | ||||
|     jest.spyOn(fshelper, 'fileExistsSync').mockImplementation(jest.fn()) | ||||
|     jest.spyOn(fshelper, 'directoryExistsSync').mockImplementation(jest.fn()) | ||||
|     mockExec.mockImplementation((path, args, options) => { | ||||
|       console.log(args, options.listeners.stdout) | ||||
| 
 | ||||
|       if (args.includes('version')) { | ||||
|         options.listeners.stdout(Buffer.from('2.18')) | ||||
|       } | ||||
| 
 | ||||
|       return 0 | ||||
|     }) | ||||
|   }) | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.restoreAllMocks() | ||||
|   }) | ||||
| 
 | ||||
|   it('should call execGit with the correct arguments when fetchDepth is 0 and fetchTags is true', async () => { | ||||
|     jest.spyOn(exec, 'exec').mockImplementation(mockExec) | ||||
|     const workingDirectory = 'test' | ||||
|     const lfs = false | ||||
|     const doSparseCheckout = false | ||||
|     git = await commandManager.createCommandManager( | ||||
|       workingDirectory, | ||||
|       lfs, | ||||
|       doSparseCheckout | ||||
|     ) | ||||
| 
 | ||||
|     const refSpec = ['refspec1', 'refspec2'] | ||||
|     const options = { | ||||
|       filter: 'filterValue', | ||||
|       fetchDepth: 0, | ||||
|       fetchTags: true | ||||
|     } | ||||
| 
 | ||||
|     await git.fetch(refSpec, options) | ||||
| 
 | ||||
|     expect(mockExec).toHaveBeenCalledWith( | ||||
|       expect.any(String), | ||||
|       [ | ||||
|         '-c', | ||||
|         'protocol.version=2', | ||||
|         'fetch', | ||||
|         '--prune', | ||||
|         '--progress', | ||||
|         '--no-recurse-submodules', | ||||
|         '--filter=filterValue', | ||||
|         'origin', | ||||
|         'refspec1', | ||||
|         'refspec2' | ||||
|       ], | ||||
|       expect.any(Object) | ||||
|     ) | ||||
|   }) | ||||
| 
 | ||||
|   it('should call execGit with the correct arguments when fetchDepth is 0 and fetchTags is false', async () => { | ||||
|     jest.spyOn(exec, 'exec').mockImplementation(mockExec) | ||||
| 
 | ||||
|     const workingDirectory = 'test' | ||||
|     const lfs = false | ||||
|     const doSparseCheckout = false | ||||
|     git = await commandManager.createCommandManager( | ||||
|       workingDirectory, | ||||
|       lfs, | ||||
|       doSparseCheckout | ||||
|     ) | ||||
|     const refSpec = ['refspec1', 'refspec2'] | ||||
|     const options = { | ||||
|       filter: 'filterValue', | ||||
|       fetchDepth: 0, | ||||
|       fetchTags: false | ||||
|     } | ||||
| 
 | ||||
|     await git.fetch(refSpec, options) | ||||
| 
 | ||||
|     expect(mockExec).toHaveBeenCalledWith( | ||||
|       expect.any(String), | ||||
|       [ | ||||
|         '-c', | ||||
|         'protocol.version=2', | ||||
|         'fetch', | ||||
|         '--no-tags', | ||||
|         '--prune', | ||||
|         '--progress', | ||||
|         '--no-recurse-submodules', | ||||
|         '--filter=filterValue', | ||||
|         'origin', | ||||
|         'refspec1', | ||||
|         'refspec2' | ||||
|       ], | ||||
|       expect.any(Object) | ||||
|     ) | ||||
|   }) | ||||
| 
 | ||||
|   it('should call execGit with the correct arguments when fetchDepth is 1 and fetchTags is false', async () => { | ||||
|     jest.spyOn(exec, 'exec').mockImplementation(mockExec) | ||||
| 
 | ||||
|     const workingDirectory = 'test' | ||||
|     const lfs = false | ||||
|     const doSparseCheckout = false | ||||
|     git = await commandManager.createCommandManager( | ||||
|       workingDirectory, | ||||
|       lfs, | ||||
|       doSparseCheckout | ||||
|     ) | ||||
|     const refSpec = ['refspec1', 'refspec2'] | ||||
|     const options = { | ||||
|       filter: 'filterValue', | ||||
|       fetchDepth: 1, | ||||
|       fetchTags: false | ||||
|     } | ||||
| 
 | ||||
|     await git.fetch(refSpec, options) | ||||
| 
 | ||||
|     expect(mockExec).toHaveBeenCalledWith( | ||||
|       expect.any(String), | ||||
|       [ | ||||
|         '-c', | ||||
|         'protocol.version=2', | ||||
|         'fetch', | ||||
|         '--no-tags', | ||||
|         '--prune', | ||||
|         '--progress', | ||||
|         '--no-recurse-submodules', | ||||
|         '--filter=filterValue', | ||||
|         '--depth=1', | ||||
|         'origin', | ||||
|         'refspec1', | ||||
|         'refspec2' | ||||
|       ], | ||||
|       expect.any(Object) | ||||
|     ) | ||||
|   }) | ||||
| 
 | ||||
|   it('should call execGit with the correct arguments when fetchDepth is 1 and fetchTags is true', async () => { | ||||
|     jest.spyOn(exec, 'exec').mockImplementation(mockExec) | ||||
| 
 | ||||
|     const workingDirectory = 'test' | ||||
|     const lfs = false | ||||
|     const doSparseCheckout = false | ||||
|     git = await commandManager.createCommandManager( | ||||
|       workingDirectory, | ||||
|       lfs, | ||||
|       doSparseCheckout | ||||
|     ) | ||||
|     const refSpec = ['refspec1', 'refspec2'] | ||||
|     const options = { | ||||
|       filter: 'filterValue', | ||||
|       fetchDepth: 1, | ||||
|       fetchTags: true | ||||
|     } | ||||
| 
 | ||||
|     await git.fetch(refSpec, options) | ||||
| 
 | ||||
|     expect(mockExec).toHaveBeenCalledWith( | ||||
|       expect.any(String), | ||||
|       [ | ||||
|         '-c', | ||||
|         'protocol.version=2', | ||||
|         'fetch', | ||||
|         '--prune', | ||||
|         '--progress', | ||||
|         '--no-recurse-submodules', | ||||
|         '--filter=filterValue', | ||||
|         '--depth=1', | ||||
|         'origin', | ||||
|         'refspec1', | ||||
|         'refspec2' | ||||
|       ], | ||||
|       expect.any(Object) | ||||
|     ) | ||||
|   }) | ||||
| }) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Robert Wieczoreck
						Robert Wieczoreck