(t *testing.T)
| 221 | } |
| 222 | |
| 223 | func TestUpdateBranchInSingleWorktreeRepository(t *testing.T) { |
| 224 | git.IsolateConfig(t) |
| 225 | |
| 226 | repoDir := t.TempDir() |
| 227 | |
| 228 | runGit(t, repoDir, "init", "--quiet", "--initial-branch=trunk") |
| 229 | runGit(t, repoDir, "config", "user.name", "Test User") |
| 230 | runGit(t, repoDir, "config", "user.email", "test@example.com") |
| 231 | require.NoError(t, os.WriteFile(filepath.Join(repoDir, "file.txt"), []byte("old\n"), 0o600)) |
| 232 | runGit(t, repoDir, "add", "file.txt") |
| 233 | runGit(t, repoDir, "commit", "--quiet", "--message=initial") |
| 234 | runGit(t, repoDir, "switch", "--quiet", "--create", "test") |
| 235 | require.NoError(t, os.WriteFile(filepath.Join(repoDir, "file.txt"), []byte("new\n"), 0o600)) |
| 236 | runGit(t, repoDir, "commit", "--quiet", "--all", "--message=upstream") |
| 237 | runGit(t, repoDir, "fetch", "--quiet", ".", "test") |
| 238 | |
| 239 | gitClient := &git.Client{RepoDir: repoDir} |
| 240 | executer := &gitExecuter{client: gitClient} |
| 241 | |
| 242 | err := executer.UpdateBranch("trunk", "FETCH_HEAD") |
| 243 | require.NoError(t, err) |
| 244 | require.Equal(t, runGit(t, repoDir, "rev-parse", "FETCH_HEAD"), runGit(t, repoDir, "rev-parse", "trunk")) |
| 245 | require.Equal(t, "test", runGit(t, repoDir, "branch", "--show-current")) |
| 246 | require.Empty(t, runGit(t, repoDir, "status", "--porcelain")) |
| 247 | } |
| 248 | |
| 249 | func runGit(t *testing.T, repoDir string, args ...string) string { |
| 250 | t.Helper() |
nothing calls this directly
no test coverage detected