Files
gitea-tea/internal/version/version_test.go

40 lines
1.8 KiB
Go

// Copyright 2026 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package version
import (
"runtime/debug"
"testing"
"github.com/stretchr/testify/require"
)
func TestFormatDescribesTheBuild(t *testing.T) {
stamped := &debug.BuildInfo{Settings: []debug.BuildSetting{{Key: "vcs.time", Value: "2026-10-01T09:30:00Z"}}}
for _, tc := range []struct {
name, version, tags string
info *debug.BuildInfo
want string
}{
{"release", "1.0.0", "", stamped, "tea version 1.0.0 (2026-10-01)\nhttps://gitea.com/gitea/tea/releases/tag/v1.0.0\nbuilt with go1.27.2"},
{"release candidate with tags", "1.1.0-rc1", "sqlite netgo", nil, "tea version 1.1.0-rc1\nhttps://gitea.com/gitea/tea/releases/tag/v1.1.0-rc1\nbuilt with go1.27.2 (tags: sqlite, netgo)"},
{"between releases", "0.16.0+12-gabcdef", "", stamped, "tea version 0.16.0+12-gabcdef (2026-10-01)\nbuilt with go1.27.2"},
{"go install", "development", "", &debug.BuildInfo{Main: debug.Module{Version: "v1.0.1"}}, "tea version 1.0.1\nhttps://gitea.com/gitea/tea/releases/tag/v1.0.1\nbuilt with go1.27.2"},
{"local build", "development", "", &debug.BuildInfo{Main: debug.Module{Version: "(devel)"}}, "tea version development\nbuilt with go1.27.2"},
} {
t.Run(tc.name, func(t *testing.T) {
require.Equal(t, tc.want, format(tc.version, tc.tags, "go1.27.2", tc.info))
})
}
}
func TestResolveFallsBackWhenUnstamped(t *testing.T) {
installed := &debug.BuildInfo{Main: debug.Module{Version: "v1.0.1"}}
require.Equal(t, "1.0.1", resolve("development", installed))
require.Equal(t, "1.0.1", resolve("", installed))
require.Equal(t, "development", resolve("", nil))
require.Equal(t, "development", resolve("", &debug.BuildInfo{Main: debug.Module{Version: "(devel)"}}))
require.Equal(t, "1.0.0", resolve("1.0.0", installed))
}