From 50a604c52ea23977dca65b5bb82a2b57cd537e09 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Jun 2026 11:12:15 +0000 Subject: [PATCH 1/2] test(mps-sync-plugin): add syncing status widget coverage --- .../mps/sync3/ui/ModelSyncStatusWidgetTest.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mps-sync-plugin3/src/test/kotlin/org/modelix/mps/sync3/ui/ModelSyncStatusWidgetTest.kt 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")) + } +} From 93996d881cf804855e2508fcb59c837fa4015f18 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Jun 2026 11:12:46 +0000 Subject: [PATCH 2/2] fix(mps-sync-plugin): omit null syncing progress text --- .../org/modelix/mps/sync3/ui/ModelSyncStatusWidget.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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" +}