Add initial task extension conformance coverage (#1734)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7c99928c-a943-49f4-9a63-8b04a0e4d18b
This commit is contained in:
Pranav Senthilnathan 2026-07-24 17:16:20 -07:00 • committed by GitHub
commit 83523b0a42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -127,6 +127,34 @@ public class ServerConformanceTests(
$"MRTR conformance test '{scenario}' failed.\n\nStdout:\n{result.Output}\n\nStderr:\n{result.Error}");
}
[Theory]
[InlineData("tasks-wire-fields")]
[InlineData("tasks-request-state-removal")]
[InlineData("tasks-mrtr-input")]
// Most remaining scenarios require per-tool task execution configuration that the SDK
// does not currently expose; status notifications await an upstream harness rewrite.
// Keep them listed here for incremental enablement.
// [InlineData("tasks-lifecycle")]
// [InlineData("tasks-capability-negotiation")]
// [InlineData("tasks-request-headers")]
// [InlineData("tasks-dispatch-and-envelope")]
// [InlineData("tasks-status-notifications")]
// [InlineData("tasks-required-task-error")]
// [InlineData("tasks-mrtr-composition")]
public async Task RunTasksExtensionConformanceTest(string scenario)
{
Assert.SkipWhen(!NodeHelpers.IsNodeInstalled(), "Node.js is not installed. Skipping conformance tests.");
Assert.SkipWhen(
!NodeHelpers.HasTasksExtensionScenarios(),
"SEP-2663 Tasks extension scenarios are not available in the installed conformance package.");
var result = await RunStatelessConformanceTestAsync(
$"server --url {fixture.StatelessServerUrl} --scenario {scenario}");
Assert.True(result.Success,
$"Tasks extension conformance test '{scenario}' failed.\n\nStdout:\n{result.Output}\n\nStderr:\n{result.Error}");
}
private async Task<(bool Success, string Output, string Error)> RunConformanceTestsAsync(string arguments)
{
return await NodeHelpers.RunServerConformanceAsync(