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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := lockSeedUser(userRepo, seedUser); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
if err := validateSeedConsistency(voteRepo, allUsers, posts); err != nil {
|
if err := validateSeedConsistency(voteRepo, allUsers, posts); err != nil {
|
||||||
return fmt.Errorf("seed consistency validation failed: %w", err)
|
return fmt.Errorf("seed consistency validation failed: %w", err)
|
||||||
}
|
}
|
||||||
@@ -165,6 +169,19 @@ func seedDatabase(userRepo repositories.UserRepository, postRepo repositories.Po
|
|||||||
return nil
|
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 (
|
const (
|
||||||
seedUsername = "seed_admin"
|
seedUsername = "seed_admin"
|
||||||
seedEmail = "seed_admin@goyco.local"
|
seedEmail = "seed_admin@goyco.local"
|
||||||
|
|||||||
@@ -92,6 +92,10 @@ func TestSeedCommand(t *testing.T) {
|
|||||||
t.Error("Expected seed user to be email verified")
|
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 {
|
if regularUserCount != 2 {
|
||||||
t.Errorf("Expected 2 regular users, got %d", regularUserCount)
|
t.Errorf("Expected 2 regular users, got %d", regularUserCount)
|
||||||
}
|
}
|
||||||
@@ -336,15 +340,21 @@ func TestSeedCommandIdempotency(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
seedUserCount := 0
|
seedUserCount := 0
|
||||||
|
seedUserLocked := false
|
||||||
for _, user := range users {
|
for _, user := range users {
|
||||||
if user.Username == seedUsername {
|
if user.Username == seedUsername {
|
||||||
seedUserCount++
|
seedUserCount++
|
||||||
|
seedUserLocked = user.Locked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if seedUserCount != 1 {
|
if seedUserCount != 1 {
|
||||||
t.Errorf("Expected exactly 1 seed user, got %d", seedUserCount)
|
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) {
|
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 {
|
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)
|
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) {
|
t.Run("database remains consistent after multiple runs", func(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user