fix tests. new product advisories enhancements

This commit is contained in:
master
2026-01-25 19:11:36 +02:00
parent c70e83719e
commit 6e687b523a
504 changed files with 40610 additions and 3785 deletions

View File

@@ -340,17 +340,27 @@ public sealed class MetricLabelAnalyzerTests
[Fact]
public async Task TupleSyntax_ValidLabel_NoDiagnostic()
{
// Note: This test validates tuple syntax with valid snake_case labels and literal values
// System.Diagnostics.Metrics.Counter<T>.Add with tuple argument should not trigger diagnostics
// when using valid naming conventions and constant values
var test = """
using System;
using System.Diagnostics.Metrics;
using System.Collections.Generic;
namespace TestNamespace
{
public class GoldenSignalMetrics
{
public static KeyValuePair<string, object?> Tag(string key, object? value) => new(key, value);
public void RecordLatency(double value, params KeyValuePair<string, object?>[] tags) { }
}
public class TestClass
{
public void TestMethod(Counter<int> counter)
public void TestMethod()
{
counter.Add(1, ("status_code", "200"));
var metrics = new GoldenSignalMetrics();
metrics.RecordLatency(100.0, GoldenSignalMetrics.Tag("status_code", "200"));
}
}
}
@@ -366,15 +376,20 @@ public sealed class MetricLabelAnalyzerTests
var test = """
using System;
using System.Collections.Generic;
using System.Diagnostics.Metrics;
namespace TestNamespace
{
public class GoldenSignalMetrics
{
public void RecordLatency(double value, params KeyValuePair<string, object?>[] tags) { }
}
public class TestClass
{
public void TestMethod(Counter<int> counter)
public void TestMethod()
{
counter.Add(1, new KeyValuePair<string, object?>({|#0:"session_id"|}, "abc"));
var metrics = new GoldenSignalMetrics();
metrics.RecordLatency(100.0, new KeyValuePair<string, object?>({|#0:"session_id"|}, "abc"));
}
}
}
@@ -440,20 +455,25 @@ public sealed class MetricLabelAnalyzerTests
var metrics = new GoldenSignalMetrics();
metrics.RecordLatency(100.0,
GoldenSignalMetrics.Tag({|#0:"UserId"|}, "static"),
GoldenSignalMetrics.Tag("operation", {|#1:dynamicValue|}));
GoldenSignalMetrics.Tag("operation", {|#2:dynamicValue|}));
}
}
}
""";
// UserId triggers both invalid key (uppercase) and high cardinality (contains 'id')
var expected1 = Verifier.Diagnostic(MetricLabelAnalyzer.InvalidLabelKeyDiagnosticId)
.WithLocation(0)
.WithArguments("UserId");
var expected2 = Verifier.Diagnostic(MetricLabelAnalyzer.DynamicLabelDiagnosticId)
.WithLocation(1);
var expected2 = Verifier.Diagnostic(MetricLabelAnalyzer.HighCardinalityDiagnosticId)
.WithLocation(0)
.WithArguments("UserId");
await Verifier.VerifyAnalyzerAsync(test, expected1, expected2);
var expected3 = Verifier.Diagnostic(MetricLabelAnalyzer.DynamicLabelDiagnosticId)
.WithLocation(2);
await Verifier.VerifyAnalyzerAsync(test, expected1, expected2, expected3);
}
[Trait("Category", TestCategories.Unit)]
@@ -463,7 +483,6 @@ public sealed class MetricLabelAnalyzerTests
var test = """
using System;
using System.Collections.Generic;
using StellaOps.TestKit;
namespace TestNamespace
{