Enha: settings with room
This commit is contained in:
57
repos/settings_test.go
Normal file
57
repos/settings_test.go
Normal file
@ -0,0 +1,57 @@
|
||||
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,
|
||||
TurnSecondsLeft: 60,
|
||||
CreatedAt: time.Now(),
|
||||
}
|
||||
|
||||
// Insert initial settings
|
||||
_, err = db.Exec(`INSERT INTO settings (room_id, language, room_pass, turn_time, turn_seconds_left, created_at) VALUES (?, ?, ?, ?, ?, ?)`, settings.RoomID, settings.Language, settings.RoomPass, settings.RoundTime, settings.TurnSecondsLeft, settings.CreatedAt)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Update settings
|
||||
settings.RoundTime = 120
|
||||
settings.TurnSecondsLeft = 30
|
||||
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, uint32(30), updatedSettings.TurnSecondsLeft)
|
||||
assert.Equal(t, "ru", updatedSettings.Language)
|
||||
}
|
Reference in New Issue
Block a user