Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 5cd8a91

Browse files
committed
Add tests for when user edits path
Check different combinations of repository and path changes.
1 parent e248f52 commit 5cd8a91

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

test/GitHub.App.UnitTests/ViewModels/Dialog/Clone/RepositoryCloneViewModelTests.cs

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,38 @@ public async Task Repository_Name_Replaces_Last_Part_Of_Non_Base_Path()
153153
Assert.That(target.Path, Is.EqualTo($"d:\\efault\\{owner}\\repo"));
154154
}
155155

156+
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1\\repo1", "owner2/repo2", "c:\\base\\owner2\\repo2",
157+
Description = "Path unchanged")]
158+
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1\\changed", "owner2/repo2", "c:\\base\\owner2\\repo2",
159+
Description = "Repo name changed")]
160+
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\owner1", "owner2/repo2", "c:\\base\\owner2\\repo2",
161+
Description = "Repo name deleted")]
162+
[TestCase("c:\\base", "owner1/repo1", "c:\\base", "owner2/repo2", "c:\\base\\owner2\\repo2",
163+
Description = "Base path reverted")]
164+
165+
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base\\owner1\\changed", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
166+
Description = "Base path and repo name changed")]
167+
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base\\owner1", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
168+
Description = "Base path changed and repo name deleted")]
169+
[TestCase("c:\\base", "owner1/repo1", "c:\\new\\base", "owner2/repo2", "c:\\new\\base\\owner2\\repo2",
170+
Description = "Base path changed and repo owner/name deleted")]
171+
172+
[TestCase("c:\\base", "owner1/repo1", "", "owner2/repo2", "owner2\\repo2",
173+
Description = "Base path cleared")]
174+
[TestCase("c:\\base", "owner1/repo1", "c:\\base\\repo1", "owner2/repo2", "c:\\base\\repo1\\owner2\\repo2",
175+
Description = "Owner deleted looks like base path change")]
176+
public async Task User_Edits_Path(string basePath, string repo1, string userPath, string repo2, string expectPath)
177+
{
178+
var target = CreateTarget();
179+
180+
target.Path = basePath;
181+
SetRepository(target.GitHubTab, CreateRepositoryModel(repo1));
182+
target.Path = userPath;
183+
SetRepository(target.GitHubTab, CreateRepositoryModel(repo2));
184+
185+
Assert.That(target.Path, Is.EqualTo(expectPath));
186+
}
187+
156188
[Test]
157189
public async Task Clone_Is_Initially_Disabled()
158190
{
@@ -257,7 +289,14 @@ static RepositoryCloneViewModel CreateTarget(
257289
urlTab);
258290
}
259291

260-
static IRepositoryModel CreateRepositoryModel(string owner = "owner", string name = "repo")
292+
static IRepositoryModel CreateRepositoryModel(string repo = "owner/repo")
293+
{
294+
var split = repo.Split('/');
295+
var (owner, name) = (split[0], split[1]);
296+
return CreateRepositoryModel(owner, name);
297+
}
298+
299+
static IRepositoryModel CreateRepositoryModel(string owner, string name)
261300
{
262301
var repository = Substitute.For<IRepositoryModel>();
263302
repository.Owner.Returns(owner);

0 commit comments

Comments
 (0)