@@ -58,6 +58,64 @@ func TestShouldNotChangeNonLettersString(t *testing.T) {
5858 }
5959}
6060
61+ func TestSourcehutStripsTildePrefix (t * testing.T ) {
62+ defer UnsetEnv ("GHORG_" )()
63+
64+ usernameWithTilde := "~gabrie30"
65+ os .Setenv ("GHORG_SCM_TYPE" , "sourcehut" )
66+ defer setOutputDirName ([]string {"" })
67+ setOutputDirName ([]string {usernameWithTilde })
68+
69+ expected := "gabrie30"
70+ if outputDirName != expected {
71+ t .Errorf ("Wrong folder name for sourcehut with tilde, expected: %s, got: %s" , expected , outputDirName )
72+ }
73+ }
74+
75+ func TestSourcehutWithoutTildePrefix (t * testing.T ) {
76+ defer UnsetEnv ("GHORG_" )()
77+
78+ usernameWithoutTilde := "gabrie30"
79+ os .Setenv ("GHORG_SCM_TYPE" , "sourcehut" )
80+ defer setOutputDirName ([]string {"" })
81+ setOutputDirName ([]string {usernameWithoutTilde })
82+
83+ expected := "gabrie30"
84+ if outputDirName != expected {
85+ t .Errorf ("Wrong folder name for sourcehut without tilde, expected: %s, got: %s" , expected , outputDirName )
86+ }
87+ }
88+
89+ func TestSourcehutStripsTildePrefixUppercase (t * testing.T ) {
90+ defer UnsetEnv ("GHORG_" )()
91+
92+ usernameWithTilde := "~Gabrie30"
93+ os .Setenv ("GHORG_SCM_TYPE" , "sourcehut" )
94+ defer setOutputDirName ([]string {"" })
95+ setOutputDirName ([]string {usernameWithTilde })
96+
97+ // Should be lowercased AND have tilde stripped
98+ expected := "gabrie30"
99+ if outputDirName != expected {
100+ t .Errorf ("Wrong folder name for sourcehut with uppercase and tilde, expected: %s, got: %s" , expected , outputDirName )
101+ }
102+ }
103+
104+ func TestNonSourcehutPreservesTilde (t * testing.T ) {
105+ defer UnsetEnv ("GHORG_" )()
106+
107+ usernameWithTilde := "~user123"
108+ os .Setenv ("GHORG_SCM_TYPE" , "github" )
109+ defer setOutputDirName ([]string {"" })
110+ setOutputDirName ([]string {usernameWithTilde })
111+
112+ // For non-sourcehut SCMs, tilde should be preserved (even though it's unusual)
113+ expected := "~user123"
114+ if outputDirName != expected {
115+ t .Errorf ("Wrong folder name for github with tilde, expected: %s, got: %s" , expected , outputDirName )
116+ }
117+ }
118+
61119type MockGitClient struct {}
62120
63121func NewMockGit () MockGitClient {
0 commit comments