初始提交: Gitea 项目代码
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
// Copyright 2026 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package actions
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestActionJobList_SortMatrixGroupsByName(t *testing.T) {
|
||||
mk := func(jobID, name string) *ActionRunJob {
|
||||
return &ActionRunJob{JobID: jobID, Name: name}
|
||||
}
|
||||
names := func(jobs ActionJobList) []string {
|
||||
out := make([]string, len(jobs))
|
||||
for i, j := range jobs {
|
||||
out[i] = j.Name
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
t.Run("matrix group sorted naturally", func(t *testing.T) {
|
||||
jobs := ActionJobList{
|
||||
mk("build", "build"),
|
||||
mk("test", "test (10)"),
|
||||
mk("test", "test (2)"),
|
||||
mk("test", "test (1)"),
|
||||
mk("deploy", "deploy"),
|
||||
}
|
||||
jobs.SortMatrixGroupsByName()
|
||||
assert.Equal(t, []string{"build", "test (1)", "test (2)", "test (10)", "deploy"}, names(jobs))
|
||||
})
|
||||
|
||||
t.Run("non-adjacent same JobID stays in input order", func(t *testing.T) {
|
||||
jobs := ActionJobList{
|
||||
mk("test", "test (10)"),
|
||||
mk("build", "build"),
|
||||
mk("test", "test (1)"),
|
||||
}
|
||||
jobs.SortMatrixGroupsByName()
|
||||
assert.Equal(t, []string{"test (10)", "build", "test (1)"}, names(jobs))
|
||||
})
|
||||
|
||||
t.Run("groups stay in input order", func(t *testing.T) {
|
||||
jobs := ActionJobList{
|
||||
mk("z", "z"),
|
||||
mk("a", "a"),
|
||||
}
|
||||
jobs.SortMatrixGroupsByName()
|
||||
assert.Equal(t, []string{"z", "a"}, names(jobs))
|
||||
})
|
||||
|
||||
t.Run("empty and singleton", func(t *testing.T) {
|
||||
ActionJobList(nil).SortMatrixGroupsByName()
|
||||
jobs := ActionJobList{mk("only", "only")}
|
||||
jobs.SortMatrixGroupsByName()
|
||||
assert.Equal(t, []string{"only"}, names(jobs))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user