Skip to content

Commit

Permalink
api/server/middleware:use API-consts in tests
Browse files Browse the repository at this point in the history
Use the API consts to have more realistic values in tests.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
  • Loading branch information
thaJeztah committed Feb 6, 2024
1 parent 0fef6e1 commit e1897cb
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions api/server/middleware/version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,27 @@ package middleware // import "github.com/docker/docker/api/server/middleware"

import (
"context"
"fmt"
"net/http"
"net/http/httptest"
"runtime"
"testing"

"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)

func TestVersionMiddlewareVersion(t *testing.T) {
defaultVersion := "1.10.0"
minVersion := "1.2.0"
expectedVersion := defaultVersion
expectedVersion := "<not set>"
handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
v := httputils.VersionFromContext(ctx)
assert.Check(t, is.Equal(expectedVersion, v))
return nil
}

m := NewVersionMiddleware(defaultVersion, defaultVersion, minVersion)
m := NewVersionMiddleware("1.2.3", api.DefaultVersion, api.MinSupportedAPIVersion)
h := m.WrapHandler(handler)

req, _ := http.NewRequest(http.MethodGet, "/containers/json", nil)
Expand All @@ -35,19 +35,19 @@ func TestVersionMiddlewareVersion(t *testing.T) {
errString string
}{
{
expectedVersion: "1.10.0",
expectedVersion: api.DefaultVersion,
},
{
reqVersion: "1.9.0",
expectedVersion: "1.9.0",
reqVersion: api.MinSupportedAPIVersion,
expectedVersion: api.MinSupportedAPIVersion,
},
{
reqVersion: "0.1",
errString: "client version 0.1 is too old. Minimum supported API version is 1.2.0, please upgrade your client to a newer version",
errString: fmt.Sprintf("client version 0.1 is too old. Minimum supported API version is %s, please upgrade your client to a newer version", api.MinSupportedAPIVersion),
},
{
reqVersion: "9999.9999",
errString: "client version 9999.9999 is too new. Maximum supported API version is 1.10.0",
errString: fmt.Sprintf("client version 9999.9999 is too new. Maximum supported API version is %s", api.DefaultVersion),
},
}

Expand All @@ -71,9 +71,7 @@ func TestVersionMiddlewareWithErrorsReturnsHeaders(t *testing.T) {
return nil
}

defaultVersion := "1.10.0"
minVersion := "1.2.0"
m := NewVersionMiddleware(defaultVersion, defaultVersion, minVersion)
m := NewVersionMiddleware("1.2.3", api.DefaultVersion, api.MinSupportedAPIVersion)
h := m.WrapHandler(handler)

req, _ := http.NewRequest(http.MethodGet, "/containers/json", nil)
Expand All @@ -85,8 +83,8 @@ func TestVersionMiddlewareWithErrorsReturnsHeaders(t *testing.T) {
assert.Check(t, is.ErrorContains(err, ""))

hdr := resp.Result().Header
assert.Check(t, is.Contains(hdr.Get("Server"), "Docker/"+defaultVersion))
assert.Check(t, is.Contains(hdr.Get("Server"), "Docker/1.2.3"))
assert.Check(t, is.Contains(hdr.Get("Server"), runtime.GOOS))
assert.Check(t, is.Equal(hdr.Get("API-Version"), defaultVersion))
assert.Check(t, is.Equal(hdr.Get("API-Version"), api.DefaultVersion))
assert.Check(t, is.Equal(hdr.Get("OSType"), runtime.GOOS))
}

0 comments on commit e1897cb

Please sign in to comment.