mirror of
https://github.com/actions/checkout.git
synced 2026-07-18 12:00:05 +08:00
Apply filter options to submodule update
Fixes: https://github.com/actions/checkout/issues/1714
This commit is contained in:
parent
e8d4307400
commit
057e2c1f09
4 changed files with 90 additions and 5 deletions
|
|
@ -403,6 +403,72 @@ describe('Test fetchDepth and fetchTags options', () => {
|
|||
})
|
||||
})
|
||||
|
||||
describe('Test submoduleUpdate filter option', () => {
|
||||
beforeEach(async () => {
|
||||
mockFileExistsSync.mockReset()
|
||||
mockDirectoryExistsSync.mockReset()
|
||||
mockExec.mockImplementation((path: any, args: any, options: any) => {
|
||||
if (args.includes('version')) {
|
||||
options.listeners.stdout(Buffer.from('2.18'))
|
||||
}
|
||||
|
||||
return 0
|
||||
})
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks()
|
||||
})
|
||||
|
||||
it('should call execGit with --filter when a filter option is provided', async () => {
|
||||
const workingDirectory = 'test'
|
||||
const lfs = false
|
||||
const doSparseCheckout = false
|
||||
git = await commandManager.createCommandManager(
|
||||
workingDirectory,
|
||||
lfs,
|
||||
doSparseCheckout
|
||||
)
|
||||
|
||||
await git.submoduleUpdate(1, true, 'blob:none')
|
||||
|
||||
expect(mockExec).toHaveBeenCalledWith(
|
||||
expect.any(String),
|
||||
[
|
||||
'-c',
|
||||
'protocol.version=2',
|
||||
'submodule',
|
||||
'update',
|
||||
'--init',
|
||||
'--force',
|
||||
'--depth=1',
|
||||
'--recursive',
|
||||
'--filter=blob:none'
|
||||
],
|
||||
expect.any(Object)
|
||||
)
|
||||
})
|
||||
|
||||
it('should call execGit without --filter when no filter option is provided', async () => {
|
||||
const workingDirectory = 'test'
|
||||
const lfs = false
|
||||
const doSparseCheckout = false
|
||||
git = await commandManager.createCommandManager(
|
||||
workingDirectory,
|
||||
lfs,
|
||||
doSparseCheckout
|
||||
)
|
||||
|
||||
await git.submoduleUpdate(0, false, undefined)
|
||||
|
||||
expect(mockExec).toHaveBeenCalledWith(
|
||||
expect.any(String),
|
||||
['-c', 'protocol.version=2', 'submodule', 'update', '--init', '--force'],
|
||||
expect.any(Object)
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe('repository initialization object format', () => {
|
||||
beforeEach(async () => {
|
||||
mockFileExistsSync.mockReset()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue