Compare commits
1
Commits
next
...
a08f407dc8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a08f407dc8 |
@@ -19,6 +19,8 @@ trial run of the finished image: https://git.eeqj.de/sneak/dnswatcher/issues/149
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-02: the startup notification no longer says every notification
|
||||||
|
endpoint works; it says it is a test sent to each of them (closes #230).
|
||||||
- 2026-10-02: a resolver test that reads one record type from a nameserver's
|
- 2026-10-02: a resolver test that reads one record type from a nameserver's
|
||||||
answer asks again when that type is missing from it (closes #218).
|
answer asks again when that type is missing from it (closes #218).
|
||||||
- 2026-10-02: a plain `docker build .` of a clone stamps its tag or short
|
- 2026-10-02: a plain `docker build .` of a clone stamps its tag or short
|
||||||
|
|||||||
@@ -1049,8 +1049,9 @@ func (w *Watcher) saveState() {
|
|||||||
|
|
||||||
// maybeSendTestNotification sends a startup status notification
|
// maybeSendTestNotification sends a startup status notification
|
||||||
// after the first full scan completes, if SEND_TEST_NOTIFICATION
|
// after the first full scan completes, if SEND_TEST_NOTIFICATION
|
||||||
// is enabled. The message is clearly informational ("all ok")
|
// is enabled. The message is informational, not an error or anomaly
|
||||||
// and not an error or anomaly alert.
|
// alert. It is written before it reaches any endpoint, so it claims
|
||||||
|
// nothing about whether the endpoints work.
|
||||||
func (w *Watcher) maybeSendTestNotification(ctx context.Context) {
|
func (w *Watcher) maybeSendTestNotification(ctx context.Context) {
|
||||||
if !w.config.SendTestNotification {
|
if !w.config.SendTestNotification {
|
||||||
return
|
return
|
||||||
@@ -1062,7 +1063,8 @@ func (w *Watcher) maybeSendTestNotification(ctx context.Context) {
|
|||||||
"dnswatcher has started and completed its initial scan.\n"+
|
"dnswatcher has started and completed its initial scan.\n"+
|
||||||
"Monitoring %d domain(s) and %d hostname(s).\n"+
|
"Monitoring %d domain(s) and %d hostname(s).\n"+
|
||||||
"Tracking %d port endpoint(s) and %d TLS certificate(s).\n"+
|
"Tracking %d port endpoint(s) and %d TLS certificate(s).\n"+
|
||||||
"All notification channels are working.",
|
"This is a test notification, sent to every configured "+
|
||||||
|
"notification endpoint.",
|
||||||
len(snap.Domains),
|
len(snap.Domains),
|
||||||
len(snap.Hostnames),
|
len(snap.Hostnames),
|
||||||
len(snap.Ports),
|
len(snap.Ports),
|
||||||
|
|||||||
@@ -866,18 +866,27 @@ func TestSendTestNotification_ViaRun(t *testing.T) {
|
|||||||
|
|
||||||
notifications := deps.notifier.getNotifications()
|
notifications := deps.notifier.getNotifications()
|
||||||
|
|
||||||
|
// No names are configured, so every count is 0.
|
||||||
|
wantMessage := "dnswatcher has started and completed its initial scan.\n" +
|
||||||
|
"Monitoring 0 domain(s) and 0 hostname(s).\n" +
|
||||||
|
"Tracking 0 port endpoint(s) and 0 TLS certificate(s).\n" +
|
||||||
|
"This is a test notification, sent to every configured " +
|
||||||
|
"notification endpoint."
|
||||||
|
|
||||||
found := false
|
found := false
|
||||||
|
|
||||||
for _, n := range notifications {
|
for _, n := range notifications {
|
||||||
if n.Priority == "success" &&
|
if n.Priority == "success" &&
|
||||||
n.Title == "✅ dnswatcher startup complete" {
|
n.Title == "✅ dnswatcher startup complete" &&
|
||||||
|
n.Message == wantMessage {
|
||||||
found = true
|
found = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !found {
|
if !found {
|
||||||
t.Errorf(
|
t.Errorf(
|
||||||
"expected startup test notification, got: %v",
|
"expected startup test notification with message %q, got: %v",
|
||||||
|
wantMessage,
|
||||||
notifications,
|
notifications,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user