package client_test import ( "testing" "coopcloud.tech/abra/pkg/client" dContext "github.com/docker/cli/cli/context" dCliContextStore "github.com/docker/cli/cli/context/store" ) type TestContext struct { context dCliContextStore.Metadata expected_endpoint string } func dockerContext(host, key string) TestContext { dockerContext := dCliContextStore.Metadata{ Name: "foo", Metadata: nil, Endpoints: map[string]interface{}{ key: dContext.EndpointMetaBase{ Host: host, SkipTLSVerify: false, }, }, } return TestContext{ context: dockerContext, expected_endpoint: host, } } func TestCreateContext(t *testing.T) { err := client.CreateContext("testCreate", "wronguser", "wrongport") if err == nil { t.Error("client.CreateContext(\"testCreate\", \"wronguser\", \"wrongport\") should have failed but didn't return an error") } err = client.CreateContext("testCreate", "", "") if err != nil { t.Errorf("Couldn't create context: %s", err) } } func TestDeleteContext(t *testing.T) { err := client.DeleteContext("default") if err == nil { t.Errorf("client.DeleteContext(\"default\") should have failed but didn't return an error") } err = client.DeleteContext("testCreate") if err != nil { t.Errorf("client.DeleteContext(\"testCreate\") failed: %s", err) } err = client.DeleteContext("testCreate") if err == nil { t.Errorf("client.DeleteContext(\"testCreate\") should have failed this time (attempt to delete non-existent context) but didn't return an error") } } func TestGetContextEndpoint(t *testing.T) { var testDockerContexts = []TestContext{ dockerContext("ssh://foobar", "docker"), dockerContext("ssh://foobar", "k8"), } for _, context := range testDockerContexts { endpoint, err := client.GetContextEndpoint(context.context) if err != nil { if err.Error() != "context lacks Docker endpoint" { t.Error(err) } } else { if endpoint != context.expected_endpoint { t.Errorf("did not get correct context endpoint. Expected: %s, received: %s", context.expected_endpoint, endpoint) } } } }