1
0

seeder_fastpath_test.go 994 B

123456789101112131415161718192021222324252627282930313233343536
  1. package database
  2. import (
  3. "path/filepath"
  4. "testing"
  5. "github.com/mhsanaei/3x-ui/v3/internal/database/model"
  6. )
  7. func TestFreshInstallFastPathMarksResetIpLimitSeeder(t *testing.T) {
  8. if err := InitDB(filepath.Join(t.TempDir(), "x-ui.db")); err != nil {
  9. t.Fatalf("InitDB: %v", err)
  10. }
  11. t.Cleanup(func() { _ = CloseDB() })
  12. if err := db.Where("1 = 1").Delete(&model.HistoryOfSeeders{}).Error; err != nil {
  13. t.Fatalf("reset seeder history: %v", err)
  14. }
  15. if err := db.Where("1 = 1").Delete(&model.User{}).Error; err != nil {
  16. t.Fatalf("reset users: %v", err)
  17. }
  18. if err := runSeeders(true); err != nil {
  19. t.Fatalf("runSeeders: %v", err)
  20. }
  21. var cnt int64
  22. if err := db.Model(&model.HistoryOfSeeders{}).
  23. Where("seeder_name = ?", "ResetIpLimitNoFail2ban").
  24. Count(&cnt).Error; err != nil {
  25. t.Fatalf("count seeder history: %v", err)
  26. }
  27. if cnt != 1 {
  28. t.Fatal("fresh-install fast path must mark ResetIpLimitNoFail2ban done so it cannot wipe admin-set IP limits on the next boot")
  29. }
  30. }