mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	- Update github.com/bufbuild/connect-go to https://github.com/connectrpc/connect-go. - This is a fork that's actively maintained and is recommend by the original library. Looking at the recent release notes, it looks like going in the right direction what one would expect of a library, no strange features being added, lots of improvements. - There's still an indirect dependency by `code.gitea.io/actions-proto-go` on a old version of `connect-go`.
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package ping
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net/http"
 | 
						|
	"net/http/httptest"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	pingv1 "code.gitea.io/actions-proto-go/ping/v1"
 | 
						|
	"code.gitea.io/actions-proto-go/ping/v1/pingv1connect"
 | 
						|
	"connectrpc.com/connect"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestService(t *testing.T) {
 | 
						|
	mux := http.NewServeMux()
 | 
						|
	mux.Handle(pingv1connect.NewPingServiceHandler(
 | 
						|
		&Service{},
 | 
						|
	))
 | 
						|
	MainServiceTest(t, mux)
 | 
						|
}
 | 
						|
 | 
						|
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(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
	)
 | 
						|
 | 
						|
	grpcClient := pingv1connect.NewPingServiceClient(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
		connect.WithGRPC(),
 | 
						|
	)
 | 
						|
 | 
						|
	grpcWebClient := pingv1connect.NewPingServiceClient(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
		connect.WithGRPCWeb(),
 | 
						|
	)
 | 
						|
 | 
						|
	clients := []pingv1connect.PingServiceClient{connectClient, grpcClient, grpcWebClient}
 | 
						|
	t.Run("ping request", func(t *testing.T) {
 | 
						|
		for _, client := range clients {
 | 
						|
			result, err := client.Ping(context.Background(), connect.NewRequest(&pingv1.PingRequest{
 | 
						|
				Data: "foobar",
 | 
						|
			}))
 | 
						|
			require.NoError(t, err)
 | 
						|
			assert.Equal(t, "Hello, foobar!", result.Msg.Data)
 | 
						|
		}
 | 
						|
	})
 | 
						|
}
 |