58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package repos
|
|
|
|
import (
|
|
"context"
|
|
"gralias/models"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
_ "github.com/mattn/go-sqlite3"
|
|
)
|
|
|
|
func TestSettingsRepo_SettingsUpdate(t *testing.T) {
|
|
db, teardown := setupTestDB(t)
|
|
defer teardown()
|
|
|
|
repo := &RepoProvider{DB: db}
|
|
|
|
// Create a dummy room first
|
|
room := &models.Room{
|
|
ID: "test_room_settings",
|
|
CreatedAt: time.Now(),
|
|
CreatorName: "test_creator",
|
|
}
|
|
_, err := db.Exec(`INSERT INTO rooms (id, created_at, creator_name) VALUES (?, ?, ?)`, room.ID, room.CreatedAt, room.CreatorName)
|
|
assert.NoError(t, err)
|
|
|
|
settings := &models.GameSettings{
|
|
RoomID: "test_room_settings",
|
|
Language: "en",
|
|
RoomPass: "pass123",
|
|
RoundTime: 60,
|
|
|
|
CreatedAt: time.Now(),
|
|
}
|
|
|
|
// Insert initial settings
|
|
_, err = db.Exec(`INSERT INTO settings (room_id, language, room_pass, turn_time, created_at) VALUES (?, ?, ?, ?, ?)`, settings.RoomID, settings.Language, settings.RoomPass, settings.RoundTime, settings.CreatedAt)
|
|
assert.NoError(t, err)
|
|
|
|
// Update settings
|
|
settings.RoundTime = 120
|
|
|
|
settings.Language = "ru"
|
|
|
|
err = repo.SettingsUpdate(context.Background(), settings)
|
|
assert.NoError(t, err)
|
|
|
|
// Verify updated settings
|
|
var updatedSettings models.GameSettings
|
|
err = db.Get(&updatedSettings, "SELECT * FROM settings WHERE room_id = ?", settings.RoomID)
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, uint32(120), updatedSettings.RoundTime)
|
|
|
|
assert.Equal(t, "ru", updatedSettings.Language)
|
|
}
|