Skip to content

Commit 2aa4ca1

Browse files
committed
tests
1 parent 9d7c2c0 commit 2aa4ca1

2 files changed

Lines changed: 43 additions & 20 deletions

File tree

pkg/cmd/revokessh/revokessh_test.go

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,22 @@ func (m *mockRevokeSSHStore) GetOrgRoleAttachments(_ string) ([]entity.OrgRoleAt
101101
// fakeNodeService implements the server side of ExternalNodeService for testing.
102102
type fakeNodeService struct {
103103
nodev1connect.UnimplementedExternalNodeServiceHandler
104+
listNodesFn func(*nodev1.ListNodesRequest) (*nodev1.ListNodesResponse, error)
104105
getNodeFn func(*nodev1.GetNodeRequest) (*nodev1.GetNodeResponse, error)
105106
revokeSSHFn func(*nodev1.RevokeNodeSSHAccessRequest) (*nodev1.RevokeNodeSSHAccessResponse, error)
106107
}
107108

109+
func (f *fakeNodeService) ListNodes(_ context.Context, req *connect.Request[nodev1.ListNodesRequest]) (*connect.Response[nodev1.ListNodesResponse], error) {
110+
if f.listNodesFn != nil {
111+
resp, err := f.listNodesFn(req.Msg)
112+
if err != nil {
113+
return nil, err
114+
}
115+
return connect.NewResponse(resp), nil
116+
}
117+
return nil, connect.NewError(connect.CodeUnimplemented, fmt.Errorf("listNodesFn not set"))
118+
}
119+
108120
func (f *fakeNodeService) GetNode(_ context.Context, req *connect.Request[nodev1.GetNodeRequest]) (*connect.Response[nodev1.GetNodeResponse], error) {
109121
resp, err := f.getNodeFn(req.Msg)
110122
if err != nil {
@@ -149,7 +161,11 @@ func Test_runRevokeSSH_NotRegistered(t *testing.T) {
149161
token: "tok",
150162
org: &entity.Organization{ID: "org_123", Name: "TestOrg"},
151163
}
152-
svc := &fakeNodeService{}
164+
svc := &fakeNodeService{
165+
listNodesFn: func(_ *nodev1.ListNodesRequest) (*nodev1.ListNodesResponse, error) {
166+
return &nodev1.ListNodesResponse{Items: nil}, nil // no nodes
167+
},
168+
}
153169

154170
deps, server := baseDeps(t, svc, regStore)
155171
defer server.Close()
@@ -175,11 +191,14 @@ func Test_runRevokeSSH_NoSSHAccess(t *testing.T) {
175191
}
176192

177193
svc := &fakeNodeService{
178-
getNodeFn: func(_ *nodev1.GetNodeRequest) (*nodev1.GetNodeResponse, error) {
179-
return &nodev1.GetNodeResponse{
180-
ExternalNode: &nodev1.ExternalNode{
181-
ExternalNodeId: "unode_abc",
182-
SshAccess: nil, // no SSH access
194+
listNodesFn: func(_ *nodev1.ListNodesRequest) (*nodev1.ListNodesResponse, error) {
195+
return &nodev1.ListNodesResponse{
196+
Items: []*nodev1.ExternalNode{
197+
{
198+
ExternalNodeId: "unode_abc",
199+
Name: "My Spark",
200+
SshAccess: nil, // no SSH access
201+
},
183202
},
184203
}, nil
185204
},
@@ -213,12 +232,15 @@ func Test_runRevokeSSH_RevokeAccess(t *testing.T) {
213232

214233
var gotReq *nodev1.RevokeNodeSSHAccessRequest
215234
svc := &fakeNodeService{
216-
getNodeFn: func(_ *nodev1.GetNodeRequest) (*nodev1.GetNodeResponse, error) {
217-
return &nodev1.GetNodeResponse{
218-
ExternalNode: &nodev1.ExternalNode{
219-
ExternalNodeId: "unode_abc",
220-
SshAccess: []*nodev1.SSHAccess{
221-
{UserId: "user_2", LinuxUser: "ubuntu"},
235+
listNodesFn: func(_ *nodev1.ListNodesRequest) (*nodev1.ListNodesResponse, error) {
236+
return &nodev1.ListNodesResponse{
237+
Items: []*nodev1.ExternalNode{
238+
{
239+
ExternalNodeId: "unode_abc",
240+
Name: "My Spark",
241+
SshAccess: []*nodev1.SSHAccess{
242+
{UserId: "user_2", LinuxUser: "ubuntu"},
243+
},
222244
},
223245
},
224246
}, nil
@@ -267,12 +289,15 @@ func Test_runRevokeSSH_RPCFailure(t *testing.T) {
267289
}
268290

269291
svc := &fakeNodeService{
270-
getNodeFn: func(_ *nodev1.GetNodeRequest) (*nodev1.GetNodeResponse, error) {
271-
return &nodev1.GetNodeResponse{
272-
ExternalNode: &nodev1.ExternalNode{
273-
ExternalNodeId: "unode_abc",
274-
SshAccess: []*nodev1.SSHAccess{
275-
{UserId: "user_3", LinuxUser: "testuser"},
292+
listNodesFn: func(_ *nodev1.ListNodesRequest) (*nodev1.ListNodesResponse, error) {
293+
return &nodev1.ListNodesResponse{
294+
Items: []*nodev1.ExternalNode{
295+
{
296+
ExternalNodeId: "unode_abc",
297+
Name: "My Spark",
298+
SshAccess: []*nodev1.SSHAccess{
299+
{UserId: "user_3", LinuxUser: "testuser"},
300+
},
276301
},
277302
},
278303
}, nil

pkg/sudo/sudo.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ func isTTY(f *os.File) bool {
8989
return (info.Mode() & os.ModeCharDevice) != 0
9090
}
9191

92-
9392
// CachedGater is a Gater that always acts as if sudo is cached (no prompt, no refresh). For tests.
9493
type CachedGater struct{}
9594

9695
func (CachedGater) Gate(*terminal.Terminal, terminal.Confirmer, string, bool) error { return nil }
97-

0 commit comments

Comments
 (0)