package services

import "testing"

func TestValidateUnit(t *testing.T) {
	valid := []string{"sshd.service", "getty@tty1.service", "foo.bar:baz-1.service", "a_b.timer"}
	for _, u := range valid {
		if err := validateUnit(u); err != nil {
			t.Errorf("validateUnit(%q) = %v, want nil", u, err)
		}
	}

	// Empty, flag-injection, and anything with shell/path metacharacters must
	// be rejected before reaching systemctl.
	invalid := []string{"", "-rf", "--now", "a b", "foo;rm -rf /", "a/b", "naughty$()", "x|y"}
	for _, u := range invalid {
		if err := validateUnit(u); err == nil {
			t.Errorf("validateUnit(%q) = nil, want error", u)
		}
	}
}
