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