diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7a045bbd..e528b7a4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -115,6 +115,13 @@ Quelques règles non capturées par `.editorconfig` : - Préférer les types BCL (`int`, `string`) aux types framework (`Int32`, `String`). - Préférer les expressions de pattern matching aux casts explicites. +- **Pas de `object` dans le code source applicatif.** Types de retour, + paramètres, champs, propriétés, variables locales : tout doit être + typé statiquement. `dynamic` est interdit pour les mêmes raisons. + Un cast en `object` est presque toujours le symptôme d'un contrat + qu'on a laissé s'effriter (DTO, payload, handler) — refactore + le contrat (record typé, DTO dédié, méthode dédiée) au lieu de + shimer avec un cast. ## Branches & commits diff --git a/src/Yavsc.Org.Tests/NonRegression/EMailling.cs b/src/Yavsc.Org.Tests/NonRegression/EMailling.cs index 453c2650..743dbbc1 100644 --- a/src/Yavsc.Org.Tests/NonRegression/EMailling.cs +++ b/src/Yavsc.Org.Tests/NonRegression/EMailling.cs @@ -19,11 +19,11 @@ namespace Yavsc.Org.Tests { this.output = output; _serverFixture = serverFixture; - _logger = serverFixture.Logger; + _logger = serverFixture.Logger!; } [Fact] - public void SendEMailSynchrone() + public async Task SendEMailSynchrone() { using IServiceScope scope = _serverFixture.Services.CreateScope(); @@ -32,12 +32,12 @@ namespace Yavsc.Org.Tests scope.ServiceProvider.GetRequiredService()); output.WriteLine("SendEMailSynchrone ..."); - mailSender.SendEmailAsync + await mailSender.SendEmailAsync ( - _serverFixture.SiteSettings.Owner.Name, - _serverFixture.SiteSettings.Owner.EMail, + _serverFixture.SiteSettings!.Owner.Name, + _serverFixture.SiteSettings!.Owner.EMail, $"monthly email", - "test boby monthly email").Wait(); + "test boby monthly email"); // Assert the SMTP roundtrip was short-circuited by the // recording fake installed in WebServerFixture: exactly