88 "strings"
99 "testing"
1010
11+ nodev1connect "buf.build/gen/go/brevdev/devplane/connectrpc/go/devplaneapi/v1/devplaneapiv1connect"
1112 nodev1 "buf.build/gen/go/brevdev/devplane/protocolbuffers/go/devplaneapi/v1"
13+ "connectrpc.com/connect"
1214
1315 "github.com/brevdev/brev-cli/pkg/terminal"
1416)
@@ -249,6 +251,17 @@ func (s *captureSelector) Select(_ string, items []string) string {
249251 return items [s .returnIdx ]
250252}
251253
254+ // fakeNodeClient implements nodev1connect.ExternalNodeServiceClient, returning
255+ // canned nodes from ListNodes
256+ type fakeNodeClient struct {
257+ nodev1connect.ExternalNodeServiceClient
258+ nodes []* nodev1.ExternalNode
259+ }
260+
261+ func (f * fakeNodeClient ) ListNodes (_ context.Context , _ * connect.Request [nodev1.ListNodesRequest ]) (* connect.Response [nodev1.ListNodesResponse ], error ) {
262+ return connect .NewResponse (& nodev1.ListNodesResponse {Items : f .nodes }), nil
263+ }
264+
252265func makeNodes (ids ... string ) []* nodev1.ExternalNode {
253266 nodes := make ([]* nodev1.ExternalNode , len (ids ))
254267 for i , id := range ids {
@@ -265,9 +278,9 @@ func TestSelectNodeFromList_ThisNodeMovedToFront(t *testing.T) {
265278 regStore := & mockRegistrationStore {
266279 reg : & DeviceRegistration {ExternalNodeID : "c" },
267280 }
268- nodes := makeNodes ("a" , "b" , "c" , "d" )
281+ client := & fakeNodeClient { nodes : makeNodes ("a" , "b" , "c" , "d" )}
269282
270- got , err := SelectNodeFromList (context .Background (), terminal .New (), sel , regStore , nodes )
283+ got , err := SelectNodeFromList (context .Background (), "org1" , terminal .New (), sel , regStore , client )
271284 if err != nil {
272285 t .Fatalf ("unexpected error: %v" , err )
273286 }
@@ -293,9 +306,9 @@ func TestSelectNodeFromList_ThisNodeAlreadyFirst(t *testing.T) {
293306 regStore := & mockRegistrationStore {
294307 reg : & DeviceRegistration {ExternalNodeID : "a" },
295308 }
296- nodes := makeNodes ("a" , "b" , "c" )
309+ client := & fakeNodeClient { nodes : makeNodes ("a" , "b" , "c" )}
297310
298- got , err := SelectNodeFromList (context .Background (), terminal .New (), sel , regStore , nodes )
311+ got , err := SelectNodeFromList (context .Background (), "org1" , terminal .New (), sel , regStore , client )
299312 if err != nil {
300313 t .Fatalf ("unexpected error: %v" , err )
301314 }
@@ -311,10 +324,9 @@ func TestSelectNodeFromList_ThisNodeAlreadyFirst(t *testing.T) {
311324func TestSelectNodeFromList_NoRegistration (t * testing.T ) {
312325 sel := & captureSelector {returnIdx : 1 }
313326 regStore := & mockRegistrationStore {} // no registration
327+ client := & fakeNodeClient {nodes : makeNodes ("a" , "b" , "c" )}
314328
315- nodes := makeNodes ("a" , "b" , "c" )
316-
317- got , err := SelectNodeFromList (context .Background (), terminal .New (), sel , regStore , nodes )
329+ got , err := SelectNodeFromList (context .Background (), "org1" , terminal .New (), sel , regStore , client )
318330 if err != nil {
319331 t .Fatalf ("unexpected error: %v" , err )
320332 }
0 commit comments