use ff_backend_sqlite::SqliteBackend;
use ff_core::engine_backend::EngineBackend;
use serial_test::serial;
#[tokio::test]
#[serial(ff_dev_mode)]
async fn capabilities_identity_and_supports() {
unsafe {
std::env::set_var("FF_DEV_MODE", "1");
}
let backend = SqliteBackend::new(":memory:")
.await
.expect("sqlite init under FF_DEV_MODE=1");
let caps = backend.capabilities();
assert_eq!(caps.identity.family, "sqlite");
assert_eq!(caps.identity.rfc017_stage, "Phase-4");
assert!(caps.supports.cancel_flow_wait_timeout);
assert!(caps.supports.cancel_flow_wait_indefinite);
assert!(caps.supports.rotate_waitpoint_hmac_secret_all);
assert!(caps.supports.seed_waitpoint_hmac_secret);
assert!(caps.supports.subscribe_lease_history);
assert!(caps.supports.subscribe_completion);
assert!(caps.supports.subscribe_signal_delivery);
assert!(caps.supports.stream_durable_summary);
assert!(caps.supports.stream_best_effort_live);
assert!(caps.supports.cancel_execution);
assert!(caps.supports.change_priority);
assert!(caps.supports.replay_execution);
assert!(caps.supports.revoke_lease);
assert!(caps.supports.read_execution_state);
assert!(caps.supports.read_execution_info);
assert!(caps.supports.get_execution_result);
assert!(caps.supports.budget_admin);
assert!(caps.supports.quota_admin);
assert!(caps.supports.list_pending_waitpoints);
assert!(caps.supports.cancel_flow_header);
assert!(caps.supports.ack_cancel_member);
assert!(caps.supports.prepare);
assert!(!caps.supports.claim_for_worker);
assert!(!caps.supports.subscribe_instance_tags);
assert_eq!(backend.backend_label(), "sqlite");
}