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)
 | |
| }
 | 
