|
3 | 3 | using Microsoft.Extensions.Configuration; |
4 | 4 | using Microsoft.Extensions.DependencyInjection; |
5 | 5 | using Microsoft.Extensions.Hosting; |
| 6 | +using Microsoft.Extensions.Logging; |
6 | 7 | using Microsoft.Extensions.Options; |
7 | 8 | using PostHog; |
8 | 9 | using PostHog.Config; |
@@ -41,6 +42,26 @@ public void ReadsSettingsFromPostHogConfigurationSection() |
41 | 42 | Assert.Equal(TimeSpan.FromSeconds(10), options.FeatureFlagPollInterval); |
42 | 43 | } |
43 | 44 |
|
| 45 | + [Fact] |
| 46 | + public void DoesNotLogLegacyWarningWhenOnlyProjectTokenIsConfigured() |
| 47 | + { |
| 48 | + var builder = WebApplication.CreateSlimBuilder(); |
| 49 | + builder.Configuration.AddInMemoryCollection(new Dictionary<string, string?> |
| 50 | + { |
| 51 | + ["PostHog:ProjectToken"] = "fake-not-so-secret", |
| 52 | + }); |
| 53 | + using var logger = new FakeLoggerProvider(); |
| 54 | + builder.Services.AddSingleton<ILoggerFactory>(logger); |
| 55 | + |
| 56 | + builder.AddPostHog(); |
| 57 | + |
| 58 | + using var provider = builder.Services.BuildServiceProvider(); |
| 59 | + Assert.NotNull(provider.GetRequiredService<IPostHogClient>()); |
| 60 | + Assert.DoesNotContain( |
| 61 | + logger.GetAllEvents(minimumLevel: LogLevel.Warning), |
| 62 | + log => log.Message?.Contains("ProjectApiKey is deprecated", StringComparison.Ordinal) == true); |
| 63 | + } |
| 64 | + |
44 | 65 | [Fact] |
45 | 66 | public void ReadsSecretKeyFromPostHogConfigurationSection() |
46 | 67 | { |
@@ -81,12 +102,18 @@ public void ReadsLegacyProjectApiKeyFromPostHogConfigurationSection() |
81 | 102 | { |
82 | 103 | ["PostHog:ProjectApiKey"] = "fake-not-so-secret", |
83 | 104 | }); |
| 105 | + using var logger = new FakeLoggerProvider(); |
| 106 | + services.AddSingleton<ILoggerFactory>(logger); |
84 | 107 |
|
85 | 108 | builder.AddPostHog(); |
86 | 109 |
|
87 | | - var provider = services.BuildServiceProvider(); |
| 110 | + using var provider = services.BuildServiceProvider(); |
| 111 | + Assert.NotNull(provider.GetRequiredService<IPostHogClient>()); |
88 | 112 | var options = provider.GetRequiredService<IOptions<PostHogOptions>>().Value; |
89 | 113 | Assert.Equal("fake-not-so-secret", options.ProjectToken); |
| 114 | + Assert.Contains( |
| 115 | + logger.GetAllEvents(minimumLevel: LogLevel.Warning), |
| 116 | + log => log.Message?.Contains("ProjectApiKey is deprecated", StringComparison.Ordinal) == true); |
90 | 117 | } |
91 | 118 |
|
92 | 119 | [Fact] |
|
0 commit comments