summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
diff options
context:
space:
mode:
authorvityaman <[email protected]>2025-04-07 23:50:34 +0300
committerrobot-piglet <[email protected]>2025-04-08 00:17:32 +0300
commit5af5cb3b7b423f2d3fcebf2e1406d37cbd6f3bbf (patch)
tree4a846ecb4e938d459032f34cf013fe5dfdb1010b /yql/essentials/sql/v1/complete/sql_complete_ut.cpp
parent6a114f0cafe3074d67f8022fe051f0b28dfe31ab (diff)
YQL-19747 Improve yql_complete tool and add input validation
No description --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1185 commit_hash:1def5874ff6a9a5b3dcdd0ad285d2e64b16c9306
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete_ut.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete_ut.cpp32
1 files changed, 23 insertions, 9 deletions
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
index 10d358c8d3e..e9f5dbdfb73 100644
--- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
@@ -63,8 +63,8 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
return MakeSqlCompletionEngine(std::move(lexer), std::move(service));
}
- TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TStringBuf prefix) {
- return engine->Complete({prefix}).Candidates;
+ TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TCompletionInput input) {
+ return engine->Complete(input).Candidates;
}
Y_UNIT_TEST(Beginning) {
@@ -438,17 +438,31 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
};
auto engine = MakeSqlCompletionEngineUT();
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "se"), expected);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "sE"), expected);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "Se"), expected);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "SE"), expected);
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"se"}), expected);
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"sE"}), expected);
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"Se"}), expected);
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SE"}), expected);
}
Y_UNIT_TEST(InvalidStatementsRecovery) {
auto engine = MakeSqlCompletionEngineUT();
- UNIT_ASSERT_GE(Complete(engine, "select select; ").size(), 35);
- UNIT_ASSERT_GE(Complete(engine, "select select;").size(), 35);
- UNIT_ASSERT_VALUES_EQUAL_C(Complete(engine, "!;").size(), 0, "Lexer failing");
+ UNIT_ASSERT_GE(Complete(engine, {"select select; "}).size(), 35);
+ UNIT_ASSERT_GE(Complete(engine, {"select select;"}).size(), 35);
+ UNIT_ASSERT_VALUES_EQUAL_C(Complete(engine, {"!;"}).size(), 0, "Lexer failing");
+ }
+
+ Y_UNIT_TEST(InvalidCursorPosition) {
+ auto engine = MakeSqlCompletionEngineUT();
+
+ UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"", 0}));
+ UNIT_ASSERT_EXCEPTION(Complete(engine, {"", 1}), yexception);
+
+ UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"s", 0}));
+ UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"s", 1}));
+
+ UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"ы", 0}));
+ UNIT_ASSERT_EXCEPTION(Complete(engine, {"ы", 1}), yexception);
+ UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"ы", 2}));
}
Y_UNIT_TEST(DefaultNameService) {