Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,8 @@ class DevWorkspaces(private val client: ApiClient) {

fun isIdeaEditorBased(devWorkspace: DevWorkspace, devWorkspaceTemplateMap: Map<String, List<DevWorkspaceTemplate>>): Boolean {
// Quick editor ID check
val segment = devWorkspace.cheEditor.split("/").getOrNull(1)
if (segment != null && CHE_EDITOR_ID_REGEX.matches(segment)) {
return true
if (devWorkspace.cheEditor.split("/").any { CHE_EDITOR_ID_REGEX.matches(it) }) {
return true
}

// DevWorkspace Template check
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,42 @@ class DevWorkspacesTest {
.hasMessageContaining("API error")
}

@Test
fun `#isIdeaEditorBased returns true for full path editor annotation`() {
val dw = createDevWorkspaceWithEditor("eclipse/che-idea-server/latest")
assert(devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

@Test
fun `#isIdeaEditorBased returns true for editor name only`() {
val dw = createDevWorkspaceWithEditor("che-idea-server")
assert(devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

@Test
fun `#isIdeaEditorBased returns true for editor name with version`() {
val dw = createDevWorkspaceWithEditor("che-idea-server/latest")
assert(devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

@Test
fun `#isIdeaEditorBased returns true for editor name with prefix`() {
val dw = createDevWorkspaceWithEditor("eclipse/che-idea-server")
assert(devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

@Test
fun `#isIdeaEditorBased returns false for non-idea editor`() {
val dw = createDevWorkspaceWithEditor("eclipse/che-code/latest")
assert(!devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

@Test
fun `#isIdeaEditorBased returns false for unknown editor`() {
val dw = createDevWorkspaceWithEditor("unknown")
assert(!devWorkspaces.isIdeaEditorBased(dw, emptyMap()))
}

// Helper methods
private fun mockGetDevWorkspace(devWorkspace: Any) {
every {
Expand Down Expand Up @@ -271,6 +307,20 @@ class DevWorkspacesTest {
}
}

private fun createDevWorkspaceWithEditor(cheEditor: String): DevWorkspace {
return DevWorkspace(
DevWorkspaceObjectMeta(
name = "test-workspace",
namespace = "test-namespace",
uid = "test-uid",
annotations = mapOf("che.eclipse.org/che-editor" to cheEditor),
labels = emptyMap()
),
DevWorkspaceSpec(started = true),
DevWorkspaceStatus(phase = "Running")
)
}

private fun createMockDevWorkspace(
namespace: String,
name: String,
Expand Down
Loading