Skip to content

Commit 6cd3337

Browse files
authored
better display of errors (#182)
1 parent 7f3a6c0 commit 6cd3337

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

render/view.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,22 @@ func (m rootModel) View() string {
150150
str.WriteString(green.Render("Return to your browser to continue with the next lesson.") + "\n\n")
151151
} else if m.result == api.VerificationResultSlugNoop {
152152
str.WriteString("\n\nTests failed! ❌")
153-
str.WriteString(fmt.Sprintf("\n\nFailed Step: %v", m.failure.FailedStepIndex+1))
153+
fmt.Fprintf(&str, "\n\nFailed Step: %v", m.failure.FailedStepIndex+1)
154154
str.WriteString("\nError: " + m.failure.ErrorMessage + "\n")
155155
str.WriteString("\nYou haven't passed, but you also haven't been penalized.\n\n")
156156
} else if m.result == api.VerificationResultSlugFailure {
157157
str.WriteString("\n\n" + red.Render("Tests failed! ❌"))
158-
str.WriteString(red.Render(fmt.Sprintf("\n\nFailed Step: %v", m.failure.FailedStepIndex+1)))
159-
str.WriteString(red.Render("\nError: "+m.failure.ErrorMessage) + "\n\n")
158+
if m.failure != nil {
159+
if m.failure.FailedStepIndex >= 0 && m.failure.FailedStepIndex < len(m.steps) {
160+
fmt.Fprintf(&str, "%s", red.Render(fmt.Sprintf("\n\nFailed Command: %s", m.steps[m.failure.FailedStepIndex].step)))
161+
}
162+
fmt.Fprintf(&str, "%s", red.Render(fmt.Sprintf("\n\nFailed Step: %v", m.failure.FailedStepIndex+1)))
163+
fmt.Fprintf(&str, "%s", red.Render("\nError: "+m.failure.ErrorMessage))
164+
} else {
165+
fmt.Fprintf(&str, "%s", red.Render("\n\nFailed Step: unknown"))
166+
fmt.Fprintf(&str, "%s", red.Render("\nError: unknown"))
167+
}
168+
str.WriteString("\n\n")
160169
currentDate := time.Now().Format("2006-01-02")
161170
if strings.HasSuffix(currentDate, "04-01") {
162171
str.WriteString(magenta.Render(fmt.Sprintf("This incident has been reported to your system administrator. [%s]\n", currentDate)))

0 commit comments

Comments
 (0)