# Smoke-тест: проверка сборки и работы сторонних библиотек.
add_executable(flora_smoke smoke_test.cpp)
target_compile_definitions(flora_smoke PRIVATE
    CMARK_GFM_STATIC_DEFINE
    CMARK_GFM_EXTENSIONS_STATIC_DEFINE)
target_link_libraries(flora_smoke PRIVATE
    cmark::cmark
    cmark::cmark_extensions
    Flora_libgit2_static)
add_test(NAME flora_smoke COMMAND flora_smoke)

# Тест GitManager (git init / авто-коммиты внутри хранилища).
add_executable(flora_git_test git_test.cpp
    ../src/git/GitManager.cpp
    ../src/git/GitManager.h
)
target_include_directories(flora_git_test PRIVATE ../src)
target_compile_definitions(flora_git_test PRIVATE CMARK_GFM_STATIC_DEFINE)
target_link_libraries(flora_git_test PRIVATE
    Qt6::Core
    Flora_libgit2_static)
add_test(NAME flora_git_test COMMAND flora_git_test)

# Интеграционный тест: настройки + создание хранилища (git-репозиторий).
add_executable(flora_vault_test vault_test.cpp
    ../src/app/VaultManager.cpp
    ../src/app/VaultManager.h
    ../src/core/SettingsStore.cpp
    ../src/core/SettingsStore.h
    ../src/git/GitManager.cpp
    ../src/git/GitManager.h
)
target_include_directories(flora_vault_test PRIVATE ../src)
target_link_libraries(flora_vault_test PRIVATE
    Qt6::Core
    Flora_libgit2_static)
add_test(NAME flora_vault_test COMMAND flora_vault_test)

# Тест FileStore (файловое дерево хранилища).
add_executable(flora_filestore_test filestore_test.cpp
    ../src/core/FileStore.cpp
    ../src/core/FileStore.h
)
target_include_directories(flora_filestore_test PRIVATE ../src)
target_link_libraries(flora_filestore_test PRIVATE
    Qt6::Core)
add_test(NAME flora_filestore_test COMMAND flora_filestore_test)

# Тест DocumentManager (вкладки, автосохранение, сохранение при закрытии).
add_executable(flora_docmgr_test documentmanager_test.cpp
    ../src/core/DocumentManager.cpp
    ../src/core/DocumentManager.h
)
target_include_directories(flora_docmgr_test PRIVATE ../src)
target_link_libraries(flora_docmgr_test PRIVATE
    Qt6::Core)
add_test(NAME flora_docmgr_test COMMAND flora_docmgr_test)

# Тест MdParser (рендер Markdown → HTML).
add_executable(flora_mdparser_test mdparser_test.cpp
    ../src/markdown/MdParser.cpp
    ../src/markdown/MdParser.h
)
target_include_directories(flora_mdparser_test PRIVATE ../src)
target_compile_definitions(flora_mdparser_test PRIVATE
    CMARK_GFM_STATIC_DEFINE
    CMARK_GFM_EXTENSIONS_STATIC_DEFINE)
target_link_libraries(flora_mdparser_test PRIVATE
    Qt6::Core
    Qt6::Gui
    cmark::cmark
    cmark::cmark_extensions
)
if(TARGET KF6SyntaxHighlighting)
    target_link_libraries(flora_mdparser_test PRIVATE KF6SyntaxHighlighting)
endif()
add_test(NAME flora_mdparser_test COMMAND flora_mdparser_test)

# Тест VaultIndex (теги, ссылки, граф).
add_executable(flora_vaultindex_test vaultindex_test.cpp
    ../src/core/VaultIndex.cpp
    ../src/core/VaultIndex.h
)
target_include_directories(flora_vaultindex_test PRIVATE ../src)
target_link_libraries(flora_vaultindex_test PRIVATE
    Qt6::Core)
add_test(NAME flora_vaultindex_test COMMAND flora_vaultindex_test)