From b63eb90f43be618c5dc9c634f7e77e4398876435 Mon Sep 17 00:00:00 2001 From: Vladislav Sukhin Date: Fri, 19 Apr 2024 16:08:17 +0300 Subject: [PATCH] fix: print dashboard links last and blue --- .../commands/common/render/common.go | 15 ++++++------- pkg/ui/printers.go | 8 +++++++ pkg/ui/ui.go | 21 ++++++++++--------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/cmd/kubectl-testkube/commands/common/render/common.go b/cmd/kubectl-testkube/commands/common/render/common.go index 5f2662be9e4..485aece435a 100644 --- a/cmd/kubectl-testkube/commands/common/render/common.go +++ b/cmd/kubectl-testkube/commands/common/render/common.go @@ -101,6 +101,10 @@ func RenderExecutionResult(client client.Client, execution *testkube.Execution, ui.Warn("Test execution timeout") case result.IsFailed(): + if showLogs { + PrintLogs(client, info, *execution) + } + if logsOnly { ui.Info(result.ErrorMessage) } else { @@ -110,9 +114,6 @@ func RenderExecutionResult(client client.Client, execution *testkube.Execution, PrintExecutionURIs(execution, info.DashboardUri) } - if showLogs { - PrintLogs(client, info, *execution) - } return errors.New(result.ErrorMessage) default: @@ -163,8 +164,8 @@ func PrintLogs(client client.Client, info testkube.ServerInfo, execution testkub func PrintExecutionURIs(execution *testkube.Execution, dashboardURI string) { ui.NL() - ui.Link("Test URI:", fmt.Sprintf("%s/tests/%s", dashboardURI, execution.TestName)) - ui.Link("Test Execution URI:", fmt.Sprintf("%s/tests/%s/executions/%s", dashboardURI, + ui.ExecutionLink("Test URI:", fmt.Sprintf("%s/tests/%s", dashboardURI, execution.TestName)) + ui.ExecutionLink("Test Execution URI:", fmt.Sprintf("%s/tests/%s/executions/%s", dashboardURI, execution.TestName, execution.Id)) ui.NL() } @@ -176,8 +177,8 @@ func PrintTestSuiteExecutionURIs(execution *testkube.TestSuiteExecution, dashboa testSuiteName = execution.TestSuite.Name } - ui.Link("Test Suite URI:", fmt.Sprintf("%s/test-suites/%s", dashboardURI, testSuiteName)) - ui.Link("Test Suite Execution URI:", fmt.Sprintf("%s/test-suites/%s/executions/%s", dashboardURI, + ui.ExecutionLink("Test Suite URI:", fmt.Sprintf("%s/test-suites/%s", dashboardURI, testSuiteName)) + ui.ExecutionLink("Test Suite Execution URI:", fmt.Sprintf("%s/test-suites/%s/executions/%s", dashboardURI, testSuiteName, execution.Id)) ui.NL() } diff --git a/pkg/ui/printers.go b/pkg/ui/printers.go index 925c4958e6f..fe08405b171 100644 --- a/pkg/ui/printers.go +++ b/pkg/ui/printers.go @@ -238,3 +238,11 @@ func (ui *UI) Link(message string, subMessages ...string) { } fmt.Fprintln(ui.Writer) } + +func (ui *UI) ExecutionLink(message string, subMessages ...string) { + fmt.Fprintf(ui.Writer, "%s", LightBlue(message)) + for _, sub := range subMessages { + fmt.Fprintf(ui.Writer, " %s", LightBlue(sub)) + } + fmt.Fprintln(ui.Writer) +} diff --git a/pkg/ui/ui.go b/pkg/ui/ui.go index e6658035ed8..2cb07932030 100644 --- a/pkg/ui/ui.go +++ b/pkg/ui/ui.go @@ -61,16 +61,17 @@ func Success(message string, subMessages ...string) { ui.Success(message, subMes func SuccessAndExit(message string, subMessages ...string) { ui.SuccessAndExit(message, subMessages...) } -func Warn(message string, subMessages ...string) { ui.Warn(message, subMessages...) } -func Alert(message string, subMessages ...string) { ui.Alert(message, subMessages...) } -func LogLine(message string) { ui.LogLine(message) } -func Debug(message string, subMessages ...string) { ui.Debug(message, subMessages...) } -func Info(message string, subMessages ...string) { ui.Info(message, subMessages...) } -func Link(message string, subMessages ...string) { ui.Link(message, subMessages...) } -func Err(err error) { ui.Err(err) } -func Errf(err string, params ...interface{}) { ui.Errf(err, params...) } -func Fail(err error) { ui.Fail(err) } -func Failf(err string, params ...interface{}) { ui.Failf(err, params...) } +func Warn(message string, subMessages ...string) { ui.Warn(message, subMessages...) } +func Alert(message string, subMessages ...string) { ui.Alert(message, subMessages...) } +func LogLine(message string) { ui.LogLine(message) } +func Debug(message string, subMessages ...string) { ui.Debug(message, subMessages...) } +func Info(message string, subMessages ...string) { ui.Info(message, subMessages...) } +func Link(message string, subMessages ...string) { ui.Link(message, subMessages...) } +func ExecutionLink(message string, subMessages ...string) { ui.ExecutionLink(message, subMessages...) } +func Err(err error) { ui.Err(err) } +func Errf(err string, params ...interface{}) { ui.Errf(err, params...) } +func Fail(err error) { ui.Fail(err) } +func Failf(err string, params ...interface{}) { ui.Failf(err, params...) } func CommandOutput(output []byte, command string, params ...string) { ui.CommandOutput(output, command, params...) }