Skip to content
This repository was archived by the owner on Dec 18, 2025. It is now read-only.

Commit 69423c5

Browse files
author
Ryan Svihla
committed
more testing
1 parent 78a501d commit 69423c5

File tree

4 files changed

+89
-3
lines changed

4 files changed

+89
-3
lines changed

cmd/db/get_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,15 @@ func TestGetFindDbFails(t *testing.T) {
7474
func TestGetFailedLogin(t *testing.T) {
7575
// setting package variables by hand, there be dragons
7676
mockClient := &tests.MockClient{}
77-
mockClient.ErrorQueue = []error{errors.New("no db")}
77+
mockClient.ErrorQueue = []error{}
7878
id := "12345"
7979
msg, err := executeGet([]string{id}, func() (pkg.Client, error) {
80-
return mockClient, nil
80+
return mockClient, errors.New("no db")
8181
})
8282
if err == nil {
8383
t.Fatalf("expected error")
8484
}
85-
expectedErr := "unable to get '12345' with error no db"
85+
expectedErr := tests.LoginError
8686
if err.Error() != expectedErr {
8787
t.Errorf("expected '%v' but was '%v'", expectedErr, err)
8888
}

cmd/db/list_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package db
1717

1818
import (
1919
"encoding/json"
20+
"errors"
2021
"strings"
2122
"testing"
2223

@@ -105,3 +106,44 @@ func TestListInvalidFmt(t *testing.T) {
105106
t.Errorf("expected '%v' but was '%v'", expected, err.Error())
106107
}
107108
}
109+
110+
func TestListFails(t *testing.T) {
111+
getFmt = pkg.JSONFormat
112+
dbs := []astraops.Database{}
113+
jsonTxt, err := executeList(func() (pkg.Client, error) {
114+
return &tests.MockClient{
115+
Databases: dbs,
116+
ErrorQueue: []error{errors.New("cant find db")},
117+
}, nil
118+
})
119+
if err == nil {
120+
t.Fatal("expected error")
121+
}
122+
expected := "unable to get list of dbs with error 'cant find db'"
123+
if err.Error() != expected {
124+
t.Errorf("expected '%v' but was '%v'", expected, err.Error())
125+
}
126+
if jsonTxt != "" {
127+
t.Errorf("expected '%v' but was '%v'", "", jsonTxt)
128+
}
129+
}
130+
131+
func TestListFailedLogin(t *testing.T) {
132+
// setting package variables by hand, there be dragons
133+
mockClient := &tests.MockClient{}
134+
mockClient.ErrorQueue = []error{errors.New("no db")}
135+
msg, err := executeList(func() (pkg.Client, error) {
136+
return mockClient, nil
137+
})
138+
if err == nil {
139+
t.Fatalf("expected error")
140+
}
141+
expectedErr := "unable to get list of dbs with error 'no db'"
142+
if err.Error() != expectedErr {
143+
t.Errorf("expected '%v' but was '%v'", expectedErr, err)
144+
}
145+
expected := ""
146+
if msg != expected {
147+
t.Errorf("expected '%v' but was '%v'", expected, msg)
148+
}
149+
}

cmd/db_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
package cmd
1717

1818
import (
19+
"bytes"
1920
"errors"
21+
"io/ioutil"
2022
"testing"
2123
)
2224

@@ -33,3 +35,42 @@ func TestDBUsageFails(t *testing.T) {
3335
t.Errorf("expected '%v' but was '%v'", expected, err.Error())
3436
}
3537
}
38+
39+
func TestDBUsage(t *testing.T) {
40+
fails := func() error {
41+
return nil
42+
}
43+
err := executeDB(fails)
44+
if err != nil {
45+
t.Fatalf("unexpected eror %v", err)
46+
}
47+
}
48+
49+
func TestDBShowHelp(t *testing.T) {
50+
clientJSON = ""
51+
authToken = ""
52+
clientName = ""
53+
clientSecret = ""
54+
clientID = ""
55+
originalOut := RootCmd.OutOrStderr()
56+
defer func() {
57+
RootCmd.SetOut(originalOut)
58+
RootCmd.SetArgs([]string{})
59+
}()
60+
b := bytes.NewBufferString("")
61+
RootCmd.SetOut(b)
62+
RootCmd.SetArgs([]string{"db"})
63+
err := RootCmd.Execute()
64+
if err != nil {
65+
t.Errorf("unexpected error '%v'", err)
66+
}
67+
out, err := ioutil.ReadAll(b)
68+
if err != nil {
69+
t.Fatal(err)
70+
}
71+
expected := dbCmd.UsageString()
72+
73+
if string(out) != expected {
74+
t.Errorf("expected\n'%q'\nbut was\n'%q'", expected, string(out))
75+
}
76+
}

pkg/tests/client.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ package test
1717

1818
import "github.com/rsds143/astra-devops-sdk-go/astraops"
1919

20+
// LoginError is a pretty common error message
21+
const LoginError = "unable to login with error no db"
22+
2023
// MockClient is used for testing
2124
type MockClient struct {
2225
ErrorQueue []error

0 commit comments

Comments
 (0)