// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: BUSL-1.1 package server // TODO: mocks need to be regenerated for this // import ( // "context" // "strings" // "testing" // "time" // "github.com/stretchr/testify/mock" // "github.com/stretchr/testify/require" // "google.golang.org/grpc/codes" // "google.golang.org/grpc/status" // "github.com/hashicorp/vagrant-plugin-sdk/component" // pbmocks "github.com/hashicorp/vagrant/internal/server/gen/mocks" // "github.com/hashicorp/vagrant/internal/server/gen/vagrant_server" // ) // func TestComponentEnum(t *testing.T) { // for idx, name := range vagrant_server.Component_Type_name { // // skip the invalid value // if idx == 0 { // continue // } // typ := component.Type(idx) // require.Equal(t, strings.ToUpper(typ.String()), strings.ToUpper(name)) // } // } // func TestRun_reconnect(t *testing.T) { // require := require.New(t) // ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // m := &pbmocks.VagrantServer{} // m.On("GetVersionInfo", mock.Anything, mock.Anything).Return(testVersionInfoResponse(), nil) // m.On("GetWorkspace", mock.Anything, mock.Anything).Return(&vagrant_server.GetWorkspaceResponse{}, nil) // // Create the server // restartCh := make(chan struct{}) // client := TestServer(t, m, // TestWithContext(ctx), // TestWithRestart(restartCh), // ) // // Request should work // _, err := client.GetWorkspace(ctx, &vagrant_server.GetWorkspaceRequest{ // Workspace: &vagrant_server.Ref_Workspace{ // Workspace: "test", // }, // }) // require.NoError(err) // // Stop it // cancel() // // Should not work // require.Eventually(func() bool { // _, err := client.GetWorkspace(context.Background(), &vagrant_server.GetWorkspaceRequest{ // Workspace: &vagrant_server.Ref_Workspace{ // Workspace: "test", // }, // }) // t.Logf("error: %s", err) // return status.Code(err) == codes.Unavailable // }, 2*time.Second, 10*time.Millisecond) // // Restart // restartCh <- struct{}{} // // Should work // require.Eventually(func() bool { // _, err := client.GetWorkspace(context.Background(), &vagrant_server.GetWorkspaceRequest{ // Workspace: &vagrant_server.Ref_Workspace{ // Workspace: "test", // }, // }) // return err == nil // }, 5*time.Second, 10*time.Millisecond) // }