Compare commits
2 Commits
4d2018b20a
...
034bd8669e
| Author | SHA1 | Date | |
|---|---|---|---|
| 034bd8669e | |||
| dc8a25d3b4 |
@@ -142,6 +142,10 @@ func seedDatabase(userRepo repositories.UserRepository, postRepo repositories.Po
|
||||
return err
|
||||
}
|
||||
|
||||
if err := lockSeedUser(userRepo, seedUser); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := validateSeedConsistency(voteRepo, allUsers, posts); err != nil {
|
||||
return fmt.Errorf("seed consistency validation failed: %w", err)
|
||||
}
|
||||
@@ -165,6 +169,19 @@ func seedDatabase(userRepo repositories.UserRepository, postRepo repositories.Po
|
||||
return nil
|
||||
}
|
||||
|
||||
func lockSeedUser(userRepo repositories.UserRepository, seedUser *database.User) error {
|
||||
if seedUser.Locked {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := userRepo.Lock(seedUser.ID); err != nil {
|
||||
return fmt.Errorf("lock seed user: %w", err)
|
||||
}
|
||||
|
||||
seedUser.Locked = true
|
||||
return nil
|
||||
}
|
||||
|
||||
const (
|
||||
seedUsername = "seed_admin"
|
||||
seedEmail = "seed_admin@goyco.local"
|
||||
|
||||
@@ -92,6 +92,10 @@ func TestSeedCommand(t *testing.T) {
|
||||
t.Error("Expected seed user to be email verified")
|
||||
}
|
||||
|
||||
if !seedUser.Locked {
|
||||
t.Error("Expected seed user to be locked after seeding")
|
||||
}
|
||||
|
||||
if regularUserCount != 2 {
|
||||
t.Errorf("Expected 2 regular users, got %d", regularUserCount)
|
||||
}
|
||||
@@ -336,15 +340,21 @@ func TestSeedCommandIdempotency(t *testing.T) {
|
||||
}
|
||||
|
||||
seedUserCount := 0
|
||||
seedUserLocked := false
|
||||
for _, user := range users {
|
||||
if user.Username == seedUsername {
|
||||
seedUserCount++
|
||||
seedUserLocked = user.Locked
|
||||
}
|
||||
}
|
||||
|
||||
if seedUserCount != 1 {
|
||||
t.Errorf("Expected exactly 1 seed user, got %d", seedUserCount)
|
||||
}
|
||||
|
||||
if !seedUserLocked {
|
||||
t.Error("Expected seed user to be locked after first seed run")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("second run reuses seed user", func(t *testing.T) {
|
||||
@@ -370,6 +380,10 @@ func TestSeedCommandIdempotency(t *testing.T) {
|
||||
if seedUserBefore.ID != seedUserAfter.ID {
|
||||
t.Errorf("Expected seed user to be reused (ID %d), but got different user (ID %d)", seedUserBefore.ID, seedUserAfter.ID)
|
||||
}
|
||||
|
||||
if !seedUserAfter.Locked {
|
||||
t.Error("Expected reused seed user to remain locked")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("database remains consistent after multiple runs", func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user