mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
These were added under the impression that there was significant user-experience impact if multiple resources share the same name. This hasn't proven to be true yet, so figured we'd take this out until it becomes necessary.
91 lines
2.6 KiB
Go
91 lines
2.6 KiB
Go
package cliui_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/cli/cliui"
|
|
"github.com/coder/coder/coderd/database"
|
|
"github.com/coder/coder/codersdk"
|
|
"github.com/coder/coder/pty/ptytest"
|
|
)
|
|
|
|
func TestWorkspaceResources(t *testing.T) {
|
|
t.Parallel()
|
|
t.Run("SingleAgentSSH", func(t *testing.T) {
|
|
t.Parallel()
|
|
ptty := ptytest.New(t)
|
|
go func() {
|
|
err := cliui.WorkspaceResources(ptty.Output(), []codersdk.WorkspaceResource{{
|
|
Type: "google_compute_instance",
|
|
Name: "dev",
|
|
Transition: database.WorkspaceTransitionStart,
|
|
Agents: []codersdk.WorkspaceAgent{{
|
|
Name: "dev",
|
|
Status: codersdk.WorkspaceAgentConnected,
|
|
Architecture: "amd64",
|
|
OperatingSystem: "linux",
|
|
}},
|
|
}}, cliui.WorkspaceResourcesOptions{
|
|
WorkspaceName: "example",
|
|
})
|
|
require.NoError(t, err)
|
|
}()
|
|
ptty.ExpectMatch("coder ssh example")
|
|
})
|
|
|
|
t.Run("MultipleStates", func(t *testing.T) {
|
|
t.Parallel()
|
|
ptty := ptytest.New(t)
|
|
disconnected := database.Now().Add(-4 * time.Second)
|
|
go func() {
|
|
err := cliui.WorkspaceResources(ptty.Output(), []codersdk.WorkspaceResource{{
|
|
Transition: database.WorkspaceTransitionStart,
|
|
Type: "google_compute_disk",
|
|
Name: "root",
|
|
}, {
|
|
Transition: database.WorkspaceTransitionStop,
|
|
Type: "google_compute_disk",
|
|
Name: "root",
|
|
}, {
|
|
Transition: database.WorkspaceTransitionStart,
|
|
Type: "google_compute_instance",
|
|
Name: "dev",
|
|
Agents: []codersdk.WorkspaceAgent{{
|
|
CreatedAt: database.Now().Add(-10 * time.Second),
|
|
Status: codersdk.WorkspaceAgentConnecting,
|
|
Name: "dev",
|
|
OperatingSystem: "linux",
|
|
Architecture: "amd64",
|
|
}},
|
|
}, {
|
|
Transition: database.WorkspaceTransitionStart,
|
|
Type: "kubernetes_pod",
|
|
Name: "dev",
|
|
Agents: []codersdk.WorkspaceAgent{{
|
|
Status: codersdk.WorkspaceAgentConnected,
|
|
Name: "go",
|
|
Architecture: "amd64",
|
|
OperatingSystem: "linux",
|
|
}, {
|
|
DisconnectedAt: &disconnected,
|
|
Status: codersdk.WorkspaceAgentDisconnected,
|
|
Name: "postgres",
|
|
Architecture: "amd64",
|
|
OperatingSystem: "linux",
|
|
}},
|
|
}}, cliui.WorkspaceResourcesOptions{
|
|
WorkspaceName: "dev",
|
|
HideAgentState: false,
|
|
HideAccess: false,
|
|
})
|
|
require.NoError(t, err)
|
|
}()
|
|
ptty.ExpectMatch("google_compute_disk.root")
|
|
ptty.ExpectMatch("google_compute_instance.dev")
|
|
ptty.ExpectMatch("coder ssh dev.postgres")
|
|
})
|
|
}
|