diff --git a/mps-sync-plugin3/src/main/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidget.kt b/mps-sync-plugin3/src/main/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidget.kt index 76f0035764..f63a5d1b93 100644 --- a/mps-sync-plugin3/src/main/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidget.kt +++ b/mps-sync-plugin3/src/main/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidget.kt @@ -264,7 +264,7 @@ class ModelSyncStatusWidget(val project: Project) : CustomStatusBarWidget, Statu IBinding.Status.Disabled -> "Disabled" IBinding.Status.Initializing -> "Initializing" is IBinding.Status.Synced -> "Synchronized: ${status.versionHash.take(5)}" - is IBinding.Status.Syncing -> "Synchronizing: ${status.progress()}" + is IBinding.Status.Syncing -> formatSyncingStatusText(status.progress()) is IBinding.Status.Error -> "Synchronization failed: ${status.message}" is IBinding.Status.NoPermission -> "${status.user} has no permission on ${binding.getBranchRef().repositoryId}" } @@ -281,3 +281,7 @@ class ModelSyncStatusWidget(val project: Project) : CustomStatusBarWidget, Statu var kotlinx.html.HTMLTag.styleX: String get() = attributes.get("style") ?: "" set(value) = attributes.set("style", value) + +internal fun formatSyncingStatusText(progress: String?): String { + return progress?.let { "Synchronizing: $it" } ?: "Synchronizing" +} diff --git a/mps-sync-plugin3/src/test/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidgetTest.kt b/mps-sync-plugin3/src/test/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidgetTest.kt new file mode 100644 index 0000000000..840db68cf7 --- /dev/null +++ b/mps-sync-plugin3/src/test/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidgetTest.kt @@ -0,0 +1,16 @@ +package org.modelix.mps.sync3.ui + +import kotlin.test.Test +import kotlin.test.assertEquals + +class ModelSyncStatusWidgetTest { + @Test + fun `syncing text omits null progress`() { + assertEquals("Synchronizing", formatSyncingStatusText(null)) + } + + @Test + fun `syncing text keeps non-null progress`() { + assertEquals("Synchronizing: abcde", formatSyncingStatusText("abcde")) + } +}