mirror of https://github.com/coder/coder.git
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
|
package coderd_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
|
||
|
agentproto "github.com/coder/coder/v2/agent/proto"
|
||
|
"github.com/coder/coder/v2/coderd/coderdtest"
|
||
|
"github.com/coder/coder/v2/coderd/database"
|
||
|
"github.com/coder/coder/v2/coderd/database/dbfake"
|
||
|
"github.com/coder/coder/v2/codersdk/agentsdk"
|
||
|
"github.com/coder/coder/v2/provisionersdk/proto"
|
||
|
"github.com/coder/coder/v2/testutil"
|
||
|
)
|
||
|
|
||
|
func TestAgentAPI_LargeManifest(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
ctx := testutil.Context(t, testutil.WaitLong)
|
||
|
client, store := coderdtest.NewWithDatabase(t, nil)
|
||
|
adminUser := coderdtest.CreateFirstUser(t, client)
|
||
|
n := 512000
|
||
|
longScript := make([]byte, n)
|
||
|
for i := range longScript {
|
||
|
longScript[i] = 'q'
|
||
|
}
|
||
|
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
|
||
|
OrganizationID: adminUser.OrganizationID,
|
||
|
OwnerID: adminUser.UserID,
|
||
|
}).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
|
||
|
agents[0].Scripts = []*proto.Script{
|
||
|
{
|
||
|
Script: string(longScript),
|
||
|
},
|
||
|
}
|
||
|
return agents
|
||
|
}).Do()
|
||
|
ac := agentsdk.New(client.URL)
|
||
|
ac.SetSessionToken(r.AgentToken)
|
||
|
conn, err := ac.ConnectRPC(ctx)
|
||
|
defer func() {
|
||
|
_ = conn.Close()
|
||
|
}()
|
||
|
require.NoError(t, err)
|
||
|
agentAPI := agentproto.NewDRPCAgentClient(conn)
|
||
|
manifest, err := agentAPI.GetManifest(ctx, &agentproto.GetManifestRequest{})
|
||
|
require.NoError(t, err)
|
||
|
require.Len(t, manifest.Scripts, 1)
|
||
|
require.Len(t, manifest.Scripts[0].Script, n)
|
||
|
}
|