1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
package server_test
import (
"context"
"testing"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
"github.com/hetznercloud/cli/internal/cmd/server"
"github.com/hetznercloud/cli/internal/testutil"
"github.com/hetznercloud/hcloud-go/v2/hcloud"
)
func TestRemoveFromPlacementGroup(t *testing.T) {
fx := testutil.NewFixture(t)
defer fx.Finish()
cmd := server.RemoveFromPlacementGroup.CobraCommand(
context.Background(),
fx.Client,
fx.TokenEnsurer,
fx.ActionWaiter)
fx.ExpectEnsureToken()
server := hcloud.Server{
ID: 42,
Name: "my server",
}
fx.Client.ServerClient.EXPECT().
Get(gomock.Any(), server.Name).
Return(&server, nil, nil)
fx.Client.ServerClient.EXPECT().
RemoveFromPlacementGroup(gomock.Any(), &server)
fx.ActionWaiter.EXPECT().ActionProgress(gomock.Any(), nil)
out, err := fx.Run(cmd, []string{server.Name})
expOut := `Server 42 removed from placement group
`
assert.NoError(t, err)
assert.Equal(t, expOut, out)
}
|