Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 34 additions & 63 deletions api/admin/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,140 +76,114 @@ func (mc *mockClient) SendRequest(_ context.Context, _ string, _ interface{}, re
}

func TestStartCPUProfiler(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.StartCPUProfiler(context.Background())
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestStopCPUProfiler(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.StopCPUProfiler(context.Background())
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestMemoryProfile(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.MemoryProfile(context.Background())
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestLockProfile(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.LockProfile(context.Background())
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestAlias(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.Alias(context.Background(), "alias", "alias2")
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestAliasChain(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.AliasChain(context.Background(), "chain", "chain-alias")
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestGetChainAliases(t *testing.T) {
t.Run("successful", func(t *testing.T) {
require := require.New(t)

expectedReply := []string{"alias1", "alias2"}
mockClient := client{requester: NewMockClient(&GetChainAliasesReply{
Aliases: expectedReply,
}, nil)}

reply, err := mockClient.GetChainAliases(context.Background(), "chain")
require.NoError(t, err)
require.ElementsMatch(t, expectedReply, reply)
require.NoError(err)
require.Equal(expectedReply, reply)
})

t.Run("failure", func(t *testing.T) {
mockClient := client{requester: NewMockClient(&GetChainAliasesReply{}, errTest)}

_, err := mockClient.GetChainAliases(context.Background(), "chain")

require.ErrorIs(t, err, errTest)
})
}

func TestStacktrace(t *testing.T) {
require := require.New(t)

tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := client{requester: NewMockClient(&api.EmptyReply{}, test.Err)}
err := mockClient.Stacktrace(context.Background())
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
continue
}
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
require.ErrorIs(err, test.Err)
}
}

func TestReloadInstalledVMs(t *testing.T) {
t.Run("successful", func(t *testing.T) {
require := require.New(t)

expectedNewVMs := map[ids.ID][]string{
ids.GenerateTestID(): {"foo"},
ids.GenerateTestID(): {"bar"},
Expand All @@ -224,16 +198,14 @@ func TestReloadInstalledVMs(t *testing.T) {
}, nil)}

loadedVMs, failedVMs, err := mockClient.LoadVMs(context.Background())
require.NoError(t, err)
require.Equal(t, expectedNewVMs, loadedVMs)
require.Equal(t, expectedFailedVMs, failedVMs)
require.NoError(err)
require.Equal(expectedNewVMs, loadedVMs)
require.Equal(expectedFailedVMs, failedVMs)
})

t.Run("failure", func(t *testing.T) {
mockClient := client{requester: NewMockClient(&LoadVMsReply{}, errTest)}

_, _, err := mockClient.LoadVMs(context.Background())

require.ErrorIs(t, err, errTest)
})
}
Expand Down Expand Up @@ -278,8 +250,6 @@ func TestSetLoggerLevel(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
require := require.New(t)

c := client{
requester: NewMockClient(&api.EmptyReply{}, tt.serviceErr),
}
Expand All @@ -289,7 +259,7 @@ func TestSetLoggerLevel(t *testing.T) {
tt.logLevel,
tt.displayLevel,
)
require.ErrorIs(err, tt.clientErr)
require.ErrorIs(t, err, tt.clientErr)
})
}
}
Expand Down Expand Up @@ -376,9 +346,10 @@ func TestGetConfig(t *testing.T) {
}
res, err := c.GetConfig(context.Background())
require.ErrorIs(err, tt.clientErr)
if tt.clientErr == nil {
require.Equal(resp, res)
if tt.clientErr != nil {
return
}
require.Equal(resp, res)
})
}
}
14 changes: 10 additions & 4 deletions api/admin/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ func initLoadVMsTest(t *testing.T) *loadVMsTest {

// Tests behavior for LoadVMs if everything succeeds.
func TestLoadVMsSuccess(t *testing.T) {
require := require.New(t)

resources := initLoadVMsTest(t)
defer resources.ctrl.Finish()

Expand Down Expand Up @@ -75,12 +77,14 @@ func TestLoadVMsSuccess(t *testing.T) {
reply := LoadVMsReply{}
err := resources.admin.LoadVMs(&http.Request{}, nil, &reply)

require.Equal(t, expectedVMRegistry, reply.NewVMs)
require.NoError(t, err)
require.Equal(expectedVMRegistry, reply.NewVMs)
require.NoError(err)
}

// Tests behavior for LoadVMs if we fail to reload vms.
func TestLoadVMsReloadFails(t *testing.T) {
require := require.New(t)

resources := initLoadVMsTest(t)
defer resources.ctrl.Finish()

Expand All @@ -90,11 +94,13 @@ func TestLoadVMsReloadFails(t *testing.T) {

reply := LoadVMsReply{}
err := resources.admin.LoadVMs(&http.Request{}, nil, &reply)
require.ErrorIs(t, err, errTest)
require.ErrorIs(err, errTest)
}

// Tests behavior for LoadVMs if we fail to fetch our aliases
func TestLoadVMsGetAliasesFails(t *testing.T) {
require := require.New(t)

resources := initLoadVMsTest(t)
defer resources.ctrl.Finish()

Expand All @@ -114,5 +120,5 @@ func TestLoadVMsGetAliasesFails(t *testing.T) {

reply := LoadVMsReply{}
err := resources.admin.LoadVMs(&http.Request{}, nil, &reply)
require.ErrorIs(t, err, errTest)
require.ErrorIs(err, errTest)
}
Loading