# Add smoke test targets

function(add_dr_test script)
    add_test(NAME ${script} COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/run_test.sh ${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh)

    set_tests_properties(${script} PROPERTIES
        TIMEOUT 30
        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
    )
endfunction()

add_dr_test(test_smoke_basic)
add_dr_test(test_smoke_tool_call)
add_dr_test(invalid_tool_fails)

# Add tool validation tests
add_dr_test(test_tool_edit)
add_dr_test(test_tool_read_file)
add_dr_test(test_tool_list_files)
add_dr_test(test_tool_grep)
add_dr_test(test_tool_shell)
add_dr_test(test_tool_read_multi_modal)

# Add feature validation tests
add_dr_test(test_tool_restrictions)
add_dr_test(test_n_flag)
add_dr_test(test_load_chat)
add_dr_test(process_reasoning)
add_dr_test(test_skill_scanner)
add_dr_test(test_nested_skills)
add_dr_test(test_skill_parsing)
add_dr_test(test_skill_validation)
add_dr_test(test_skill_listing)

# Add editor tests
add_dr_test(test_editor)

add_dr_test(test_tool_skill)
add_dr_test(test_skill_filter)
add_dr_test(test_skill_override)
add_dr_test(test_skill_unreadable_dir)
add_dr_test(test_auto_temp_file)

# Add JSON parsing and error handling tests
add_dr_test(test_json_safe_parse)

add_dr_test(test_json_type_mixed)

# Add json_to_field tests
add_dr_test(test_json_to_field)

# Add std::variant JSON serialization tests
add_dr_test(test_json_variant)

# Add expected error handling tests
add_dr_test(test_expected_errors)

# Add base64 encoding tests
add_dr_test(test_base64_encode)

# Add image file reading tests
add_dr_test(test_image_flag)

# Add ImageUrl and ContentPart tests
add_dr_test(test_image_url)

# Add multimodal message construction tests
add_dr_test(test_multimodal_message)

# Add multimodal round-trip persistence tests
add_dr_test(test_multimodal_roundtrip)

# Add print_history multimodal tests
add_dr_test(test_print_history_multimodal)
