# ============================================================
# tests — 单元测试
# ============================================================

add_executable(dstalk-smoke-test
    smoke_test.cpp
)

target_link_libraries(dstalk-smoke-test
    PRIVATE dstalk
)

add_test(NAME dstalk-smoke-test COMMAND dstalk-smoke-test)

# ============================================================
# dstalk-host-api-test — host API 单元测试
# ============================================================

add_executable(dstalk-host-api-test
    host_api_test.cpp
    ${CMAKE_SOURCE_DIR}/dstalk-core/src/service_registry.cpp
)

target_include_directories(dstalk-host-api-test
    PRIVATE ${CMAKE_SOURCE_DIR}/dstalk-core/src
)

target_compile_features(dstalk-host-api-test
    PRIVATE cxx_std_17
)

target_link_libraries(dstalk-host-api-test
    PRIVATE dstalk
)

add_test(NAME dstalk-host-api-test COMMAND dstalk-host-api-test)

# ============================================================
# dstalk-event-bus-test — EventBus 单元测试
# ============================================================

add_executable(dstalk-event-bus-test
    event_bus_test.cpp
    ${CMAKE_SOURCE_DIR}/dstalk-core/src/event_bus.cpp
)

target_include_directories(dstalk-event-bus-test
    PRIVATE ${CMAKE_SOURCE_DIR}/dstalk-core/src
)

target_compile_features(dstalk-event-bus-test
    PRIVATE cxx_std_17
)

add_test(NAME dstalk-event-bus-test COMMAND dstalk-event-bus-test)

# ============================================================
# dstalk-service-registry-test — ServiceRegistry 补充单元测试
# ============================================================

add_executable(dstalk-service-registry-test
    service_registry_test.cpp
    ${CMAKE_SOURCE_DIR}/dstalk-core/src/service_registry.cpp
)

target_include_directories(dstalk-service-registry-test
    PRIVATE ${CMAKE_SOURCE_DIR}/dstalk-core/src
)

target_compile_features(dstalk-service-registry-test
    PRIVATE cxx_std_17
)

add_test(NAME dstalk-service-registry-test COMMAND dstalk-service-registry-test)

# ============================================================
# dstalk-context-plugin-test — Context 插件单元测试
# W18.1 (qa-wang + architect-lin): 覆盖 token 计数/trim/UTF-8 边界
# ============================================================

add_executable(dstalk-context-plugin-test
    context_plugin_test.cpp
)

target_link_libraries(dstalk-context-plugin-test
    PRIVATE dstalk
)

add_test(NAME dstalk-context-plugin-test COMMAND dstalk-context-plugin-test)
