forgejo/services/forgejo/sanity_v1TOv5_0_1Included_test.go
Earl Warren f6ba73de4c
[UPGRADE] add sanity checks for [storage*]
Refs: https://forgejo.org/2023-08-release-v1-20-3-0/
(cherry picked from commit a266dd0ce3)
(cherry picked from commit b9eb5eccd8)
(cherry picked from commit 7fc2028ede)
(cherry picked from commit 0c988e6120)
(cherry picked from commit 7ba05e8c2b)
(cherry picked from commit 2ed5068abe)
(cherry picked from commit 353913a26d)
(cherry picked from commit 4e63a01a8b)
(cherry picked from commit 99f612aed3)
(cherry picked from commit b4fe189cae)
(cherry picked from commit bd35e3b7bc)
(cherry picked from commit f59d9f7088)
(cherry picked from commit 0b2a93e044)
(cherry picked from commit 8c5d8bfea0)
(cherry picked from commit 2817ce027c)
(cherry picked from commit 162056cbcf)
(cherry picked from commit 07152a0ba6)
(cherry picked from commit 72e3777915)
(cherry picked from commit 3b1ebd95b9)
(cherry picked from commit 14fc4f3fac)
(cherry picked from commit 9052c86e8c)
(cherry picked from commit 16f1cc21ea)
(cherry picked from commit 0fef12f5d8)
(cherry picked from commit d187381f73)
(cherry picked from commit 9dda715111)
2024-02-05 14:44:33 +01:00

115 lines
2.7 KiB
Go

// SPDX-License-Identifier: MIT
package forgejo
import (
"fmt"
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/forgejo/semver"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/log"
"github.com/stretchr/testify/assert"
)
func TestForgejo_v1TOv5_0_1Included(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
logFatal = func(string, ...any) {}
defer func() {
logFatal = log.Fatal
}()
configWithSoragePath := `
[storage]
PATH = /something
`
verifyForgejoV1TOv5_0_1Included(t, configWithSoragePath, "[storage].PATH is set")
for _, c := range v1TOv5_0_1IncludedStorageSections {
config := fmt.Sprintf("[%s]\n[%s]\n", c.section, c.storageSection)
verifyForgejoV1TOv5_0_1Included(t, config, fmt.Sprintf("[%s] and [%s]", c.section, c.storageSection))
}
}
func verifyForgejoV1TOv5_0_1Included(t *testing.T, config, message string) {
ctx := db.DefaultContext
e := db.GetEngine(ctx)
for _, testCase := range []struct {
name string
dbVersion int64
semver string
config string
}{
{
name: "5.0.0 with no " + message,
dbVersion: ForgejoV5DatabaseVersion,
semver: "5.0.0+0-gitea-1.20.1",
config: "",
},
{
name: "5.0.1 with no " + message,
dbVersion: ForgejoV5DatabaseVersion,
semver: "5.0.1+0-gitea-1.20.2",
config: "",
},
{
name: "5.0.2 with " + message,
dbVersion: ForgejoV5DatabaseVersion,
semver: "5.0.2+0-gitea-1.20.3",
config: config,
},
{
name: "6.0.0 with " + message,
dbVersion: ForgejoV6DatabaseVersion,
semver: "6.0.0+0-gitea-1.21.0",
config: config,
},
} {
cfg := configFixture(t, testCase.config)
semver.SetVersionString(ctx, testCase.semver)
assert.NoError(t, v1TOv5_0_1Included(e, testCase.dbVersion, cfg))
}
for _, testCase := range []struct {
name string
dbVersion int64
semver string
config string
}{
{
name: "5.0.0 with " + message,
dbVersion: ForgejoV5DatabaseVersion,
semver: "5.0.0+0-gitea-1.20.1",
config: config,
},
{
name: "5.0.1 with " + message,
dbVersion: ForgejoV5DatabaseVersion,
semver: "5.0.1+0-gitea-1.20.2",
config: config,
},
{
//
// When upgrading from
//
// Forgejo >= 5.0.1+0-gitea-1.20.2
// Gitea > v1.21
//
// The version that the server was running prior to the upgrade
// is not available.
//
name: semver.DefaultVersionString + " with " + message,
dbVersion: ForgejoV4DatabaseVersion,
semver: semver.DefaultVersionString,
config: config,
},
} {
cfg := configFixture(t, testCase.config)
semver.SetVersionString(ctx, testCase.semver)
assert.ErrorContains(t, v1TOv5_0_1Included(e, testCase.dbVersion, cfg), message)
}
}