Files
gitea/routers/api/actions/ping/ping_test.go
T
silverwind 68c5cb4a0c refactor(actions): migrate the runner API to connect-go v2
Pin https://gitea.com/gitea/actionslib/pulls/28, which generates
connect-go v2 code. v2 hides plain error messages from clients and caps
messages at 4 MiB. Keep v1's behaviour for runners: they show the messages,
and send all pending log rows in one UpdateLog.

Assisted-by: Claude Code:claude-opus-5-5
2026-10-19 03:49:15 +02:00

60 lines
1.4 KiB
Go

// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package ping
import (
"net/http"
"net/http/httptest"
"testing"
pingv1 "gitea.dev/actionslib/ping/v1"
"gitea.dev/actionslib/ping/v1/pingv1connect"
"connectrpc.com/connect/v2"
"connectrpc.com/connect/v2/connecthttp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestService(t *testing.T) {
_, handler := NewPingServiceHandler()
MainServiceTest(t, handler)
}
func MainServiceTest(t *testing.T, h http.Handler) {
t.Parallel()
server := httptest.NewUnstartedServer(h)
server.EnableHTTP2 = true
server.StartTLS()
defer server.Close()
connectClient := pingv1connect.NewPingServiceClient(connect.NewClient(connecthttp.NewTransport(
server.Client(),
server.URL,
)))
grpcClient := pingv1connect.NewPingServiceClient(connect.NewClient(connecthttp.NewTransport(
server.Client(),
server.URL,
connecthttp.WithGRPC(),
)))
grpcWebClient := pingv1connect.NewPingServiceClient(connect.NewClient(connecthttp.NewTransport(
server.Client(),
server.URL,
connecthttp.WithGRPCWeb(),
)))
clients := []pingv1connect.PingServiceClient{connectClient, grpcClient, grpcWebClient}
t.Run("ping request", func(t *testing.T) {
for _, client := range clients {
result, err := client.Ping(t.Context(), &pingv1.PingRequest{
Data: "foobar",
})
require.NoError(t, err)
assert.Equal(t, "Hello, foobar!", result.Data)
}
})
}