1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-08-01 17:38:33 +00:00

fix(tests): TestInitInstructions must use forEachObjectFormat (#8220)

Otherwise it [fails with older git versions](https://codeberg.org/forgejo-integration/forgejo/actions/runs/10341/jobs/1#jobstep-5-2706).

```
--- FAIL: TestInitInstructions (0.12s)
    testlogger.go:411: 2025/06/18 00:32:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /workspace/***/forgejo/tests/gitea-lfs-meta
    testlogger.go:411: 2025/06/18 00:32:37 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/login for test-mock:12345, 200 OK in 4.7ms @ auth/auth.go:145(auth.SignIn)
    testlogger.go:411: 2025/06/18 00:32:37 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for test-mock:12345, 303 See Other in 3.8ms @ auth/auth.go:179(auth.SignInPost)
    repo_test.go:1456:
        	Error Trace:	/workspace/***/forgejo/tests/test_utils.go:383
        	            				/workspace/***/forgejo/tests/integration/repo_test.go:1456
        	Error:      	Received unexpected error:
        	            	initRepository: git.InitRepository: invalid object format: sha256
        	Test:       	TestInitInstructions
```

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8220
Reviewed-by: Antonin Delpeuch <wetneb@noreply.codeberg.org>
Reviewed-by: oliverpool <oliverpool@noreply.codeberg.org>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
This commit is contained in:
Earl Warren 2025-06-18 10:56:30 +02:00 committed by Earl Warren
parent 34987a2be7
commit e934d0a3f3

View file

@ -1453,51 +1453,34 @@ func TestInitInstructions(t *testing.T) {
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
session := loginUser(t, user.Name) session := loginUser(t, user.Name)
sha256Repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ forEachObjectFormat(t, func(t *testing.T, objectFormat git.ObjectFormat) {
Name: optional.Some("sha256-instruction"), defer tests.PrintCurrentTest(t)()
AutoInit: optional.Some(false), name := objectFormat.Name()
EnabledUnits: optional.Some([]unit_model.Type{unit_model.TypeCode}), var init string
ObjectFormat: optional.Some("sha256"), if name == "sha1" {
}) init = "git init"
defer f() } else {
init = fmt.Sprintf("git init --object-format=%s", name)
}
sha1Repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ repo, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{
Name: optional.Some("sha1-instruction"), Name: optional.Some(name + "-instruction"),
AutoInit: optional.Some(false), AutoInit: optional.Some(false),
EnabledUnits: optional.Some([]unit_model.Type{unit_model.TypeCode}), EnabledUnits: optional.Some([]unit_model.Type{unit_model.TypeCode}),
ObjectFormat: optional.Some("sha1"), ObjectFormat: optional.Some(name),
}) })
defer f() defer f()
portMatcher := regexp.MustCompile(`localhost:\d+`) portMatcher := regexp.MustCompile(`localhost:\d+`)
resp := session.MakeRequest(t, NewRequest(t, "GET", "/"+repo.FullName()), http.StatusOK)
t.Run("sha256", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
resp := session.MakeRequest(t, NewRequest(t, "GET", "/"+sha256Repo.FullName()), http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body) htmlDoc := NewHTMLParser(t, resp.Body)
assert.Equal(t, `touch README.md assert.Equal(t, fmt.Sprintf(`touch README.md
git init --object-format=sha256 %s
git switch -c main git switch -c main
git add README.md git add README.md
git commit -m "first commit" git commit -m "first commit"
git remote add origin http://localhost/user2/sha256-instruction.git git remote add origin http://localhost/user2/%s-instruction.git
git push -u origin main`, portMatcher.ReplaceAllString(htmlDoc.Find(".empty-repo-guide code").First().Text(), "localhost")) git push -u origin main`, init, name), portMatcher.ReplaceAllString(htmlDoc.Find(".empty-repo-guide code").First().Text(), "localhost"))
})
t.Run("sha1", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
resp := session.MakeRequest(t, NewRequest(t, "GET", "/"+sha1Repo.FullName()), http.StatusOK)
htmlDoc := NewHTMLParser(t, resp.Body)
assert.Equal(t, `touch README.md
git init
git switch -c main
git add README.md
git commit -m "first commit"
git remote add origin http://localhost/user2/sha1-instruction.git
git push -u origin main`, portMatcher.ReplaceAllString(htmlDoc.Find(".empty-repo-guide code").First().Text(), "localhost"))
}) })
} }