From 1cac1828b9afbfbd56daed97286b62a4fa5e72eb Mon Sep 17 00:00:00 2001 From: TheFox0x7 Date: Fri, 16 Jan 2026 22:09:14 +0100 Subject: [PATCH] add integration test for service --- tests/integration/git_helper_for_declarative_test.go | 12 ++++++++++++ tests/integration/git_smart_http_test.go | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/integration/git_helper_for_declarative_test.go b/tests/integration/git_helper_for_declarative_test.go index 197a20bc8c..0e4163041a 100644 --- a/tests/integration/git_helper_for_declarative_test.go +++ b/tests/integration/git_helper_for_declarative_test.go @@ -229,3 +229,15 @@ func doGitPull(dstPath string, args ...string) func(*testing.T) { assert.NoError(t, err) } } + +// doGitRemoteArchive runs a git archive command requesting an archive from remote +// and verifies that the command did not error out and returned only normal output +func doGitRemoteArchive(remote string, args ...string) func(*testing.T) { + return func(t *testing.T) { + stdout, stderr, err := gitcmd.NewCommand("archive").AddOptionValues("--remote", remote).AddArguments(gitcmd.ToTrustedCmdArgs(args)...). + RunStdString(t.Context()) + require.NoError(t, err) + assert.Empty(t, stderr) + assert.NotEmpty(t, stdout) + } +} diff --git a/tests/integration/git_smart_http_test.go b/tests/integration/git_smart_http_test.go index e984fd3aad..7e08304b67 100644 --- a/tests/integration/git_smart_http_test.go +++ b/tests/integration/git_smart_http_test.go @@ -12,7 +12,6 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/test" "code.gitea.io/gitea/modules/util" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -21,6 +20,7 @@ func TestGitSmartHTTP(t *testing.T) { onGiteaRun(t, func(t *testing.T, u *url.URL) { testGitSmartHTTP(t, u) testRenamedRepoRedirect(t) + testGitArchiveRemote(t, u) }) } @@ -96,3 +96,10 @@ func testRenamedRepoRedirect(t *testing.T) { resp = MakeRequest(t, req, http.StatusOK) assert.Contains(t, resp.Body.String(), "65f1bf27bc3bf70f64657658635e66094edbcb4d\trefs/tags/v1.1") } + +func testGitArchiveRemote(t *testing.T, u *url.URL) { + u = u.JoinPath("user27/repo49.git") + t.Run("Fetch HEAD archive", doGitRemoteArchive(u.String(), "HEAD")) + t.Run("Fetch HEAD archive subpath", doGitRemoteArchive(u.String(), "HEAD", "test")) + t.Run("list compression options", doGitRemoteArchive(u.String(), "--list")) +}