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) })}
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)
})
}