mirror of
https://github.com/hanzoai/cd.git
synced 2026-10-30 14:56:45 +00:00
useragent_test.go tested the user-agent enforcer against the
placeholder "argo-cd" instead of the real UserAgentName convention
("hanzocd-client"); aligned it. lua.go's import alias for
util/glob was named argoglob; renamed to cdglob (a bare "glob"
alias was unavailable, doublestar/v4 already claims it in this
file).
51 lines
1.9 KiB
Go
51 lines
1.9 KiB
Go
package grpc
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Masterminds/semver/v3"
|
|
"github.com/stretchr/testify/require"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func Test_UserAgentEnforcer(t *testing.T) {
|
|
t.Parallel()
|
|
clientName := "hanzocd-client"
|
|
semverConstraint, _ := semver.NewConstraint("^1")
|
|
t.Run("Test enforcing valid user-agent", func(t *testing.T) {
|
|
t.Parallel()
|
|
md := metadata.New(map[string]string{"user-agent": "hanzocd-client/1.0"})
|
|
ctx := metadata.NewIncomingContext(t.Context(), md)
|
|
err := userAgentEnforcer(ctx, clientName, semverConstraint)
|
|
require.NoError(t, err)
|
|
})
|
|
t.Run("Test enforcing ignored user-agent", func(t *testing.T) {
|
|
t.Parallel()
|
|
md := metadata.New(map[string]string{"user-agent": "flux/3.0"})
|
|
ctx := metadata.NewIncomingContext(t.Context(), md)
|
|
err := userAgentEnforcer(ctx, clientName, semverConstraint)
|
|
require.NoError(t, err)
|
|
})
|
|
t.Run("Test enforcing user-agent with version not matching constraint", func(t *testing.T) {
|
|
t.Parallel()
|
|
md := metadata.New(map[string]string{"user-agent": "hanzocd-client/3.0"})
|
|
ctx := metadata.NewIncomingContext(t.Context(), md)
|
|
err := userAgentEnforcer(ctx, clientName, semverConstraint)
|
|
require.ErrorContains(t, err, "unsatisfied client version constraint")
|
|
})
|
|
t.Run("Test legacy user-agent", func(t *testing.T) {
|
|
t.Parallel()
|
|
md := metadata.New(map[string]string{"user-agent": "grpc-go/1.15.0"})
|
|
ctx := metadata.NewIncomingContext(t.Context(), md)
|
|
err := userAgentEnforcer(ctx, clientName, semverConstraint)
|
|
require.ErrorContains(t, err, "unsatisfied client version constraint: ^1")
|
|
})
|
|
t.Run("Test invalid version", func(t *testing.T) {
|
|
t.Parallel()
|
|
md := metadata.New(map[string]string{"user-agent": "hanzocd-client/super"})
|
|
ctx := metadata.NewIncomingContext(t.Context(), md)
|
|
err := userAgentEnforcer(ctx, clientName, semverConstraint)
|
|
require.ErrorContains(t, err, "could not parse version")
|
|
})
|
|
}
|