优化结构
This commit is contained in:
@@ -66,3 +66,27 @@ func TestParameterRepositoryKeepsReferenceEmptyQuerySemantics(t *testing.T) {
|
||||
t.Fatalf("empty bulk delete removed rows: count=%d", count)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParameterUpdateDoesNotReviveSoftDeletedRow(t *testing.T) {
|
||||
data := newTransactionTestData(t)
|
||||
repo := ¶meterRepo{data: data}
|
||||
ctx := context.Background()
|
||||
item := &system.SystemParameter{Name: "before-delete", Key: "soft-delete-key", Value: "value"}
|
||||
if err := repo.CreateParameter(ctx, item); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := data.gormDB.WithContext(ctx).Delete(¶meterPO{}, item.ID).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
item.Name = "must-not-revive"
|
||||
if err := repo.UpdateParameter(ctx, item); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var persisted parameterPO
|
||||
if err := data.gormDB.WithContext(ctx).Unscoped().First(&persisted, item.ID).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if persisted.Name != "before-delete" || persisted.DeletedAt.Time.IsZero() {
|
||||
t.Fatalf("soft-deleted row changed or revived: %+v", persisted)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user