Skip to content

Commit ca2069f

Browse files
unhappychoiceclaude
andcommitted
test: add comprehensive tests for SSH URLs with port numbers
- Add test for ssh:// URL format with port - Add test for traditional SSH format with port (git@host:port:owner/repo) - Add tests for custom port numbers - Add tests with and without .git suffix 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 00be4c5 commit ca2069f

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/unit/infrastructure/git/git_repository_ref_parser_test.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,56 @@ mod tests {
151151
assert_eq!(repo_ref.owner, "my-org");
152152
assert_eq!(repo_ref.name, "my-project");
153153
}
154+
155+
#[test]
156+
fn test_parse_ssh_url_format_with_port() {
157+
let repo_ref =
158+
GitRepositoryRefParser::parse("ssh://git@github.com:22/user/repo.git").unwrap();
159+
assert_eq!(repo_ref.origin, "github.com:22");
160+
assert_eq!(repo_ref.owner, "user");
161+
assert_eq!(repo_ref.name, "repo");
162+
}
163+
164+
#[test]
165+
fn test_parse_ssh_url_format_with_custom_port() {
166+
let repo_ref =
167+
GitRepositoryRefParser::parse("ssh://git@gitlab.com:2222/owner/project.git").unwrap();
168+
assert_eq!(repo_ref.origin, "gitlab.com:2222");
169+
assert_eq!(repo_ref.owner, "owner");
170+
assert_eq!(repo_ref.name, "project");
171+
}
172+
173+
#[test]
174+
fn test_parse_ssh_url_format_without_port() {
175+
let repo_ref = GitRepositoryRefParser::parse("ssh://git@github.com/user/repo.git").unwrap();
176+
assert_eq!(repo_ref.origin, "github.com");
177+
assert_eq!(repo_ref.owner, "user");
178+
assert_eq!(repo_ref.name, "repo");
179+
}
180+
181+
#[test]
182+
fn test_parse_traditional_ssh_format_with_port() {
183+
let repo_ref =
184+
GitRepositoryRefParser::parse("git@github.com:22:owner/reponame.git").unwrap();
185+
assert_eq!(repo_ref.origin, "github.com");
186+
assert_eq!(repo_ref.owner, "owner");
187+
assert_eq!(repo_ref.name, "reponame");
188+
}
189+
190+
#[test]
191+
fn test_parse_traditional_ssh_format_with_custom_port() {
192+
let repo_ref =
193+
GitRepositoryRefParser::parse("git@gitlab.com:2222:owner/project.git").unwrap();
194+
assert_eq!(repo_ref.origin, "gitlab.com");
195+
assert_eq!(repo_ref.owner, "owner");
196+
assert_eq!(repo_ref.name, "project");
197+
}
198+
199+
#[test]
200+
fn test_parse_traditional_ssh_format_with_port_no_git_suffix() {
201+
let repo_ref = GitRepositoryRefParser::parse("git@github.com:22:user/repository").unwrap();
202+
assert_eq!(repo_ref.origin, "github.com");
203+
assert_eq!(repo_ref.owner, "user");
204+
assert_eq!(repo_ref.name, "repository");
205+
}
154206
}

0 commit comments

Comments
 (0)