github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/cli/command/context/update_test.go (about)

     1  package context
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/khulnasoft/cli/cli/command"
     7  	"github.com/khulnasoft/cli/cli/context/docker"
     8  	"gotest.tools/v3/assert"
     9  	"gotest.tools/v3/assert/cmp"
    10  )
    11  
    12  func TestUpdateDescriptionOnly(t *testing.T) {
    13  	cli := makeFakeCli(t)
    14  	err := RunCreate(cli, &CreateOptions{
    15  		Name:   "test",
    16  		Docker: map[string]string{},
    17  	})
    18  	assert.NilError(t, err)
    19  	cli.OutBuffer().Reset()
    20  	cli.ErrBuffer().Reset()
    21  	assert.NilError(t, RunUpdate(cli, &UpdateOptions{
    22  		Name:        "test",
    23  		Description: "description",
    24  	}))
    25  	c, err := cli.ContextStore().GetMetadata("test")
    26  	assert.NilError(t, err)
    27  	dc, err := command.GetDockerContext(c)
    28  	assert.NilError(t, err)
    29  	assert.Equal(t, dc.Description, "description")
    30  
    31  	assert.Equal(t, "test\n", cli.OutBuffer().String())
    32  	assert.Equal(t, "Successfully updated context \"test\"\n", cli.ErrBuffer().String())
    33  }
    34  
    35  func TestUpdateDockerOnly(t *testing.T) {
    36  	cli := makeFakeCli(t)
    37  	createTestContext(t, cli, "test")
    38  	assert.NilError(t, RunUpdate(cli, &UpdateOptions{
    39  		Name: "test",
    40  		Docker: map[string]string{
    41  			keyHost: "tcp://some-host",
    42  		},
    43  	}))
    44  	c, err := cli.ContextStore().GetMetadata("test")
    45  	assert.NilError(t, err)
    46  	dc, err := command.GetDockerContext(c)
    47  	assert.NilError(t, err)
    48  	assert.Equal(t, dc.Description, "description of test")
    49  	assert.Check(t, cmp.Contains(c.Endpoints, docker.DockerEndpoint))
    50  	assert.Equal(t, c.Endpoints[docker.DockerEndpoint].(docker.EndpointMeta).Host, "tcp://some-host")
    51  }
    52  
    53  func TestUpdateInvalidDockerHost(t *testing.T) {
    54  	cli := makeFakeCli(t)
    55  	err := RunCreate(cli, &CreateOptions{
    56  		Name:   "test",
    57  		Docker: map[string]string{},
    58  	})
    59  	assert.NilError(t, err)
    60  	err = RunUpdate(cli, &UpdateOptions{
    61  		Name: "test",
    62  		Docker: map[string]string{
    63  			keyHost: "some///invalid/host",
    64  		},
    65  	})
    66  	assert.ErrorContains(t, err, "unable to parse docker host")
    67  }