(t *testing.T)
| 1329 | } |
| 1330 | |
| 1331 | func TestUnsupportedCommandsReturnJSONErrorEnvelope(t *testing.T) { |
| 1332 | for _, name := range []string{"login", "completion"} { |
| 1333 | t.Run(name, func(t *testing.T) { |
| 1334 | var stdout, stderr bytes.Buffer |
| 1335 | cmd := &cobra.Command{Use: name} |
| 1336 | cmd.SetOut(&stdout) |
| 1337 | cmd.SetErr(&stderr) |
| 1338 | cmd.Flags().String(outputFlag, "json", "") |
| 1339 | |
| 1340 | err := validateOutputFormat(cmd) |
| 1341 | if !errors.Is(err, output.ErrStructuredOutputUnsupported) { |
| 1342 | t.Fatalf("validateOutputFormat error = %v, want structured output unsupported", err) |
| 1343 | } |
| 1344 | |
| 1345 | renderCommandError(cmd, err) |
| 1346 | if stderr.Len() != 0 { |
| 1347 | t.Fatalf("stderr = %q, want empty", stderr.String()) |
| 1348 | } |
| 1349 | |
| 1350 | got := decodeJSONErrorResponse(t, stdout.String()) |
| 1351 | if got.OK { |
| 1352 | t.Fatalf("ok = true, want false") |
| 1353 | } |
| 1354 | if got.Error.Code != jsonErrorCodeStructuredOutputUnsupported { |
| 1355 | t.Fatalf("code = %q, want %q", got.Error.Code, jsonErrorCodeStructuredOutputUnsupported) |
| 1356 | } |
| 1357 | if got.Warnings == nil || len(got.Warnings) != 0 { |
| 1358 | t.Fatalf("warnings = %+v, want empty array", got.Warnings) |
| 1359 | } |
| 1360 | }) |
| 1361 | } |
| 1362 | } |
nothing calls this directly
no test coverage detected