feat: enable initial-consonant search everywhere

This commit is contained in:
2026-07-27 01:48:32 +09:00
parent 8cad072cf0
commit e3b174eec7
22 changed files with 738 additions and 45 deletions

View File

@@ -34,6 +34,36 @@ public sealed class LegacyTradingHaltWorkflowTests
Assert.Equal("가온전자", current.DisplayName);
}
[Fact]
public async Task Search_AcceptsConservativeTruncationAfterInitialFiltering()
{
var service = new DelegateTradingHaltService
{
Search = (query, _, _) => Task.FromResult(
SearchResult(query, KospiAlpha) with { IsTruncated = true })
};
var controller = new LegacyTradingHaltWorkflowController(service);
var searched = await controller.SearchAsync("ㄱㅈ");
Assert.Equal(KospiAlpha.DisplayName, Assert.Single(searched.Results).DisplayName);
Assert.True(searched.IsTruncated);
}
[Fact]
public async Task Search_StillRejectsImpossiblePartialTruncationForOrdinaryText()
{
var service = new DelegateTradingHaltService
{
Search = (query, _, _) => Task.FromResult(
SearchResult(query, KospiAlpha) with { IsTruncated = true })
};
var controller = new LegacyTradingHaltWorkflowController(service);
await Assert.ThrowsAsync<TradingHaltSelectionDataException>(
() => controller.SearchAsync("Alpha"));
}
[Fact]
public async Task SearchSelect_MaterializesClosedCurrentAndCandleDraftsFromActionIdOnly()
{