moby/dockerversion/useragent_test.go
Sebastiaan van Stijn a6da1480b5
dockerversion: DockerUserAgent(): allow custom versions to be passed
Allow additional metadata to be passed as part of the generated User-Agent.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-06-01 18:21:58 +02:00

38 lines
1.4 KiB
Go

package dockerversion
import (
"context"
"testing"
"github.com/docker/docker/pkg/useragent"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestDockerUserAgent(t *testing.T) {
t.Run("daemon user-agent", func(t *testing.T) {
ua := DockerUserAgent(context.TODO())
expected := getDaemonUserAgent()
assert.Check(t, is.Equal(ua, expected))
})
t.Run("daemon user-agent custom metadata", func(t *testing.T) {
ua := DockerUserAgent(context.TODO(), useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"})
expected := getDaemonUserAgent() + ` hello/world foo/bar`
assert.Check(t, is.Equal(ua, expected))
})
t.Run("daemon user-agent with upstream", func(t *testing.T) {
ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)")
ua := DockerUserAgent(ctx)
expected := getDaemonUserAgent() + ` UpstreamClient(Magic-Client/1.2.3 \(linux\))`
assert.Check(t, is.Equal(ua, expected))
})
t.Run("daemon user-agent with upstream and custom metadata", func(t *testing.T) {
ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)")
ua := DockerUserAgent(ctx, useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"})
expected := getDaemonUserAgent() + ` hello/world foo/bar UpstreamClient(Magic-Client/1.2.3 \(linux\))`
assert.Check(t, is.Equal(ua, expected))
})
}