Stash bunch of broken generated test with shitty broken mocking
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gitea.boner.be/bdnugget/goonscape/game/testutils"
|
||||
rl "github.com/gen2brain/raylib-go/raylib"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestLoginScreen_Update(t *testing.T) {
|
||||
login := NewLoginScreen()
|
||||
|
||||
// Test field focus switching
|
||||
simulateMouseClick(400, 215) // Click username field
|
||||
assert.Equal(t, 0, login.focusedField)
|
||||
|
||||
simulateMouseClick(400, 265) // Click password field
|
||||
assert.Equal(t, 1, login.focusedField)
|
||||
|
||||
// Test input length limits
|
||||
login.focusedField = 0
|
||||
for i := 0; i < 20; i++ {
|
||||
simulateCharInput('x')
|
||||
}
|
||||
assert.LessOrEqual(t, len(login.username), 12)
|
||||
|
||||
login.focusedField = 1
|
||||
for i := 0; i < 30; i++ {
|
||||
simulateCharInput('x')
|
||||
}
|
||||
assert.LessOrEqual(t, len(login.password), 20)
|
||||
|
||||
// Test mode switching
|
||||
simulateMouseClick(600, 365) // Click switch mode button
|
||||
assert.True(t, login.isRegistering)
|
||||
simulateMouseClick(600, 365) // Click again
|
||||
assert.False(t, login.isRegistering)
|
||||
|
||||
// Test submission
|
||||
login.username = "test"
|
||||
login.password = "password"
|
||||
testutils.SimulateMousePosition(400, 365)
|
||||
testutils.SimulateMouseButton(testutils.ToInt32(rl.MouseLeftButton), true)
|
||||
username, password, isRegistering, submitted := login.Update()
|
||||
assert.True(t, submitted)
|
||||
assert.Equal(t, "test", username)
|
||||
assert.Equal(t, "password", password)
|
||||
assert.False(t, isRegistering)
|
||||
}
|
||||
|
||||
func TestLoginScreen_ErrorHandling(t *testing.T) {
|
||||
login := NewLoginScreen()
|
||||
|
||||
// Test empty fields
|
||||
login.username = ""
|
||||
login.password = "test"
|
||||
testutils.SimulateMousePosition(400, 365)
|
||||
testutils.SimulateMouseButton(testutils.ToInt32(rl.MouseLeftButton), true)
|
||||
_, _, _, submitted := login.Update()
|
||||
assert.False(t, submitted)
|
||||
assert.Contains(t, login.errorMessage, "username")
|
||||
|
||||
// Test special characters
|
||||
login.username = "test!@#"
|
||||
login.password = "password"
|
||||
testutils.SimulateMousePosition(400, 365)
|
||||
testutils.SimulateMouseButton(testutils.ToInt32(rl.MouseLeftButton), true)
|
||||
_, _, _, submitted = login.Update()
|
||||
assert.False(t, submitted)
|
||||
assert.Contains(t, login.errorMessage, "invalid characters")
|
||||
|
||||
// Test error message display
|
||||
login.SetError("Test error")
|
||||
assert.Equal(t, "Test error", login.errorMessage)
|
||||
}
|
||||
|
||||
func simulateMouseClick(x, y float32) {
|
||||
// Implementation would depend on how raylib is mocked
|
||||
}
|
||||
Reference in New Issue
Block a user