(t *testing.T)
| 1994 | } |
| 1995 | |
| 1996 | func 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{ |
nothing calls this directly
no test coverage detected