eec8c28fb3
Go Benchmark / Performance Regression Check (push) Has been cancelled
Cerberus Integration / Cerberus Security Stack Integration (push) Has been cancelled
Upload Coverage to Codecov / Backend Codecov Upload (push) Has been cancelled
Upload Coverage to Codecov / Frontend Codecov Upload (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (go) (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Has been cancelled
CrowdSec Integration / CrowdSec Bouncer Integration (push) Has been cancelled
Docker Build, Publish & Test / build-and-push (push) Has been cancelled
Quality Checks / Auth Route Protection Contract (push) Has been cancelled
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Has been cancelled
Quality Checks / Backend (Go) (push) Has been cancelled
Quality Checks / Frontend (React) (push) Has been cancelled
Rate Limit integration / Rate Limiting Integration (push) Has been cancelled
Security Scan (PR) / Trivy Binary Scan (push) Has been cancelled
Supply Chain Verification (PR) / Verify Supply Chain (push) Has been cancelled
WAF integration / Coraza WAF Integration (push) Has been cancelled
Docker Build, Publish & Test / Security Scan PR Image (push) Has been cancelled
Repo Health Check / Repo health (push) Has been cancelled
History Rewrite Dry-Run / Dry-run preview for history rewrite (push) Has been cancelled
Prune Renovate Branches / prune (push) Has been cancelled
Renovate / renovate (push) Has been cancelled
Nightly Build & Package / sync-development-to-nightly (push) Has been cancelled
Nightly Build & Package / Trigger Nightly Validation Workflows (push) Has been cancelled
Nightly Build & Package / build-and-push-nightly (push) Has been cancelled
Nightly Build & Package / test-nightly-image (push) Has been cancelled
Nightly Build & Package / verify-nightly-supply-chain (push) Has been cancelled
Update GeoLite2 Checksum / update-checksum (push) Has been cancelled
Container Registry Prune / prune-ghcr (push) Has been cancelled
Container Registry Prune / prune-dockerhub (push) Has been cancelled
Container Registry Prune / summarize (push) Has been cancelled
Supply Chain Verification / Verify SBOM (push) Has been cancelled
Supply Chain Verification / Verify Release Artifacts (push) Has been cancelled
Supply Chain Verification / Verify Docker Image Supply Chain (push) Has been cancelled
Monitor Caddy Major Release / check-caddy-major (push) Has been cancelled
Weekly Nightly to Main Promotion / Verify Nightly Branch Health (push) Has been cancelled
Weekly Nightly to Main Promotion / Create Promotion PR (push) Has been cancelled
Weekly Nightly to Main Promotion / Trigger Missing Required Checks (push) Has been cancelled
Weekly Nightly to Main Promotion / Notify on Failure (push) Has been cancelled
Weekly Nightly to Main Promotion / Workflow Summary (push) Has been cancelled
Weekly Security Rebuild / Security Rebuild & Scan (push) Has been cancelled
143 lines
3.9 KiB
Go
Executable File
143 lines
3.9 KiB
Go
Executable File
package notifications
|
|
|
|
import "testing"
|
|
|
|
func TestRouter_ShouldUseNotify(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagDiscordServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("discord", flags) {
|
|
t.Fatalf("expected notify routing for discord when enabled")
|
|
}
|
|
|
|
if router.ShouldUseNotify("telegram", flags) {
|
|
t.Fatalf("expected unsupported service to remain legacy")
|
|
}
|
|
}
|
|
|
|
// TestRouter_ShouldUseNotify_EngineDisabled covers lines 13-14
|
|
func TestRouter_ShouldUseNotify_EngineDisabled(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: false,
|
|
FlagDiscordServiceEnabled: true,
|
|
}
|
|
|
|
if router.ShouldUseNotify("discord", flags) {
|
|
t.Fatalf("expected notify routing disabled when FlagNotifyEngineEnabled is false")
|
|
}
|
|
}
|
|
|
|
// TestRouter_ShouldUseNotify_DiscordServiceFlag covers lines 23-24
|
|
func TestRouter_ShouldUseNotify_DiscordServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagDiscordServiceEnabled: false,
|
|
}
|
|
|
|
if router.ShouldUseNotify("discord", flags) {
|
|
t.Fatalf("expected notify routing disabled for discord when FlagDiscordServiceEnabled is false")
|
|
}
|
|
}
|
|
|
|
// TestRouter_ShouldUseNotify_GotifyServiceFlag covers lines 23-24 (gotify case)
|
|
func TestRouter_ShouldUseNotify_GotifyServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
// Test with gotify enabled
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagGotifyServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("gotify", flags) {
|
|
t.Fatalf("expected notify routing enabled for gotify when FlagGotifyServiceEnabled is true")
|
|
}
|
|
|
|
// Test with gotify disabled
|
|
flags[FlagGotifyServiceEnabled] = false
|
|
|
|
if router.ShouldUseNotify("gotify", flags) {
|
|
t.Fatalf("expected notify routing disabled for gotify when FlagGotifyServiceEnabled is false")
|
|
}
|
|
}
|
|
|
|
func TestRouter_ShouldUseNotify_WebhookServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagWebhookServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("webhook", flags) {
|
|
t.Fatalf("expected notify routing enabled for webhook when FlagWebhookServiceEnabled is true")
|
|
}
|
|
|
|
flags[FlagWebhookServiceEnabled] = false
|
|
if router.ShouldUseNotify("webhook", flags) {
|
|
t.Fatalf("expected notify routing disabled for webhook when FlagWebhookServiceEnabled is false")
|
|
}
|
|
}
|
|
|
|
func TestRouter_ShouldUseNotify_SlackServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagSlackServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("slack", flags) {
|
|
t.Fatalf("expected notify routing enabled for slack when FlagSlackServiceEnabled is true")
|
|
}
|
|
|
|
flags[FlagSlackServiceEnabled] = false
|
|
if router.ShouldUseNotify("slack", flags) {
|
|
t.Fatalf("expected notify routing disabled for slack when FlagSlackServiceEnabled is false")
|
|
}
|
|
}
|
|
|
|
func TestRouter_ShouldUseNotify_PushoverServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagPushoverServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("pushover", flags) {
|
|
t.Fatalf("expected notify routing enabled for pushover when FlagPushoverServiceEnabled is true")
|
|
}
|
|
|
|
flags[FlagPushoverServiceEnabled] = false
|
|
if router.ShouldUseNotify("pushover", flags) {
|
|
t.Fatalf("expected notify routing disabled for pushover when FlagPushoverServiceEnabled is false")
|
|
}
|
|
}
|
|
|
|
func TestRouter_ShouldUseNotify_NtfyServiceFlag(t *testing.T) {
|
|
router := NewRouter()
|
|
|
|
flags := map[string]bool{
|
|
FlagNotifyEngineEnabled: true,
|
|
FlagNtfyServiceEnabled: true,
|
|
}
|
|
|
|
if !router.ShouldUseNotify("ntfy", flags) {
|
|
t.Fatalf("expected notify routing enabled for ntfy when FlagNtfyServiceEnabled is true")
|
|
}
|
|
|
|
flags[FlagNtfyServiceEnabled] = false
|
|
if router.ShouldUseNotify("ntfy", flags) {
|
|
t.Fatalf("expected notify routing disabled for ntfy when FlagNtfyServiceEnabled is false")
|
|
}
|
|
}
|