@@ -17,6 +17,7 @@ package db
1717
1818import (
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+ }
0 commit comments