From bfc452c911b8c6923e793c096ee03a2268ba34a6 Mon Sep 17 00:00:00 2001 From: "Ilia.Shulgin" Date: Mon, 12 May 2025 10:57:58 +0200 Subject: [PATCH] [git] Add widget tests for empty state GitOrigin-RevId: ff352a397db8ba39acb1ca3c88b2a308584feb94 --- .../testData/widgetTree/MultipleFreshRepos | 9 +++++++ .../widgetTree/MultipleFreshReposNoSync | 12 +++++++++ .../testData/widgetTree/SingleFreshRepo | 9 +++++++ .../branch/GitWidgetTreeStructureTest.kt | 26 +++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 plugins/git4idea/testData/widgetTree/MultipleFreshRepos create mode 100644 plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync create mode 100644 plugins/git4idea/testData/widgetTree/SingleFreshRepo diff --git a/plugins/git4idea/testData/widgetTree/MultipleFreshRepos b/plugins/git4idea/testData/widgetTree/MultipleFreshRepos new file mode 100644 index 000000000000..8732aebf4454 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/MultipleFreshRepos @@ -0,0 +1,9 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-bro-repo +-project \ No newline at end of file diff --git a/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync b/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync new file mode 100644 index 000000000000..b127833c32b3 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync @@ -0,0 +1,12 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-bro-repo +-project +------ +-Local Branches in project + master [icons/currentBranchFavoriteLabel.svg] \ No newline at end of file diff --git a/plugins/git4idea/testData/widgetTree/SingleFreshRepo b/plugins/git4idea/testData/widgetTree/SingleFreshRepo new file mode 100644 index 000000000000..a952f6fae3a9 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/SingleFreshRepo @@ -0,0 +1,9 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-Local + master [icons/currentBranchFavoriteLabel.svg] \ No newline at end of file diff --git a/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt b/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt index 9621dab81a54..4583357cdf94 100644 --- a/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt +++ b/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt @@ -8,10 +8,12 @@ import com.intellij.openapi.vcs.Executor.cd import com.intellij.testFramework.PlatformTestUtil import com.intellij.testFramework.TestDataPath import com.intellij.testFramework.assertions.Assertions +import com.intellij.testFramework.utils.io.deleteRecursively import com.intellij.ui.SeparatorWithText import com.intellij.ui.tree.TreeTestUtil import com.intellij.ui.treeStructure.Tree import com.intellij.vcs.git.shared.repo.GitRepositoriesFrontendHolder +import git4idea.GitUtil import git4idea.config.GitVcsSettings import git4idea.repo.GitRepository import git4idea.test.* @@ -178,6 +180,30 @@ class GitWidgetTreeStructureTest : GitPlatformTest() { compareWithSnapshot(buildTestTree("group")) } + fun testSingleFreshRepo() { + resetToFreshState(repo) + compareWithSnapshot(buildTestTree()) + } + + fun testMultipleFreshRepos() { + resetToFreshState(repo) + registerBroRepo().also { resetToFreshState(it) } + compareWithSnapshot(buildTestTree()) + } + + fun testMultipleFreshReposNoSync() { + settings.syncSetting = DvcsSyncSettings.Value.DONT_SYNC + + resetToFreshState(repo) + registerBroRepo().also { resetToFreshState(it) } + compareWithSnapshot(buildTestTree()) + } + + private fun resetToFreshState(repo: GitRepository) { + repo.root.toNioPath().resolve(GitUtil.DOT_GIT).deleteRecursively() + repo.git("init") + } + private fun createRefs(repo: GitRepository, ensureTags: Boolean = false) { listOf("test", "group/test", "another/group/test").forEach { repo.branch(it)