|
|
|
@ -281,6 +281,65 @@ describe('git-directory-helper tests', () => {
|
|
|
|
|
expect(git.branchDelete).toHaveBeenCalledWith(false, 'local-branch-2')
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const cleanWhenSubmoduleStatusIsFalse =
|
|
|
|
|
'cleans when submodule status is false'
|
|
|
|
|
|
|
|
|
|
it(cleanWhenSubmoduleStatusIsFalse, async () => {
|
|
|
|
|
// Arrange
|
|
|
|
|
await setup(cleanWhenSubmoduleStatusIsFalse)
|
|
|
|
|
await fs.promises.writeFile(path.join(repositoryPath, 'my-file'), '')
|
|
|
|
|
|
|
|
|
|
//mock bad submodule
|
|
|
|
|
|
|
|
|
|
const submoduleStatus = git.submoduleStatus as jest.Mock<any, any>
|
|
|
|
|
submoduleStatus.mockImplementation(async (remote: boolean) => {
|
|
|
|
|
return false
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// Act
|
|
|
|
|
await gitDirectoryHelper.prepareExistingDirectory(
|
|
|
|
|
git,
|
|
|
|
|
repositoryPath,
|
|
|
|
|
repositoryUrl,
|
|
|
|
|
clean,
|
|
|
|
|
ref
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Assert
|
|
|
|
|
const files = await fs.promises.readdir(repositoryPath)
|
|
|
|
|
expect(files).toHaveLength(0)
|
|
|
|
|
expect(git.tryClean).toHaveBeenCalled()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const doesNotCleanWhenSubmoduleStatusIsTrue =
|
|
|
|
|
'does not clean when submodule status is true'
|
|
|
|
|
|
|
|
|
|
it(doesNotCleanWhenSubmoduleStatusIsTrue, async () => {
|
|
|
|
|
// Arrange
|
|
|
|
|
await setup(doesNotCleanWhenSubmoduleStatusIsTrue)
|
|
|
|
|
await fs.promises.writeFile(path.join(repositoryPath, 'my-file'), '')
|
|
|
|
|
|
|
|
|
|
const submoduleStatus = git.submoduleStatus as jest.Mock<any, any>
|
|
|
|
|
submoduleStatus.mockImplementation(async (remote: boolean) => {
|
|
|
|
|
return true
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// Act
|
|
|
|
|
await gitDirectoryHelper.prepareExistingDirectory(
|
|
|
|
|
git,
|
|
|
|
|
repositoryPath,
|
|
|
|
|
repositoryUrl,
|
|
|
|
|
clean,
|
|
|
|
|
ref
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Assert
|
|
|
|
|
|
|
|
|
|
const files = await fs.promises.readdir(repositoryPath)
|
|
|
|
|
expect(files.sort()).toEqual(['.git', 'my-file'])
|
|
|
|
|
expect(git.tryClean).toHaveBeenCalled()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const removesLockFiles = 'removes lock files'
|
|
|
|
|
it(removesLockFiles, async () => {
|
|
|
|
|
// Arrange
|
|
|
|
@ -423,6 +482,9 @@ async function setup(testName: string): Promise<void> {
|
|
|
|
|
submoduleForeach: jest.fn(),
|
|
|
|
|
submoduleSync: jest.fn(),
|
|
|
|
|
submoduleUpdate: jest.fn(),
|
|
|
|
|
submoduleStatus: jest.fn(async () => {
|
|
|
|
|
return true
|
|
|
|
|
}),
|
|
|
|
|
tagExists: jest.fn(),
|
|
|
|
|
tryClean: jest.fn(async () => {
|
|
|
|
|
return true
|
|
|
|
|