|
1 | 1 | package images |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "bytes" |
| 5 | + "strings" |
4 | 6 | "testing" |
5 | 7 |
|
| 8 | + "github.com/spf13/cobra" |
6 | 9 | "github.com/verda-cloud/verdacloud-sdk-go/pkg/verda" |
| 10 | + "github.com/verda-cloud/verdacloud-sdk-go/pkg/verda/testutil" |
| 11 | + |
| 12 | + cmdutil "github/verda-cloud/verda-cli/internal/verda-cli/cmd/util" |
7 | 13 | ) |
8 | 14 |
|
9 | 15 | func TestFilterExcludesClusterImages(t *testing.T) { |
@@ -67,3 +73,43 @@ func TestFilterEmptyList(t *testing.T) { |
67 | 73 | t.Fatalf("expected 0 images, got %d", len(filtered)) |
68 | 74 | } |
69 | 75 | } |
| 76 | + |
| 77 | +func TestOutputShowsImageTypeNotID(t *testing.T) { |
| 78 | + t.Parallel() |
| 79 | + |
| 80 | + mockServer := testutil.NewMockServer() |
| 81 | + defer mockServer.Close() |
| 82 | + |
| 83 | + client := verda.NewTestClient(mockServer) |
| 84 | + |
| 85 | + var buf bytes.Buffer |
| 86 | + ioStreams := cmdutil.IOStreams{Out: &buf, ErrOut: &buf} |
| 87 | + f := cmdutil.NewTestFactory(nil) |
| 88 | + f.ClientOverride = client |
| 89 | + |
| 90 | + root := &cobra.Command{Use: "verda", SilenceUsage: true, SilenceErrors: true} |
| 91 | + root.AddCommand(NewCmdImages(f, ioStreams)) |
| 92 | + root.SetArgs([]string{"images"}) |
| 93 | + |
| 94 | + if err := root.Execute(); err != nil { |
| 95 | + t.Fatalf("unexpected error: %v", err) |
| 96 | + } |
| 97 | + |
| 98 | + out := buf.String() |
| 99 | + |
| 100 | + // Header should say IMAGE TYPE, not ID. |
| 101 | + if !strings.Contains(out, "IMAGE TYPE") { |
| 102 | + t.Errorf("expected header to contain IMAGE TYPE, got:\n%s", out) |
| 103 | + } |
| 104 | + if strings.Contains(out, " ID ") { |
| 105 | + t.Errorf("header should not contain ID column, got:\n%s", out) |
| 106 | + } |
| 107 | + |
| 108 | + // Rows should contain image_type values from mock server, not UUIDs. |
| 109 | + if !strings.Contains(out, "ubuntu-22.04-cuda-12.0") { |
| 110 | + t.Errorf("expected image_type 'ubuntu-22.04-cuda-12.0' in output, got:\n%s", out) |
| 111 | + } |
| 112 | + if !strings.Contains(out, "pytorch-2.0") { |
| 113 | + t.Errorf("expected image_type 'pytorch-2.0' in output, got:\n%s", out) |
| 114 | + } |
| 115 | +} |
0 commit comments