From 5acebc19cd1da550a015abd1505e565c3b955db2 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 8 Jun 2026 12:42:08 +0900 Subject: [PATCH] search: return null on whitespace search term --- lib/search/word_search/entry_id_query.dart | 4 ++-- lib/search/word_search/word_search.dart | 2 +- test/search/word_search_test.dart | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/search/word_search/entry_id_query.dart b/lib/search/word_search/entry_id_query.dart index 9b3ab86..86f11f1 100644 --- a/lib/search/word_search/entry_id_query.dart +++ b/lib/search/word_search/entry_id_query.dart @@ -246,12 +246,12 @@ Future> fetchEntryIds( int? pageSize, int? offset, ) async { + assert(word.trim().isNotEmpty, 'Word should not be empty when fetching entry IDs'); + if (searchMode == SearchMode.auto) { searchMode = _determineSearchMode(word); } - assert(word.isNotEmpty, 'Word should not be empty when fetching entry IDs'); - late final List entryIds; switch (searchMode) { case SearchMode.kanji: diff --git a/lib/search/word_search/word_search.dart b/lib/search/word_search/word_search.dart index fa7b5a9..e777530 100644 --- a/lib/search/word_search/word_search.dart +++ b/lib/search/word_search/word_search.dart @@ -41,7 +41,7 @@ Future?> searchWordWithDbConnection( int page = 0, int? pageSize, }) async { - if (word.isEmpty) { + if (word.trim().isEmpty) { return null; } diff --git a/test/search/word_search_test.dart b/test/search/word_search_test.dart index 0f80883..6cc35d5 100644 --- a/test/search/word_search_test.dart +++ b/test/search/word_search_test.dart @@ -4,6 +4,22 @@ import 'package:test/test.dart'; import 'setup_database_connection.dart'; void main() { + test('Search empty string - auto', () async { + final connection = await setupDatabaseConnection(); + final result = await connection.jadbSearchWord(''); + expect(result, isNull); + }); + + test('Search whitespace - auto', () async { + final connection = await setupDatabaseConnection(); + final result1 = await connection.jadbSearchWord(' '); + expect(result1, isNull); + final result2 = await connection.jadbSearchWord('\t'); + expect(result2, isNull); + final result3 = await connection.jadbSearchWord('\n'); + expect(result3, isNull); + }); + test('Search a word - english - auto', () async { final connection = await setupDatabaseConnection(); final result = await connection.jadbSearchWord('kana');