journal/Journal.SmokeTests/Program.AiSpeechTests.cs
Jacob Schmidt 2cd31e6fb1 refactor: remove Python sidecar from C# projects
- Delete PythonSidecarAiService, PythonSidecarSpeechService, PythonSidecarClient
- Remove PythonExecutable, PythonAiSidecarPath, AiSidecarTimeoutMs from JournalConfig
- Remove python-sidecar as valid AiProvider (only none/llamasharp remain)
- Simplify DI: default IAiService is DisabledAiService, ISpeechBridgeService is disabled
- Remove python-sidecar fallback from Journal.AI ServiceCollectionExtensions
- Remove 5 Python sidecar smoke tests and BuildAiConfig helper
- Remove Python config assertions from TestConfigServiceParityKeysAsync

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-03-01 17:37:45 -06:00

135 lines
5.3 KiB
C#

internal static partial class Program
{
static async Task TestEntryAiHealthDefaultAsync()
{
var entry = NewEntry();
var response = await entry.HandleCommandAsync("""{"action":"ai.health"}""");
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for ai.health.");
var data = doc.RootElement.GetProperty("data");
Assert(data.GetProperty("Enabled").GetBoolean() is false, "Expected AI disabled by default.");
Assert(string.Equals(data.GetProperty("Provider").GetString(), "none", StringComparison.OrdinalIgnoreCase), "Expected default provider 'none'.");
}
static async Task TestEntryAiSummarizeEntryDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "ai.summarize_entry",
payload = new
{
content = "sample entry"
}
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for disabled ai.summarize_entry.");
var data = doc.RootElement.GetProperty("data").GetString() ?? "";
Assert(data.Contains("disabled", StringComparison.OrdinalIgnoreCase), "Expected disabled provider message for ai.summarize_entry.");
}
static async Task TestEntryAiSummarizeAllDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "ai.summarize_all",
payload = new
{
entries = new[] { "entry one", "entry two" }
}
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for disabled ai.summarize_all.");
var data = doc.RootElement.GetProperty("data").GetString() ?? "";
Assert(data.Contains("disabled", StringComparison.OrdinalIgnoreCase), "Expected disabled provider message for ai.summarize_all.");
}
static async Task TestEntryAiChatDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "ai.chat",
payload = new
{
prompt = "hello cloud"
}
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for disabled ai.chat.");
var data = doc.RootElement.GetProperty("data").GetString() ?? "";
Assert(data.Contains("disabled", StringComparison.OrdinalIgnoreCase), "Expected disabled provider message for ai.chat.");
}
static async Task TestEntryAiEmbedDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "ai.embed",
payload = new
{
content = "embedding source text"
}
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for disabled ai.embed.");
var data = doc.RootElement.GetProperty("data");
Assert(data.ValueKind == JsonValueKind.Array, "Expected ai.embed response to be a JSON array.");
Assert(data.GetArrayLength() == 0, "Expected disabled ai.embed to return an empty vector.");
}
static async Task TestEntrySpeechDevicesListDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "speech.devices.list",
payload = new { }
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for speech.devices.list when disabled.");
var data = doc.RootElement.GetProperty("data");
Assert(data.ValueKind == JsonValueKind.Object, "Expected speech.devices.list data to be an object.");
}
static async Task TestEntrySpeechTranscribeDisabledAsync()
{
var entry = NewEntry();
var request = JsonSerializer.Serialize(new
{
action = "speech.transcribe",
payload = new
{
text = "fixture transcript",
engine = "whisper"
}
});
var response = await entry.HandleCommandAsync(request);
using var doc = JsonDocument.Parse(response);
Assert(doc.RootElement.GetProperty("ok").GetBoolean(), "Expected ok=true for speech.transcribe when disabled.");
var data = doc.RootElement.GetProperty("data");
Assert(data.ValueKind == JsonValueKind.Object, "Expected speech.transcribe data to be an object.");
var warning = data.TryGetProperty("Warning", out var warningNode) ? warningNode.GetString() ?? "" : "";
Assert(warning.Contains("disabled", StringComparison.OrdinalIgnoreCase), "Expected disabled speech warning.");
}
}