feat: enable initial-consonant search everywhere
This commit is contained in:
@@ -286,6 +286,78 @@ public sealed class LegacyManualFinancialWorkflowTests
|
||||
workflow.ToggleNameSort(state, staleGeneration));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Directional_find_matches_Hangul_initial_consonants()
|
||||
{
|
||||
var service = new FakeManualFinancialService(
|
||||
Snapshot(Record(ManualFinancialScreenKind.Sales, "가나다"), 1),
|
||||
Snapshot(Record(ManualFinancialScreenKind.Sales, "삼성전자"), 2),
|
||||
Snapshot(Record(ManualFinancialScreenKind.Sales, "현대차"), 3));
|
||||
var workflow = Workflow(service);
|
||||
var state = await workflow.SearchAsync(
|
||||
workflow.CreateInitial(ManualFinancialScreenKind.Sales));
|
||||
|
||||
state = workflow.FindByName(
|
||||
state,
|
||||
" ㅅㅅㅈ ",
|
||||
LegacyManualFinancialFindDirection.Down,
|
||||
state.Revision);
|
||||
|
||||
Assert.Equal("ㅅㅅㅈ", state.FindQuery);
|
||||
Assert.Equal(
|
||||
"삼성전자",
|
||||
state.Rows.Single(row => row.ResultId == state.SelectedRowId).StockName);
|
||||
|
||||
state = workflow.FindByName(
|
||||
state,
|
||||
"ㄱㄴㄷ",
|
||||
LegacyManualFinancialFindDirection.Up,
|
||||
state.Revision);
|
||||
|
||||
Assert.Equal(
|
||||
"가나다",
|
||||
state.Rows.Single(row => row.ResultId == state.SelectedRowId).StockName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Create_keeps_a_matching_row_inside_an_initial_consonant_filter()
|
||||
{
|
||||
const string stockName = "삼성전자";
|
||||
var service = new FakeManualFinancialService
|
||||
{
|
||||
SearchOverride = (screen, query) => new ManualFinancialSearchResult(
|
||||
screen,
|
||||
query,
|
||||
DateTimeOffset.UtcNow,
|
||||
Array.Empty<ManualFinancialSnapshot>(),
|
||||
IsTruncated: false)
|
||||
};
|
||||
var workflow = new LegacyManualFinancialWorkflow(
|
||||
service,
|
||||
new FakeStockSearchService(new StockSearchItem(
|
||||
StockMarket.Kospi,
|
||||
DataSourceKind.Oracle,
|
||||
stockName,
|
||||
"005930")),
|
||||
new LegacyManualFinancialWriteSafetyState());
|
||||
var state = await workflow.SearchAsync(
|
||||
workflow.CreateInitial(ManualFinancialScreenKind.Sales),
|
||||
"ㅅㅅㅈ");
|
||||
state = await workflow.SearchStocksAsync(state, stockName);
|
||||
state = workflow.SelectStock(
|
||||
state,
|
||||
Assert.Single(state.StockCandidates).ResultId);
|
||||
|
||||
state = await workflow.ExecuteAsync(
|
||||
state,
|
||||
workflow.CreateCreateRequest(
|
||||
state,
|
||||
Record(ManualFinancialScreenKind.Sales, stockName)));
|
||||
|
||||
Assert.Equal("ㅅㅅㅈ", state.Query);
|
||||
Assert.Equal(stockName, Assert.Single(state.Rows).StockName);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(Screens))]
|
||||
public async Task Create_save_readback_and_action_id_only_draft_work_for_all_modes(
|
||||
|
||||
Reference in New Issue
Block a user