munin/internal/duplicates/duplicates_test.go
2026-10-19 10:13:56 +02:00

48 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package duplicates
import "testing"
// TestWithoutCommonPrefix prüft, wann das Präfix eines Titels aus dem
// Dublettenvergleich herausfällt — nur wenn beide Titel dasselbe haben.
func TestWithoutCommonPrefix(t *testing.T) {
cases := []struct {
name string
newer, existing string
topicNew, topicExisting string
}{
{"gleiches Präfix mit Halbgeviertstrich",
"Munin – Architektur", "Munin – Überblick", "Architektur", "Überblick"},
{"Bindestrich mit Leerzeichen",
"Munin - Architektur", "Munin - Überblick", "Architektur", "Überblick"},
{"Doppelpunkt",
"Munin: Architektur", "Munin: Überblick", "Architektur", "Überblick"},
{"senkrechter Strich",
"Munin | Architektur", "Munin | Überblick", "Architektur", "Überblick"},
{"Groß-/Kleinschreibung und Leerzeichen im Präfix egal",
"Munin Wiki – Architektur", "munin wiki – Überblick", "Architektur", "Überblick"},
{"verschiedene Trenner, gleiches Präfix",
"Munin – Architektur", "Munin: Überblick", "Architektur", "Überblick"},
{"nur am ersten Trenner geteilt",
"Munin – Architektur – Speicher", "Munin – Überblick", "Architektur – Speicher", "Überblick"},
// Hier muss der volle Titel im Vergleich bleiben.
{"verschiedene Präfixe",
"Munin – Deployment", "Hugin – Deployment", "Munin – Deployment", "Hugin – Deployment"},
{"nur einer hat ein Präfix",
"Munin – Deployment", "Deployment-Prozess", "Munin – Deployment", "Deployment-Prozess"},
{"Bindestrich ohne Leerzeichen ist kein Trenner",
"Deployment-Ablauf", "Deployment-Prozess", "Deployment-Ablauf", "Deployment-Prozess"},
{"nichts nach dem Trenner",
"Munin – ", "Munin – Überblick", "Munin – ", "Munin – Überblick"},
}
for _, f := range cases {
t.Run(f.name, func(t *testing.T) {
newer, existing := withoutCommonPrefix(f.newer, f.existing)
if newer != f.topicNew || existing != f.topicExisting {
t.Errorf("ohneGemeinsamesPraefix(%q, %q) = (%q, %q), erwartet (%q, %q)",
f.newer, f.existing, newer, existing, f.topicNew, f.topicExisting)
}
})
}
}