From 78460ac0ba0c05efa02a9d7a2edc1577547b1898 Mon Sep 17 00:00:00 2001 From: knoflook Date: Sat, 16 Oct 2021 11:41:28 +0200 Subject: [PATCH 1/4] test: increatse client/context.go coverage to 90% --- .gitignore | 1 + pkg/client/context_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.gitignore b/.gitignore index e91f1695..f5dd64a2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ abra vendor/ .envrc dist/ +*fmtcoverage.html diff --git a/pkg/client/context_test.go b/pkg/client/context_test.go index dd86a8fa..64c6726c 100644 --- a/pkg/client/context_test.go +++ b/pkg/client/context_test.go @@ -30,6 +30,33 @@ func dockerContext(host, key string) TestContext { } } +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"), -- 2.40.1 From 61452b5f320c3d87465d7eaebb0b3b23461e4af6 Mon Sep 17 00:00:00 2001 From: knoflook Date: Sat, 16 Oct 2021 12:26:43 +0200 Subject: [PATCH 2/4] docs: add README.md to document testing --- pkg/client/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 pkg/client/README.md diff --git a/pkg/client/README.md b/pkg/client/README.md new file mode 100644 index 00000000..6b8e7119 --- /dev/null +++ b/pkg/client/README.md @@ -0,0 +1,4 @@ +IMPORTANT POINT ABOUT CONTEXTS + +Please use context names starting with `testContext` for testing purposes to ensure that no data is lost. such as `testContext`, `testContext2`, `testContextFail` etc + -- 2.40.1 From e6e2e5214f43ad4ddccd57ecd62845e3b928c9bd Mon Sep 17 00:00:00 2001 From: knoflook Date: Sat, 16 Oct 2021 13:04:57 +0200 Subject: [PATCH 3/4] test: add tests for pkg/client/client.go --- pkg/client/client_test.go | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pkg/client/client_test.go diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go new file mode 100644 index 00000000..6651de73 --- /dev/null +++ b/pkg/client/client_test.go @@ -0,0 +1,46 @@ +package client_test + +import ( + "fmt" + "testing" + + "coopcloud.tech/abra/pkg/client" +) + +// use at the start to ensure testContext[0, 1, ..., amnt-1] exist and +// testContextFail[0, 1, ..., failAmnt-1] don't exist +func ensureTestState(amnt, failAmnt int) error { + for i := 0; i < amnt; i++ { + err := client.CreateContext(fmt.Sprintf("testContext%d", i), "", "") + if err != nil { + return err + } + } + for i := 0; i < failAmnt; i++ { + if _, er := client.GetContext(fmt.Sprintf("testContextFail%d", i)); er == nil { + err := client.DeleteContext(fmt.Sprintf("testContextFail%d", i)) + if err != nil { + return err + } + } + } + return nil +} + +func TestNew(t *testing.T) { + err := ensureTestState(1, 1) + if err != nil { + t.Errorf("Couldn't ensure existence/nonexistence of contexts: %s", err) + } + contextName := "testContext0" + _, err = client.New(contextName) + if err != nil { + t.Errorf("couldn't initialise a new client with context %s: %s", contextName, err) + } + contextName = "testContextFail0" + _, err = client.New(contextName) + if err == nil { + t.Errorf("client.New(\"testContextFail0\") should have failed but didn't return an error") + } + +} -- 2.40.1 From dc040a0b388d8813a17cb24b7e14d80fc2f3029c Mon Sep 17 00:00:00 2001 From: knoflook Date: Sat, 16 Oct 2021 13:26:03 +0200 Subject: [PATCH 4/4] chore: change test context names --- pkg/client/context_test.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/client/context_test.go b/pkg/client/context_test.go index 64c6726c..1ec36c64 100644 --- a/pkg/client/context_test.go +++ b/pkg/client/context_test.go @@ -31,29 +31,30 @@ func dockerContext(host, key string) TestContext { } func TestCreateContext(t *testing.T) { - err := client.CreateContext("testCreate", "wronguser", "wrongport") + err := client.CreateContext("testContext0", "wronguser", "wrongport") if err == nil { - t.Error("client.CreateContext(\"testCreate\", \"wronguser\", \"wrongport\") should have failed but didn't return an error") + t.Error("client.CreateContext(\"testContextCreate\", \"wronguser\", \"wrongport\") should have failed but didn't return an error") } - err = client.CreateContext("testCreate", "", "") + err = client.CreateContext("testContext0", "", "") if err != nil { t.Errorf("Couldn't create context: %s", err) } } func TestDeleteContext(t *testing.T) { + ensureTestState(1, 1) 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") + err = client.DeleteContext("testContext0") if err != nil { - t.Errorf("client.DeleteContext(\"testCreate\") failed: %s", err) + t.Errorf("client.DeleteContext(\"testContext0\") failed: %s", err) } - err = client.DeleteContext("testCreate") + err = client.DeleteContext("testContextFail0") 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") + t.Errorf("client.DeleteContext(\"testContextFail0\") should have failed (attempt to delete non-existent context) but didn't return an error") } } -- 2.40.1