mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-29 16:06:36 +08:00
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"go-backend/internal/store/repo"
|
|
)
|
|
|
|
func TestSpeedLimiterExistsPreservesForwardRuleLimiter(t *testing.T) {
|
|
r, err := repo.Open(filepath.Join(t.TempDir(), "panel.db"))
|
|
if err != nil {
|
|
t.Fatalf("open repo: %v", err)
|
|
}
|
|
defer r.Close()
|
|
|
|
if err := r.DB().Exec(`
|
|
INSERT INTO forward(id, user_id, user_name, name, tunnel_id, remote_addr, strategy, in_flow, out_flow, created_time, updated_time, status, inx, ip_speed_id)
|
|
VALUES(8, 1, 'user', 'forward', 1, '127.0.0.1:80', 'fifo', 0, 0, 1, 1, 1, 0, 3),
|
|
(9, 1, 'user', 'forward-without-ip-limit', 1, '127.0.0.1:81', 'fifo', 0, 0, 1, 1, 1, 0, NULL)
|
|
`).Error; err != nil {
|
|
t.Fatalf("insert forward: %v", err)
|
|
}
|
|
|
|
h := &Handler{repo: r}
|
|
if !h.speedLimiterExists("rule_traffic_limit_8") {
|
|
t.Fatal("expected runtime limiter for existing forward to be preserved")
|
|
}
|
|
if h.speedLimiterExists("rule_traffic_limit_9") {
|
|
t.Fatal("expected runtime limiter for forward without per-IP speed limit to be treated as orphaned")
|
|
}
|
|
if h.speedLimiterExists("rule_traffic_limit_10") {
|
|
t.Fatal("expected runtime limiter for missing forward to be treated as orphaned")
|
|
}
|
|
if h.speedLimiterExists("rule_traffic_limit_invalid") {
|
|
t.Fatal("expected malformed runtime limiter name to be treated as orphaned")
|
|
}
|
|
}
|