MCPcopy Index your code
hub / github.com/coder/coder / TestTemplateMetrics

Function TestTemplateMetrics

coderd/templates_test.go:1996–2091  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1994}
1995
1996func TestTemplateMetrics(t *testing.T) {
1997 t.Parallel()
1998
1999 t.Skip("flaky test: https://github.com/coder/coder/issues/6481")
2000
2001 client := coderdtest.New(t, &coderdtest.Options{
2002 IncludeProvisionerDaemon: true,
2003 AgentStatsRefreshInterval: time.Millisecond * 100,
2004 MetricsCacheRefreshInterval: time.Millisecond * 100,
2005 })
2006
2007 user := coderdtest.CreateFirstUser(t, client)
2008 authToken := uuid.NewString()
2009 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
2010 Parse: echo.ParseComplete,
2011 ProvisionPlan: echo.PlanComplete,
2012 ProvisionGraph: echo.ProvisionGraphWithAgent(authToken),
2013 })
2014 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
2015 require.Equal(t, -1, template.ActiveUserCount)
2016 require.Empty(t, template.BuildTimeStats[codersdk.WorkspaceTransitionStart])
2017
2018 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2019 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
2020 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
2021
2022 _ = agenttest.New(t, client.URL, authToken)
2023 resources := coderdtest.AwaitWorkspaceAgents(t, client, workspace.ID)
2024
2025 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
2026 defer cancel()
2027
2028 daus, err := client.TemplateDAUs(context.Background(), template.ID, codersdk.TimezoneOffsetHour(time.UTC))
2029 require.NoError(t, err)
2030
2031 require.Equal(t, &codersdk.DAUsResponse{
2032 Entries: []codersdk.DAUEntry{},
2033 }, daus, "no DAUs when stats are empty")
2034
2035 res, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{})
2036 require.NoError(t, err)
2037 assert.Zero(t, res.Workspaces[0].LastUsedAt)
2038
2039 conn, err := workspacesdk.New(client).
2040 DialAgent(ctx, resources[0].Agents[0].ID, &workspacesdk.DialAgentOptions{
2041 Logger: testutil.Logger(t).Named("tailnet"),
2042 })
2043 require.NoError(t, err)
2044 defer func() {
2045 _ = conn.Close()
2046 }()
2047
2048 sshConn, err := conn.SSHClient(ctx)
2049 require.NoError(t, err)
2050 _ = sshConn.Close()
2051
2052 wantDAUs := &codersdk.DAUsResponse{
2053 Entries: []codersdk.DAUEntry{

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
ProvisionGraphWithAgentFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
NewFunction · 0.92
AwaitWorkspaceAgentsFunction · 0.92
TimezoneOffsetHourFunction · 0.92
NewFunction · 0.92

Tested by

no test coverage detected