Поиск: case-insensitive сравнение в logic_search
- сопоставление имени/описания календарей приведено к lowercase - юнит-тесты: 20/20
This commit is contained in:
@@ -20,6 +20,7 @@ logic_search_test_() ->
|
||||
fun cleanup/1,
|
||||
[
|
||||
{"Search events by text", fun test_search_events_by_text/0},
|
||||
{"Cyrillic case-insensitive search", fun test_search_cyrillic_case_insensitive/0},
|
||||
{"Search events by tags", fun test_search_events_by_tags/0},
|
||||
{"Search events by date range", fun test_search_events_by_date/0},
|
||||
{"Search events by location", fun test_search_events_by_location/0},
|
||||
@@ -106,6 +107,21 @@ test_search_events_by_text() ->
|
||||
{Total2, _} = events_from(logic_search:search(<<"event">>, <<"conference">>, OwnerId, Params)),
|
||||
?assertEqual(1, Total2).
|
||||
|
||||
%% UX26-20260822: «аврора» должна находить «Аврора» (юникод-lowercase,
|
||||
%% а не побайтовый latin-1).
|
||||
test_search_cyrillic_case_insensitive() ->
|
||||
OwnerId = create_test_user(user),
|
||||
CalendarId = create_test_calendar(OwnerId, commercial, []),
|
||||
StartTime = eh_test_support:future_start(),
|
||||
create_test_event(CalendarId, <<"Аврора Йога"/utf8>>, <<"Утренняя практика"/utf8>>, StartTime, [], undefined),
|
||||
Params = #{},
|
||||
{Total, _} = events_from(logic_search:search(<<"event">>, <<"аврора"/utf8>>, OwnerId, Params)),
|
||||
?assertEqual(1, Total),
|
||||
{Total2, _} = events_from(logic_search:search(<<"event">>, <<"АВРОРА"/utf8>>, OwnerId, Params)),
|
||||
?assertEqual(1, Total2),
|
||||
{Total3, _} = calendars_from(logic_search:search(<<"calendar">>, <<"test calendar">>, OwnerId, Params)),
|
||||
?assertEqual(1, Total3).
|
||||
|
||||
test_search_events_by_tags() ->
|
||||
OwnerId = create_test_user(user),
|
||||
CalendarId = create_test_calendar(OwnerId, commercial, []),
|
||||
|
||||
Reference in New Issue
Block a user