@@ -41,6 +41,7 @@ package tests
41
41
import (
42
42
"context"
43
43
"errors"
44
+ "fmt"
44
45
"testing"
45
46
46
47
"time"
@@ -339,36 +340,35 @@ func TestNestedTransactionWithBlock(t *testing.T) {
339
340
}
340
341
341
342
func TestDeeplyNestedTransactionWithBlockAndWrappedCallback (t * testing.T ) {
342
- t .Skip ()
343
343
transaction := func (ctx context.Context , db * gorm.DB , callback func (ctx context.Context , db * gorm.DB ) error ) error {
344
344
return db .WithContext (ctx ).Transaction (func (tx * gorm.DB ) error {
345
345
return callback (ctx , tx )
346
346
})
347
347
}
348
348
var (
349
- user = * GetUser ("transaction-nested" , Config {})
350
- user1 = * GetUser ("transaction-nested-1" , Config {})
351
- user2 = * GetUser ("transaction-nested-2" , Config {})
349
+ user = * GetUser (uniqueName ( "transaction-nested" ) , Config {})
350
+ user1 = * GetUser (uniqueName ( "transaction-nested-1" ) , Config {})
351
+ user2 = * GetUser (uniqueName ( "transaction-nested" ) , Config {})
352
352
)
353
353
354
354
if err := transaction (context .Background (), DB , func (ctx context.Context , tx * gorm.DB ) error {
355
355
tx .Create (& user )
356
356
357
- if err := tx .First (& User {}, "name = ?" , user .Name ).Error ; err != nil {
357
+ if err := tx .First (& User {}, "\" name\" = ?" , user .Name ).Error ; err != nil {
358
358
t .Fatalf ("Should find saved record" )
359
359
}
360
360
361
361
if err := transaction (ctx , tx , func (ctx context.Context , tx1 * gorm.DB ) error {
362
362
tx1 .Create (& user1 )
363
363
364
- if err := tx1 .First (& User {}, "name = ?" , user1 .Name ).Error ; err != nil {
364
+ if err := tx1 .First (& User {}, "\" name\" = ?" , user1 .Name ).Error ; err != nil {
365
365
t .Fatalf ("Should find saved record" )
366
366
}
367
367
368
368
if err := transaction (ctx , tx1 , func (ctx context.Context , tx2 * gorm.DB ) error {
369
369
tx2 .Create (& user2 )
370
370
371
- if err := tx2 .First (& User {}, "name = ?" , user2 .Name ).Error ; err != nil {
371
+ if err := tx2 .First (& User {}, "\" name\" = ?" , user2 .Name ).Error ; err != nil {
372
372
t .Fatalf ("Should find saved record" )
373
373
}
374
374
@@ -382,27 +382,27 @@ func TestDeeplyNestedTransactionWithBlockAndWrappedCallback(t *testing.T) {
382
382
t .Fatalf ("nested transaction should returns error" )
383
383
}
384
384
385
- if err := tx .First (& User {}, "name = ?" , user1 .Name ).Error ; err == nil {
385
+ if err := tx .First (& User {}, "\" name\" = ?" , user1 .Name ).Error ; err == nil {
386
386
t .Fatalf ("Should not find rollbacked record" )
387
387
}
388
388
389
- if err := tx .First (& User {}, "name = ?" , user2 .Name ).Error ; err ! = nil {
389
+ if err := tx .First (& User {}, "\" name\" = ?" , user2 .Name ).Error ; err = = nil {
390
390
t .Fatalf ("Should find saved record" )
391
391
}
392
392
return nil
393
393
}); err != nil {
394
394
t .Fatalf ("no error should return, but got %v" , err )
395
395
}
396
396
397
- if err := DB .First (& User {}, "name = ?" , user .Name ).Error ; err != nil {
397
+ if err := DB .First (& User {}, "\" name\" = ?" , user .Name ).Error ; err != nil {
398
398
t .Fatalf ("Should find saved record" )
399
399
}
400
400
401
- if err := DB .First (& User {}, "name = ?" , user1 .Name ).Error ; err == nil {
401
+ if err := DB .First (& User {}, "\" name\" = ?" , user1 .Name ).Error ; err == nil {
402
402
t .Fatalf ("Should not find rollbacked parent record" )
403
403
}
404
404
405
- if err := DB .First (& User {}, "name = ?" , user2 .Name ).Error ; err ! = nil {
405
+ if err := DB .First (& User {}, "\" name\" = ?" , user2 .Name ).Error ; err = = nil {
406
406
t .Fatalf ("Should not find rollbacked nested record" )
407
407
}
408
408
}
@@ -689,3 +689,7 @@ func TestTransactionWithRawSQL(t *testing.T) {
689
689
t .Errorf ("Expected age %d, got %d" , user .Age + 1 , result .Age )
690
690
}
691
691
}
692
+
693
+ func uniqueName (base string ) string {
694
+ return fmt .Sprintf ("%s-%d" , base , time .Now ().UnixNano ())
695
+ }
0 commit comments