@@ -10,15 +10,15 @@ import (
1010 "github.com/stretchr/testify/suite"
1111)
1212
13- type DoubledHostTestSuite struct {
13+ type MultiHostTestSuite struct {
1414 suite.Suite
1515}
1616
1717const localHost = "http://localhost:8001"
1818const apiToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9"
1919const orgName = "docs-cmd-test-user"
2020
21- func (suite * DoubledHostTestSuite ) TestIsDoubledHost () {
21+ func (suite * MultiHostTestSuite ) TestIsMultiHost () {
2222
2323 for _ , t := range []struct {
2424 name string
@@ -35,28 +35,35 @@ func (suite *DoubledHostTestSuite) TestIsDoubledHost() {
3535 want : true ,
3636 },
3737 {
38- name : "False when one host" ,
38+ name : "True when three hosts and three api-tokens" ,
39+ args : []string {"status" },
40+ host : fmt .Sprintf ("%s,%s,%s" , localHost , localHost , localHost ),
41+ apiToken : fmt .Sprintf ("%s,%s,%s" , apiToken , apiToken , apiToken ),
42+ want : true ,
43+ },
44+ {
45+ name : "False when one host and two api-tokens" ,
3946 args : []string {"status" },
4047 host : localHost ,
4148 apiToken : fmt .Sprintf ("%s,%s" , apiToken , apiToken ),
4249 want : false ,
4350 },
4451 {
45- name : "False when three hosts" ,
52+ name : "False when three hosts and two api-tokens " ,
4653 args : []string {"status" },
4754 host : fmt .Sprintf ("%s,%s,%s" , localHost , localHost , localHost ),
4855 apiToken : fmt .Sprintf ("%s,%s" , apiToken , apiToken ),
4956 want : false ,
5057 },
5158 {
52- name : "False when one api-token" ,
59+ name : "False when one api-token and two hostnames " ,
5360 args : []string {"status" },
5461 host : fmt .Sprintf ("%s,%s" , localHost , localHost ),
5562 apiToken : apiToken ,
5663 want : false ,
5764 },
5865 {
59- name : "False when three api-tokens" ,
66+ name : "False when three api-tokens and two hostnames " ,
6067 args : []string {"status" },
6168 host : fmt .Sprintf ("%s,%s" , localHost , localHost ),
6269 apiToken : fmt .Sprintf ("%s,%s,%s" , apiToken , apiToken , apiToken ),
@@ -85,21 +92,21 @@ func (suite *DoubledHostTestSuite) TestIsDoubledHost() {
8592
8693 defer func (original []string ) { os .Args = original }(os .Args )
8794 os .Args = args
88- actual := isDoubledHost ()
95+ actual := isMultiHost ()
8996
90- assert .Equal (suite .Suite .T (), t .want , actual , fmt .Sprintf ("TestIsDoubledHost : %s\n \t expected: '%v'\n \t --actual: '%v'\n " , t .name , t .want , actual ))
97+ assert .Equal (suite .Suite .T (), t .want , actual , fmt .Sprintf ("TestIsMultiHost : %s\n \t expected: '%v'\n \t --actual: '%v'\n " , t .name , t .want , actual ))
9198 })
9299 }
93100}
94101
95- func (suite * DoubledHostTestSuite ) TestRunDoubledHost () {
102+ func (suite * MultiHostTestSuite ) TestRunDoubledHost () {
96103
97- doubledHost := fmt .Sprintf ("--host=%s,%s" , localHost , localHost )
104+ MultiHost := fmt .Sprintf ("--host=%s,%s" , localHost , localHost )
98105 doubledApiToken := fmt .Sprintf ("--api-token=%s,%s" , apiToken , apiToken )
99106 org := fmt .Sprintf ("--org=%s" , orgName )
100107
101108 doubledArgs := func (args []string ) []string {
102- return append (args , doubledHost , doubledApiToken , org )
109+ return append (args , MultiHost , doubledApiToken , org )
103110 }
104111
105112 for _ , t := range []struct {
@@ -109,33 +116,16 @@ func (suite *DoubledHostTestSuite) TestRunDoubledHost() {
109116 err error
110117 }{
111118 {
112- name : "only returns primary call output when both calls succeed" ,
119+ name : "only returns primary call output when both (2) calls succeed" ,
113120 args : doubledArgs ([]string {"kosli" , "status" }),
114121 stdOut : []string {"OK" , "" },
115122 err : error (nil ),
116123 },
117- // {
118- // name: "in debug mode also returns secondary call output",
119- // args: doubledArgs([]string{"kosli", "status", "--debug"}),
120- // stdOut: StatusDebugLines(),
121- // err: error(nil),
122- // },
123- // {
124- // name: "--help prints output once",
125- // args: doubledArgs([]string{"kosli", "status", "--help"}),
126- // stdOut: HelpStatusLines(),
127- // err: error(nil),
128- // },
129- // {
130- // name: "bad-flag never gets to call runDoubledHost() because isDoubledHost() returns false",
131- // args: doubledArgs([]string{"kosli", "status", "--bad-flag"}),
132- // stdOut: BadFlagLines(),
133- // err: error(nil),
134- // },
124+
135125 } {
136126 defer func (original []string ) { os .Args = original }(os .Args )
137127 os .Args = t .args
138- output , err := runDoubledHost (t .args )
128+ output , err := runMultiHost (t .args )
139129
140130 assert .Equal (suite .Suite .T (), t .err , err , fmt .Sprintf ("TestRunDoubleHost: %s\n \t expected: '%v'\n \t --actual: '%v'\n " , t .name , t .err , err ))
141131
@@ -145,8 +135,44 @@ func (suite *DoubledHostTestSuite) TestRunDoubledHost() {
145135 }
146136}
147137
148- func TestDoubledHostTestSuite (t * testing.T ) {
149- suite .Run (t , new (DoubledHostTestSuite ))
138+ func (suite * MultiHostTestSuite ) TestRunTripledHost () {
139+
140+ multiHost := fmt .Sprintf ("--host=%s,%s,%s" , localHost , localHost , localHost )
141+ multiApiToken := fmt .Sprintf ("--api-token=%s,%s,%s" , apiToken , apiToken , apiToken )
142+ org := fmt .Sprintf ("--org=%s" , orgName )
143+
144+ tripledArgs := func (args []string ) []string {
145+ return append (args , multiHost , multiApiToken , org )
146+ }
147+
148+ for _ , t := range []struct {
149+ name string
150+ args []string
151+ stdOut []string
152+ err error
153+ }{
154+ {
155+ name : "only returns primary call output when all three calls succeed" ,
156+ args : tripledArgs ([]string {"kosli" , "status" }),
157+ stdOut : []string {"OK" , "" },
158+ err : error (nil ),
159+ },
160+
161+ } {
162+ defer func (original []string ) { os .Args = original }(os .Args )
163+ os .Args = t .args
164+ output , err := runMultiHost (t .args )
165+
166+ assert .Equal (suite .Suite .T (), t .err , err , fmt .Sprintf ("TestRunTripledHost: %s\n \t expected: '%v'\n \t --actual: '%v'\n " , t .name , t .err , err ))
167+
168+ lines := strings .Split (output , "\n " )
169+ d := diff (t .stdOut , lines )
170+ assert .Equal (suite .Suite .T (), "" , d , fmt .Sprintf ("TestRunTripledHost: %s\n %s\n " , t .name , d ))
171+ }
172+ }
173+
174+ func TestMultiHostTestSuite (t * testing.T ) {
175+ suite .Run (t , new (MultiHostTestSuite ))
150176}
151177
152178// func StatusDebugLines() []string {
@@ -234,3 +260,22 @@ func charAt(s string, n int) string {
234260 }
235261 return fmt .Sprintf ("%v" , c )
236262}
263+
264+ // {
265+ // name: "in debug mode also returns secondary call output",
266+ // args: doubledArgs([]string{"kosli", "status", "--debug"}),
267+ // stdOut: StatusDebugLines(),
268+ // err: error(nil),
269+ // },
270+ // {
271+ // name: "--help prints output once",
272+ // args: doubledArgs([]string{"kosli", "status", "--help"}),
273+ // stdOut: HelpStatusLines(),
274+ // err: error(nil),
275+ // },
276+ // {
277+ // name: "bad-flag never gets to call runMultiHost() because isMultiHost() returns false",
278+ // args: doubledArgs([]string{"kosli", "status", "--bad-flag"}),
279+ // stdOut: BadFlagLines(),
280+ // err: error(nil),
281+ // },
0 commit comments