package homemanager import ( "context" "os/exec" "testing" "time" "code.t-juice.club/torjus/labmcp/internal/database" ) // TestHomeManagerRevision is a known release branch for testing. const TestHomeManagerRevision = "release-24.11" // TestValidateRevision tests the revision validation function. func TestValidateRevision(t *testing.T) { tests := []struct { name string revision string wantErr bool }{ // Valid cases {"valid git hash", "abc123def456abc123def456abc123def456abc1", false}, {"valid short hash", "abc123d", false}, {"valid channel name", "hm-unstable", false}, {"valid release", "release-24.11", false}, {"valid master", "master", false}, {"valid underscore", "some_branch", false}, {"valid mixed", "release-24.05_beta", false}, // Invalid cases - injection attempts {"injection semicolon", "foo; rm -rf /", true}, {"injection quotes", `"; builtins.readFile /etc/passwd; "`, true}, {"injection backticks", "foo`whoami`", true}, {"injection dollar", "foo$(whoami)", true}, {"injection newline", "foo\nbar", true}, {"injection space", "foo bar", true}, {"injection slash", "foo/bar", true}, {"injection backslash", "foo\\bar", true}, {"injection pipe", "foo|bar", true}, {"injection ampersand", "foo&bar", true}, {"injection redirect", "foo>bar", true}, {"injection less than", "foo