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
	 Grail Finder
					Grail Finder