|
6 | 6 | "database/sql"
|
7 | 7 | "encoding/json"
|
8 | 8 | "io"
|
| 9 | + "slices" |
| 10 | + "strings" |
9 | 11 | "testing"
|
10 | 12 |
|
11 | 13 | "github.com/google/uuid"
|
@@ -200,6 +202,43 @@ func TestExpTaskList(t *testing.T) {
|
200 | 202 |
|
201 | 203 | pty.ExpectMatch(ws.Name)
|
202 | 204 | })
|
| 205 | + |
| 206 | + t.Run("Quiet", func(t *testing.T) { |
| 207 | + t.Parallel() |
| 208 | + |
| 209 | + // Quiet logger to reduce noise. |
| 210 | + quiet := slog.Make(sloghuman.Sink(io.Discard)) |
| 211 | + client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{Logger: &quiet}) |
| 212 | + owner := coderdtest.CreateFirstUser(t, client) |
| 213 | + memberClient, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID) |
| 214 | + |
| 215 | + // Given: We have two tasks |
| 216 | + task1 := makeAITask(t, db, owner.OrganizationID, owner.UserID, memberUser.ID, database.WorkspaceTransitionStart, "keep me running") |
| 217 | + task2 := makeAITask(t, db, owner.OrganizationID, owner.UserID, memberUser.ID, database.WorkspaceTransitionStop, "stop me please") |
| 218 | + |
| 219 | + // Given: We add the `--quiet` flag |
| 220 | + inv, root := clitest.New(t, "exp", "task", "list", "--quiet") |
| 221 | + clitest.SetupConfig(t, memberClient, root) |
| 222 | + |
| 223 | + ctx := testutil.Context(t, testutil.WaitShort) |
| 224 | + var stdout bytes.Buffer |
| 225 | + inv.Stdout = &stdout |
| 226 | + inv.Stderr = &stdout |
| 227 | + |
| 228 | + // When: We run the command |
| 229 | + err := inv.WithContext(ctx).Run() |
| 230 | + require.NoError(t, err) |
| 231 | + |
| 232 | + want := []string{task1.ID.String(), task2.ID.String()} |
| 233 | + got := slice.Filter(strings.Split(stdout.String(), "\n"), func(s string) bool { |
| 234 | + return len(s) != 0 |
| 235 | + }) |
| 236 | + |
| 237 | + slices.Sort(want) |
| 238 | + slices.Sort(got) |
| 239 | + |
| 240 | + require.Equal(t, want, got) |
| 241 | + }) |
203 | 242 | }
|
204 | 243 |
|
205 | 244 | func TestExpTaskList_OwnerCanListOthers(t *testing.T) {
|
|
0 commit comments