123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package db
- import (
- "errors"
- "testing"
- "gorm.io/gorm"
- )
- func TestTransaction(t *testing.T) {
- if err := initDifyPluginDB("0.0.0.0", 5432, "testing", "postgres", "postgres", "difyai123456", "disable"); err != nil {
- t.Fatal(err)
- }
- defer Close()
- type TestTable struct {
- gorm.Model
- }
- err := CreateTable(&TestTable{})
- if err != nil {
- t.Fatal(err)
- }
- defer DropTable(&TestTable{})
- err = WithTransaction(func(tx *gorm.DB) error {
- data := TestTable{}
- err := tx.Create(&data).Error
- if err != nil {
- return err
- }
- return errors.New("rollback")
- })
- if err == nil {
- t.Fatal("expected error")
- } else if err.Error() != "rollback" {
- t.Fatal("unexpected error")
- }
- count, err := GetCount[TestTable]()
- if err != nil {
- t.Fatal(err)
- }
- if count != 0 {
- t.Fatal("unexpected count")
- }
- }
|