github.com/moby/docker@v26.1.3+incompatible/integration/container/resize_test.go (about) 1 package container // import "github.com/docker/docker/integration/container" 2 3 import ( 4 "net/http" 5 "testing" 6 7 containertypes "github.com/docker/docker/api/types/container" 8 "github.com/docker/docker/errdefs" 9 "github.com/docker/docker/integration/internal/container" 10 req "github.com/docker/docker/testutil/request" 11 "gotest.tools/v3/assert" 12 is "gotest.tools/v3/assert/cmp" 13 ) 14 15 func TestResize(t *testing.T) { 16 ctx := setupTest(t) 17 apiClient := testEnv.APIClient() 18 19 t.Run("success", func(t *testing.T) { 20 cID := container.Run(ctx, t, apiClient, container.WithTty(true)) 21 err := apiClient.ContainerResize(ctx, cID, containertypes.ResizeOptions{ 22 Height: 40, 23 Width: 40, 24 }) 25 assert.NilError(t, err) 26 // TODO(thaJeztah): also check if the resize happened 27 // 28 // Note: container inspect shows the initial size that was 29 // set when creating the container. Actual resize happens in 30 // containerd, and currently does not update the container's 31 // config after running (but does send a "resize" event). 32 }) 33 34 t.Run("invalid size", func(t *testing.T) { 35 cID := container.Run(ctx, t, apiClient) 36 37 // Manually creating a request here, as the APIClient would invalidate 38 // these values before they're sent. 39 res, _, err := req.Post(ctx, "/containers/"+cID+"/resize?h=foo&w=bar") 40 assert.NilError(t, err) 41 assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode)) 42 }) 43 44 t.Run("invalid state", func(t *testing.T) { 45 cID := container.Create(ctx, t, apiClient, container.WithCmd("echo")) 46 err := apiClient.ContainerResize(ctx, cID, containertypes.ResizeOptions{ 47 Height: 40, 48 Width: 40, 49 }) 50 assert.Check(t, is.ErrorType(err, errdefs.IsConflict)) 51 assert.Check(t, is.ErrorContains(err, "is not running")) 52 }) 53 }