Skip to content

Commit 03f1c35

Browse files
committed
improve test coverage
1 parent 3054a71 commit 03f1c35

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/commands/create/mod.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,4 +288,37 @@ mod tests {
288288
assert_eq!(sanitized.len(), 48);
289289
assert!(sanitized.chars().all(|c| c == 'a'));
290290
}
291+
292+
#[test]
293+
fn prepare_branch_reuses_existing_reference() -> color_eyre::Result<()> {
294+
let dir = TempDir::new()?;
295+
init_git_repo(&dir)?;
296+
297+
let repo = git2::Repository::open(dir.path())?;
298+
let commit = repo.head()?.peel_to_commit()?;
299+
repo.branch("feature/test", &commit, false)?;
300+
301+
let reference = prepare_branch(&repo, "feature/test", Some("HEAD"))?;
302+
303+
assert_eq!(reference.name(), Some("refs/heads/feature/test"));
304+
305+
Ok(())
306+
}
307+
308+
#[test]
309+
fn prepare_branch_creates_branch_from_base() -> color_eyre::Result<()> {
310+
let dir = TempDir::new()?;
311+
init_git_repo(&dir)?;
312+
313+
let repo = git2::Repository::open(dir.path())?;
314+
let head = repo.head()?.peel_to_commit()?;
315+
316+
let reference = prepare_branch(&repo, "feature/new", Some("HEAD"))?;
317+
let created = repo.find_reference("refs/heads/feature/new")?;
318+
319+
assert_eq!(reference.name(), created.name());
320+
assert_eq!(created.peel_to_commit()?.id(), head.id());
321+
322+
Ok(())
323+
}
291324
}

src/repo/mod.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,21 @@ mod tests {
164164
Ok(())
165165
}
166166

167+
#[test]
168+
fn ensure_worktrees_dir_creates_directory() -> color_eyre::Result<()> {
169+
let dir = TempDir::new()?;
170+
let repo = init_repo(&dir)?;
171+
172+
let first = repo.ensure_worktrees_dir()?;
173+
assert!(first.exists());
174+
assert!(first.is_dir());
175+
176+
let second = repo.ensure_worktrees_dir()?;
177+
assert_eq!(first, second);
178+
179+
Ok(())
180+
}
181+
167182
#[test]
168183
fn gitignore_has_entry_detects_alternate_form() {
169184
assert!(gitignore_has_entry(".rsworktree\n"));

0 commit comments

Comments
 (0)