mirror of
https://github.com/truewhile/MeBox.git
synced 2026-11-12 19:34:24 +08:00
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/truewhile/MeBox/internal/model"
|
|
)
|
|
|
|
func TestPostgresLogicalBackupPreservesZeroValues(t *testing.T) {
|
|
svc, _ := newBackupTestService(t)
|
|
user := model.User{Username: "disabled", PasswordHash: "hash"}
|
|
if err := svc.db.Create(&user).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := svc.db.Model(&user).Updates(map[string]any{
|
|
"is_active": false, "hide_adult": false, "player_volume": 0, "danmaku_enabled": false,
|
|
}).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
dump, err := svc.createPostgresBackup(t.Context(), "zero-values")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := svc.restorePostgresBackup(t.Context(), dump); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var got model.User
|
|
if err := svc.db.First(&got, "id = ?", user.ID).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.IsActive || got.HideAdult || got.PlayerVolume != 0 || got.DanmakuEnabled {
|
|
t.Fatalf("restore replaced zero values: active=%v hide_adult=%v volume=%v danmaku=%v", got.IsActive, got.HideAdult, got.PlayerVolume, got.DanmakuEnabled)
|
|
}
|
|
}
|