Files
2026-07-13 12:47:58 +08:00

83 lines
2.4 KiB
TypeScript

import { expect } from 'vitest'
import { sandboxTest } from '../../setup.js'
import {
cleanupBaseDir,
createBaseDir,
createRepoWithCommit,
} from './helpers.js'
sandboxTest('git branches lists current and feature', async ({ sandbox }) => {
const baseDir = await createBaseDir(sandbox)
try {
const repoPath = await createRepoWithCommit(sandbox, baseDir)
await sandbox.commands.run(`git -C "${repoPath}" branch feature`)
const branches = await sandbox.git.branches(repoPath)
expect(branches.currentBranch).toBe('main')
expect(branches.branches).toContain('main')
expect(branches.branches).toContain('feature')
} finally {
await cleanupBaseDir(sandbox, baseDir)
}
})
sandboxTest('git checkoutBranch switches branch', async ({ sandbox }) => {
const baseDir = await createBaseDir(sandbox)
try {
const repoPath = await createRepoWithCommit(sandbox, baseDir)
await sandbox.commands.run(`git -C "${repoPath}" branch feature`)
await sandbox.git.checkoutBranch(repoPath, 'feature')
const head = (
await sandbox.commands.run(
`git -C "${repoPath}" rev-parse --abbrev-ref HEAD`
)
).stdout.trim()
expect(head).toBe('feature')
} finally {
await cleanupBaseDir(sandbox, baseDir)
}
})
sandboxTest(
'git createBranch creates and checks out branch',
async ({ sandbox }) => {
const baseDir = await createBaseDir(sandbox)
try {
const repoPath = await createRepoWithCommit(sandbox, baseDir)
await sandbox.git.createBranch(repoPath, 'feature')
const branches = await sandbox.git.branches(repoPath)
expect(branches.branches).toContain('feature')
expect(branches.currentBranch).toBe('feature')
} finally {
await cleanupBaseDir(sandbox, baseDir)
}
}
)
sandboxTest('git deleteBranch removes branch', async ({ sandbox }) => {
const baseDir = await createBaseDir(sandbox)
try {
const repoPath = await createRepoWithCommit(sandbox, baseDir)
await sandbox.commands.run(`git -C "${repoPath}" branch feature`)
await sandbox.git.deleteBranch(repoPath, 'feature')
const branch = (
await sandbox.commands.run(`git -C "${repoPath}" branch --list feature`)
).stdout.trim()
const branches = await sandbox.git.branches(repoPath)
expect(branch).toBe('')
expect(branches.branches).not.toContain('feature')
} finally {
await cleanupBaseDir(sandbox, baseDir)
}
})