nsfwapp/backend/live_test.go
2026-06-15 09:23:46 +02:00

51 lines
1.1 KiB
Go

package main
import (
"testing"
"time"
)
func clearHLSRefreshForTest(user string) {
cbHlsRefreshMu.Lock()
delete(cbHlsRefreshAt, user)
cbHlsRefreshMu.Unlock()
}
func TestFailedHLSRefreshCanRetryImmediately(t *testing.T) {
const user = "failed-refresh-test"
clearHLSRefreshForTest(user)
t.Cleanup(func() {
clearHLSRefreshForTest(user)
})
startedAt, ok := beginHLSRefresh(user, 10*time.Second)
if !ok {
t.Fatal("expected first refresh reservation")
}
finishHLSRefresh(user, startedAt, false)
if _, ok := beginHLSRefresh(user, 10*time.Second); !ok {
t.Fatal("failed refresh must not throttle the next attempt")
}
}
func TestSuccessfulHLSRefreshRemainsThrottled(t *testing.T) {
const user = "successful-refresh-test"
clearHLSRefreshForTest(user)
t.Cleanup(func() {
clearHLSRefreshForTest(user)
})
startedAt, ok := beginHLSRefresh(user, 10*time.Second)
if !ok {
t.Fatal("expected first refresh reservation")
}
finishHLSRefresh(user, startedAt, true)
if _, ok := beginHLSRefresh(user, 10*time.Second); ok {
t.Fatal("successful refresh should throttle duplicate attempts")
}
}