package motd import ( "os" "path/filepath" "reflect" "testing" ) func TestDiscoverListsValidNamesSorted(t *testing.T) { root := t.TempDir() dir := MotdDir(root) if err := os.MkdirAll(dir, 0o755); err != nil { t.Fatal(err) } for _, name := range []string{"10-sysinfo", "00-header", "notes.txt", ".hidden", "README"} { if err := os.WriteFile(filepath.Join(dir, name), []byte("#!/bin/sh\n"), 0o644); err != nil { t.Fatal(err) } } scripts, err := Discover(root) if err != nil { t.Fatal(err) } var names []string for _, s := range scripts { names = append(names, s.Name) } // README ist ein valider run-parts-Name und bleibt dabei. if !reflect.DeepEqual(names, []string{"00-header", "10-sysinfo", "README"}) { t.Errorf("names = %v", names) } } func TestDiscoverMissingDir(t *testing.T) { if _, err := Discover(t.TempDir()); err == nil { t.Error("Fehler erwartet, wenn update-motd.d fehlt") } }