vaguerent/internal/server/singleprocess/service_logs_test.go
2022-04-25 12:24:14 -05:00

161 lines
4.3 KiB
Go

package singleprocess
// import (
// "context"
// "strconv"
// "testing"
// "time"
// "github.com/stretchr/testify/require"
// "github.com/hashicorp/vagrant/internal/server"
// "github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
// serverptypes "github.com/hashicorp/vagrant/internal/server/ptypes"
// )
// func TestServiceGetLogStream(t *testing.T) {
// ctx := context.Background()
// // Create our server
// impl, err := New(WithDB(testDB(t)))
// require.NoError(t, err)
// client := server.TestServer(t, impl)
// // Register our instances
// resp, err := client.UpsertDeployment(ctx, &vagrant_server.UpsertDeploymentRequest{
// Deployment: serverptypes.TestValidDeployment(t, &vagrant_server.Deployment{
// Component: &vagrant_server.Component{
// Name: "testapp",
// },
// }),
// })
// require.NoError(t, err)
// dep := resp.Deployment
// configClient, err := client.EntrypointConfig(ctx, &vagrant_server.EntrypointConfigRequest{
// DeploymentId: dep.Id,
// InstanceId: "1",
// })
// require.NoError(t, err)
// _, err = configClient.Recv()
// require.NoError(t, err)
// // Simplify writing tests
// type Req = vagrant_server.UpsertDeploymentRequest
// require := require.New(t)
// // Create the stream and send some log messages
// logSendClient, err := client.EntrypointLogStream(ctx)
// require.NoError(err)
// for i := 0; i < 5; i++ {
// var entries []*vagrant_server.LogBatch_Entry
// for j := 0; j < 5; j++ {
// entries = append(entries, &vagrant_server.LogBatch_Entry{
// Line: strconv.Itoa(5*i + j),
// })
// }
// logSendClient.Send(&vagrant_server.EntrypointLogBatch{
// InstanceId: "1",
// Lines: entries,
// })
// }
// time.Sleep(100 * time.Millisecond)
// // Connect to the stream and download the logs
// logRecvClient, err := client.GetLogStream(ctx, &vagrant_server.GetLogStreamRequest{
// Scope: &vagrant_server.GetLogStreamRequest_DeploymentId{
// DeploymentId: dep.Id,
// },
// })
// require.NoError(err)
// // Get a batch
// batch, err := logRecvClient.Recv()
// require.NoError(err)
// require.NotEmpty(batch.Lines)
// require.Len(batch.Lines, 25)
// }
// func TestServiceGetLogStream_byApp(t *testing.T) {
// ctx := context.Background()
// // Create our server
// impl, err := New(WithDB(testDB(t)))
// require.NoError(t, err)
// client := server.TestServer(t, impl)
// // Setup our references
// refApp := &vagrant_server.Ref_Application{
// Project: "test",
// Application: "app",
// }
// refWs := &vagrant_server.Ref_Workspace{
// Workspace: "ws",
// }
// // Register our instances
// resp, err := client.UpsertDeployment(ctx, &vagrant_server.UpsertDeploymentRequest{
// Deployment: serverptypes.TestValidDeployment(t, &vagrant_server.Deployment{
// Application: refApp,
// Workspace: refWs,
// Component: &vagrant_server.Component{
// Name: "testapp",
// },
// }),
// })
// require.NoError(t, err)
// dep := resp.Deployment
// configClient, err := client.EntrypointConfig(ctx, &vagrant_server.EntrypointConfigRequest{
// DeploymentId: dep.Id,
// InstanceId: "1",
// })
// require.NoError(t, err)
// _, err = configClient.Recv()
// require.NoError(t, err)
// // Simplify writing tests
// type Req = vagrant_server.UpsertDeploymentRequest
// require := require.New(t)
// // Create the stream and send some log messages
// logSendClient, err := client.EntrypointLogStream(ctx)
// require.NoError(err)
// for i := 0; i < 5; i++ {
// var entries []*vagrant_server.LogBatch_Entry
// for j := 0; j < 5; j++ {
// entries = append(entries, &vagrant_server.LogBatch_Entry{
// Line: strconv.Itoa(5*i + j),
// })
// }
// logSendClient.Send(&vagrant_server.EntrypointLogBatch{
// InstanceId: "1",
// Lines: entries,
// })
// }
// time.Sleep(100 * time.Millisecond)
// // Connect to the stream and download the logs
// logRecvClient, err := client.GetLogStream(ctx, &vagrant_server.GetLogStreamRequest{
// Scope: &vagrant_server.GetLogStreamRequest_Application_{
// Application: &vagrant_server.GetLogStreamRequest_Application{
// Application: refApp,
// Workspace: refWs,
// },
// },
// })
// require.NoError(err)
// // Get a batch
// batch, err := logRecvClient.Recv()
// require.NoError(err)
// require.NotEmpty(batch.Lines)
// require.Len(batch.Lines, 25)
// }