52 lines · 1.4 KB · Go
RawDownload
package task import (	"testing" 	admin_model "forgejo.org/models/admin"	"forgejo.org/models/unittest"	user_model "forgejo.org/models/user"	"forgejo.org/modules/migration" 	"github.com/stretchr/testify/assert"	"github.com/stretchr/testify/require") func TestCreateMigrateTask(t *testing.T) {	require.NoError(t, unittest.PrepareTestDatabase())	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 	t.Run("Transaction failure", func(t *testing.T) {		defer unittest.SetFaultInjector(2)() 		task, err := CreateMigrateTask(t.Context(), user, user, migration.MigrateOptions{			CloneAddr:    "https://admin:password2@example.com",			AuthPassword: "password",			AuthToken:    "token",			RepoName:     "migrate-test-2",		})		require.ErrorIs(t, err, unittest.ErrFaultInjected)		require.Nil(t, task) 		unittest.AssertExistsIf(t, false, &admin_model.Task{})	}) 	t.Run("Normal", func(t *testing.T) {		task, err := CreateMigrateTask(t.Context(), user, user, migration.MigrateOptions{			CloneAddr:    "https://admin:password@example.com",			AuthPassword: "password",			AuthToken:    "token",			RepoName:     "migrate-test",		})		require.NoError(t, err)		require.NotNil(t, task) 		config, err := task.MigrateConfig()		require.NoError(t, err)		require.NotNil(t, config) 		assert.Equal(t, "token", config.AuthToken)		assert.Equal(t, "password", config.AuthPassword)		assert.Equal(t, "https://admin:password@example.com", config.CloneAddr)	})}