Files
xinmi/internal/application/service/memory/transaction_test.go
T

29 lines
926 B
Go
Raw Normal View History

package memory
import (
"errors"
"testing"
"github.com/Tencent/WeKnora/internal/application/repository"
"github.com/Tencent/WeKnora/internal/types"
"github.com/stretchr/testify/require"
"gorm.io/gorm"
)
func TestRememberUsingRepositoriesRollsBackWithApproval(t *testing.T) {
svc, db, tenants := newMemoryHarness(t)
ctx := enabledCtx(t, tenants, 1, "alice")
abort := errors.New("approval failed")
err := db.Transaction(func(tx *gorm.DB) error {
_, err := svc.RememberUsingRepositories(ctx, types.MemoryItem{Content: "直播前确认主题", Origin: types.MemoryOriginExplicit}, repository.NewMemoryRepository(tx), tenants)
require.NoError(t, err)
return abort
})
require.ErrorIs(t, err, abort)
var count int64
require.NoError(t, db.Model(&types.MemoryItem{}).Count(&count).Error)
require.Zero(t, count)
require.NoError(t, db.Model(&types.MemorySubject{}).Count(&count).Error)
require.Zero(t, count)
}