// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package actions import ( "strings" "testing" "code.gitea.io/gitea/modules/actions/jobparser" "github.com/stretchr/testify/assert" ) func TestMakeTaskStepDisplayName(t *testing.T) { tests := []struct { name string jobStep *jobparser.Step expected string }{ { name: "explicit name", jobStep: &jobparser.Step{ Name: "Test Step", }, expected: "Test Step", }, { name: "uses step", jobStep: &jobparser.Step{ Uses: "actions/checkout@v4", }, expected: "Run actions/checkout@v4", }, { name: "single-line run", jobStep: &jobparser.Step{ Run: "echo hello", }, expected: "Run echo hello", }, { name: "multi-line run block scalar", jobStep: &jobparser.Step{ Run: "\n echo hello \r\n echo world \n ", }, expected: "Run echo hello", }, { name: "fallback to id", jobStep: &jobparser.Step{ ID: "step-id", }, expected: "Run step-id", }, { name: "very long name truncated", jobStep: &jobparser.Step{ Name: strings.Repeat("a", 300), }, expected: strings.Repeat("a", 252) + "…", }, { name: "very long run truncated", jobStep: &jobparser.Step{ Run: strings.Repeat("a", 300), }, expected: "Run " + strings.Repeat("a", 248) + "…", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := makeTaskStepDisplayName(tt.jobStep, 255) assert.Equal(t, tt.expected, result) }) } }