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