forgejo/models/migrations/v1_22/v290_test.go

60 lines
1.6 KiB
Go
Raw Permalink Normal View History

2024-03-11 09:50:30 +01:00
// Copyright 2024 The Forgejo Authors c/o Codeberg e.V.. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_22 //nolint
import (
"strconv"
"testing"
migration_tests "code.gitea.io/gitea/models/migrations/test"
2024-03-11 09:50:30 +01:00
"code.gitea.io/gitea/modules/timeutil"
webhook_module "code.gitea.io/gitea/modules/webhook"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
2024-03-11 09:50:30 +01:00
)
func Test_AddPayloadVersionToHookTaskTable(t *testing.T) {
type HookTaskMigrated HookTask
// HookTask represents a hook task, as of before the migration
type HookTask struct {
ID int64 `xorm:"pk autoincr"`
HookID int64 `xorm:"index"`
UUID string `xorm:"unique"`
PayloadContent string `xorm:"LONGTEXT"`
EventType webhook_module.HookEventType
IsDelivered bool
Delivered timeutil.TimeStampNano
// History info.
IsSucceed bool
RequestContent string `xorm:"LONGTEXT"`
ResponseContent string `xorm:"LONGTEXT"`
}
// Prepare and load the testing database
x, deferable := migration_tests.PrepareTestEnv(t, 0, new(HookTask), new(HookTaskMigrated))
2024-03-11 09:50:30 +01:00
defer deferable()
if x == nil || t.Failed() {
return
}
require.NoError(t, AddPayloadVersionToHookTaskTable(x))
2024-03-11 09:50:30 +01:00
expected := []HookTaskMigrated{}
require.NoError(t, x.Table("hook_task_migrated").Asc("id").Find(&expected))
2024-03-11 09:50:30 +01:00
assert.Len(t, expected, 2)
got := []HookTaskMigrated{}
require.NoError(t, x.Table("hook_task").Asc("id").Find(&got))
2024-03-11 09:50:30 +01:00
for i, expected := range expected {
expected, got := expected, got[i]
t.Run(strconv.FormatInt(expected.ID, 10), func(t *testing.T) {
assert.Equal(t, expected.PayloadVersion, got.PayloadVersion)
})
}
}