#[test]
fn test_core_features_always_available() {
use things3_core::{ThingsConfig, ThingsError};
let _config: ThingsConfig;
let _error: Result<(), ThingsError> = Ok(());
}
#[cfg(feature = "export-csv")]
#[test]
fn test_csv_export_feature_enabled() {
use things3_core::{DataExporter, ExportConfig, ExportFormat};
let config = ExportConfig::default();
let exporter = DataExporter::new(config);
let format = ExportFormat::Csv;
assert_eq!(format, ExportFormat::Csv);
let _ = exporter;
}
#[cfg(not(feature = "export-csv"))]
#[test]
fn test_csv_export_feature_disabled() {
}
#[cfg(feature = "export-opml")]
#[test]
fn test_opml_export_feature_enabled() {
use things3_core::{DataExporter, ExportConfig, ExportFormat};
let config = ExportConfig::default();
let exporter = DataExporter::new(config);
let format = ExportFormat::Opml;
assert_eq!(format, ExportFormat::Opml);
let _ = exporter;
}
#[cfg(not(feature = "export-opml"))]
#[test]
fn test_opml_export_feature_disabled() {
}
#[cfg(feature = "observability")]
#[test]
fn test_observability_feature_enabled() {
use things3_core::{
CheckResult, HealthStatus, ObservabilityConfig, ObservabilityManager, ThingsMetrics,
};
let config = ObservabilityConfig::default();
assert_eq!(config.metrics_port, 9090);
let _status: Option<HealthStatus> = None;
let _metrics: Option<ThingsMetrics> = None;
let _check: Option<CheckResult> = None;
let _manager: Option<ObservabilityManager> = None;
}
#[cfg(not(feature = "observability"))]
#[test]
fn test_observability_feature_disabled() {
}
#[cfg(all(feature = "export-csv", feature = "export-opml"))]
#[test]
fn test_multiple_export_features_enabled() {
use things3_core::{DataExporter, ExportConfig, ExportFormat};
let config = ExportConfig::default();
let exporter = DataExporter::new(config);
let csv_format = ExportFormat::Csv;
let opml_format = ExportFormat::Opml;
assert_eq!(csv_format, ExportFormat::Csv);
assert_eq!(opml_format, ExportFormat::Opml);
let _ = exporter;
}
#[cfg(all(
feature = "export-csv",
feature = "export-opml",
feature = "observability"
))]
#[test]
fn test_all_features_enabled() {
use things3_core::{
DataExporter, ExportConfig, ExportFormat, HealthStatus, ObservabilityConfig,
ObservabilityManager,
};
let export_config = ExportConfig::default();
let exporter = DataExporter::new(export_config);
let csv_format = ExportFormat::Csv;
let opml_format = ExportFormat::Opml;
assert_eq!(csv_format, ExportFormat::Csv);
assert_eq!(opml_format, ExportFormat::Opml);
let _ = exporter;
let obs_config = ObservabilityConfig::default();
assert_eq!(obs_config.metrics_port, 9090);
let _status: Option<HealthStatus> = None;
let _manager: Option<ObservabilityManager> = None;
}
#[test]
fn test_tracing_always_available() {
use tracing::{debug, error, info, warn};
info!("Test info log");
debug!("Test debug log");
warn!("Test warn log");
error!("Test error log");
}
#[cfg(feature = "test-utils")]
#[test]
fn test_test_utils_feature_enabled() {
use things3_core::test_utils::{create_mock_areas, create_mock_projects, create_mock_tasks};
let tasks = create_mock_tasks();
assert!(!tasks.is_empty(), "Should create mock tasks");
let areas = create_mock_areas();
assert!(!areas.is_empty(), "Should create mock areas");
let projects = create_mock_projects();
assert!(!projects.is_empty(), "Should create mock projects");
}
#[test]
fn test_default_features() {
#[cfg(all(
feature = "export-csv",
feature = "export-opml",
feature = "observability"
))]
{
use things3_core::{ExportConfig, ObservabilityConfig};
let export_config = ExportConfig::default();
let obs_config = ObservabilityConfig::default();
let _ = export_config;
assert_eq!(obs_config.metrics_port, 9090);
}
#[cfg(not(all(
feature = "export-csv",
feature = "export-opml",
feature = "observability"
)))]
{
}
}