use wasm_capability_contract::CapabilityError;
#[test]
fn test_capability_error_display_messages_name_the_failure() {
assert_eq!(
CapabilityError::UnsupportedContractVersion("swe:edge-handler@9.9.9".to_string())
.to_string(),
"unsupported contract version: swe:edge-handler@9.9.9"
);
assert_eq!(
CapabilityError::InvalidManifest("component_bytes must not be empty".to_string())
.to_string(),
"invalid manifest: component_bytes must not be empty"
);
assert_eq!(
CapabilityError::CapabilityUnavailable("clock not granted".to_string()).to_string(),
"capability unavailable: clock not granted"
);
}
#[test]
fn test_capability_error_display_messages_for_engine_time_variants() {
assert_eq!(
CapabilityError::Trap("division by zero".to_string()).to_string(),
"component trap: division by zero"
);
assert_eq!(
CapabilityError::InvalidOutput("export returned non-utf8 bytes".to_string()).to_string(),
"invalid output: export returned non-utf8 bytes"
);
assert_eq!(
CapabilityError::ResourceExhausted("max_memory_bytes exceeded".to_string()).to_string(),
"resource exhausted: max_memory_bytes exceeded"
);
assert_eq!(
CapabilityError::Cancelled.to_string(),
"invocation cancelled"
);
assert_eq!(CapabilityError::Timeout.to_string(), "invocation timed out");
}
#[test]
fn test_capability_error_eq_distinguishes_variants_with_same_payload() {
let trap = CapabilityError::Trap("out of bounds".to_string());
let invalid_output = CapabilityError::InvalidOutput("out of bounds".to_string());
assert_ne!(trap, invalid_output);
}