28 lines
1004 B
Rust
28 lines
1004 B
Rust
use wip_host::CallErrorKind;
|
|
use wip_protocol::{OperationOutcome, ProtocolErrorCategory};
|
|
use wip_public_api_example::{PublishOutcome, run};
|
|
|
|
#[test]
|
|
fn public_crates_support_the_complete_end_to_end_scenario() {
|
|
let report = run().unwrap();
|
|
|
|
assert_eq!(report.published_interfaces.len(), 2);
|
|
assert_eq!(report.catalog_descriptor, report.published_interfaces[0]);
|
|
assert_eq!(report.audit_descriptor, report.published_interfaces[1]);
|
|
assert_eq!(
|
|
report.published,
|
|
PublishOutcome::Published("article-1".into())
|
|
);
|
|
assert_eq!(
|
|
report.rejected,
|
|
PublishOutcome::Rejected("a title is required".into())
|
|
);
|
|
assert_eq!(report.catalog_status, "catalog-ready");
|
|
assert_eq!(report.audit_status, "audit-ready");
|
|
assert_eq!(report.host_failure, CallErrorKind::Implementation);
|
|
assert!(matches!(
|
|
report.protocol_failure.outcome,
|
|
OperationOutcome::Failed(error) if error.category == ProtocolErrorCategory::Internal
|
|
));
|
|
}
|