refactor: TestRepoGenerateTemplatingSymlink with forgery

This commit is contained in:
oliverpool 2026-02-18 14:51:46 +01:00
parent 9bef6e4d25
commit 032caed2e7

View file

@ -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,