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) } }) } }