resize_test.go 1.7 KB

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