@@ -11,7 +11,12 @@ import (
1111 "github.com/charmbracelet/lipgloss"
1212)
1313
14- func renderTestHeader (header string , spinner spinner.Model , isFinished bool , isSubmit bool , passed * bool ) string {
14+ const safeStepIcon = "🛡︎"
15+
16+ func renderTestHeader (header string , spinner spinner.Model , isFinished bool , isSubmit bool , passed * bool , noPenaltyOnFail bool ) string {
17+ if noPenaltyOnFail {
18+ header = fmt .Sprintf ("%s %s" , header , white .Render (safeStepIcon ))
19+ }
1520 cmdStr := renderTest (header , spinner .View (), isFinished , & isSubmit , passed )
1621 box := borderBox .Render (fmt .Sprintf (" %s " , cmdStr ))
1722 sliced := strings .Split (box , "\n " )
@@ -97,7 +102,7 @@ func (m rootModel) View() string {
97102 s := m .spinner .View ()
98103 var str strings.Builder
99104 for _ , step := range m .steps {
100- str .WriteString (renderTestHeader (step .step , m .spinner , step .finished , m .isSubmit , step .passed ))
105+ str .WriteString (renderTestHeader (step .step , m .spinner , step .finished , m .isSubmit , step .passed , step . noPenaltyOnFail ))
101106 str .WriteString (renderTests (step .tests , s ))
102107
103108 if step .sleepAfter != "" && step .finished {
@@ -152,7 +157,8 @@ func (m rootModel) View() string {
152157 str .WriteString ("\n \n Tests failed! ❌" )
153158 fmt .Fprintf (& str , "\n \n Failed Step: %v" , m .failure .FailedStepIndex + 1 )
154159 str .WriteString ("\n Error: " + m .failure .ErrorMessage + "\n " )
155- str .WriteString ("\n You haven't passed, but you also haven't been penalized.\n \n " )
160+ str .WriteString ("\n " + white .Render (safeStepIcon ) + " This was a safe step.\n " )
161+ str .WriteString ("You haven't passed, but you also haven't lost armor or Sharpshooter progress.\n \n " )
156162 } else if m .result == api .VerificationResultSlugFailure {
157163 str .WriteString ("\n \n " + red .Render ("Tests failed! ❌" ))
158164 if m .failure != nil {
0 commit comments