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

Function TestUserSecretsTelemetry

coderd/telemetry/telemetry_test.go:2002–2245  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2000}
2001
2002func TestUserSecretsTelemetry(t *testing.T) {
2003 t.Parallel()
2004
2005 t.Run("Empty", func(t *testing.T) {
2006 t.Parallel()
2007 ctx := testutil.Context(t, testutil.WaitMedium)
2008 db, _ := dbtestutil.NewDB(t)
2009
2010 // Empty deployment should report a non-nil summary with zeros.
2011 _, snap := collectSnapshot(ctx, t, db, nil)
2012 require.Equal(t, &telemetry.UserSecretsSummary{}, snap.UserSecretsSummary)
2013 })
2014
2015 t.Run("ConfigurationBreakdown", func(t *testing.T) {
2016 t.Parallel()
2017 ctx := testutil.Context(t, testutil.WaitMedium)
2018 db, _ := dbtestutil.NewDB(t)
2019
2020 userA := dbgen.User(t, db, database.User{})
2021 userB := dbgen.User(t, db, database.User{})
2022
2023 // userA: env-only and file-only. dbgen.UserSecret defaults
2024 // EnvName and FilePath to non-empty, so use mutators to clear
2025 // them where the test wants empty values.
2026 _ = dbgen.UserSecret(t, db, database.UserSecret{
2027 UserID: userA.ID,
2028 Name: "a-env",
2029 }, func(p *database.CreateUserSecretParams) {
2030 p.EnvName = "A_ENV"
2031 p.FilePath = ""
2032 })
2033 _ = dbgen.UserSecret(t, db, database.UserSecret{
2034 UserID: userA.ID,
2035 Name: "a-file",
2036 }, func(p *database.CreateUserSecretParams) {
2037 p.EnvName = ""
2038 p.FilePath = "/home/coder/a.file"
2039 })
2040 // userB: both and neither.
2041 _ = dbgen.UserSecret(t, db, database.UserSecret{
2042 UserID: userB.ID,
2043 Name: "b-both",
2044 }, func(p *database.CreateUserSecretParams) {
2045 p.EnvName = "B_BOTH"
2046 p.FilePath = "/home/coder/b.both"
2047 })
2048 _ = dbgen.UserSecret(t, db, database.UserSecret{
2049 UserID: userB.ID,
2050 Name: "b-neither",
2051 }, func(p *database.CreateUserSecretParams) {
2052 p.EnvName = ""
2053 p.FilePath = ""
2054 })
2055
2056 _, snap := collectSnapshot(ctx, t, db, nil)
2057 // Each user has exactly two secrets, so every percentile and
2058 // the max collapse to 2.
2059 require.Equal(t, &telemetry.UserSecretsSummary{

Callers

nothing calls this directly

Calls 9

ContextFunction · 0.92
NewDBFunction · 0.92
UserFunction · 0.92
UserSecretFunction · 0.92
NowFunction · 0.92
collectSnapshotFunction · 0.85
RunMethod · 0.65
SetMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected