From 032caed2e7308720e7fd7bd0063d45ee268dd119 Mon Sep 17 00:00:00 2001 From: oliverpool Date: Wed, 18 Feb 2026 14:51:46 +0100 Subject: [PATCH] refactor: TestRepoGenerateTemplatingSymlink with forgery --- tests/integration/repo_generate_test.go | 43 ++++++++----------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/tests/integration/repo_generate_test.go b/tests/integration/repo_generate_test.go index cd79a41d13..4123bee481 100644 --- a/tests/integration/repo_generate_test.go +++ b/tests/integration/repo_generate_test.go @@ -298,9 +298,10 @@ func TestRepoGenerateTemplating(t *testing.T) { func TestRepoGenerateTemplatingSymlink(t *testing.T) { onApplicationRun(t, func(t *testing.T, u *url.URL) { - userName := "user1" - session := loginUser(t, userName) - user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: userName}) + user := forgery.CreateUser(t, &forgery.CreateUserOptions{ + IsAdmin: true, // required to see the detailed error message on the error response + }) + session := loginUser(t, user.Name) testCases := []struct { name string @@ -325,34 +326,18 @@ func TestRepoGenerateTemplatingSymlink(t *testing.T) { for i, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - templateName := fmt.Sprintf("my_template-%d", i) - generatedName := fmt.Sprintf("my_generated-%d", i) - template, _, f := tests.CreateDeclarativeRepoWithOptions(t, user, tests.DeclarativeRepoOptions{ - Name: optional.Some(templateName), - IsTemplate: optional.Some(true), - Files: optional.Some([]*files_service.ChangeRepoFile{ - { - Operation: "create", - TreePath: ".forgejo/template", - ContentReader: strings.NewReader("**/Readme.md"), - }, - { - Operation: "create", - TreePath: "actual-contents.txt", - ContentReader: strings.NewReader("Here are some contents. $REPO_NAME"), - }, - { - Operation: "create", - TreePath: "problem/Readme.md", - ContentReader: strings.NewReader(tc.symlinkTarget), - Options: files_service.RepoFileOptionMode(git.EntryModeSymlink), - }, - }), + template := forgery.CreateRepository(t, user, &forgery.CreateRepositoryOptions{ + IsTemplate: true, + Files: forgery.MapFS{ + ".forgejo/template": forgery.MapFile("**/Readme.md"), + "actual-contents.txt": forgery.MapFile("Here are some contents. $REPO_NAME"), + "problem/Readme.md": forgery.MapSymlink(tc.symlinkTarget), + }, }) - defer f() // The repo.TemplateID field is not initialized. Luckily, the ID field holds the expected value templateID := strconv.FormatInt(template.ID, 10) + generatedName := fmt.Sprintf("my_generated-%d", i) if tc.expectedError != "" { resp := testRepoGenerateFailure( @@ -360,7 +345,7 @@ func TestRepoGenerateTemplatingSymlink(t *testing.T) { session, templateID, user.Name, - templateName, + template.Name, user, user, generatedName, @@ -372,7 +357,7 @@ func TestRepoGenerateTemplatingSymlink(t *testing.T) { session, templateID, user.Name, - templateName, + template.Name, user, user, generatedName,