Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using Omika.Core.Observability;
|
||||
|
||||
namespace Omika.Tests.Observability;
|
||||
|
||||
/// <summary>
|
||||
/// Instrumentation de chaque bouton (T18 étendu) : le FeatureCode est dérivé de façon
|
||||
/// STABLE depuis le nom de la commande ([RelayCommand] → [CallerMemberName]) — suffixe
|
||||
/// <c>Async</c> retiré, conversion en UPPER_SNAKE_CASE, codes canoniques (déjà avec '_')
|
||||
/// préservés, entrées vides → ACTION. Ces transformations sont pures et déterministes.
|
||||
/// </summary>
|
||||
public class DiagnosticFeatureCodesTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("SaveAsync", "SAVE")]
|
||||
[InlineData("Save", "SAVE")]
|
||||
[InlineData("Delete", "DELETE")]
|
||||
[InlineData("DeleteDocumentAsync", "DELETE_DOCUMENT")]
|
||||
[InlineData("NavigateToIntervention", "NAVIGATE_TO_INTERVENTION")]
|
||||
[InlineData("LoadPdf", "LOAD_PDF")]
|
||||
[InlineData("EmailSend", "EMAIL_SEND")]
|
||||
[InlineData("EMAIL_SEND", "EMAIL_SEND")]
|
||||
[InlineData("ReportGenerate", "REPORT_GENERATE")]
|
||||
[InlineData("INTERVENTION_SEARCH_RUN", "INTERVENTION_SEARCH_RUN")]
|
||||
[InlineData("RotateRight", "ROTATE_RIGHT")]
|
||||
[InlineData("ZoomIn", "ZOOM_IN")]
|
||||
[InlineData("GoBackAsync", "GO_BACK")]
|
||||
[InlineData("", "ACTION")]
|
||||
[InlineData(" ", "ACTION")]
|
||||
[InlineData(null, "ACTION")]
|
||||
public void FromCommandName_NormalizesToStableFeatureCode(string? input, string expected)
|
||||
{
|
||||
Assert.Equal(expected, DiagnosticFeatureCodes.FromCommandName(input));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user