#include "test/test.h" #include "syntax/completion.h" #include "llvm/ADT/DenseMap.h" namespace clice::testing { namespace { TEST_SUITE(DetectCompletionContext) { TEST_CASE(IncludeAngled) { auto ctx = detect_completion_context("#include modules; modules[1] = "std"; modules[2] = "std.io"; modules[3] = "std.net"; modules[4] = "my_lib"; auto results = complete_module_import(modules, "std"); EXPECT_EQ(results.size(), 3u); for(auto& name: results) { EXPECT_TRUE(name.starts_with("std")); } } TEST_CASE(EmptyPrefix) { llvm::DenseMap modules; modules[1] = "std"; modules[2] = "my_lib"; auto results = complete_module_import(modules, ""); EXPECT_EQ(results.size(), 2u); } TEST_CASE(NoMatch) { llvm::DenseMap modules; modules[1] = "std"; modules[2] = "my_lib"; auto results = complete_module_import(modules, "xyz"); EXPECT_TRUE(results.empty()); } TEST_CASE(EmptyModules) { llvm::DenseMap modules; auto results = complete_module_import(modules, "std"); EXPECT_TRUE(results.empty()); } }; // TEST_SUITE(CompleteModuleImport) } // namespace } // namespace clice::testing