mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 18:18: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()) |     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