| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package sub
- import (
- "path/filepath"
- "testing"
- "github.com/mhsanaei/3x-ui/v3/internal/database"
- "github.com/mhsanaei/3x-ui/v3/internal/database/dbtest"
- "github.com/mhsanaei/3x-ui/v3/internal/database/model"
- "github.com/mhsanaei/3x-ui/v3/internal/xray"
- )
- func TestAggregateTrafficByEmails_FallsBackToClientLimits(t *testing.T) {
- dbDir := t.TempDir()
- t.Setenv("XUI_DB_FOLDER", dbDir)
- dbtest.InitDB(t, filepath.Join(dbDir, "x-ui.db"))
- const email = "[email protected]"
- const totalBytes = int64(300) * 1024 * 1024 * 1024
- const expiry = int64(1893456000000)
- db := database.GetDB()
- if err := db.Create(&model.ClientRecord{
- Email: email,
- TotalGB: totalBytes,
- ExpiryTime: expiry,
- Enable: true,
- }).Error; err != nil {
- t.Fatalf("seed client record: %v", err)
- }
- if err := db.Create(&xray.ClientTraffic{
- Email: email,
- Up: 111,
- Down: 222,
- Total: 0,
- ExpiryTime: 0,
- Enable: true,
- }).Error; err != nil {
- t.Fatalf("seed client traffic: %v", err)
- }
- var s SubService
- agg, _ := s.AggregateTrafficByEmails([]string{email})
- if agg.Up != 111 || agg.Down != 222 {
- t.Errorf("usage = up %d/down %d, want 111/222", agg.Up, agg.Down)
- }
- if agg.Total != totalBytes {
- t.Errorf("total = %d, want %d (fallback to clients table)", agg.Total, totalBytes)
- }
- if agg.ExpiryTime != expiry {
- t.Errorf("expiry = %d, want %d (fallback to clients table)", agg.ExpiryTime, expiry)
- }
- }
|